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

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

LlamaTraceを使ってみる

以前Arize Phoenixを使ってたりしました。

www.nogawanogawa.com

www.nogawanogawa.com

そんなArize Phoenixですが、どうやらLlamaCloudでLlamaTraceという名前で使えるようになっているらしいです。

ということで使ってみたいと思います。

LlamaTrace

サービスのサイトはこんな感じです。

phoenix.arize.com

アカウント作ればあとはSaaSとして使えるArize Phoenixです。

料金

サービスページ内を探してみましたが料金に関する記載がないのではっきりしたことはわかりませんでした。

一応Arizeの方のPricingを見る限り個人で使う分には無料っぽいです。 複数人で利用する際にはちょっとどの料金になるのかは不明です。

arize.com

自分は基本個人でしか使わないので別に良いんですが、利用される方はお気をつけください。

良いところ

個人的にはLlamaIndexを使うとき現状LangSmithを使えないので、その代用としては悪い選択肢ではないと思ってます。 Arize Phenix自体は個人的に使い勝手が良いと感じてますし、LlamaIndexを使うときのLLMOpsツールといった感じでしょうか。

基本的には数行書くだけで勝手にログが記録されていくので、RAG関連の実験結果の保存・管理をまるっとおまかせできる点が良いです。 Arize Phoenixと違ってSaaSなのでデータが消える心配も基本的にはありませんし、そういう意味で手軽に使える点は良いポイントですね。 (LangFuseでも良いと言われるとなにも言えませんが)

使ってみる

さて実際に使ってみます。

参考notebook

あまりちゃんとしたドキュメントがあるわけではないので、このへんのnotebookを参考にして使うのが楽そうです。

github.com

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を使ってみました。 使うだけなら簡単なんでぱっと使うには良いなと思いつつ、ドキュメントが整備されてないだけなのかちょっとまだ使いにくい感じでした。

もうちょっと使い方がわかれば使い勝手が悪いツールではなさそうなので、環境整備されたら再チャレンジしようと思います。