AIアプリケーション開発用ライブラリLangChainのインストール

AIアプリケーション開発用ライブラリLangChainのインストール 機械学習

「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の動作確認を説明しました。

タイトルとURLをコピーしました