2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
リンクをコピー
記事をブックマーク
布留川英一氏: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冊ペースで執筆する、布留川氏の情報収集ルーティーン
「デモを試して自分の価値関数を磨く」「記事を書くと理解しやすくなる」 布留川英一氏がデモを試す理由と、技術記事を書く理由
2024.12.20
日本の約10倍がん患者が殺到し、病院はキャパオーバー ジャパンハートが描く医療の未来と、カンボジアに新病院を作る理由
2024.12.19
12万通りの「資格の組み合わせ」の中で厳選された60の項目 532の資格を持つ林雄次氏の新刊『資格のかけ算』の見所
2024.12.16
32歳で成績最下位から1年でトップ営業になれた理由 売るテクニックよりも大事な「あり方」
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
PR | 2024.12.20
モンスター化したExcelが、ある日突然崩壊 昭和のガス工事会社を生まれ変わらせた、起死回生のノーコード活用術
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.18
「社長以外みんな儲かる給与設計」にした理由 経営者たちが語る、優秀な人材集め・会社を発展させるためのヒント
2024.12.17
面接で「後輩を指導できなさそう」と思われる人の伝え方 歳を重ねるほど重視される経験の「ノウハウ化」
2024.12.13
ファシリテーターは「しゃべらないほうがいい」理由 入山章栄氏が語る、心理的安全性の高い場を作るポイント
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
Climbers Startup JAPAN EXPO 2024 - 秋 -
2024.11.20 - 2024.11.21
『主体的なキャリア形成』を考える~資格のかけ算について〜
2024.12.07 - 2024.12.07
Startup CTO of the year 2024
2024.11.19 - 2024.11.19
社員の力を引き出す経営戦略〜ひとり一人が自ら成長する組織づくり〜
2024.11.20 - 2024.11.20
「確率思考」で未来を見通す 事業を成功に導く意思決定 ~エビデンス・ベースド・マーケティング思考の調査分析で事業に有効な予測手法とは~
2024.11.05 - 2024.11.05