MistaralAIのモデルがKnowledge graphsに使えるか?

モチベーション

半月前のこの投稿で、ナレッジグラフを使うために、6つのLLMを試した。そこで書いた通り、現時点で使えるLLMは、OpenAIとMistralである。 そこで、MistarlAIのLLMを自分のPC(ローカル環境)で動かしてみた。実際には、ナレッジグラフには使えないことが分かった。 この投稿では、Langchain経由でMistaralAIをAPI経由で使って、ナレッジグラフで使えるか試してみたので、その内容をまとめた。

情報源

  1. MistralAI 本家のページ。アカウント、APIキーの取得は、このページから。アカウントを取得するには、このページからSing upし、emailアドレスに送付されたverification codeを入力することで取得できる。
  2. 【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が使えるものを事前に確認しておきたかった。