はじめに
LangtraceというLLMOpsサービスを最近知ったのですが、日本語の記事がなかったので、ちょっと触ってみて記事化しました。
Langtraceとは
LLMの運用監視サービス。2行書くだけでOK。運用監視に必要な情報を収集してくれます。
from langtrace_python_sdk import langtrace
langtrace.init(api_key=<your_api_key>)
Scale3 Labsという会社のサービスで、langchainとは関係ないみたい。
ChromaDB、Pinecone、weavite等の検索Vectorサービスのトレースもサポートしているようです。
アイコン画像は公式HPより引用
Scale3 Labsとは
Scale3 Labsは、Web3インフラストラクチャ向けの先進的なDevOpsプラットフォームを提供する企業です。
2022年10月に5.3百万ドル(約7億円)のシード資金調達に成功しています。
同社のHPからは、Google等の有力企業からサポートと評価を得ていることが伺えます。
競合比較
LLMOpsサービスとしてLangsmithやlangfuse等がありますが、何が違うのでしょうか。
特徴/機能 | LangSmith | Langtrace |
---|---|---|
提供元 | langchain | Scale3 Labs |
提供開始 | 2023/7 (非公開ベータ), 2024/2 (GA) | 2024/2 |
提供形態 | フルマネージド(Enterpriseプランでセルフホスト可能) | オープンソース、セルフホスト可能 |
主な機能 | 開発、コラボレーション、テスト、デプロイ、モニタリング | トレースとメトリクスの収集と分析 |
サポートするLLM | LangChain、OpenAI、Anthropic、Cohereなど | OpenAI、Anthropic、Perplexity、Groq、Cohere、LangChain、LlamaIndexなど |
トレース管理 | トレースの共有、バージョン管理、コメント機能 | OpenTelemetry標準に基づくトレースの収集と分析 |
データセット管理 | データセットの作成、評価、ファインチューニング用データセットの構築 | トレースデータを用いたデータセットの作成と評価 |
コラボレーション機能 | チームメンバーとのコラボレーション、アノテーションキュー | フィードバックループの確立、ゴールデンデータセットの作成 |
デプロイ機能 | LangServeを使用したワンクリックデプロイ | - |
モニタリング機能 | コスト、レイテンシ、品質のモニタリング | トレースとメトリクスの可視化と分析 |
セキュリティ | トレースデータはGCP us-central-1に保存、データは暗号化 | セルフホスト可能、OpenTelemetry標準に基づくトレース |
価格 | Plus: $39/人月、Enterprise: 要相談 | 無料(現在はフィードバック収集のため) |
ドキュメント | 公式ドキュメントが豊富 | オープンソースコミュニティによるドキュメント |
SDKサポート | Python、TypeScript | Python、TypeScript |
統合 | LangChain、OpenAI、Anthropic、Cohereなど | LangChain、OpenAI、Anthropic、Cohere、LlamaIndex、Pinecone、ChromaDBなど |
LangSmithは、エンタープライズ向けのフルマネージドプラットフォームとして、開発からデプロイ、モニタリングまでを一貫してサポートする一方、Langtraceはオープンソースでセルフホスト可能なツールとして、トレースとメトリクスの収集と分析に特化しています。
Langtraceはオープンソース、セルフホスト可能という点でlangfuseと共通していますが、setupの容易性とベクター検索DBを含めたトレース情報の提供という点で違いがあるようです。
Langtraceやってみた
個人開発でトレンドの技術情報を毎朝配信するpodcastを自動配信で運営していて、langgraphでworkflow構築して中でLLM使っていて、Langtraceがlanggraphもサポートしているので、試しに入れて動かしてみました。
動かしてみるとエラーが発生しました。pydanticを使っているとv2を使ってないとエラーになるみたいです。
File "/home/test/hello-zundamon-aiagent-podcast/.venv/lib/python3.11/site-packages/langgraph/graph/state.py", line 161, in add_node
return super().add_node(node, action)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/test/hello-zundamon-aiagent-podcast/.venv/lib/python3.11/site-packages/langtrace_python_sdk/instrumentation/langgraph/patch.py", line 59, in traced_method
for field, value in attributes.model_dump(by_alias=True).items():
^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'FrameworkSpanAttributes' object has no attribute 'model_dump'
pydantic v2にupdateしたら解消しました。
trace
特に何もしてないのですが、langgraphのworkflowを動かしてみるとLLMの入力と出力が記録されてました。いいですね。
gpt-4o、cohere、perplexityは自動で記録されているのを確認しました。geminiのLLM入出力が記録されていなかったですが、将来対応予定とのことです。楽しみに待ちましょう。
また、langgraphのnode毎のstateが自動でログに記録されているので便利です。
metrics
入力と出力のtoken数とコスト、リクエスト回数、リクエストLatencyが時系列で表示されます。(昨日いれたばっかりなので時系列グラフが生きてくるのはこれからですね)
使ってみた感想
簡単に初めてみたいというにはとても良いと思いました。何か悪さしてはずしたい時も、コードを2行削除するだけですみますし。
本番配信はgithub actionsのworkflowをcron実行で回しているのですが、エラーがおきた時にgithub actionsのログにらめっこしたり、手元で動かしていると中間ファイルを出力していて中間ファイルで入出力がわかるのですが、github actionsだと途中の状態を中間ファイルがわからず、見ようと思うとartifactで固めないと見れなかったりで、このあたりとても面倒くさいので、これあるととても助かると思いました。
今回は検索Vectorサービスのトレースはお試し出来なかったですが、何か無理やり理由見つけてサービスアップデートして試してみたいです。(これが本当の監視駆動開発!?)
おわりに
ビギナーエンジニア向けにトレンドの技術情報を毎朝配信するpodcastやってますので、まだ品質が安定していないところがありますが、よろしければpodcast登録してみてください。
ちなみに、今日はちょうど試験配信開局から1か月、25回目の配信でした。
参考リンク
Langtraceの公式ブログ
オープンソース開発
開発勢いがあり毎日のようにcommit&release tagが作られている。