以前Arize Phoenixを使ってたりしました。
そんなArize Phoenixですが、どうやらLlamaCloudでLlamaTraceという名前で使えるようになっているらしいです。
We’re excited to feature LlamaTrace - a collaborative effort with @arizeai to introduce advanced LLM tracing, observability, and evaluation for any LLM application workflows 🦙🔥
— LlamaIndex 🦙 (@llama_index) 2024年7月11日
There are of course many great tools for LLM tracing/evals, and we have great integrations with many… pic.twitter.com/tjd93G8YK6
ということで使ってみたいと思います。
LlamaTrace
サービスのサイトはこんな感じです。
アカウント作ればあとはSaaSとして使えるArize Phoenixです。
料金
サービスページ内を探してみましたが料金に関する記載がないのではっきりしたことはわかりませんでした。
一応Arizeの方のPricingを見る限り個人で使う分には無料っぽいです。 複数人で利用する際にはちょっとどの料金になるのかは不明です。
自分は基本個人でしか使わないので別に良いんですが、利用される方はお気をつけください。
良いところ
個人的にはLlamaIndexを使うとき現状LangSmithを使えないので、その代用としては悪い選択肢ではないと思ってます。 Arize Phenix自体は個人的に使い勝手が良いと感じてますし、LlamaIndexを使うときのLLMOpsツールといった感じでしょうか。
基本的には数行書くだけで勝手にログが記録されていくので、RAG関連の実験結果の保存・管理をまるっとおまかせできる点が良いです。 Arize Phoenixと違ってSaaSなのでデータが消える心配も基本的にはありませんし、そういう意味で手軽に使える点は良いポイントですね。 (LangFuseでも良いと言われるとなにも言えませんが)
使ってみる
さて実際に使ってみます。
参考notebook
あまりちゃんとしたドキュメントがあるわけではないので、このへんのnotebookを参考にして使うのが楽そうです。
API
サービス画面上にAPIのページがあるので、そこでKeyを取得します。
実際に使うのは
"api_key="
の後ろにAPI_KEYをつなげて使います。(環境変数のOTEL_EXPORTER_OTLP_HEADERS
に設定する)
やること
ツールとしてはこのへんをインストールします。
!pip install -q llama-index-callbacks-arize-phoenix
コードとしてはこんな感じでAPI_KEYを設定すると、あとは普通に使うだけで保存されます。
# setup Arize Phoenix for logging/observability import llama_index.core import os os.environ["OTEL_EXPORTER_OTLP_HEADERS"] = userdata.get('OTEL_EXPORTER_OTLP_HEADERS') llama_index.core.set_global_handler( "arize_phoenix", endpoint="https://llamatrace.com/v1/traces" )
あとは普通に実行するとかってにTraceされていきます。
出力画面
画面はArize Phoenixと同じですね。 ポチポチしながらプロンプトがどうなってるか、検索されたcontextがどうなってるかを確認することができます。
使ったコード
こんな感じで書いてみました。
あんまわかんなかったこと
プロジェクトをどうやって分けるのかが良く分からなかったです。 自分の場合はRAGの実装のバージョンをプロジェクトか何かで分けて結果を保存したくなるんですが、そのやり方がいまいち分からなかったです。
やり方分かる人いたらこっそり教えて下さい…
参考文献
下記の文献を参考にさせていただきました。
感想
ひとまずLlamaTraceを使ってみました。 使うだけなら簡単なんでぱっと使うには良いなと思いつつ、ドキュメントが整備されてないだけなのかちょっとまだ使いにくい感じでした。
もうちょっと使い方がわかれば使い勝手が悪いツールではなさそうなので、環境整備されたら再チャレンジしようと思います。