見出し画像

それでもLangChainを使うべきとこ

最近以下のような記事が出たり、イベント等でもプロダクションではLangChainを使わないという話がよく出ている。
LangChainを使わない - ABEJA Tech Blog

概ね同意するが、しかしこれまでAIプロダクトをいくつか使ってきて、LangChainを使うべき領域も存在すると感じているので、おすすめのLangChainの使い方を3つ書いておきたい。

1 PoCで使う

PoCならLangChainを使わない手はないと考える。
LangChainの問題としてよく以下のような部分が言われる。

1. 過度な抽象化によりカスタマイズがし辛い。
2. 安定性にかける
3. 破壊的変更が多すぎる

上記はすべて的を得た指摘であり、同意する。
しかし、それでもPoCではLangChainを使うメリットが大きいと考える。
とにかく早く作れるからだ。
普通に作ろうとすると200行程度コードを書く必要があるところを、3行書けば実行して試せる。
PoCではとにかくたくさん作って試すことが大事で、それには速度が最も重要だ。
なのでとにかくLangChainで作りまくって当たったら書き直せばよいと考えている。

2 新しい技術を試す


LangChainではさっき出たはずの論文が何故かもう実装されている。
とにかく動きが早く、こういうのできるんだ、試したいなと思ってTwitterを更新するともうLangChainのTwitterがそれの使い方を書いている。
作者は実はAGIではと関係各所では囁かれているが、それぐらいとにかく早い。プルリクに対しての返答もこの規模のライブラリにしては異様に早い。
なのでとりあえず使ったことのないLLMの使い方をしたいとき、とりあえずLangChainを見れば簡単に試すことができる。

3 一部だけ使う

LangChainを使う上で具体的に問題になるのはAgent周りなことが多い。
とにかくここは抽象化されまくっていて、プロンプトをカスタマイズしたいだけなのに定義ジャンプしまくって訳の分からない未開の地にまで入り込んでファイルを探してくる必要があり、せっかくカスタマイズしても破壊的変更で使えなくなるという悲しい事態が待っている。
しかし、例えばLLMに検索結果を渡すだけのtoolや、text_splitter、Retrieverなんかはシンプルな構造であることが多く、Productionで使っていてもあまり問題は起きない。
なのでこの一部だけを使うというのも有効な選択肢だ。
また、カスタマイズしたくなったらLangChainのライブラリからファイルを持ってくれば簡単にカスタマイズもできる。



というわけで、上記3点ではLangChainは最も有効な選択肢だと考えている。
現在ここを代替できる存在は知らない。
知ってたら教えてください。

あと全人類を苦しみから救いたくて、瞑想すれば救われるのにと思ってて、電子寺っていう瞑想を科学するサイト作成中なので、悟りを科学するとかそういうの興味ある人連絡ください。あとお金もあったらください。
Digital Temple 電子寺 (digital-temple.vercel.app)

ブレイン・マシン・インターフェースとかで全人類悟りに至らせれたら最高ですよね。

この記事が気に入ったらサポートをしてみませんか?