ローカルLLMが「思ったより頭悪い」と感じる本当の理由
Q. みんなが絶賛するモデルを動かしてみたのに、なぜイマイチなの?
フォーラムやSNSで「このモデルすごい!」と盛り上がっているのを見て、自分でもダウンロードして動かしてみたら「あれ、こんなもん……?」となった経験はないだろうか。
Level1Techsフォーラムに投稿されHacker Newsでも大きく取り上げられた技術記事によると、これは気のせいでも、モデルの問題でもない。原因は「自分のローカル環境での動かし方そのもの」にある。そして、これは誰にでも起きていることだ。
Q. 同じモデルファイルを使っているのに、なぜ人によって結果が違う?
ここが核心だ。
AIモデルの「重み」(学習済みパラメータ=AIの知識が詰まった数値の塊)が同一でも、それを動かすハードウェアとソフトウェアの組み合わせは人によってまったく異なる。
たとえば、GPUの世代が変わると「命令セット」——CPUやGPUがどう計算するかを定めたルール体系——も変わる。LLMは次の単語の候補を選ぶとき膨大な浮動小数点演算(小数点以下の精密な計算)を行うが、この命令セットの違いが演算結果に微妙な差を生む。
記事の著者は「今日AIを動かしているあらゆるハードウェア・ソフトウェアの組み合わせは、少し、あるいは大きく異なっている」と述べている。つまり、世界中で完全に同じ結果を出す環境は2つとない。複数世代のGPUを混在させているホームラボのユーザーなら、この差はさらに大きくなる。
Q. 「量子化」って何?それが結果に影響するの?
量子化とは、AIモデルのパラメータ(膨大な数値群)を、精度をある程度犠牲にしてファイルサイズを小さくする圧縮技術のことだ。元々16ビットや32ビットで保存されている数値を、8ビットや4ビット、さらには2〜3ビット相当に圧縮する。
これにより一般家庭のPCでも動かしやすくなるが、当然ながら元の精度とは計算結果が変わってくる。
今回の記事では、量子化なし・BF16精度(16ビット浮動小数点)の Qwen3.6-27B を「基準となる参照実装」として用い、さまざまな設定変更がどれだけ結果に影響するかを測定している。
Q. 「KLダイバージェンス」という言葉を見たけど、何のこと?
難しく聞こえるが、要は「2つの確率分布がどれだけ離れているかを測る指標」だ。
LLMが次の単語を選ぶとき、すべての候補単語に「スコア(logits:ロジット)」を付け、それを確率に変換する。研究所が公開したオリジナル実装でのこの確率分布と、自分のローカル実装での分布がどれほど違うかを数値化したものが KLダイバージェンス(KLD) だ。
値が小さいほど参照元に近く、大きいほど遠い。ただし著者は重要な注意を加えている。「KLDが低い=賢い」ではない。あくまで「参照実装にどれだけ近いか」を測っているにすぎない。
また、量子化モデルの配布ページに「KLDが極めて低い」と書かれていても、測定に使ったテキスト・文脈の長さ・比較の方向・基準チェックポイントなどが開示されていなければ、その数値は比較のしようがないと著者は警告している。数値よりも測定方法の透明性の方が重要だ。
Q. サンプラー設定って何?温度を下げすぎると何が起きる?
LLMが次の単語を選ぶ際、確率の高い単語だけを確実に選ぶか、ある程度ランダム性を持たせるかを制御するのが「サンプラー設定」だ。代表的なパラメータは次の2つ。
- temperature(温度): 高いほど多様な出力、低いほど決まりきった選択になる
- top-p: 確率が高い単語群の中から選ぶ範囲を絞るパラメータ
モデルカード(配布ページに掲載される使い方の説明書)には「temperature 1.0、top-p 0.95」のように推奨設定が書かれていることが多い。これを守らないと問題が起きる。
著者が指摘する具体例として、Qwenシリーズのモデルで「THINK」タグ(モデルが思考過程を出力する特殊なモード)から抜け出せずにループしてしまう現象がある。その一因が温度の設定を低くしすぎることだという。モデルごとに推奨値が異なるため、配布ページを確認してから設定する習慣をつけたい。
Q. vLLMって何をしているの?なぜこんなに複雑なの?
vLLMはLLMを高速に動かすためのオープンソースの「推論エンジン」だ。「推論」とはここではAIが答えを計算して出力するプロセスのこと。
著者がテストに使ったvLLMの最新版コンテナには、**734個のパッケージ(ソフトウェア部品)**が含まれていた。それぞれに独自のバグや挙動の癖がある。自分の環境がこの膨大なコードのどの経路を通るかは、GPU・モデル・設定の組み合わせによって異なる。
さらに、プロンプト(入力文)を処理する「プリフィル」段階では「アテンションバックエンド」と呼ばれる中核計算の実装が複数存在し、どれが選ばれるかはGPUの世代(CUDAのコンピュート能力)によって変わる。この選択が速度だけでなく計算精度にも影響する。
記事では RTX PRO 6000 Blackwell GPU 上でQwen3.6-27BをBF16精度・量子化なしで動かし、アテンションバックエンドをあえて切り替えながら出力の違いを測定するという実験が紹介されている。
Q. 自分の環境が「どれだけズレているか」、どう調べればいい?
著者は実用的なアプローチと数学的なアプローチの2つを紹介している。
実用的な方法は、複数の標準ベンチマーク(terminal benchやMMLUなど)を走らせること。ただしここで大事なのは「温度0にして3問だけ試す」ような簡易テストで判断しないことだ。エージェント(AIが自律的に複数のツールを使いながらタスクをこなす仕組み)として使う場合は、長い文脈でのツール呼び出しや特定分野の知識評価が必要になる。
数学的な方法は、KLダイバージェンスで参照実装との距離を測ること。ただし上述の通り、測定方法が適切に開示されていないと比較できない。
著者のメッセージをひと言にまとめるなら「あなたのローカル実装は完璧ではない。でも全員そうだ」。完璧な環境は存在しないが、自分の環境がどこで弱いかを把握することが最初の一歩になる。
以上です。なるほどラボでは、こうしたAIを"自分の環境で動かしたい・24時間働かせ続けたい"という方向けの情報を発信しています。自分に合った動かし方が気になる方は、無料の診断をどうぞ。
