前回の記事では、LangChainにClearMLを統合する方法を紹介しました。今回は、その中で登場したClearMLCallbackHandler
について、より詳しく解説していきます。
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を連携させてみてください。
コメント