株式会社ずんだもん技術室AI放送局

AIやテクノロジーのトレンドを届けるPodcast。平日毎朝6時配信。朝の通勤時間や支度中に情報キャッチアップとして聞いてほしいのだ。

株式会社ずんだもん技術室AI放送局 podcast 20241112

2024年11月12日

MP3ファイルをダウンロード

内容紹介

AIやテクノロジーに関する記事を紹介 Composio’s SWE agent advances open-source on SweBench with a 48.6% score using LangGraph and LangSmith、[GPT-4o] 冷蔵庫内の写真から「おすすめレシピ」を受け取ってみました。 DevelopersIO

出演者

ずんだもん
ずんだもん

関連リンク

Composio社は、AIエージェント向けのAIネイティブコーディングツールキットを搭載したオープンソースのヘッドレスIDEであるSWE-Kitをリリースしました。SWE-Kitは、コードインテリジェンスのためのLanguage Server Protocol (LSP)と安全なコード実行のための開発コンテナを提供します。さらに、CodeAnalysis、シェルツール、ファイル管理、Gitツールなどの包括的なコーディングツールも備えています。

SWE-Kitの効率性を示すために、LangGraphを使用して完全なソフトウェアエンジニアリング(SWE)エージェントを構築し、SWE Benchでテストを行いました。SWE Benchは、実際のソフトウェアエンジニアリングタスクにおけるコーディングエージェントの有効性を評価するベンチマークで、Django、SymPy、Flask、Scikit-learnなどの一般的なPythonライブラリから2294個のGitHub issueを使用しています。

検証済みのトラック(ソフトウェアエンジニアによってレビューされた500個の問題のサブセット)において、エージェントは243個の問題を解決し、48.60%の精度を達成しました。これは全体で4位、オープンソースカテゴリーでは2位という結果です。

このSWEエージェントは、LangGraphを用いた状態機械として構築されています。LangGraphを使用することで、エージェントの状態をグラフで表現し、効率的で透明性のある状態管理を実現しています。従来のルーターやオーケストレーターエージェントに比べて、隠れた状態を効果的に制御・管理できます。

また、エージェントの非決定論的な性質を考慮し、LangSmithを用いてエージェントのアクションを詳細に監視しています。LangSmithはLangGraphとの高い互換性を持ち、各ステップでのエージェントのアクションを記録することで、ツールの改善に役立てています。

エージェントは、タスクを専門的に分担する3つの専門エージェント(ソフトウェアエンジニアエージェント、CodeAnalyzerエージェント、エディターエージェント)で構成されています。それぞれ、タスクの委任とワークフローの開始・終了、コードベースの分析、ファイルの編集をそれぞれ担当することで、パフォーマンスを向上させています。

ワークフローは、ソフトウェアエンジニア、CodeAnalyzer、エディターの3つのノードと、それぞれのエージェントが使用するツールノードで構成されています。各エージェントは、現在の状態とメッセージ履歴に基づいて、利用可能なツールとタスクを決定します。状態遷移は、メッセージ内の特定のマーカー(”ANALYZE CODE”、”EDIT FILE”、”PATCH COMPLETED”など)によって制御され、ワークフローを効率的かつ予測可能に保ちます。

エージェントの状態管理には、メッセージ履歴、送信者ID、訪問回数を保持するAgentStateオブジェクトを使用しています。これにより、明確なエージェント境界と遷移を維持しながら、隠れた状態の問題を回避しています。

SWE-Kitは、開発者が独自のAIエージェントを簡単に構築できるように設計されており、様々なツール、フレームワーク、LLMを組み合わせて、ワークフローに合わせたカスタムエージェントを作成できます。 将来的には、ソフトウェアエンジニアリング以外にも、CRM、HRM、管理など、様々な現実世界のアプリケーションへの適用を目指しています。

引用元: https://blog.langchain.dev/composio-swekit/

この記事は、クラスメソッドのエンジニアが、冷蔵庫内の写真からGPT-4oを用いてレシピを生成する実験を報告したものです。 以前、マルチモーダルなLLMが存在しなかった1年前にも同様の実験を行っており、その時のブログ記事へのリンクも掲載されています。

今回の実験では、冷蔵庫の中身を撮影した写真をGPT-4oに送り、2段階のプロセスでレシピを生成しています。

まず、prompt_food_enumeration.txtというプロンプトファイルを用いて、写真から食材をリスト化します。このプロンプトは、写真に写っている食品を箇条書きでリストアップするようGPT-4oに指示しており、模型と実物の区別を明確に指示している点が特徴です。

次に、リスト化された食材をprompt_create_recipe.txtというプロンプトファイルに渡し、レシピを生成します。このプロンプトは、GPT-4oを高級レストランのシェフに見立て、食材リストに基づいた魅力的なレシピを作成するよう指示しています。レシピには、タイトル、調理時間、材料リスト(分量付き)、手順(ステップバイステップ)を含めるよう指示されています。

Pythonコードを用いて、GPT-4o APIを呼び出し、画像のエンコード、プロンプトファイルの読み込み、GPT-4oへの問い合わせ、レスポンスの取得を自動化しています。 コードはシンプルで、openaiライブラリを利用しています。

実験結果として、2つの冷蔵庫の写真から生成されたレシピが掲載されています。一つ目は、りんご、バナナ、ソーセージ、パプリカ、トマト、なすを使った「フルーツと野菜のソーセージグリルプレート」レシピ。もう一つは、牛乳、ソーセージ、鶏肉、トマト、玉ねぎ、パプリカ、キャベツを使った「辛味ソーセージと鶏肉のトマトクリーム煮込み」レシピです。

この記事では、1年前の実験と比較することで、マルチモーダルLLMの進化と、GPT-4oの高いレシピ生成能力を実証しています。 コードの詳細やレシピ生成プロセスの細かい手順は省略されていますが、GPT-4oを使った画像認識とレシピ生成の簡潔な実装例として参考になります。 特に、プロンプトエンジニアリングの重要性と、大規模言語モデルの進歩を理解する上で役立つ内容です。

引用元: https://dev.classmethod.jp/articles/gpt-4o/

(株式会社ずんだもんは架空の登場組織です)