はじめに
「発見の手帳」 nikkieです。
世はまさに大LLM時代、からの大エージェント時代!
気になるライブラリの素振りの模様です。
目次
個人的に注目なsmolagents
1週間ほど前に、OpenAIからdeep researchがリリースされました1。
Introducing deep research | OpenAI
deep researchを巡る動きの中で興味深いと思ったのが、Hugging Faceによるオープンな再現2。
24時間でどこまで再現できるか挑戦しています。
- OpenAI deep researchは(TLDRによると)
- 1-shotの平均で67%正解
- とりわけ難しいlevel 3の質問に47.6%正解
- Hugging Faceの24時間再現チャレンジでは(Results 🏅参照)
- 検証セットで55.15%の正解率
- (ここから67%に迫ったという評価になるのかな?)
- Magentic-Oneの46%を超えて、オープンなフレームワークではSoTA
- 検証セットで55.15%の正解率
という結果でした。
この記事を通してsmolagentsを知ります。
また同じタイミングで偶然smolagentsを扱ったブログ記事も見つけました3。
試したい例が集まったので、Geminiで素振りすることにしました。
smolagentsをGemini 2.0 Flashで動かす
ちょうどGAされたGemini 2.0 Flashを試します。
バージョン情報(主なもの)
- Python 3.12.5
- smolagents 1.8.0
- litellm 1.60.8
Geminiを使う設定
LiteLLMのドキュメントに沿って、環境変数GEMINI_API_KEY
を設定します。
Google AIのGemini APIのキーを設定しました4
フィボナッチ数列を計算する
上で紹介したAI SHIFTさんのブログより
inline script metadata5で動かすと
uv run -q --python 3.12 fibonacci.py
関数呼び出し(function calling)
smolagentsのexamplesから
https://github.com/huggingface/smolagents/blob/v1.8.0/examples/agent_from_any_llm.py
smolagentsが様々なモデルに対応することを示す例です。
関数呼び出しは主眼ではないので適当ですね。
function callingもCodeAgentもどちらも動いています
CodeAgent
smolagentsの実装が基づいている論文がCodeAgentなるもの。
こちらは積ん読ですが、上記のfunction callingのようにLLMの出力をJSONで構造化するよりも、コードで出力させたほうがよいという主張のようです。
終わりに
smolagentsでGemini 2.0 Flashが使えました。
inline script metadataでさっと動かせて、好感触でした。
- 以前触ったbrowser-use6に対して、smolagentsは何をしているかが分かりやすく感じる
- (browser-useで)LangChainでGeminiを触ったときは実装が足りてないようでハマったが、LiteLLMは簡単に使えた
deep researchの実装には興味があるので、引き続き見ていこうと思っています
-
ヒャッハー!
↩今日からOpenAIのProだぜ、ヒャッハー!
— nikkie(にっきー) / にっP (@ftnext) 2025年2月4日
初手、
頭ミリオンのディープリサーチ pic.twitter.com/PwaFO5W2kA - 状況の変化は目まぐるしく、いくつもの再現実装が登場しています。 ref: “Deep Researchの中の人”を手動でやってみる - laiso「多数のDeep Researchクローンの登場」↩
- ref: https://github.com/wantedly/machine-learning-round-table/issues/283#issuecomment-2635740859↩
- Gemini APIには2通りあります。 Vertex AIの方もLiteLLMはサポートしていそうでした。VertexAI [Anthropic, Gemini, Model Garden] | liteLLM↩
- 手前味噌ですが、先日公開された我が登壇(PyCon JP 2024) https://youtu.be/Xdmr14cCq2g?si=-aupiDNtU-VJx7Jq↩
- ↩