메뉴
HN
Hacker News 15일 전

최신 AI 모델의 실제 가격: 토큰 수도 가격도 다릅니다

IMP
8/10
핵심 요약

AI 코딩 에이전트 개발 시, 단순히 백만 토큰당 가격만 비교하면 실제 청구 비용을 왜곡될 수 있습니다. 같은 코드라도 모델마다 텍스트를 자르는 토크나이저가 다르기 때문입니다. 특히 주력 언어인 타입스크립트 환경에서는 최신 클로드 모델이 기존이나 GPT보다 최대 73% 더 많은 토큰을 소모하여 예상치 못한 높은 비용이 청구될 수 있습니다.

번역된 본문

모든 모델의 가격 페이지에는 사용자가 비교하기를 원하는 하나의 숫자가 표시됩니다: 백만 토큰당 달러 가격입니다. 두 모델을 나란히 놓고 보면 하나가 더 저렴해 보입니다. 하지만 이 비교 방식은 잘못되었습니다. 그리고 만약 여러분이 AI 코딩 에이전트를 사용해 무언가를 구축한다면, 이 방식은 비용을 가장 높게 산정하는 방향으로 왜곡되어 있습니다. 가격은 토큰당 책정되지만, '토큰'이 고정된 텍스트 분량은 아닙니다. 각 모델의 토크나이저(tokenizer)는 동일한 파일을 서로 다른 개수의 조각으로 자르며, 우리는 조각 수만큼 비용을 지불합니다. 다음은 실제 청구서에 찍히는 숫자입니다. 완전히 동일한 TypeScript 파일이 GPT-5.x에서는 681개의 토큰으로 계산되지만, Claude의 최신 토크나이저에서는 1,178개의 토큰으로 계산됩니다. 이는 1.73배 더 많은 수치이며, 가격 차이를 고려하기도 전에 Claude 자신의 이전 토크나이저보다도 31%가 증가한 것입니다. 개발자로서 여러분의 실제 작업물은 대부분 TypeScript일 것이며, TypeScript가 바로 이 격차가 가장 크게 벌어지는 부분입니다. (영어 산문은 1.4배로 비교적 적은 편입니다. 그 이유는 아래를 참조하세요.) 가격 페이지가 숨기고 있는 숫자 모델의 청구 비용은 두 가지 숫자를 곱한 것입니다: 비용 = (콘텐츠가 변환된 토큰 수) x (토큰당 가격) 가격 페이지는 두 번째 숫자만 보여줄 뿐, 첫 번째 숫자는 상수처럼 취급합니다. 하지만 이는 상수가 아닙니다. 이는 모델의 토크나이저, 즉 텍스트를 모델이 실제로 비용을 청구하는 단위로 잘라내는 구성 요소의 고유한 속성입니다. 두 모델이 정확히 동일하게 '백만 입력 토큰당 $5.00'이라고 광고하더라도, 하나가 특정 문단을 다른 모델보다 더 많은 토큰으로 변환하기 때문에 동일한 문단에 대해 서로 다른 청구서를 받게 됩니다. 아무도 콘텐츠당 토큰 수를 명시하지 않기 때문에 아무도 그것을 비교하지 않습니다. 이것이 바로 환상의 전부입니다. 실제 가격을 확인하려면 토크나이저를 직접 측정한 다음, 이를 다시 가격에 곱해봐야 합니다. 요금표가 숨기고 있는 두 겹의 비용 요금표에는 하나의 가격만 표시되어 있을 뿐, 그 아래에 두 겹의 비용 층이 숨겨져 있습니다. 두 가지 모두 아래에서 측정되었으며, 둘 다 여러분의 청구서에 찍히지만 가격 페이지 어디에도 표시되지 않습니다. 이는 서로 다른 비교 기준이므로 두 가지를 정확히 구분해서 이해해야 하며, 그래야만 숫자들이 맞아떨어집니다. 첫 번째 층 - 동일한 가격표 속 슬금슬금 인상. 이는 Anthropic의 이전 토크나이저와 비교하여 측정한 자사의 새로운 토크나이저에 대한 비교, 즉 동일한 조건, 동일한 공급업체 간의 비교입니다. Claude Opus 4.6과 Opus 4.8은 $5.00 / $25.00로 동일한 요금표를 유지하지만, 4.8은 최신 토크나이저를 탑재하여 동일한 코드를 약 2932% 더 많은 토큰으로 변환합니다: TypeScript의 경우 +31%(898개에서 1,178개), Rust의 경우 +29%(1,019개에서 1,312개) 증가합니다. "가격은 동일, 새로운 모델"이라는 말은 조용히 여러분에게 약 30% 더 많은 비용을 지불하게 만들며, 이러한 증가분은 청구서에 절대 항목으로 명시되지 않습니다. 두 번째 층 - 실제로 작성하는 언어에서 가장 최악의 수치. 약 30%라는 수치는 평균입니다. 이제 AI 코딩 에이전트가 생성하는 대부분의 코드인 TypeScript에서, 새로운 Claude 토크나이저를 시장에서 가장 토큰 소모가 적은 GPT의 o200k 토크나이저와 비교해 보겠습니다. 그 격차는 73%입니다(1,178 vs 681 = 1.73배). 이는 업체 간 비교이며, Anthropic은 GPT와 토큰 수를 동일하게 맞춘 적이 없으므로, 이를 비난이 아닌 증폭기로 받아들이십시오. 이는 추상적인 '백만 토큰당 달러'를 여러분의 실제 작업 환경에서 발생하는 실제 피해액으로 바꾸어주는 기준이 되기 때문입니다. 요금표만으로는 이 두 가지 숨겨진 비용 층을 절대 확인할 수 없습니다. 우리의 측정 방법 우리는 16개의 실제 데이터(영어 산문, HTML 페이지, JavaScript, Python, TypeScript 및 Rust 파일, JSON 도구 스키마 및 결과, 중국어 채팅 및 산문, 기호가 많은 텍스트 블록, 당사의 실제 에이전트 시스템 프롬프트)를 가져와서 각 모델의 실제 토크나이저를 사용해 바이트 단위로 동일하게 카운트했습니다. 텍스트 생성이나 비용 추정은 없었습니다. 오직 토큰 수만 카운트했습니다. Anthropic (Claude) - Anthropic의 공식 count_tokens 엔드포인트에서 계산했습니다. 이 데이터는 신뢰할 수 있으며 Anthropic이 실제로 요금을 청구하는 기준과 동일합니다. OpenAI (GPT) - tiktoken을 통해 OpenAI에 공식 문서화된 o200k_base 토크나이저로 계산했습니다. 최신 모델에 대해서는 맹목적으로 믿지 않았습니다. GPT-5.1, GPT-5.5 및 GPT-5.6 Sol에 실제로 최소한의 API 요청을 보내고, 라이브 사용량 토큰 수를 읽은 뒤 요청 프레이밍을 상쇄하기 위해 '긴 텍스트 짧은 텍스트' 델타 방식을 사용했습니다. 세 가지 모두 o200k_base와 정확히 일치했습니다(비율 1.0000). 토크나이저는 가정이 아닌 검증된 것입니다. Google (Gemini) 및 xAI (Grok) - 각 제공업체의 자체 토큰 카운트 엔드포인트에서 계산했습니다. 우리는 GPT의 o200k를 1.00x의 기준으로 사용했습니다.

