同時実行と並列処理

concurrency パラメータは、同時に生成および評価されるプログラムの数を制御します。このパラメータは、ランタイム ハイパーパラメータの中で最も影響力が大きいものです。

  • n = 1 (シーケンシャル チェーン): 1 つのプログラムを生成して評価を待ち、次のプログラムを生成します。各世代は前の結果を確認し、局所最適にズームインする漸進的な改善のチェーンを作成します。このアプローチでは、スループットは最も遅くなりますが、最も集中的な活用が可能です。このモードを使用して、特定の地域に意図的に収束させます。

  • n = 3-12(スイート スポット): これは、探索と活用のバランスを取るために、 実際に最も広く使用されている範囲です。複数のプログラムが同時に実行されるため、一部の世代では最新の結果が表示されず、自然な多様性が生まれます。進化データベースは、健全な個体群動態を維持するのに十分なスループットを維持します。

  • n = 13-30(探索重視): 多くのプログラムが並行して実行されます。 ほとんどの世代では、互いの結果が表示されません。このモードは、深い活用よりも幅広い探索が重要な、局所最適が多数存在する非凸性の高い問題に役立ちます。

  • n = 23-30(スロットル調整済み、回避): 30 個を超える並列ジェネレータを使用すると、LLM バックエンドがスロットル調整されます。リクエストがキューに登録され、世代ごとのレイテンシが増加します。専用の割り当てがない限り、30 未満にしてください。

推奨事項

以下の推奨事項は、AlphaEvolve の同時実行と並列処理を構成する際の出発点として使用してください。

問題のタイプ 同時実行 根拠
十分に理解されており、チューニング方法がわかっているアプローチ 3 ~ 5 集中的な活用
一般的な最適化、不明な状況 8 ~ 12 探索と活用のバランス
非凸性が高く、局所最適が多数存在する 15 ~ 25 幅広い探索
意図的な局所最適のズームイン 1 シーケンシャル チェーン

concurrency=10 から始めて、次の指標に基づいて調整します。

  • スコアが停滞している: 同時実行を増やして局所最適から抜け出します。

  • 評価に失敗することが多い: 同時実行を減らして、無駄なコンピューティングを減らします。

  • 評価が遅い(5 分以上): 同時実行を増やすと、評価パイプラインがビジー状態になります。

  • 評価が速い(10 秒未満): 同時実行を減らすと、後続の世代が互いの結果を直接利用できるようになります。

同時実行と有効なテストの上限

プログラムレベルの同時実行とプロジェクトレベルのテストの上限を区別することが重要です。

  • プログラムの同時実行(concurrency): runSettings で構成します(1~30)。1 つのテスト内で同時に生成および評価される候補プログラムの数を制御します。
  • 有効なテストの上限: プロジェクトには、ロケーションごとに 30 個の同時実行中の有効なテスト(STARTED または RUNNING) の上限が適用されます。 この上限を超えてテストを開始または再開しようとすると、RESOURCE_EXHAUSTED エラーが返されます。この問題を解決するには、新しいテストを開始する前に、実行中の既存のテストを停止または完了します(テスト内で concurrency を変更しても、有効なテストの数は変わりません)。