「AIを用いたシステム開発の方法がわからない・・・」
「チャットボットや質疑応答システムを開発したい」
このような場合には、LangChainがオススメです。
この記事では、LangChainについて解説しています。
本記事の内容
- LangChainとは?
- LangChainのシステム要件
- LangChainのインストール
- LangChainの動作確認
それでは、上記に沿って解説していきます。
LangChainとは?
LangChainとは、大規模言語モデル(LLM)を用いたアプリケーション構築のためのライブラリです。
昨今の状況を見ていると、LLMの進化が人工知能(AI)の進化とも言えます。
ChatGPTは、名前にあるように強力なLLMであるGPT(現在は3.5)がベースです。
また、画像生成AIであるStable DiffusionもLLMに依存しています。
このようにLLMは、AIの中心とも言える存在です。
しかし、このLLMだけがあっても特段大したことはできません。
やはり、アプリケーションに組み込まないとLLMの恩恵を受けられません。
実際、ChatGPTやStable Diffusionもアプリケーションという形で公開されています。
では、具体的にどうやってLLMをアプリケーションに組み込めるのでしょうか?
みなさんは、イメージできますか?
その問いに答えるのが、LangChainです。
LangChainを用いれば、次のようなアプリケーションを開発できると公式に記載されています。
- 特定文書に対する質問応答
- チャットボット
- エージェント
エージェントは、ちょっとわかりにくいですね。
エージェントとは、外部ツールとの連携を担うシステムになります。
エージェントの例として、次のようなアプリがあります。
GPT+WolframAlpha+Whisper
https://huggingface.co/spaces/JavaFXpert/Chat-GPT-LangChain
このようなアプリを開発するために、LangChainには以下のモジュールが用意されています。
- Prompt Templates
- LLMs
- Document Loaders
- Utils
- Chains
- Agents
- Memory
最も重要なモジュールは、LLMsになるでしょう。
このLLMsを利用すれば、LLMへのアクセスが容易に行えます。
現時点(2023年2月中旬)におけるLLMプロバイダ一覧です。
- AI21
- Anthropic
- OpenAI
- Azure OpenAI
- Cohere
- HuggingFaceHub
- HuggingFace Pipeline API
- NLPCloud
基本的には、API経由での利用となります。
HuggingFace Pipeline APIは、ローカル環境にあるLLMを利用可能です。
LLMs以外の詳細については、以下の公式ドキュメントをご覧ください。
https://langchain.readthedocs.io/en/latest/
以上、LangChainについて説明しました。
次は、LangChainのシステム要件を説明します。
LangChainのシステム要件
現時点(2023年2月中旬)でのLangChainの最新バージョンは、0.0.82となります。
この最新バージョンは、2023年2月11日にリリースされています。
更新頻度は、かなり高いです。
ここ数日であれば、毎日更新されています。
そんなLangChainのシステム要件は、Pythonのバージョンに気を付けるぐらいです。
サポートOSに関しては、以下を含むクロスプラットフォーム対応だと思われます。
- Windows
- macOS
- Linux
そして、肝心のPythonのバージョンは3.8.1以降になります。
このPython バージョンに注意しておけば、問題ないでしょう。
以上、LangChainのシステム要件を説明しました。
次は、LangChainのインストールを説明します。
LangChainのインストール
LangChainのインストールは、Python仮想環境の利用をオススメします。
Python仮想環境は、次の記事で解説しています。
検証は、次のバージョンのPythonで行います。
> python -V Python 3.10.4
まずは、現状のインストール済みパッケージを確認しておきます。
> pip list Package Version ---------- ------- pip 23.0 setuptools 67.2.0 wheel 0.37.1
次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip setuptools
では、LangChainのインストールです。
LangChainのインストールは、以下のコマンドとなります。
pip install langchain
これだけだと最低限のインストールです。
デフォルトのLLMであるGPT-3を使えるように、openaiをインストールします。
pip install openai
処理が終了したら、どんなパッケージがインストールされたのかを確認します。
> pip list Package Version ------------------ --------- aiohttp 3.8.3 aiosignal 1.3.1 async-timeout 4.0.2 attrs 22.2.0 certifi 2022.12.7 charset-normalizer 2.1.1 colorama 0.4.6 dataclasses-json 0.5.7 frozenlist 1.3.3 greenlet 2.0.2 idna 3.4 langchain 0.0.82 marshmallow 3.19.0 marshmallow-enum 1.5.1 multidict 6.0.4 mypy-extensions 1.0.0 numpy 1.24.2 openai 0.26.5 packaging 23.0 pip 23.0 pydantic 1.10.4 PyYAML 6.0 requests 2.28.2 setuptools 67.2.0 SQLAlchemy 1.4.46 tenacity 8.2.1 tqdm 4.64.1 typing_extensions 4.4.0 typing-inspect 0.8.0 urllib3 1.26.14 wheel 0.37.1 yarl 1.8.2
これは、まだまだ序の口です。
LLMプロバイダすべてに対応するなら、以下のコマンドを用います。
pip install langchain[llms]
全モジュールの全機能を利用する場合は、以下コマンドを実行することになります。
pip install langchain[all]
ただし、全部載せの場合は古いバージョンのLangChainがインストールされます。
試した時点では、LangChain 0.0.74がインストールされました。
以上、LangChainのインストールを説明しました。
次は、LangChainの動作確認を説明します。
LangChainの動作確認
LangChainの動作確認を行います。
とりあえず、LangChainの根幹とも言えるLLMの利用について確認します。
LangChainのデフォルトLLMでもあるGPT-3を利用してみましょう。
GPT-3(text-davinci-003)を利用するには、Open AIのAPI keyが必要です。
Open AIのAPI keyが無い場合は、次の記事をご覧ください。
「Open AIのAPI key取得」に取得方法を説明しています。
無料で18ドル分の課金枠が付与されています。
アカウント作成・API取得は、面倒に感じるかもしれません。
でも、LangChainの威力を確認するには必要な作業だと割り切りましょう。
Open AIのAPI keyが用意できれば、次のコードを実行します。
もちろん、取得したAPI keyを設定してからです。
from langchain.llms import OpenAI import os os.environ["OPENAI_API_KEY"] = "YOUR OPENAI API KEY" llm = OpenAI(temperature=0.9) text = "副業をキーワードにして、バズるツイートを考えてください。" print(llm(text))
上記を実行すると、GPT-3から以下のような結果が返ってきます。
上記コードを3回実行した際の結果です。
【1回目】 【#副業で月収3万円稼げる!】 今なら、インターネット上の仕事をして月収3万円稼ぐ副業を始められる!自宅で稼ぐチャンスを手に入れよう!#副業 #月収3万円 #チャンス #インターネット 【2回目】 「時間とお金の2倍の楽しみを得るための、副業を始める理由! 今までで一番新しい試み、#副業 を始めて自分の価値を上げよう!」 【3回目】 『今すぐ始めるなら、お小遣い稼ぎならリサーチフリーランス!さらに稼げる可能性を広げるなら、たった2時間で始められる副業❗️お得なプランもあるし、仕事を納めるんだと有料であげられる報酬も!#リサーチフリーランス #副業 #お小遣い稼ぎ
3回目は、かなり日本語が崩れています。
しかし、1回目と2回目は実際に存在していそうです。
まあ、バズるかどうかはわかりませんが。
このような感じで、簡単にGPT-3を利用することが可能です。
ある意味、LLMはLangChainにおける司令塔とも言えますからね。
この司令塔を中心にして、処理をつないでいくことになります。
以上、LangChainの動作確認を説明しました。