2024.10.10
将来は卵1パックの価格が2倍に? 多くの日本人が知らない世界の新潮流、「動物福祉」とは
リンクをコピー
記事をブックマーク
布留川英一氏: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.11.13
週3日働いて年収2,000万稼ぐ元印刷屋のおじさん 好きなことだけして楽に稼ぐ3つのパターン
2024.11.11
自分の「本質的な才能」が見つかる一番簡単な質問 他者から「すごい」と思われても意外と気づかないのが才能
2024.11.13
“退職者が出た時の会社の対応”を従業員は見ている 離職防止策の前に見つめ直したい、部下との向き合い方
2024.11.12
自分の人生にプラスに働く「イライラ」は才能 自分の強みや才能につながる“良いイライラ”を見分けるポイント
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.11.11
気づいたら借金、倒産して身ぐるみを剥がされる経営者 起業に「立派な動機」を求められる恐ろしさ
2024.11.11
「退職代行」を使われた管理職の本音と葛藤 メディアで話題、利用者が右肩上がり…企業が置かれている現状とは
2024.11.18
20名の会社でGoogleの採用を真似するのはもったいない 人手不足の時代における「脱能力主義」のヒント
2024.11.12
先週まで元気だったのに、突然辞める「びっくり退職」 退職代行サービスの影響も?上司と部下の“すれ違い”が起きる原因
2024.11.14
よってたかってハイリスクのビジネスモデルに仕立て上げるステークホルダー 「社会的理由」が求められる時代の起業戦略