
Sakura AI 모델의 속도를 측정해 보자!
요약
Sakura AI 모델의 성능을 정량적으로 측정하기 위해 TTFT, TTCT, TPS, TTFR 등 다양한 지표를 활용하여 속도를 분석했습니다. 실험 결과, 토큰 생성 속도는 안정적이었으나 첫 토큰 응답 시간(TTFT)의 변동성이 크다는 점을 확인했습니다.
핵심 포인트
- TTFT(첫 토큰 응답 시간)는 변동성이 크지만 중앙값은 실용적인 수준임
- TPS(초당 토큰 수)는 생성 시작 후 매우 안정적인 수치를 유지함
- TTFR(첫 추론 토큰 시간)은 TTFT에 비해 상대적으로 편차가 적음
- 모델의 워밍업 단계에서 일시적인 성능 이상치가 발생할 수 있음
Sakura AI를 사용하고 있다고 느끼는 것,
그것을 정량적으로 측정해 보고 싶다고 생각했습니다.
AI 모델의 레이턴시 (Latency)를 비교한 기사가 있었습니다.
이후부터는 사이트 A라고 부르겠습니다.
이 기사에 따르면,
- AI의 좋고 나쁨은 똑똑함뿐만이 아니다. 스피드, 요금, 안정성도 중요하다.
- 스피드에도 몇 가지 지표가 있으므로, 사용하려는 용도에 맞춰 수치를 확인하는 것이 좋다.
여기서 소개되었던 지표를 바탕으로 Sakura AI의 속도를 측정하고자 합니다.
TTFT (Time-to-First-Token)의 약입니다.
입력을 보낸 후, 처음으로 사용자에게 표시되는 답변 토큰이 돌아올 때까지의 시간입니다.
이것이 빠를수록 채팅 UI에 적합하다고 할 수 있습니다.
Chatty로 말하자면, 바로 이 순간입니다.
TTCT (Total Completion Time) - 토탈 합계 시간.
입력을 보낸 후, AI 모델이 답변을 마칠 때까지의 시간입니다.
Total Tokens - 전송된 토큰 수입니다.
이번에는 추론(Inference) 토큰과 답변 토큰의 합계를 산출하고 있습니다.
TPS (Tokens Per Second) - 1초당 토큰 수.
Completion tokens / (Total latency - TTFR)
로 산출하고 있습니다.
이 수치가 높을수록 배치 처리 (Batch processing)에 적합하다고 할 수 있습니다.
사이트 A에는 없었지만, 추가했습니다.
TTFR (Time-to-First-Reasoning) - time-to-first-reasoning의 약입니다.
입력을 보낸 후, 처음으로 추론의 토큰이 돌아올 때까지의 시간입니다.
사이트 A에서의 조건은 다음과 같습니다.
| 항목 | 내용 |
|---|---|
| 입력 프롬프트 길이 | Short: 약 50 tokens |
| ... |
입력 프롬프트는 「자기소개해 줘」라는 문장을 약 20 토큰
과 약 200 토큰
의 두 가지 버전으로 준비했습니다.
Python (requests)를 통해 스트리밍 API (Streaming API)에 접속하여,
100회 프롬프트를 보내고, 돌아오는 결과에 대해 시간을 측정하고 있습니다.
사용한 모델은 gpt-oss-120b입니다.
| 항목 | 평균 | 표준 편차 | 변동 계수(CV) |
|---|---|---|---|
| TTFR | 379 ms | 109 ms | 28.7% |
| ... | |||
| ※ 변동 계수 = 표준 편차 ÷ 평균 |
TTFT는 상당히 편차가 크다는 것을 알 수 있습니다. 가장 빠를 때는 0.4초 정도에 첫 글자가 전송되는 반면, 느릴 때는 5초 이상 걸리는 경우도 있었습니다.
그와 비교하면, TTFR은 편차가 그리 크지 않습니다. TTFR보다 TTFT의 변동성이 크다는 점에서, TTFR부터 TTFT까지의 구간, 즉 추론 토큰이 생성되는 시간이 응답 시간을 좌우하고 있을 가능성이 있습니다.
Tokens/sec의 변동 계수는 6.0%로 작으며, 일단 생성이 시작되면 토큰 생성 속도 자체는 상당히 안정적이라는 것을 알 수 있습니다.
압도적인 이상치 (Outlier)가 3개 있습니다만, 이것들은 처음 5회 사이에 모두 발생했습니다. 이 기록은 AI가 워밍업 (Warm-up) 중이었을 가능성도 있겠네요.
TTFT는 일부 5초를 넘는 것도 있지만, 중앙값은 약 1초이며, 체감상으로는 충분히 실용적인 속도라고 할 수 있습니다. 사이트 A의 말을 빌리자면, 마치 대화를 하고 있는 듯한 느낌? 이네요.
TTFT의 분산에 영향을 받아서인지, 이쪽도 편차가 다소 큽니다.
또한, 200자 정도의 문장이라면 중앙값으로 약 2초 만에 돌아온다는 결과가 나왔습니다.
토큰 수는 기본적으로 사고 시간 (TTFT-TTFR)에 비례하여 커지고 있었습니다. 당연한 이야기일지도 모르겠지만...
토큰 생성 속도는 중앙값으로 260 tokens/sec였으며, 큰 편차도 보이지 않았습니다.
200 토큰도 넣을 수 있으므로, 우선 다양한 정보를 프롬프트에 넣었습니다.
| 항목 | 평균 | 표준 편차 | 변동 계수(CV) |
|---|---|---|---|
| TTFR | 382 ms | 102 ms | 26.6% |
| ... |
흥미로운 결과가 나왔습니다. TTFT 값과 변동 계수 값이 극단적으로 감소했습니다. 안정적으로 빠르게 결과를 반환했다고 읽을 수 있습니다.
프롬프트로 「이것을 써줘」라는 조건을 너무 자세히 주었기 때문에, 추론할 필요가 거의 없어 입력을 그대로 출력한 것이라고도 생각할 수 있습니다. 반대로 의미 없는 문장을 비슷한 문장량으로 주었을 때는 어떻게 될지 궁금해집니다.
| 항목 | 평균 | 표준편차 | 변동계수 (CV) |
|---|---|---|---|
| TTFR | 392 ms | 142 ms | 36.3% |
| ... |
무언가 예상과는 반대로, TTFT는 그리 커지지 않았습니다. 대신 Total 시간이 대폭 증가했습니다.
왜일까요???
문자를 생성한 후에, 다시 사고 단계 (Thinking Phase)로 돌아갔기 때문일까요???
사이트 A에 있었던 다른 모델과 비교해 보겠습니다.
결과 값은 Medium의 중앙값으로 비교하고 있습니다.
사이트 A의 결과와는 조건이 다를 것으로 생각됩니다.
참고 정도로만 봐주세요.
| 모델 | TTFT | Output Speed [tokens/sec] | total latency |
|---|---|---|---|
| さくらのAI (gpt-oss-120b) | 약 823 ms | 약 255 tokens/s | 약 5780 ms |
| さくらのAI (llm-jp-3.1-8x13b-instruct4) | 약 377 ms | 약 132 tokens/s | 약 2771 ms |
| Claude Haiku 4.5 | 약 597 ms | ― | ― |
| Claude Sonnet 4 | 약 900 ms | 약 53 tokens/s | ― |
| ... |
비교할 수 있도록 さくらのAI의 다른 모델을 사용하여 마찬가지로 스코어를 산출했습니다. gpt-oss-120b는 추론 모델 (Reasoning Model)이므로, 다소 TTFT가 느린 것처럼 느껴지기도 하지만, 그래도 1초 미만이라면 충분하지 않을까요.
직접적인 비교는 할 수 없지만, 이렇게 보니 속도에 관해서는 다른 AI API와도 손색없는 성능을 보여주고 있다고 말할 수 있지 않을까요!
AI API를 사용해 본 적이 없어서 결과를 깊이 있게 고찰할 수는 없었지만, 개인적으로 이용하는 데 있어서는 로컬 LLM (Local LLM)보다 "압도적으로" 성능이 좋다고 할 수 있습니다. 속도 면에서도 충분한 성능을 갖추고 있음은 틀림없다고 생각합니다☆
현재는 AI의 종류도 많아져서, 어떤 것을 사용해야 할지 고민될 때가 있습니다. 이번에 조사하는 동안,
결국 다양한 조건을 살펴보고 자신에게 맞는 것을 사용해야 한다
라는 뻔한 결론에 도달했습니다. 무료 할당량(Free Tier)이 많고 성능도 나무랄 데 없다는 점이 기쁘기에, 저는 さくらのAI를 적극적으로 사용해 나가고 싶습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기