16 ポイント 投稿者 xguru 2023-07-16 | 4件のコメント | WhatsAppで共有
  • 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件のコメント

 
sungwoo 2023-07-18

私もlangchainを分析してみた結果、オーバーエンジニアリングされているという印象を強く受けました。
http://swcho.github.io/blogs/2023-07-15-langchainjs-part-3

langchainは llm ecosystem をどのように構成するのか?という問題提起を投げかけた最初のオープンソースとして、その意義を見いだすべきだと思います。

langchainの使い勝手は低いとしても、langchainが解こうとしていた問題は依然として残っているのですから。

 
ohyecloudy 2023-07-17

これでRSSにもGN+が含まれるんですね。ありがとうございます。@xguru さん、しっかり拝見します。

 
xguru 2023-07-16

LangChainは無意味です

この記事に続く内容の文章だと思われます。
このブログの著者である Max Woolf は上記記事のコメントで LangChain は本当に役に立たないと批判し、その代替として simpleaichat を開発して公開しました。
今回は問題点を整理した記事まで公開しています。

 
GN⁺ 2023-07-16
Hacker Newsの意見
  • LangChainは粗悪なソフトウェアだと評価されており、全面的に書き直す予定です。
  • LLM CLIツールにPythonライブラリAPIが追加され、軽量なモデル呼び出しが可能になりました。
  • LangChainは中間レイヤーとして不要であり、コーディング体験を改善していない点が批判されています。
  • 問題があるにもかかわらず、多くのユーザーがLangChainを面白く、LLMで何かを構築するのに役立つものとして使っています。
  • LangChainは興味深いツールやサンプルセレクターを提供していますが、コード品質が不足しています。
  • この記事は批判的すぎて、元の著者の仕事を貶めていると非難されています。
  • アイデアを得たりプロトタイピングしたりするにはLangChainは有用ですが、すべてを自分で実装したほうがむしろ簡単なことも多いです。
  • LangChainを使ったプロトタイピングは、重要なリソースを投入する前にアイデアを検証するのに役立ちます。
  • 類似の機能を実装するために、lambda over let over lambdaを使う別のアプローチが提案されています.