10 ポイント 投稿者 GN⁺ 2024-04-04 | 3件のコメント | WhatsAppで共有
  • SWE-agentは、GPT-4のような言語モデル(LM)をソフトウェアエンジニアリングエージェントに変換し、実際のGitHubリポジトリのバグやイシューを修正
  • SWE-benchテストセット全体で12.29%のイシューを解決し、全テストセットで最高の性能を達成

エージェント-コンピュータ・インターフェース

  • エージェントがリポジトリを探索し、コードファイルを閲覧・編集・実行しやすいように、LM中心のコマンドとフィードバック形式を設計することで、これらの成果を達成。
  • これをエージェント-コンピュータ・インターフェース(ACI)と呼び、リポジトリレベルのコーディングエージェント向けにACI設計を容易に反復できるよう、SWE-agentリポジトリを構築。
  • 優れたACI設計は、エージェント利用時に大幅に良い結果をもたらすことを示している。

セットアップ

  • Dockerをインストールし、ローカルでDockerを起動。
  • Minicondaをインストールし、conda env create -f environment.ymlを使ってswe-agent環境を作成。
  • conda activate swe-agentを使って有効化。
  • ./setup.shを実行してswe-agentのDockerイメージを作成。
  • このリポジトリのルートにkeys.cfgファイルを作成し、必要なAPIキーとGitHubトークンを入力。

使い方

  • SWE-agentパイプラインには2つの段階がある。1つ目はGitHubイシューを入力として受け取り、それを解決しようとするプルリクエストを返す推論段階。
  • 2つ目の段階はSWE-benchベンチマーク内のイシューに対してのみ可能で、生成されたプルリクエストが実際にイシューを解決したかを確認する評価段階。

評価

  • この段階はSWE-benchセットのイシューに対してのみ可能。
  • 生成されたプルリクエストを評価するには、evaluation/ディレクトリに移動して./run_eval.sh を実行。

GN⁺の見解

  • SWE-agentは、実際のGitHubイシューを解決するために言語モデルを活用する革新的なアプローチを提示することで、ソフトウェア開発プロセスにおける自動化の可能性を広げている。
  • この技術には、開発者が反復的なバグ修正作業から解放され、より創造的で複雑な問題解決に集中できるようにする潜在力がある。
  • ACI設計の重要性を強調することで、機械と人間の相互作用を最適化するインターフェース設計の重要性を浮き彫りにしている。

3件のコメント

 
botplaysdice 2024-04-05

ああいうagentが開発者にこんなふうに質問しながら仕事をしてくれたら、本当に良さそうですね。

"バグレポートで説明されている再現手順を、問題を再現するテストコードにしてみたよ。私の理解が合っているか、このコードを見てくれる?"

"このデザインよりも、こういうふうにリファクタリングすれば、プロジェクト全体で20,312行のコードを減らせそうなんだけど、do you approve?"

 
fastkoder 2024-04-04

魅力的なオープンソースですね

 
GN⁺ 2024-04-04
Hacker Newsの意見
  • バグレポートに関するコメント:

    • デモでは、行列演算に関する明確なバグレポートが示されている。
    • 実際のバグレポートの大半は、「XをクリックしたらYが起きた」というように曖昧である。
    • バグ解決の難しさは、原因を突き止めることにある。
    • LLMsが単純な欠陥を修正できることは分かるが、それが何を証明しているのかには疑問がある。
    • 論文を詳しく見た人がいるのか、また問題点との違いが何なのか気になる。
  • プロジェクトに関するコメント:

    • とても素晴らしいプロジェクトだと評価。
    • 以前に似た実験をしたことがあるが、しばしば混乱を招き、コストの高い失敗に終わった。
    • swe-benchで12%の成功率を示したが、残り88%はどうなのかという疑問。
    • swe-benchがそのグループによって作られたものなのか、また「熟練した人間の上限」スコアを測定したことがあるのか気になる。
    • 無作為に選んだswe-benchのタスクは、熟練した人間にとっても「解決」するのが難しかったという経験の共有。
  • 使用された方法論に関するコメント:

    • langchainの方法論を使っているように見える。
    • いくつかのプロンプトを例として挙げ、GitHubリンクを提示。
  • AIとバグトラッカーに関するコメント:

    • AIが生成したプルリクエストが普及すれば、公開バグトラッカーの終焉が来ると予想。
    • バグがなくなるのではなく、プルリクエストのレビューコストに比べてプロジェクトの利益が大きく損なわれるという意見。
  • SWEbenchベンチマークに関するコメント:

    • SWEbenchベンチマークはPythonコードのプロジェクトしか含んでおらず、すべてのプログラミング言語やフレームワークを代表していない。
    • JS、SQL、Pythonなど向けに、より一般的なSWEタスク評価フレームワークを開発中だと紹介。
  • デモ比較に関するコメント:

    • デモがDevinプロジェクトと非常によく似ていたので確認してみたという意見。
    • デモの信頼性に疑問を呈し、第三者による評価を聞きたがっている。
  • レビュー作業に関するコメント:

    • AIが提案した修正をレビューするために、実際の人間にどれほど追加作業が発生したのかという質問。
  • 類似プロジェクトに関するコメント:

    • 似たプロジェクトを進めていると紹介し、GitHubリンクを提示。
    • モデルが誤った方向に進むことにどう対処するかに重点を置いている。
    • 開発者とAIのフィードバックループを完成させることこそが、本当の生産性向上の鍵だと強調。
  • 著者への提案に関するコメント:

    • 成功率は研究者にしか意味がないと指摘し、SWE-agentが通過したテストと通過できなかったテストの例をREADMEに追加するよう提案。
  • オープンソースプロジェクトへの貢献に関するコメント:

    • 初心者開発者として、オープンソースプロジェクトにどう貢献できるかを見つけるのに役立つツールを望んでいる。
    • Pythonパッケージングの文書は難解だったが、それを乗り越えて簡単にできるようになったという経験を共有。
    • モダナイズされていないプロジェクトを見つけ、改善を提案して実装するつもりだと述べる。
    • 似たアイデアやインスピレーションを持つ人たちとアイデアを共有したいと考えている。