
2025.02.06
ポンコツ期、孤独期、成果独り占め期を経て… サイボウズのプロマネが振り返る、マネージャーの成長の「4フェーズ」
リンクをコピー
記事をブックマーク
布留川英一氏:OpenAIの新機能を話したので、次にLangChain 0.1とLlamaIndex 0.10について話そうかと思います。今回のOpenAI本にはこのLangChainとLlamaIndex(の話題)は入れませんでした。その1個前の本にはLangChainとLlamaIndexは入っていたんですが、今回の本には入れられませんでした。
年末ぐらいにLangChainとLlamaIndexの大規模アップデートがありました。より実用的なLLMアプリケーションを作るために大規模アップデートがあったので、本に載せるにはちょっと危ないかなと思って、今回はスルーしていました。
その大規模アップデートが、1月、2月ぐらいで両方とも完了したということで、これからどんどん使っていくのがいいかと思います。ということで、どんな感じのアップデートをしたかを解説していきます。
「LangChainとLlamaIndexはどっちを使うのがいいの?」とよく聞かれたりします。自分が説明する際は、「LangChainは主にAIエージェントを開発するためのフレームワーク。LlamaIndexはRAGを作るためのフレームワーク」みたいな感じで解説しています。中の人が「どっちのほうを作ろう」という感じで重点を置いているのがLangChainがAIエージェント、LlamaIndexがRAGになります。
ただもちろん、LangChainでもAIエージェントの中でRAGの機能を持っていたり、LlamaIndexがRAGの中でAIエージェントを持っていたりするので、両方ともけっこう持っていたりします。重視している機能がLangChainはAIエージェント、LlamaIndexはRAGなので、設計の方針も若干変わってきます。
LangChainとLlamaIndexはLLMアプリを構築するフレームワークとしてもすごく重要で、LLMアプリの未来を考えるコミュニティとしても、自分的にはすごく重要視しています。
中でも「これからどうしていこう?」みたいな会話とかを見ていくと、これからAIエージェントがどうなっていくのかとかを見ることができます。この2つは、すごく熱い議論が交わされていて、いつもかなり熱のある感じでコミュニティが動いているので、すごく注目しています。
LangChain 0.1で一番大きく変わったのは、このLangChainというものが、「langchain-core」と「langchain-community」と「langchain」の3つのパッケージに分離したことです。
今までのLangChainで実運用のアプリをやるには難しいなと思っていたところは、とにかく毎日のようにバージョンアップして、いつの間にか動かなくなったりするということがけっこう起こっていたからでした。
LangChainの中にあるさまざまな機能が1つのパッケージに入っているので、それがお互いに影響し合ってしまって、実運用なんだけど動かなくなるというような困ったことが起きていたので、そのあたりの依存関係を全部分離することになっています。これを分離したことによって、langchain-coreという一番コア部分の機能だけを使って、上のほうは自分で実装して実アプリケーションに使うとか。
langchain-communityという、ほかのcommunityの部分と、langchain-coreのアセットだけを使って作るみたいな。そういう実運用アプリケーションに向けて、自分が必要なところだけを使って実装できるので、変な依存関係で動かなくなることがなくなりました。あと、パッケージもサイズがすごくデカくなっていたものを、自分が使うパッケージだけを選んで使うので、その問題もなくなっています。
もう1つは、少し前からあったんですが、LCEL(LangChain Expression Language)と「LangGraph」という2つの機能が本格的に導入されています。
LangChain Expression Languageのほうは、前のバージョンではChainクラスで実装していたんですが、書きやすいフォーマットで書くための言語で、よりスマートに書くことができる言語になっています。
さらにLCELだけだとループするようなチェーンの流れが作れなかったのが、LangGraphでやるとネットワーク型のループするようなグラフも作れるということで。このあたりを本格的に導入したことによって、より実用的なアプリケーションが作れるようになっています。
そして、LangChainの0.1で一番重要だと思うのが、認知アーキテクチャという考え方です。LangChainのLLMアプリケーションで、昔のAIエージェントの考え方は、なにかをAIに要求すると何をするかをAIが全部考えて実行して、ちゃんと完了したと思ったら答えを返すという感じで、何をするかはすべてAIに決めさせるみたいな、かなり自由なアプリケーションだったんです。
ただ、実運用のアプリケーションを自由にさせてしまうと成功率も低くなってしまうということで、ステートマシン的な設計にして、ステートマシンの「どんな順番で移動していいか?」とか「どのステートからどのステートへ行けばいいか?」ということを、ある程度人間のほうでルールを決めてしまう。AIには「ここを選んでね」というところだけを決めるみたいな(かたちにする)。
つまり、完全に自由じゃなくても、仕事のワークフローを決めて、その中で最善を尽くす感じのLLMアプリケーションを作るみたいな。そういう考え方をして、そのワークフローを作るためのいろいろな設定をする言語が、先ほど言ったLCELとLangGraphになります。
ちょっと自由度が低くなるように見えますが、人間的には「ここだけを決めてね」みたいなものを決められるので、実運用アプリケーションでは、このような仕組みがすごく求められると思っています。
次に、LlamaIndexの0.10。LlamaIndexのほうもLangChainと同様に、パッケージの分離が行われました。「llama-index-core」と個別の「Integration」に分離したということで、今までは全部一緒にやって、データローダーだけを「LlamaHub」で管理していたんですが、LlamaIndex 0.10からは、データローダーだけじゃなくてLLMとかVector Storeとか、すべてのものがIntegrationという部品に分離して、分離した部品を全部LlamaHubで管理するような仕組みになりました。すべてバラバラにして、LlamaHubから部品を拾ってきて、langchain-coreの上でいろいろつなぐみたいな仕組みになっています。
これによってLangChainと同じように、パッケージは小さく、実運用で動かすには依存関係が少ないので、急に動かなくなるということもないみたいな、いい感じになっています。
あと、ちょっと前まで使っていた人からすると、ServiceContextがなくなったのはすごく大きなことです。実際、ServiceContextは使わず、Settingsに設定すればよくなったので、意外と対応は簡単で、さらに使いやすくなっているので、書き換えは必要ですが、かなりお手軽に移行できて、管理もだいぶ簡単になりました。
LlamaIndexのほうで重視しているのはRAGなので、「Gemini」に登場したロングコンテキストLLMという、すごく長いコンテキストが入るLLMがあるんですが、それによってRAGの新アーキテクチャを変えなくちゃいけないということが、最近すごく話題になっています。「長いコンテキストがあるからRAGは要らないんじゃないか?」というのがTwitter(現X)上で話題になっていました。
実際には本1冊分のRAGを作るのには要らなくなったという話で、会社のいろいろなファイルシステムを全部RAGにするという場合にはどっちみちGeminiぐらいの長いコンテキストでも入らないので、RAGはそういうものに使われるだろうというような感じです。長いコンテキストを使ったRAGでどうやると管理ができるかみたいな、そういうアーキテクチャを最近いろいろ試行錯誤して、考えてやろうとしています。
今までのRAGだと、1冊の本から何ページか破って持ってきて、見て、それで質問に答えるという感じだったので、質問の回答の正解率がけっこう低かったんですが、本棚から本を2、3冊取ってきて、そこから答えを返すみたいなことができるので、今後は正解率がだいぶ上がるんじゃないかなと思っています。
そのためには、今までと違う部分をいろいろチューニングしなくちゃいけないということで、逆に今までと違ったノウハウが必要になってくるかと思います。
(次回につづく)
関連タグ:
新モデルの追加と値下げ、ChatGPTのメモリ機能追加、「Sora」の発表… 『OpenAI GPT-4V/ChatGPT/GPTs 人工知能プログラミング実践入門』著者が語る、OpenAIの技術情報
実用的なLLMアプリケーションを作るための大規模アップデート 「LangChain 0.1」「LlamaIndex 0.10」になって変わったこと
「情報の取捨選択をするには、自分の価値関数を磨くしかない」 年間2冊ペースで執筆する、布留川氏の情報収集ルーティーン
「デモを試して自分の価値関数を磨く」「記事を書くと理解しやすくなる」 布留川英一氏がデモを試す理由と、技術記事を書く理由
2025.01.30
2月の立春までにやっておきたい手帳術 「スケジュール管理」を超えた、理想や夢を現実にする手帳の使い方
2025.01.29
社内会議は「パワポ」よりも「ドキュメントの黙読」が良い理由 Amazon元本社PMが5つのポイントで教える、資料の書き方
2025.01.28
適応障害→ニート→起業して1年で年収1,000万円を達成できたわけ “統計のお姉さん”サトマイ氏が語る、予想外の成功をつかめたポイント
2025.02.03
「昔は富豪的プログラミングなんてできなかった」 21歳で「2ちゃんねる」を生んだひろゆき氏が語る開発の裏側
2025.01.31
古い手帳から新しい手帳への繰り越し方 手帳を買い換えたら最初に書き込むポイント
2025.02.03
手帳に書くだけで心が整うメンタルケアのコツ イライラ、モヤモヤ、落ち込んだ時の手帳の使い方
2025.01.30
若手が「長く働きたい」と思える職場の3つの要素 データから見る、部下を伸ばす関わり方
2025.01.30
とりあえず60点の資料で議論、不要な文章は「容赦なく削る」 Amazon元本社PMが語る、ドキュメント作成の7ステップ
2025.01.29
何でもできるはNG? CTOが語るエンジニアの成長戦略とキャリア展望
2025.01.07
1月から始めたい「日記」を書く習慣 ビジネスパーソンにおすすめな3つの理由
2025.01.30
2月の立春までにやっておきたい手帳術 「スケジュール管理」を超えた、理想や夢を現実にする手帳の使い方
2025.01.29
社内会議は「パワポ」よりも「ドキュメントの黙読」が良い理由 Amazon元本社PMが5つのポイントで教える、資料の書き方
2025.01.28
適応障害→ニート→起業して1年で年収1,000万円を達成できたわけ “統計のお姉さん”サトマイ氏が語る、予想外の成功をつかめたポイント
2025.02.03
「昔は富豪的プログラミングなんてできなかった」 21歳で「2ちゃんねる」を生んだひろゆき氏が語る開発の裏側
2025.01.31
古い手帳から新しい手帳への繰り越し方 手帳を買い換えたら最初に書き込むポイント
2025.02.03
手帳に書くだけで心が整うメンタルケアのコツ イライラ、モヤモヤ、落ち込んだ時の手帳の使い方
2025.01.30
若手が「長く働きたい」と思える職場の3つの要素 データから見る、部下を伸ばす関わり方
2025.01.30
とりあえず60点の資料で議論、不要な文章は「容赦なく削る」 Amazon元本社PMが語る、ドキュメント作成の7ステップ
2025.01.29
何でもできるはNG? CTOが語るエンジニアの成長戦略とキャリア展望
2025.01.07
1月から始めたい「日記」を書く習慣 ビジネスパーソンにおすすめな3つの理由