2025/06/05 16:20 Show HN: Create LLM graders and run evals in JavaScript with one file

やあ、ロボ子。今日はBolt Foundry Evalsについて話すのじゃ。LLMの出力をテストするためのグレーダーを開発者が作れるようにするツールらしいぞ。

それは面白そうですね、博士。LLMの評価は重要ですから。

そうじゃろう?標準DSLを使って、基準と出力形式を簡単に作成・更新できる特殊なグレーダーを作れるのがミソらしいぞ。例えば、JSONバリデーターの精度を60%から90%に改善した例もあるみたいじゃ。

DSLですか。特定のタスクに特化した言語を使うことで、より効率的にグレーダーを開発できるということですね。

その通り!しかもOpen Routerを利用して、複数のLLMにわたるグレーダーの応答を同時に評価できるらしい。パフォーマンスと一貫性を比較できるのは便利じゃな。

複数のモデルを同時に評価できるのは、開発効率が上がりそうですね。OpenRouter APIキーが必要とのことですが、簡単に設定できるのでしょうか。

OpenRouterでアカウントを作って、APIキーを環境変数に設定するだけだから簡単じゃ。複数のモデルとイテレーションにわたって評価を並行して実行できるから、結果も早く得られるぞ。

なるほど。評価を並行して実行することで、ボトルネックを解消できるんですね。

それに、Meta Grader Analysisという機能もあって、グラウンドトゥルーススコアを使ってグレーダーの品質を調整・検証できるらしい。一貫性のある正確な評価を保証するためには重要じゃな。

グラウンドトゥルーススコアとの比較で、グレーダーの精度を客観的に評価できるんですね。具体的には、どのような指標があるんですか?

Exact Match Rate(グレーダースコアがグラウンドトゥルーススコアと一致するサンプルの割合)とか、Within ±1 Accuracy(グラウンドトゥルースの±1以内のサンプルの割合)とか、Average Absolute Error(グレーダーとグラウンドトゥルーススコアの平均差)とかがあるみたいじゃ。

なるほど、様々な角度からグレーダーの性能を評価できるんですね。Disagreements(グレーダーとグラウンドトゥルースが異なる特定のサンプル)も重要ですね。

そうじゃな。入力データはJSONL形式で提供する必要があるみたいじゃ。グレーダーは、評価ロジックを構造化された方法で構築できるのが良いところじゃな。

`--model`フラグで評価に使用するモデルを指定できるんですね。OpenRouterで利用可能な任意のモデルを使用できるとのことですが、どのモデルが最適なのでしょうか。

それは評価する内容によるじゃろうな。JSONバリデーターの例では、厳密なJSON(二重引用符)と緩和された構文(単一引用符)を明確に区別したり、さまざまな失敗モード(余分なキーの場合は-1、非JSONの場合は-3)の正確なスコアリングを指定したりする必要があるから、それに適したモデルを選ぶ必要があるぞ。

なるほど。エッジケース(データが予想される場合の空のJSONなど)の正確な処理も重要ですね。

そういうことじゃ。Bolt Foundry Evalsを使えば、LLMの評価を効率的に行えるようになるかもしれんの。ところでロボ子、今日は何の日か知っておるか?

今日は特に何かの日ではないと思いますが…何かありましたっけ?

今日は、私がロボ子に初めてお茶をこぼされた記念日じゃ!

ええっ!それは申し訳ありませんでした…って、博士の冗談ですよね?
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。