モチベーション
半月前のこの投稿で、ナレッジグラフを使うために、6つのLLMを試した。そこで書いた通り、現時点で使えるLLMは、OpenAIとMistralである。 そこで、MistarlAIのLLMを自分のPC(ローカル環境)で動かしてみた。実際には、ナレッジグラフには使えないことが分かった。 この投稿では、Langchain経由でMistaralAIをAPI経由で使って、ナレッジグラフで使えるか試してみたので、その内容をまとめた。
情報源
- MistralAI 本家のページ。アカウント、APIキーの取得は、このページから。アカウントを取得するには、このページからSing upし、emailアドレスに送付されたverification codeを入力することで取得できる。
- 【Codestral-22B】Mistral AI発コーディングAI!80言語以上に対応! アカウント取得、APIキー取得についてこのページを参考にした。
確認内容
Dockerfile
Jupyterlab NoteBookからLangchain経由でMistralAIを使うためのDockerfileは、この投稿のDockerfileに一行追加した。他の部分は追加・変更していない。
RUN pip install --upgrade pip setuptools \
&& pip install torch==2.2.2 torchvision==0.17.2 torchaudio==2.2.2 \
--index-url https://download.pytorch.org/whl/cu121 \
&& pip install torch torchvision torchaudio \
&& pip install jupyterlab matplotlib pandas scikit-learn ipywidgets \
&& pip install transformers accelerate sentencepiece einops \
&& pip install langchain bitsandbytes protobuf \
&& pip install auto-gptq optimum \
&& pip install pypdf tiktoken sentence_transformers faiss-gpu trafilatura \
&& pip install langchain-community langchain_openai wikipedia \
&& pip install langchain-huggingface unstructured html2text rank-bm25 janome \
&& pip install langchain-chroma sudachipy sudachidict_full \
&& pip install mysql-connector-python \
&& pip install langchain-experimental neo4j pandas \
&& pip install json-repair langchain-mistralai
最後の行の「langchain-mistralai」が追加した部分。
Mistal モデルを立ち上げる
# Mistral-smallモデルを立ち上げる
import os
from langchain_mistralai import ChatMistralAI
os.environ['MISTRAL_API_KEY'] = 'xxxx'
llm = ChatMistralAI(
model = "mistral-small",
temperature = 0,
# other params...,
)
xxxは、MistaralAIのページから入手したAPIキー。
その他の部分は、この投稿で示した、情報源1.を参考にして欲しい。
実行結果
mistarl-smallモデルを使った実行結果は、次のようなエラーとなった。
HTTPStatusError: Error response 400 while fetching https://api.mistral.ai/v1/chat/completions: {"object":"error","message":"Function calling is not enabled for this model","type":"invalid_request_error","param":null,"code":null}
Mistralモデルを変更する。
次のとおり「mistral-large-latest」に変更した。
# Mistralモデルを立ち上げる
import os
from langchain_mistralai import ChatMistralAI
os.environ['MISTRAL_API_KEY'] = 'xxxx'
llm = ChatMistralAI(
model = "mistral-large-latest",
temperature = 0,
# other params...,
)
まとめ
MistalAIのモデルを使ってもKnowledge graphsを試せることが分かった。但し、今回はLLMを使ってグラフを作成するところまでで、作成したグラフを使ったRAGの検証までは行っていない。
今回、MistralAIを試した理由は次のとおり。今後Amazon Bedrockを使ってみようと思っているので、そこで用意されているLLM(基盤モデル;FM)の内、Knowledge graphsが使えるものを事前に確認しておきたかった。