ClearMLとLangChainを連携させる方法

AI・機械学習

はじめに

LangChainは、言語モデルを使ったアプリケーション開発のための人気のフレームワークです。ClearMLを使うと、LangChainのアセットやメトリクスを記録するためのClearML Taskを作成することができます。この記事では、LangChainにClearMLを統合する方法を初心者向けに丁寧に解説します。

コールバックとは

コールバックとは、ある処理が完了した後に呼び出される関数のことです。LangChainでは、モデルのリクエストが完了した後に、その結果を処理するためのコールバックを設定することができます。

ClearMLのコールバックを使うと、LangChainのモデルリクエストの結果をClearMLに自動的に記録することができます。これにより、モデルの性能や挙動を簡単に追跡し、分析することができます。

必要なパッケージのインストール

まず、必要なパッケージをインストールします。以下のコードを実行してください。

!pip install -U langchain-community langchain-openai spacy textstat clearml langchain openai
!python -m spacy download en_core_web_sm
  • langchain-community: LangChainのコミュニティ版パッケージ
  • langchain-openai: LangChainとOpenAIを連携させるためのパッケージ
  • spacy: 自然言語処理ライブラリ
  • textstat: テキストの複雑さを計算するためのライブラリ
  • clearml: ClearMLのパッケージ
  • langchain: LangChainのメインパッケージ
  • openai: OpenAIのパッケージ

ClearMLの設定

ClearMLを使うには、環境変数を設定する必要があります。以下のコードを実行して、ClearMLの設定を行います。

%env CLEARML_WEB_HOST=http://localhost:8080/
%env CLEARML_API_HOST=http://localhost:8008
%env CLEARML_FILES_HOST=http://localhost:8081
%env CLEARML_API_ACCESS_KEY=XXXX
%env CLEARML_API_SECRET_KEY=XXXX
%env OPENAI_API_KEY=sk-XXXX
  • CLEARML_WEB_HOST: ClearMLのWebUIのURL
  • CLEARML_API_HOST: ClearMLのAPIのURL
  • CLEARML_FILES_HOST: ClearMLのファイルサーバーのURL
  • CLEARML_API_ACCESS_KEY: ClearMLのAPIアクセスキー
  • CLEARML_API_SECRET_KEY: ClearMLのAPIシークレットキー
  • OPENAI_API_KEY: OpenAIのAPIキー

ClearMLCallbackHandlerの設定

次に、ClearMLCallbackHandlerを設定します。このコールバックは、LangChainのアセットやメトリクスを記録するためのClearML Taskを作成します。

from langchain.callbacks import ClearMLCallbackHandler
from langchain_openai import OpenAI

# ClearMLコールバックの設定
clearml_callback = ClearMLCallbackHandler(
   task_type="inference",
   project_name="langchain_callback_demo",
   task_name="llm",
   tags=["test"],
   # 追跡する詳細度に応じて以下のパラメータを変更
   visualize=True,
   complexity_metrics=True,
   stream_logs=True,
)

llm = OpenAI(temperature=0, callbacks=[clearml_callback])
  • task_type: 作成するClearML Taskのタイプ(タスクタイプを参照)
  • project_name: ClearML Taskを作成するプロジェクト名
  • task_name: ClearML Taskの名前
  • tags: ClearML Taskに追加するタグのリスト
  • visualize: Trueに設定すると、ClearMLは実行の依存関係とエンティティプロットをキャプチャします
  • complexity_metrics: Trueに設定すると、複雑さのメトリクスを記録します
  • stream_logs: Trueに設定すると、コールバックアクションをClearMLパラメータにストリーミングします

ここでは、OpenAIのコンストラクタにcallbacksパラメータを渡して、ClearMLCallbackHandlerをセットしています。これにより、OpenAIのモデルリクエストが完了するたびに、その結果がClearMLに自動的に記録されます。

モデルのリクエストとログの記録

最後に、モデルのリクエストを行い、flush_tracker()メソッドを使ってメトリクスやプロンプトなどの出力をClearMLに記録します。

llm_result = llm.generate(["Tell me a joke", "Tell me a poem"] * 3)

clearml_callback.flush_tracker(langchain_asset=llm, name="simple_sequential")
  • langchain_asset: 保存するLangChainのアセット(モデルやエージェントなど)
  • name: 記録する情報のコンテキストを識別する文字列(ヒント:異なる名前を使用して、異なるモデルの会話を記録します)

llm.generate()でモデルのリクエストを行った後、flush_tracker()を呼び出すことで、リクエストの結果がClearMLに記録されます。

まとめ

この記事では、LangChainにClearMLを統合する方法を初心者向けに解説しました。コールバックを使うことで、LangChainのモデルリクエストの結果を自動的にClearMLに記録することができます。

以下の手順でClearMLとLangChainを連携させることができます。

  1. 必要なパッケージをインストールする
  2. ClearMLの環境変数を設定する
  3. ClearMLCallbackHandlerを設定し、LangChainのモデルにセットする
  4. モデルのリクエストを行い、flush_tracker()メソッドでログを記録する

これらの手順に従うことで、LangChainのアセットやメトリクスをClearMLで簡単に記録し、管理することができます。コールバックを活用することで、モデルの性能や挙動を追跡し、分析するための強力なツールになります。

ClearMLCallbackHandlerの徹底解説
前回の記事では、LangChainにClearMLを統合する方法を紹介しました。今回は、その中で登場したClearMLCallbackHandlerについて、より詳しく解説していきます。ClearMLCallbackHandlerとはCle...

参考サイト

LangChain | ClearML
If you are not already using ClearML, see Getting Started for setup

コメント

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