GN⁺: LangChainの問題点
(minimaxir.com)- LangChain: OpenAIのGPT APIと連携してAIテキスト生成を行うためのPythonおよびJavaScriptライブラリ
- ReAct論文の実装として知られ、LLMの出力テキスト品質を向上させるとされている
- ReActワークフローはInstructGPT/text-davinci-003で特に効果的だったが、コストが高く、小規模プロジェクトでは使いやすいとは言えない
- LangChainは人気を集める中で、明確な収益やマネタイズ計画がないにもかかわらず、かなりの資金を調達した
- 実際にBuzzFeedでチャットボットを作るために使おうとした
- RAG(Retrieval-Augmented Generation)でLangChainが人気のツールだったため
- しかし、かなり調査してみても、うまくいかなかった。バグも多く、品質も良くない
- そこで低レベルに戻って自分で開発してみたところ、LangChainよりはるかに良い結果が出た
- Hacker Newsの「100行のコードでLangChainを作る」という記事とコメントでLangChainへの批判を見て、自分だけではなかったと分かった
- LangChainの問題は、AIエコシステムに不要な複雑さと偏りを追加してしまうこと
- ChatGPTとの連携方法を学びたい初心者は、絶対にLangChainから始めるべきではない
- サンプルやコードは、OpenAIの公式Pythonライブラリを使う場合よりも複雑
- LangChainのプロンプトエンジニアリングは、実質的には追加ステップを挟んだだけのf-stringsにすぎない
- Agentワークフローと会話メモリ機能はドキュメントが十分でなく、使い方が分かりにくいことがある
- システムプロンプト機能はAgentワークフローと適切に統合されていない
- ドキュメントやサンプルは利点より問題のほうが多く、実運用では扱いづらい
- LangChainエージェントは、プロンプトエンジニアリングとJSON出力を通じて独特なツール選択方法を使っている
- 正常な出力構造が少し変わるだけでエージェントが動かなくなり、構文解析エラーへの対処が必要になることがある
- チャットボットはレシピを正しく抽出して整形できるが、出力は退屈
- カスタムエージェントやチェーン機能もあるが、それがかえってプロセスを複雑にしている
- テキスト分割器や統合ベクトルストアのようなユーティリティ機能を備えるLangChainは、LangChainベースのコードしか使えないように制約をかけている
- LangChainは、人気のある大半のユースケースでオーバーヘッドと複雑さを増やしてしまう
- 「複雑なのだから、きっと優れているに違いない!」という哲学を体現しているように見える
- 著者はLangChainの代替として、はるかにシンプルなsimpleaichatというPythonパッケージを開発した
- simpleaichatの宣伝をしたいのではなく、初心者がLangChainに向かってしまうことを心配している
4件のコメント
私もlangchainを分析してみた結果、オーバーエンジニアリングされているという印象を強く受けました。
http://swcho.github.io/blogs/2023-07-15-langchainjs-part-3
langchainは llm ecosystem をどのように構成するのか?という問題提起を投げかけた最初のオープンソースとして、その意義を見いだすべきだと思います。langchainの使い勝手は低いとしても、langchainが解こうとしていた問題は依然として残っているのですから。
これでRSSにもGN+が含まれるんですね。ありがとうございます。@xguru さん、しっかり拝見します。
LangChainは無意味です
この記事に続く内容の文章だと思われます。
このブログの著者である Max Woolf は上記記事のコメントで LangChain は本当に役に立たないと批判し、その代替として simpleaichat を開発して公開しました。
今回は問題点を整理した記事まで公開しています。
Hacker Newsの意見