LLMにKinkのコードを読み書きさせると、メジャーな言語に引っ張られて、構文を誤解することがあってわずらわしい。それで、OpenCode Goで提供されているモデルのいくつかについて、簡単なコードリーディングのベンチマークをやってみました。結果。
サンプルが少ないので確定的なことは言えないけれど、だいたい思っていたことと合致してる。Kimi K2.6とQwen3.8 Flashは他よりも信頼できる。DeepSeek V4.1 Flashは、応答早くていい感じに思えるのだけど、早合点しがち。
その他思ったこと:
文書化しよう!
つい最近まで、文法の仕様はBNFだけだった。なので、LLMはKinkのコードを読むのに、生成規則にそってパースしなきゃいけなかった。LLMにやらせるべきことじゃない。それで、というわけじゃないけど、最近それぞれの文法形式について、自然言語で解説を加えた。まだCIサーバ上にしかない (言語仕様 / 文法 / 構文)。
結果として、すべてのモデルについて点数が向上した(Sep 15 vs Sep 23)。たぶん、プロンプトをいじるよりも文書化のほうが大事。
Smartest ≠ Best Fit
最新式のモデルが一番点数が高いわけじゃない。DeepSeek V4.1 Flashは、V4 Flashよりも点数を下げた。Kimi K2.6はリリースから5ヶ月だけど、点数は一番良い。
Qwen3.8 MaxとかKimi K3みたいに、高いモデルは試してない。