{
  "schemaVersion": 1,
  "runId": "2026-10-14-korean-token-tax-v1-open",
  "kind": "local",
  "title": "한국어 토큰세: 같은 글을 공개 모델의 토크나이저가 몇 토큰으로 세는지",
  "protocol": {
    "id": "korean-token-tax",
    "version": "1",
    "label": "한국어 토큰세 측정",
    "round": 1,
    "path": "lab/protocols/korean-token-tax/v1-open/",
    "commit": "3fc9baeb45e883df73151baa5a7082ea710525da"
  },
  "startedAt": "2026-10-14T05:25:10.503Z",
  "finishedAt": "2026-10-14T05:25:12.128Z",
  "environment": {
    "machine": "Apple M4 Pro, Darwin 27.0.0",
    "runtime": "Node.js v22.19.0 · Python 3.14.2 · tokenizers 0.23.3",
    "notes": [
      "AI API는 한 번도 부르지 않았어요. Hugging Face에 공개된 토크나이저 파일(tokenizer.json)만 받아 내 컴퓨터에서 네트워크 없이 셌어요(공개 토크나이저로 셈). 모델 본체(가중치)는 받지 않았어요.",
      "글 4개, 글자 수 기준, 계산식, 메시지 틀 보정은 lab/protocols/korean-token-tax/v1에서 바꾸지 않았어요(protocol.json과 texts/를 바이트까지 복사). 공개 토크나이저로 세는 방법, 고정한 토크나이저 목록과 sameAs 규칙은 실행 전에 커밋한 lab/protocols/korean-token-tax/v1-open/README.md에 있어요.",
      "글자 수는 파일 맨 끝 줄바꿈 하나를 뺀 글의 유니코드 코드 포인트 수예요. 띄어쓰기, 문장부호, 줄바꿈도 셌어요.",
      "글만 셌어요: tokenizers 0.23.3의 encode(add_special_tokens=False), 대화 틀(chat template) 없음. 메시지 틀 토큰(마침표 한 글자를 센 값 − 1): Qwen3.8-27B 0, DeepSeek-V4.1-Flash 0, Mistral Small 4 0, GLM-5.3-Flash 0, Gemma 4 26B A4B 0, gpt-oss-20b 0.",
      "토크나이저(저장소@커밋, 라이선스, 2026-10-14에 Hugging Face API로 게이트 없음 확인): Qwen/Qwen3.8-27B@1d4bf0f Apache-2.0, deepseek-ai/DeepSeek-V4.1-Flash@5254448 MIT, mistralai/Mistral-Small-4-119B-2603@a11f36b Apache-2.0, zai-org/GLM-5.3-Flash@91b6921 MIT, google/gemma-4-26B-A4B-it@4d7ae49 Apache-2.0, openai/gpt-oss-20b@6cee5e8 Apache-2.0. 토크나이저 파일은 묶음에 넣지 않았고, 커밋과 SHA-256은 tokenizers.json에 있어요.",
      "Gemma 4 26B A4B(google/gemma-4-26B-A4B-it)는 입력 5개 모두 2026-10-13-korean-token-tax-v1의 Gemini 3.8 Flash 값(집계 API)과 토큰 수가 같았어요. 그 실행은 토큰 수만 남겨서 ID까지 같은지는 알 수 없어요. 새로 보여 줄 값이 없어 따로 줄을 만들지 않았어요.",
      "gpt-oss-20b(openai/gpt-oss-20b)는 입력 5개 모두 2026-10-13-korean-token-tax-v1의 GPT-6.1 Sol 값(공개 인코딩 o200k_base)과 토큰 ID까지 같았어요. 새로 보여 줄 값이 없어 따로 줄을 만들지 않았어요.",
      "이 값은 토크나이저 파일로 센 글 토큰이에요. 같은 모델을 API로 쓰면 대화 틀 토큰이 더 붙을 수 있고, 서비스마다 세는 방식이 다를 수 있어요."
    ]
  },
  "subjects": [
    {
      "key": "qwen3.8-27b",
      "provider": "Alibaba",
      "modelId": "Qwen/Qwen3.8-27B",
      "displayName": "Qwen3.8-27B",
      "iconSlug": "qwen",
      "access": "local",
      "settings": {
        "counter": "tokenizers 0.23.3",
        "file": "tokenizer.json",
        "revision": "1d4bf0f",
        "licence": "Apache-2.0",
        "addSpecialTokens": false
      }
    },
    {
      "key": "deepseek-v4.1-flash",
      "provider": "DeepSeek",
      "modelId": "deepseek-ai/DeepSeek-V4.1-Flash",
      "displayName": "DeepSeek-V4.1-Flash",
      "iconSlug": "deepseek",
      "access": "local",
      "settings": {
        "counter": "tokenizers 0.23.3",
        "file": "tokenizer.json",
        "revision": "5254448",
        "licence": "MIT",
        "addSpecialTokens": false
      }
    },
    {
      "key": "mistral-small-4-119b-2603",
      "provider": "Mistral",
      "modelId": "mistralai/Mistral-Small-4-119B-2603",
      "displayName": "Mistral Small 4",
      "iconSlug": "mistral",
      "access": "local",
      "settings": {
        "counter": "tokenizers 0.23.3",
        "file": "tokenizer.json",
        "revision": "a11f36b",
        "licence": "Apache-2.0",
        "addSpecialTokens": false
      }
    },
    {
      "key": "glm-5.3-flash",
      "provider": "Z.ai",
      "modelId": "zai-org/GLM-5.3-Flash",
      "displayName": "GLM-5.3-Flash",
      "iconSlug": "zai",
      "access": "local",
      "settings": {
        "counter": "tokenizers 0.23.3",
        "file": "tokenizer.json",
        "revision": "91b6921",
        "licence": "MIT",
        "addSpecialTokens": false
      }
    },
    {
      "key": "gemma-4-26b-a4b-it",
      "provider": "Google",
      "modelId": "google/gemma-4-26B-A4B-it",
      "displayName": "Gemma 4 26B A4B",
      "iconSlug": "google",
      "access": "local",
      "settings": {
        "counter": "tokenizers 0.23.3",
        "file": "tokenizer.json",
        "revision": "4d7ae49",
        "licence": "Apache-2.0",
        "addSpecialTokens": false
      }
    },
    {
      "key": "gpt-oss-20b",
      "provider": "OpenAI",
      "modelId": "openai/gpt-oss-20b",
      "displayName": "gpt-oss-20b",
      "iconSlug": "openai",
      "access": "local",
      "settings": {
        "counter": "tokenizers 0.23.3",
        "file": "tokenizer.json",
        "revision": "6cee5e8",
        "licence": "Apache-2.0",
        "addSpecialTokens": false
      }
    }
  ],
  "conditions": [
    {
      "key": "news-ko",
      "label": "뉴스 문단(한국어)",
      "inputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/protocol/texts/news-ko.txt",
      "inputChars": 346
    },
    {
      "key": "email-ko",
      "label": "정중한 이메일(한국어)",
      "inputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/protocol/texts/email-ko.txt",
      "inputChars": 282
    },
    {
      "key": "code-ko",
      "label": "한국어 주석 코드",
      "inputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/protocol/texts/code-ko.txt",
      "inputChars": 525
    },
    {
      "key": "news-en",
      "label": "뉴스 문단(영어 대조문)",
      "inputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/protocol/texts/news-en.txt",
      "inputChars": 815
    },
    {
      "key": "frame-probe",
      "label": "메시지 틀 측정용 마침표 한 글자",
      "inputChars": 1
    }
  ],
  "trials": [
    {
      "subjectKey": "qwen3.8-27b",
      "taskId": "count-tokens",
      "condition": "news-ko",
      "attempt": 1,
      "outputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/raw/hf-tokenizers/qwen3.8-27b/news-ko.json",
      "finish": "stop",
      "usage": {
        "inputTokens": 172,
        "outputTokens": 0
      },
      "costUsd": 0
    },
    {
      "subjectKey": "qwen3.8-27b",
      "taskId": "count-tokens",
      "condition": "email-ko",
      "attempt": 1,
      "outputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/raw/hf-tokenizers/qwen3.8-27b/email-ko.json",
      "finish": "stop",
      "usage": {
        "inputTokens": 141,
        "outputTokens": 0
      },
      "costUsd": 0
    },
    {
      "subjectKey": "qwen3.8-27b",
      "taskId": "count-tokens",
      "condition": "code-ko",
      "attempt": 1,
      "outputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/raw/hf-tokenizers/qwen3.8-27b/code-ko.json",
      "finish": "stop",
      "usage": {
        "inputTokens": 201,
        "outputTokens": 0
      },
      "costUsd": 0
    },
    {
      "subjectKey": "qwen3.8-27b",
      "taskId": "count-tokens",
      "condition": "news-en",
      "attempt": 1,
      "outputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/raw/hf-tokenizers/qwen3.8-27b/news-en.json",
      "finish": "stop",
      "usage": {
        "inputTokens": 182,
        "outputTokens": 0
      },
      "costUsd": 0
    },
    {
      "subjectKey": "qwen3.8-27b",
      "taskId": "count-tokens",
      "condition": "frame-probe",
      "attempt": 1,
      "outputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/raw/hf-tokenizers/qwen3.8-27b/frame-probe.json",
      "finish": "stop",
      "usage": {
        "inputTokens": 1,
        "outputTokens": 0
      },
      "costUsd": 0
    },
    {
      "subjectKey": "deepseek-v4.1-flash",
      "taskId": "count-tokens",
      "condition": "news-ko",
      "attempt": 1,
      "outputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/raw/hf-tokenizers/deepseek-v4.1-flash/news-ko.json",
      "finish": "stop",
      "usage": {
        "inputTokens": 236,
        "outputTokens": 0
      },
      "costUsd": 0
    },
    {
      "subjectKey": "deepseek-v4.1-flash",
      "taskId": "count-tokens",
      "condition": "email-ko",
      "attempt": 1,
      "outputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/raw/hf-tokenizers/deepseek-v4.1-flash/email-ko.json",
      "finish": "stop",
      "usage": {
        "inputTokens": 208,
        "outputTokens": 0
      },
      "costUsd": 0
    },
    {
      "subjectKey": "deepseek-v4.1-flash",
      "taskId": "count-tokens",
      "condition": "code-ko",
      "attempt": 1,
      "outputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/raw/hf-tokenizers/deepseek-v4.1-flash/code-ko.json",
      "finish": "stop",
      "usage": {
        "inputTokens": 224,
        "outputTokens": 0
      },
      "costUsd": 0
    },
    {
      "subjectKey": "deepseek-v4.1-flash",
      "taskId": "count-tokens",
      "condition": "news-en",
      "attempt": 1,
      "outputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/raw/hf-tokenizers/deepseek-v4.1-flash/news-en.json",
      "finish": "stop",
      "usage": {
        "inputTokens": 177,
        "outputTokens": 0
      },
      "costUsd": 0
    },
    {
      "subjectKey": "deepseek-v4.1-flash",
      "taskId": "count-tokens",
      "condition": "frame-probe",
      "attempt": 1,
      "outputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/raw/hf-tokenizers/deepseek-v4.1-flash/frame-probe.json",
      "finish": "stop",
      "usage": {
        "inputTokens": 1,
        "outputTokens": 0
      },
      "costUsd": 0
    },
    {
      "subjectKey": "mistral-small-4-119b-2603",
      "taskId": "count-tokens",
      "condition": "news-ko",
      "attempt": 1,
      "outputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/raw/hf-tokenizers/mistral-small-4-119b-2603/news-ko.json",
      "finish": "stop",
      "usage": {
        "inputTokens": 185,
        "outputTokens": 0
      },
      "costUsd": 0
    },
    {
      "subjectKey": "mistral-small-4-119b-2603",
      "taskId": "count-tokens",
      "condition": "email-ko",
      "attempt": 1,
      "outputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/raw/hf-tokenizers/mistral-small-4-119b-2603/email-ko.json",
      "finish": "stop",
      "usage": {
        "inputTokens": 155,
        "outputTokens": 0
      },
      "costUsd": 0
    },
    {
      "subjectKey": "mistral-small-4-119b-2603",
      "taskId": "count-tokens",
      "condition": "code-ko",
      "attempt": 1,
      "outputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/raw/hf-tokenizers/mistral-small-4-119b-2603/code-ko.json",
      "finish": "stop",
      "usage": {
        "inputTokens": 202,
        "outputTokens": 0
      },
      "costUsd": 0
    },
    {
      "subjectKey": "mistral-small-4-119b-2603",
      "taskId": "count-tokens",
      "condition": "news-en",
      "attempt": 1,
      "outputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/raw/hf-tokenizers/mistral-small-4-119b-2603/news-en.json",
      "finish": "stop",
      "usage": {
        "inputTokens": 183,
        "outputTokens": 0
      },
      "costUsd": 0
    },
    {
      "subjectKey": "mistral-small-4-119b-2603",
      "taskId": "count-tokens",
      "condition": "frame-probe",
      "attempt": 1,
      "outputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/raw/hf-tokenizers/mistral-small-4-119b-2603/frame-probe.json",
      "finish": "stop",
      "usage": {
        "inputTokens": 1,
        "outputTokens": 0
      },
      "costUsd": 0
    },
    {
      "subjectKey": "glm-5.3-flash",
      "taskId": "count-tokens",
      "condition": "news-ko",
      "attempt": 1,
      "outputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/raw/hf-tokenizers/glm-5.3-flash/news-ko.json",
      "finish": "stop",
      "usage": {
        "inputTokens": 279,
        "outputTokens": 0
      },
      "costUsd": 0
    },
    {
      "subjectKey": "glm-5.3-flash",
      "taskId": "count-tokens",
      "condition": "email-ko",
      "attempt": 1,
      "outputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/raw/hf-tokenizers/glm-5.3-flash/email-ko.json",
      "finish": "stop",
      "usage": {
        "inputTokens": 224,
        "outputTokens": 0
      },
      "costUsd": 0
    },
    {
      "subjectKey": "glm-5.3-flash",
      "taskId": "count-tokens",
      "condition": "code-ko",
      "attempt": 1,
      "outputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/raw/hf-tokenizers/glm-5.3-flash/code-ko.json",
      "finish": "stop",
      "usage": {
        "inputTokens": 226,
        "outputTokens": 0
      },
      "costUsd": 0
    },
    {
      "subjectKey": "glm-5.3-flash",
      "taskId": "count-tokens",
      "condition": "news-en",
      "attempt": 1,
      "outputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/raw/hf-tokenizers/glm-5.3-flash/news-en.json",
      "finish": "stop",
      "usage": {
        "inputTokens": 177,
        "outputTokens": 0
      },
      "costUsd": 0
    },
    {
      "subjectKey": "glm-5.3-flash",
      "taskId": "count-tokens",
      "condition": "frame-probe",
      "attempt": 1,
      "outputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/raw/hf-tokenizers/glm-5.3-flash/frame-probe.json",
      "finish": "stop",
      "usage": {
        "inputTokens": 1,
        "outputTokens": 0
      },
      "costUsd": 0
    },
    {
      "subjectKey": "gemma-4-26b-a4b-it",
      "taskId": "count-tokens",
      "condition": "news-ko",
      "attempt": 1,
      "outputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/raw/hf-tokenizers/gemma-4-26b-a4b-it/news-ko.json",
      "finish": "stop",
      "usage": {
        "inputTokens": 192,
        "outputTokens": 0
      },
      "costUsd": 0
    },
    {
      "subjectKey": "gemma-4-26b-a4b-it",
      "taskId": "count-tokens",
      "condition": "email-ko",
      "attempt": 1,
      "outputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/raw/hf-tokenizers/gemma-4-26b-a4b-it/email-ko.json",
      "finish": "stop",
      "usage": {
        "inputTokens": 151,
        "outputTokens": 0
      },
      "costUsd": 0
    },
    {
      "subjectKey": "gemma-4-26b-a4b-it",
      "taskId": "count-tokens",
      "condition": "code-ko",
      "attempt": 1,
      "outputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/raw/hf-tokenizers/gemma-4-26b-a4b-it/code-ko.json",
      "finish": "stop",
      "usage": {
        "inputTokens": 213,
        "outputTokens": 0
      },
      "costUsd": 0
    },
    {
      "subjectKey": "gemma-4-26b-a4b-it",
      "taskId": "count-tokens",
      "condition": "news-en",
      "attempt": 1,
      "outputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/raw/hf-tokenizers/gemma-4-26b-a4b-it/news-en.json",
      "finish": "stop",
      "usage": {
        "inputTokens": 187,
        "outputTokens": 0
      },
      "costUsd": 0
    },
    {
      "subjectKey": "gemma-4-26b-a4b-it",
      "taskId": "count-tokens",
      "condition": "frame-probe",
      "attempt": 1,
      "outputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/raw/hf-tokenizers/gemma-4-26b-a4b-it/frame-probe.json",
      "finish": "stop",
      "usage": {
        "inputTokens": 1,
        "outputTokens": 0
      },
      "costUsd": 0
    },
    {
      "subjectKey": "gpt-oss-20b",
      "taskId": "count-tokens",
      "condition": "news-ko",
      "attempt": 1,
      "outputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/raw/hf-tokenizers/gpt-oss-20b/news-ko.json",
      "finish": "stop",
      "usage": {
        "inputTokens": 203,
        "outputTokens": 0
      },
      "costUsd": 0
    },
    {
      "subjectKey": "gpt-oss-20b",
      "taskId": "count-tokens",
      "condition": "email-ko",
      "attempt": 1,
      "outputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/raw/hf-tokenizers/gpt-oss-20b/email-ko.json",
      "finish": "stop",
      "usage": {
        "inputTokens": 158,
        "outputTokens": 0
      },
      "costUsd": 0
    },
    {
      "subjectKey": "gpt-oss-20b",
      "taskId": "count-tokens",
      "condition": "code-ko",
      "attempt": 1,
      "outputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/raw/hf-tokenizers/gpt-oss-20b/code-ko.json",
      "finish": "stop",
      "usage": {
        "inputTokens": 191,
        "outputTokens": 0
      },
      "costUsd": 0
    },
    {
      "subjectKey": "gpt-oss-20b",
      "taskId": "count-tokens",
      "condition": "news-en",
      "attempt": 1,
      "outputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/raw/hf-tokenizers/gpt-oss-20b/news-en.json",
      "finish": "stop",
      "usage": {
        "inputTokens": 176,
        "outputTokens": 0
      },
      "costUsd": 0
    },
    {
      "subjectKey": "gpt-oss-20b",
      "taskId": "count-tokens",
      "condition": "frame-probe",
      "attempt": 1,
      "outputPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/raw/hf-tokenizers/gpt-oss-20b/frame-probe.json",
      "finish": "stop",
      "usage": {
        "inputTokens": 1,
        "outputTokens": 0
      },
      "costUsd": 0
    }
  ],
  "pricing": [],
  "fx": null,
  "totals": {
    "costUsd": 0,
    "costKrw": 0,
    "billedUsd": 0
  },
  "grading": {
    "method": "auto",
    "rubricPath": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip!/2026-10-14-korean-token-tax-v1-open/protocol/README.md",
    "humanSampleCount": 0
  },
  "files": [
    {
      "path": "data/runs/2026-10-14-korean-token-tax-v1-open/bundle.zip",
      "sha256": "f2e330f8da8d75b1cbced491313132e5860b2ef37d1f5712777540f395691a90",
      "bytes": 58184
    }
  ],
  "licence": "CC-BY-4.0",
  "outputsLicenceNote": "AI 출력물은 없어요. 공개 토크나이저로 센 토큰 ID만 담았어요. 토크나이저 파일은 넣지 않았고, 각 저장소의 라이선스(tokenizers.json)를 따라요.",
  "secretsScan": {
    "tool": "scripts/lab/run.ts 비밀값 검사(sk- 키, AIza 키, Bearer 토큰, Authorization·x-api-key·x-goog-api-key 헤더 줄, 개인 키, 실행 중인 키 값)",
    "passedAt": "2026-10-14T05:25:12.128Z"
  }
}
