Re:ゼロから始めるML生活

どちらかといえばエミリア派です

Arize PhoenixのTraceを永続化させてColabで読み出す

前にArize Phoenixを使ってみてました。

www.nogawanogawa.com

Arize Phoenixを使うときに実験の記録が永続化できると非常に便利なんで、試しにやってみたのでそのメモです。

Arize PhoenixのTrace永続化

Arize PhoenixのTraceのDriveに保存

自分の場合はGoogle Colabでガチャガチャいじることが多く、Google Drive上にTrace情報を残してみたいと思います。

docs.arize.com

例えばこんな感じにTraceを作ったとします。

これをこんな感じにDriveに保存できます。

#@title Traceの保存

import os

# Specify and Create the Directory for Trace Dataset
directory = '保存先'
os.makedirs(directory, exist_ok=True)

# Save the Trace Dataset
trace_id = px.Client().get_trace_dataset().save(directory=directory)

Driveにこんな感じで保存できてればOKです。

ロードして使ってみる

今度は保存したtraceを呼び出してArize Phoenixのサーバーを再開してみます。

#@title arize phoenix用のサーバーを起動
import phoenix as px
directory = '保存先'
id = "保存時に出たID"

px.launch_app(trace=px.TraceDataset.load(id, directory=directory))

表示されるURLから、保存したTraceの状態を確認することができました。

よく分からなかったところ

一点注意というかやり方がわからなかったんですが、前回やったようにQueryFusionRetrieverを使うとなぜかTraceが保存できませんでした。 (保存時にtime outになる)

特にissueとかも立ってなかったので、自分のやり方が悪いのかもしれません。 気が向いたら今度直してみようと思います。

使用したnotebook

一応、今回使用したnotebookはこんな感じです。

保存に使用したのはこちらのnotebookです。

保存されたTraceを読み出してサーバーを立てるのに使ったのはこちらです。

感想

これでGoogle Colab上で行った実験をDriveに保存できるようになったので、Google Driveへの課金を除けば無課金で実験管理ができるようになりました。 重厚長大にやるならLangSmithやLangfuseを使うのが楽そうと思いつつ、ぱっとColabで実験管理を試すだけならArize Phoenixでも十分できるようになってきた感じはあります。

最近「Arize Phoenixを使ってるの、日本で自分だけなんじゃないか?」と思うようになってきましたが、そこまで不都合も感じていないので引き続き使っていこうと思います。