先週の LangChain Japan Meetup でも Harrison が言っていた「コアをExperimentalやCommunityパッケージに分けていく」という話ですが、実際にExperimentalの分割が開始しているので、LangChainユーザーはチェックしておきましょう。
今後の改善や変更についての考え自体はこちらに掲載されています。
詳細は以下に示す各リンクを参照して欲しいですが、サクッと具体的な変更点についてだけ以下に示します。
なぜLangChainコアを、コアとExperimental(実験的)パッケージに分割するのか
主に以下の3点です。
- langchain コアパッケージからCVE(セキュリティ脆弱性)を取り除く。
- 実験的なソースコードをコアとExperimentalに明確に区別し、新しいアイデアや論文の実装について、実運用に耐えるコードでなくてもExperimentalに追加しやすくする。
- langchainコアパッケージの実用性を高めるために軽量化する。
Experimentalに移行される既存の機能
すでにLangChainコア内にある以下が移行されることがアナウンスされています。
- langchain/experimental 配下に含まれているもの
- SQL chain
- SQL agent
- CSV agent
- Pandas agent
- Python agent
移行方法
移行方法は以下にガイダンスされています。
- インストール方法
いままでpip install -U langchain
これからpip install -U langchain langchain_experimental
※当然Experimentalを使いたい場合のみ- Experimentalパッケージの読込み
いままでfrom langchain.experimental import ...
これからfrom langchain_experimental import ...
- 各機能の読込み ex) SQLDatabaseChainの場合
いままでfrom langchain.chains import SQLDatabaseChain
これからfrom langchain_experimental.sql import SQLDatabaseChain
移行スケジュール
移行スケジュールは上記のアナウンスに記載されている
2023年7月21日(金)にリポジトリの構成を変更します。
2023年7月28日(金)にlangchain.experimentalの変更を行います。私たちは実験的なコードを独自のパッケージに移動します。このパッケージにはlangchain/experimentalにあるもの全てとCVEがあるものが含まれます。
すでに7/22にlangchain_experimentalパッケージが0.0.1版としてリリースされています
https://pypi.org/project/langchain-experimental/
ただしまだコアライブラリ側からはExperimentalは取り除かれていません。順調にいけば7/28にはこれらはコアから削除されて完全に移行されるそうです。
まとめ
- LangChainを本番環境で利用するにあたり、不要なライブラリがどんどん取り込まれる効率の悪さ、脆弱性の残置など気になっていた人は多いでしょう。逆に論文の概念レベルのものがどんどん取り込まれることで、LLM界隈の知識としてとても勉強になると考える人が多かったのも事実です。これら両方のメリットを享受するための一歩として大きな飛躍と言えます。
- Experimentalの分割はその第一弾であり、今後ドキュメントの改善やモジュール性、カスタマイズ性の向上、デバッグのしやすさの向上など、大きな変更がいくつか入っていくことが想定されます。ただ使うだけでなく、それらの作業タイムラインと背景にある考えかたを引き続き追っておくことが、より安全に効率的にLangChainを今後も使っていく上で重要であると思えます。