概要
- LLMにおける動的型付け言語と静的型付け言語のトークン効率比較の議論
- トークン効率が高いとされる言語の主張の妥当性検証
- 実験設計や評価の妥当性に対する批判的考察
- 複数のタスクや条件での評価結果の多様性
- 一般化できる強い結論は得にくいというまとめ
LLMにおける動的型付け言語と静的型付け言語のトークン効率比較
- 動的型付け言語 や 記述が簡潔な言語 は、LLM利用時に トークン効率が高い という主張の拡散
- 代表的な引用例として、 ClojureやJ は CやC++ より 2.6倍~半分以下のトークン数 で同等の処理が可能という指摘
- Google AI も「動的型付け言語は型宣言が不要なため、トークンコストが低い」と要約
- ただし、 比較対象の問題が極めて単純 (Rosetta Codeなどの短い課題)であり、現実的な問題設定とは乖離
評価実験の課題と限界
- 単純な問題 では「動的型付け言語が有利」という傾向が出るが、 複雑な課題 になるとその差は縮小または逆転
- 評価設計の問題点 として
- テストケースの実行パス誤りやエージェントの挙動バグ
- シンボリックリンクによる不適切な実行パス共有
- 評価結果が設計者の意図通りにならない 事例の多発
- 大規模かつ多様なタスクでの検証 が必要不可欠
実際の大規模タスクでの追加検証(zstd・Pandoc)
- zstd RFC を元にした完全デコーダ実装タスクや Pandoc ProgramBench のTDD的評価
- 中規模・大規模課題 では「動的型付け vs 静的型付け」の明確な優劣は見られず
- 主流言語 ほど正確かつコスト効率が高い傾向
- アセンブリやマイナー言語 は明確に不利
- JやClojure など「密度が高い」言語の優位性も限定的
一般化できる結論の難しさ
- 「動的型付け言語はLLMに有利」という主張は 一部の単純なケースでのみ部分的に成立
- 現実的な開発タスクや運用コスト まで含めると、 静的型付け言語が有利なケース も多い
- 言語の人気度 と LLMでのパフォーマンス には弱~中程度の正の相関
- LLM利用に最適な言語やアーキテクチャ に関する公的データは依然不足
- 2014年の研究でも「静的型付け vs 動的型付け」の有意な差は限定的とされており、 決定的な証拠は乏しい
まとめ
- LLMのトークン効率や実装効率は、言語の型付け方式や記述密度だけで決まらない
- 評価方法やタスク内容の違い で結果が大きく変動
- 主流でサポートが厚い言語 を選択するのが現時点では現実的な選択肢
- 「この言語がLLMに最適」という断定的主張には慎重な検証が必要
- 今後も多様なタスク・設計での継続的な検証が求められる