0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ローカルLLMの記事が読めない人のための最小用語集 — tok/s・prefill・num_ctx・ハーネスを実例つきで解説

0
Posted at

「ローカルLLMでコーディング」系の記事を読もうとして、tok/s とか prefill とか num_ctx とかが出てきて挫折した人向けの記事です。

筆者は GPU なし・CPU だけの環境(Ryzen 5 4500U・メモリ32GB)で、ローカルLLMに「ファイルを読む・編集する・テストを回す」というコーディングエージェントの仕事をさせる実験をしました。その結果「ファイルサイズが大きいモデルほど速くて正確だった」など、常識的な予想がことごとく裏切られる面白いデータが取れたのですが、それを語る前に必要な用語を全部ここに置きます。

「学校の授業レベル」を意識して、各用語は「一言でいうと → なぜ重要か → 実測での実例」の順で書きます。

土台: LLMは「文字を予測する機械」

LLM(大規模言語モデル)は、入ってきた文章の続きとして「次に来るべきトークン」を確率的に予測し続ける機械です。考えたり調べたりしているのではなく、予測の連鎖です。この一点を押さえると後の全部が理解しやすくなります。

用語1: トークン(token)

一言でいうと: LLMが扱う文字の最小単位。だいたい英単語1つか、日本語なら1〜数文字。

モデルの速さ・料金・記憶容量はすべてトークンで測ります。「ファイルを読ませた」= そのファイルの内容がトークン列になって入力された、という意味です。

用語2: prefill / decode(プロンプト処理と生成)

一言でいうと: LLMの仕事は2段階。入ってきた文章を全部読み込む「prefill(プロンプト評価)」と、続きを1トークンずつ書き出す「decode(生成評価)」。

これが別れているのが重要で、速度の内訳がまったく違うのです。

実例: 1800トークンのコードファイルを読んで要約させるタスクで、あるモデルは prefill に 84秒、decode に 30秒かかりました。つまり「返事が来るまで待つ時間」の大半は読み込みです。エージェントループでは毎ターン、全履歴を読み直すので、この prefill が律速になります — これが後の話の全てに効いてきます。

用語3: tok/s(評価速度)

一言でいうと: 1秒あたりに処理できるトークン数。eval rate(decode側の tok/s)が「文字が書き出される速さ」の指標。

筆者の環境では実用の目安を 5 tok/s と置きました。それを切ると、エージェントが1ターン考えるだけで数分かかります。

実例: 同じPCで、モデルによって 3.1 tok/s から 8.0 tok/s まで開きがありました。クラウドAPI(Web版ClaudeやGPT)の何十分の一の速度ですが、「待てば着実に進む」範囲内です。

用語4: コンテキストウィンドウ / num_ctx

一言でいうと: モデルが一度に「見える」範囲。num_ctx は Ollama での設定値(既定 4096 トークン)。

なぜ重要か: ウィンドウを超えた古い内容は、黙って捨てられます。警告も出ません。モデルが「さっき読んだはずのファイルの中身を忘れた」ように見える時、実はコンテキストから押し出されているだけ、ということが実際に起きます。

実例: エージェントループ(システムプロンプト+ファイル内容+往復履歴)では 4096 はすぐ溢れます。筆者は 8192 を推奨値として実測しています。ただし大きくしても賢くはならず「見える量」が増えるだけです。

用語5: KVキャッシュ

一言でいうと: 読み込んだコンテキストを保持する作業用メモリ。num_ctx を大きくすると実際に使った分だけ増えます(9B級モデルで +1〜2GB 程度)。32GB RAM なら誤差範囲です。

用語6: 温度(temperature)

一言でいうと: 出力の「揺らぎ度」。0 に近いほど毎回同じ答え(決定的)、1 付近で創造的・散らかりやすい。

よく言われる「温度を下げると安定する」は半分だけ本当で、筆者の実験では 温度 0.2 の決定性が、モデルの「同じ失敗を繰り返す癖」まで固定してしまう事態を観測しました(詳しくは別の記事で)。温度は「知性」ではなく「ばらつきの調整」です。

用語7: thinking / 推論モード

一言でいうと: 答えを出す前に「考えた過程」を長文で生成するモード。推論系モデル(qwen3.5・gpt-oss・gemma4 等)が持ちます。

注意点が2つ:

  • この「思考トレース」もトークンを食います。低速環境では返事までの時間の大部分を占め、切ると劇的に速くなります
  • モデルによって切れるものと切れないものがあります。実測では gpt-oss:20b と gemma4 系は思考を完全に切れず、「Off」を送ると返事本文が空になる不具合すらありました

用語8: ハーネス(harness)

一言でいうと: モデルを囲むツール側の仕組み全般 — プロンプトの組み立て方、コマンドの解釈、結果の返し方、履歴の持ち方。

「モデルの性能」として見える現象のかなりの部分が、実はハーネスの設計で決まります。筆者の実験で最大の発見は「モデルが弱いと見えたのは、自分のハーネスのバグだった」でした(第3弾の記事で詳述)。ローカルLLM記事で「このモデルは使えない」と読むとき、そこにはモデルとハーネスの合計が書かれている、と思ってください。

用語9: エージェントループ / ツール呼び出し

一言でいうと: 「考える→コマンドを出す→結果を見る→また考える」を繰り返す自律的な仕組み。

コーディングエージェントは「ファイルを読む(READ_FILE)」「編集する(EDIT_FILE)」「コマンドを実行する(RUN_COMMAND)」等をモデルがテキストで出力し、ハーネスがそれを解釈して実行し、結果をモデルに返す、という往復です。OpenAI系の「function calling」はこれを構造化データでやる方式で、Ollamaの素のAPIでは自分でテキスト形式を決めて運ぶこともできます(筆者のIDEはそちらの方式)。

用語10: 幻視(hallucination / ハルシネーション)

一言でいうと: モデルが、存在しない事実を確信的に述べること。

実例: 実際には export が1つしかないファイルを「2つあります」と答えたモデルがいました。存在しないテスト結果を「確認しました」と述べることもあります。小さいモデルほど起きやすいのですが、ハーネス設計(モデルの記憶を補助する)でかなり減らせます。

これだけで読める

以上の10個が分かれば、こういう記事が読めるようになります:

「qwen3.5:4b は decode 8 tok/s で速いが幻視が多い。gemma4:e4b は num_ctx 8192 のエージェントループを形式崩れなしで完走した」

この言葉が「だから ○○ は使える/使えない」に直結している構造が、次の記事以降の実データで見えてきます。

続きはこちら(全数字の実測データあり)

この記事は「CPUだけのローカルLLMコーディング」シリーズの第1弾です。実際の計測データ・全ログ・モデル別評価は公開サイトに置いています:

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?