07

10:32 - 13:06

Harborでエージェントのタスクを比較可能なベンチマークにする

Harborの役割

この講演では、Harborはオープンソースの評価ランナー(eval runner)として紹介されています。Harbor自身がエージェントとして答えを出すのではありません。モデルとハーネスで動くエージェントを、同じ条件のタスクで何度も評価するための仕組みです。

ベンチマークを構成するもの

一つの評価は、次の順序で考えると分かりやすくなります。

  1. エージェント:評価したいモデルとハーネスの組み合わせです。
  2. タスクのデータセット:エージェントに実行させる複数のタスクを集めたものです。
  3. 環境またはサンドボックス:各タスクを実行するために用意した、分離された作業場所です。
  4. 解答(solution):結果が大きく外れていないかを確認するための基準です。講演では、これを正解解答(golden solution)として扱う考え方が説明されています。
  5. テストまたは検証器(verifier):エージェントの実行結果を調べ、点数を決めるものです。
  6. 指示プロンプト:そのタスクでエージェントに何をするか伝える説明です。

サンドボックスをタスクごとに分けることには、二つの意味があります。状態を持つエージェントでも、あるタスクの作業状態が別のタスクに混ざりません。また、多数のタスクをそれぞれの環境で並行して実行できます。ここでの説明は実行場所と並行実行のための構成についてであり、安全性についての追加の主張ではありません。

図:Frontier-Benchのリーダーボードは、モデル、推論の強さ、正解率、公開日、組織などでエージェントを比べています。

この画面は、同じベンチマーク上でエージェントの構成を比べるという考え方を示しています。表には比較のための列と正解率が見えますが、具体的な数値やタスク名はこの資料からは読み取りません。該当する場面は動画の10:54です。

タスクごとの環境を用意する

Harborのタスクでは、エージェントが取り組む仕事だけでなく、その仕事を実行する環境も定義します。環境の作り方はDockerfileで指定できます。Dockerfileは、必要なソフトウェアやファイルを含む作業環境を組み立てる手順を書いたファイルです。こうして、同じタスクを別のエージェントにも同じように渡しやすくなります。

図:Harbor Evalsは、データセット内の複数のタスクに対して、それぞれのサンドボックスでエージェントを動かす構成を示しています。

図では、複数のタスクを含むデータセットの下に、タスクごとのサンドボックスとエージェントが置かれています。これは、タスクを一つずつ同じ型で評価する仕組みを目で確認する助けになります。該当する場面は動画の11:18です。

タスクを定義するファイル

講演のスライドでは、タスクの構成要素として、環境、Markdown形式の指示、評価スクリプトが示されています。評価スクリプトは、エージェントが作業を終えた後に何を確認するかを定めます。リポジトリの木構造も示されているため、タスクは単なる一行のプロンプトではなく、実行可能な作業一式だと分かります。

図:Harbor Tasksのスライドは、コンテナ環境、Markdownの指示、シェルで動く評価を、例のリポジトリ構造と並べています。

この画面では、タスクに必要な環境、エージェントへの指示、評価の方法が別々に見えます。したがって、評価の基準をタスクの実行手順から分けて管理できます。該当する場面は動画の11:35です。

図:別のHarbor Tasksの画面には、評価スクリプトと、solve.shを含む解答用ディレクトリが示されています。

この画面は、評価スクリプトと解答用のファイルが別に置かれる構成を示しています。ただし、画面自体はsolve.shを「正解解答」とは呼んでおらず、検証器がどのように動くかも示していません。該当する場面は動画の11:58です。

解答とテストは同じではない

解答(golden solution)は、想定された解き方や結果から大きく外れていないかを見るための基準です。一方、テストまたは検証器は、実際にエージェントが行った作業を調べ、評価の結果を決めます。解答があるからといって、エージェントの出力を単純に解答と文字単位で比べるとは限りません。

テストで点数を決める

テストの作り方には、いくつかの選択肢があります。

  • 通常のコードで、成果物や終了状態を確認する。
  • ユニットテストを実行して、必要な振る舞いを確認する。
  • 別の大規模言語モデル(LLM)に結果を判定させる。
  • 別のエージェントを判定役(judge)として使う。

どの方法を使うか、そして何点を与えるかは、ベンチマークを設計する人が決めます。判定役のLLMやエージェントは評価対象のエージェントとは別の役割です。この区別がないと、作業をする側と採点する側を混同してしまいます。

同じ仕事を「同じ条件」で比べる

タスクと評価方法を固定すると、異なるモデル、異なるエージェント・ハーネス、異なる推論の強さを、同じ仕事で比較できます。これは、条件の違う結果を比べるのではなく、いわば「りんごとりんご」を比べる方法です。Harborは、この比較を多数のタスクに対して繰り返すためのランナーとして位置づけられています。

例: 同じタスクのデータセットを、モデルAとモデルBに渡します。両方とも同じサンドボックス、指示、テストを使います。このとき、点数の差をモデルやハーネスの違いと結びつけて調べやすくなります。これは仕組みを説明するための例であり、講演で報告された特定の測定結果ではありません。

図:LangSmithのExperiments画面は、報酬のフィードバック、遅延、入出力トークン、エラー率を実験結果とともに示しています。

ベンチマークの正解率や報酬だけでなく、運用上の指標も追跡できます。画面には、報酬、遅延のパーセンタイル、入力と出力のトークン数、エラー率、実験結果の表が見えます。具体的な値や画面上の細かなラベルは、ここでは推測しません。該当する場面は動画の12:43です。

関連する名前を区別する

講演では、HarborのほかにTerminal Bench 2、Frontier Bench、LangSmithも言及されます。これらは関連するベンチマークやプラットフォームとして登場しますが、同じものではありません。また、Harborが新しい業界標準になりつつあるという説明は、講演者の提示です。ここでは外部の証拠によって確認された事実として扱いません。

まとめ

Harborの中心的な考え方は、エージェントを一回だけ試すことではありません。タスク、環境、指示、解答の基準、テストをそろえ、同じ仕事を繰り返し評価できる形にします。その結果を、モデル・ハーネス・推論の設定を比べる材料にできます。さらに、正解率や報酬と、遅延・トークン・コストなどを一緒に見ることで、点数だけでは見えない実用上の差も調べられます。

100% スペースキーとドラッグで移動 | Ctrl/Cmdとホイールで拡大縮小