원문 보기
원문 보기 (영어)
Every model's pricing page shows one number you are meant to compare: dollars per million tokens. Put two side by side and one looks cheaper. That comparison is broken - and if you build with an AI coding agent, it is broken in the most expensive direction. The price is per token, but a "token" is not a fixed amount of text: each model's tokenizer cuts the same file into a different number of pieces, and you pay per piece. Here is the number that lands on your invoice. The exact same TypeScript file is 681 tokens on GPT-5.x and 1,178 tokens on Claude's newest tokenizer - 1.73x more , and +31% over Claude's own previous tokenizer, before a cent of price difference. Your real workload as a builder is basically TypeScript, and TypeScript is exactly where the gap is widest. (English prose is a milder ~1.4x - more on why below.) The number the pricing page hides A model's bill is two numbers multiplied together: cost = (tokens your content becomes) x (price per token) The pricing page shows you the second number and treats the first as a constant. It is not a constant. It is a property of the model's tokenizer - the component that chops your text into the units the model actually charges for. Two models can advertise the exact same "$5.00 / 1M input tokens" and still hand you different bills for the same paragraph, because one turns that paragraph into more tokens than the other. Nobody prints the tokens-per-content number, so nobody compares it. That is the whole illusion. To see the real price you have to measure the tokenizer, then multiply it back in. Two floors the rate card hides The rate card shows one price and hides two layers of cost beneath it. Both are measured below, both land on your invoice, and neither appears anywhere on a pricing page. Keep the two baselines straight, because they are different comparisons and the numbers only reconcile if you do. Floor one - the same-sticker stealth hike. This is Anthropic's new tokenizer measured against its own previous one - a like-for-like, same-vendor comparison. Claude Opus 4.6 and Opus 4.8 carry the identical $5.00 / $25.00 rate card, but 4.8 ships the newer tokenizer, and it turns the same code into about 29-32% more tokens : +31% on TypeScript (898 to 1,178), +29% on Rust (1,019 to 1,312). "Same price, new model" quietly costs you roughly 30% more, and that increase is never printed as a line item. Floor two - it is worst on the language you actually write. That ~30% is the average. Now measure the new Claude tokenizer against the leanest one on the market - GPT's o200k - on TypeScript, which is the bulk of what an AI coding agent produces. The gap is 73% (1,178 vs 681 = 1.73x). This is a cross-vendor comparison, and Anthropic never claimed token parity with GPT - so read it as the amplifier, not the accusation: it is what turns an abstract "$/Mtok" into the real damage on your specific workload. The rate card cannot show you either floor. How we measured it We took 16 real fixtures - English prose, an HTML page, JavaScript, Python, TypeScript and Rust files, JSON tool schemas and tool results, Chinese chat and prose, a block of symbol-heavy text, and our own live agent system prompt - and counted each one, byte for byte, under every model's real tokenizer. No generation, no billing estimates: just token counts. Anthropic (Claude) - counted on Anthropic's official count_tokens endpoint. This is authoritative; it is the same count Anthropic bills against. OpenAI (GPT) - counted with OpenAI's documented o200k_base tokenizer via tiktoken . We did not take that on faith for the newest models: we made real minimal API calls to GPT-5.1, GPT-5.5 and GPT-5.6 Sol, read the live usage token counts, and used a long-minus-short delta to cancel the request framing. All three matched o200k_base exactly (ratio 1.0000). The tokenizer is verified, not assumed. Google (Gemini) and xAI (Grok) - counted on each provider's own token-count endpoint. We use GPT's o200k as the 1.00x reference, and every cross-vendor ratio reads as "tokens vs o200k." It is the right ruler precisely because it does not move: o200k has been frozen and publicly documented for a long time, so it is a stable, checkable yardstick - Claude's tokenizer is the part that keeps changing. Two models we deliberately keep out of the comparison tables: DeepSeek and GLM. We only have a rough characters-over-four estimate for those two, not a real tokenizer, and a made-up number is exactly the kind of thing this post exists to call out. They are noted as estimates or not at all. Finding 1: the first floor, a same-sticker stealth hike Floor one in full, and this is the cleanest case in the dataset because nothing on the rate card moves - only the tokenizer. Claude Opus 4.6 and Opus 4.8 share the identical $5.00 / $25.00 sticker; 4.8 simply ships the newer tokenizer and quietly bills more for the same code. Here is the new tokenizer against the old one across every fixture - same bytes in every row, same-vendor, measured on Anthropic's own count_tokens endpoint: Content (identical bytes) Old tokenizer (Sonnet 4.6 / Opus 4.6) New tokenizer (Sonnet 5 / Opus 4.8 / Fable 5) Change English prose (2,115 chars) 476 636 +34% HTML page (3,195 chars) 1,131 1,302 +15% JavaScript (1,933 chars) 659 794 +20% Python (2,251 chars) 831 1,022 +23% TypeScript (2,888 chars) 898 1,178 +31% Rust (2,924 chars) 1,019 1,312 +29% JSON tool schema (9,948 chars) 2,631 3,306 +26% Our rendered agent system prompt (42,661 chars) 10,761 14,953 +39% Chinese prose (379 chars) 435 433 ~0% Blend those the way a real agent turn is composed - mostly English system prompt, tool schemas, code, and JSON - and the new tokenizer runs about +32% on the whole request. Notice the last row: on Chinese, the new tokenizer changed almost nothing. The +32% is an English-and-code effect. This reframes a headline that looked like a price cut. Claude Sonnet 5 launched at $2.00 / $10.00 - below Sonnet 4.6's $3.00 / $15.00. But that intro price runs only through August 31, 2026, after which it reverts to the standard $3.00 / $15.00. During the intro window the lower sticker slightly more than covers the inflation: Sonnet 5 makes about 32% more tokens than 4.6, but at $2.00 it charges a third less per token, so it lands a hair cheaper overall. The day the intro ends, the sticker snaps back to $3.00 while the +32% token inflation stays - so the same code costs about 32% more on Sonnet 5 than on 4.6, at an identical $3.00 sticker. The discount was the transition cushion, not a durable cut. We read the actual bills, including the priciest model A token counter is only a promise until you are billed. So we did not stop at count_tokens - we fired real, billed requests ( max_tokens: 1 ) and read the usage.input_tokens the provider actually charged. For identical content, Opus 4.6 billed 2,541 input tokens and Opus 4.8 billed 3,191 - each matching its count_tokens prediction to the exact token. The same-sticker hike is not an artifact of the estimator; it is on the invoice, about a quarter more tokens here for the very same bytes. We spent the extra call on the most expensive model on purpose, because "same tokenizer, nothing special" is exactly the kind of claim this post distrusts. Fable 5 billed 3,191 input tokens for that content - identical to Opus 4.8 and Sonnet 5 - so Fable uses the same new tokenizer and bills its exact count, with no hidden per-token surcharge . Fable is expensive by its sticker ($10 / $50), not by a secret token tax. The whole verification cost about $0.08 : the counter is honest, the inflation is real, and even the priciest model plays it straight. Finding 2: the floor under the floor, worst on the code you write This is the cross-vendor comparison, and here GPT's o200k is the 1.00x ruler. Every cell is that model's tokens as a multiple of GPT's for the identical file - so 1.20x means 20% more tokens than GPT. We show Claude's old and new tokenizers side by side, so both floors sit in on