ClearMLCallbackHandlerの徹底解説

AI・機械学習

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

ClearMLとLangChainを連携させる方法
はじめにLangChainは、言語モデルを使ったアプリケーション開発のための人気のフレームワークです。ClearMLを使うと、LangChainのアセットやメトリクスを記録するためのClearML Taskを作成することができます。この記事...

ClearMLCallbackHandlerとは

ClearMLCallbackHandlerは、LangChainのコールバックを処理するためのクラスです。このクラスを使うことで、LangChainのモデルやチェーンの実行状態を、ClearMLを使って自動的に記録することができます。

具体的には、以下のようなイベントが発生したときに、ClearMLCallbackHandlerが呼び出されます。

  • モデルの実行開始・終了時
  • チェーンの実行開始・終了時
  • ツールの実行開始・終了時
  • エラーの発生時
  • 新しいトークンの生成時

これらのイベントが発生すると、ClearMLCallbackHandlerはイベントに関連するデータを収集し、ClearMLに記録します。

ClearMLCallbackHandlerの初期化

ClearMLCallbackHandlerを使うには、まず以下のようにインスタンスを初期化する必要があります。

from langchain.callbacks import ClearMLCallbackHandler

clearml_callback = ClearMLCallbackHandler(
   task_type="inference",
   project_name="langchain_callback_demo",
   task_name="llm",
   tags=["test"],
   visualize=True,
   complexity_metrics=True,
   stream_logs=True,
)

初期化時には、以下のようなパラメータを指定することができます。

  • task_type: ClearML Taskのタイプ("inference", "testing", "qc"など)
  • project_name: ClearML Taskを作成するプロジェクト名
  • task_name: ClearML Taskの名前
  • tags: ClearML Taskに追加するタグのリスト
  • visualize: 実行の依存関係とエンティティプロットを可視化するかどうか
  • complexity_metrics: 複雑さのメトリクスを記録するかどうか
  • stream_logs: コールバックアクションをClearMLパラメータにストリーミングするかどうか

ClearMLCallbackHandlerのメソッド

ClearMLCallbackHandlerには、様々なイベントに対応するメソッドが用意されています。以下は、主要なメソッドの一覧です。

  • on_llm_start: LLMの実行開始時に呼び出されます。
  • on_llm_end: LLMの実行終了時に呼び出されます。
  • on_llm_error: LLMの実行エラー時に呼び出されます。
  • on_chain_start: チェーンの実行開始時に呼び出されます。
  • on_chain_end: チェーンの実行終了時に呼び出されます。
  • on_chain_error: チェーンの実行エラー時に呼び出されます。
  • on_tool_start: ツールの実行開始時に呼び出されます。
  • on_tool_end: ツールの実行終了時に呼び出されます。
  • on_tool_error: ツールの実行エラー時に呼び出されます。
  • on_text: エージェントが終了するときに呼び出されます。
  • flush_tracker: 記録したデータをClearMLに送信します。

これらのメソッドは、対応するイベントが発生したときに自動的に呼び出されます。必要に応じて、これらのメソッドをオーバーライドすることで、独自の処理を追加することもできます。

flush_trackerメソッド

flush_trackerメソッドは、記録したデータをClearMLに送信するための特別なメソッドです。このメソッドを呼び出すことで、それまでに記録したデータがClearMLに送信されます。

clearml_callback.flush_tracker(langchain_asset=llm, name="simple_sequential")

flush_trackerメソッドには、以下のようなパラメータを指定することができます。

  • langchain_asset: 保存するLangChainのアセット(モデルやエージェントなど)
  • name: 記録するセッションの名前
  • finish: 実行を終了するかどうか

まとめ

ClearMLCallbackHandlerは、LangChainとClearMLを連携させるための強力なツールです。このクラスを使うことで、LangChainのモデルやチェーンの実行状態を自動的に記録し、ClearMLで可視化することができます。

本記事では、ClearMLCallbackHandlerの概要や初期化方法、主要なメソッドについて解説しました。ClearMLCallbackHandlerを使いこなすことで、LangChainの実行状態を詳細に分析し、モデルの性能を向上させることができるでしょう。

ぜひ、ClearMLCallbackHandlerを活用して、LangChainとClearMLを連携させてみてください。

参考サイト

LangChain | ClearML
If you are not already using ClearML, see Getting Started for setup
langchain_community.callbacks.clearml_callback.ClearMLCallbackHandler — 🦜🔗 LangChain 0.2.1

コメント

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