【要約】ローカルLLM#4 "5問×3 モデルの手動比較が面倒になったのでPythonで自動化した" [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
筆者がローカルLLMの性能比較を行う際、手動作業の限界とデータの信頼性に課題を感じた。単発の試行では、モデルの振る舞いを正確に把握できないためである。
- ・手動による実行とコピペ作業が非効率である。
- ・1回の試行では、回答が「たまたま」なのか「定常的な間違い」なのか判別できない。
- ・ハルシネーションが、実行ごとに変わるのか固定的なのかを検証できない。
// Approach
筆者は検証の精度を高め、作業を効率化するために、Pythonによる自動化パイプラインを構築した。実験の再現性と環境構築の速度を重視した設計となっている。
- ・
uvを採用し、Rust製の高速なパッケージ管理とPython環境構築を実現した。 - ・Ollama公式パッケージを使用し、
generateAPIで単発生成を制御した。 - ・同一プロンプトを3回ずつ実行する3重ループ構造を実装した。
- ・結果をJSON形式で保存し、後続の集計や可視化を容易にした。
// Result
自動化により、モデルごとに異なるハルシネーションのパターンが判明した。これにより、モデルの信頼性をより深く理解することが可能となった。
- ・LLM-jp-4は、論文名や数値が毎回変わる「変動的な捏造」を行う。
- ・Qwen3は、基礎事実は安定しているが細部が揺れる。
- ・Gemma3は、用語レベルで毎回異なる造語を生成する。
- ・8Bクラスのモデルは、M4 MacBook Airで15 tok/s前後の速度を確認した。
Senior Engineer Insight
> LLMの評価において、単発のプロンプトテストは極めて危険である。本記事が示す「捏造の変動性」の検証は、モデルの信頼性を判断する上で不可欠な視点だ。実戦投入前には、温度パラメータを制御した上での統計的な振る舞い確認が求められる。また、
uvを用いた環境構築の迅速さは、実験サイクルの高速化に大きく寄与する。スケーラビリティの観点からも、この自動化パイプラインは量子化比較やRAG検証への拡張性が高い。