2024.12.10
“放置系”なのにサイバー攻撃を監視・検知、「統合ログ管理ツール」とは 最先端のログ管理体制を実現する方法
リンクをコピー
記事をブックマーク
布留川英一氏: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.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
2024.12.09
国内の有名ホテルでは、マグロ丼がなんと1杯「24,000円」 「良いものをより安く」を追いすぎた日本にとって値上げが重要な理由
2024.12.09
10点満点中7点の部下に言うべきこと 部下を育成できない上司の特徴トップ5
2024.11.29
「明日までにお願いできますか?」ちょっとカチンとくる一言 頭がいい人に見える上品な言い方に変えるコツ
2024.12.04
いつも遅刻や自慢話…自分勝手な人にイラっとした時の切り返し 不平等な関係を打開する「相手の期待」を裏切る技
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.12.06
嫌いな相手の行動が気になって仕方ない… 臨床心理士が教える、人間関係のストレスを軽くする知恵
2024.12.03
職場の同僚にイライラ…ストレスを最小限に抑える方法 臨床心理士が語る、「いい人でいなきゃ」と自分を追い込むタイプへの処方箋
2024.12.05
「今日こそやろう」と決めたのに…自己嫌悪でイライラする日々を変えるには
PR | 2024.12.04
攻撃者はVPNを狙っている ゼロトラストならランサムウェア攻撃を防げる理由と仕組み