$30 off During Our Annual Pro Sale. View Details »

驚愕の事実!LangChainが抱える問題 / Problems of LangChain

驚愕の事実!LangChainが抱える問題 / Problems of LangChain

Henry Cui

August 26, 2023
Tweet

More Decks by Henry Cui

Other Decks in Programming

Transcript

  1. 驚愕の事実!LangChainが抱える問題
    機械学習の社会実装勉強会第26回
    Henry
    2023/8/26

    View Slide

  2. 記事の紹介
    ■ The Problem With LangChain
    ● https://minimaxir.com/2023/07/langchain-problem/
    ● BuzzFeed社のエンジニアが執筆
    ■ 記事が言いたいこと
    ● LangChainは思うほど使いやすくない
    ● 過度な複雑さと避けるために、APIをそのまま使うべき
    ■ 断り:あくまでも記事の意見であって、発表者の意見ではない
    2

    View Slide

  3. 内容
    ■ LangChainが実現したReAct論文
    ■ LangChainのテンプレート
    ■ LangChainの履歴保存
    ■ LangChain Agentに関して
    ■ 環境情報
    ● Python 3.8.6
    ● langchain 0.0.266
    3

    View Slide

  4. LangChainが実現したReAct論文
    ■ ReAct: Synergizing Reasoning and Acting in Language
    Models
    ● ICLR 2023 上位論文
    ■ タスクに対して、ReasoningとActを交互に行う
    4

    View Slide

  5. LangChainが実現したReAct論文
    ■ 著者実装は https://github.com/ysymyth/ReAct にて公開
    ■ 論文実験用なので、ハードコーディングのところがある
    ● https://github.com/ysymyth/ReAct/blob/master/hotpotqa.ipynb
    5

    View Slide

  6. LangChainのテンプレート
    ■ 記事の主な批判「LangChainが簡単なことを複雑化した」
    ■ その一例として、Templateの作り方に対して
    ■ langchain/langchain/prompts/base.py
    ● f-stringはstring.Formatterベース
    ● jinja2はjinja2.Templateでレンダーリング
    6

    View Slide

  7. LangChainの履歴保存
    ■ 履歴を保存するためのコードは逆に長くなっている
    ● 左:LangChain、右:OpenAI API
    7

    View Slide

  8. LangChain Agentに関して
    ■ initialize_agentではデフォルトでsystem promptを入れてない
    ● system promptを含むagent_kwargsを明示的に渡す必要がある
    ■ Tool選択の際で、出力がJSONじゃないといけない
    ● langchain/langchain/agents/conversational_chat/prompt.py
    8

    View Slide

  9. LangChain Agentに関して
    ■ Tool選択の際で、出力がJSONじゃないといけない
    ● Custom AgentやCustom Chainなどを使うことができるが、やることが
    また複雑になってしまう
    ● function callingも使える?
    ■ function callingは6/13にAPIで公開
    ■ 記事の日付は7/14だが、内容が固まったのはfunction calling公開前だと思われる
    ● 自由フォーマットの内容をJSONにパースするのにもう一回LLMも使え
    る?
    9

    View Slide

  10. まとめ
    ■ LangChainに関する記事の検証
    10

    View Slide