0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Langfuseで回すLLMops

0
Posted at

はじめに:

LLMops(LLM運用) についてまとめます。
LLMは「動けば終わり」ではなく、継続的に性能とコストを管理する運用設計が必要です。

※ この内容は、習慣設計アプリ「Routune Hub」を作った経験をベースにしています。
image.png


1. LLMopsとは(ざっくり)

LLMopsは、LLMを使った機能を「安全に・安定して・改善し続ける」ための運用設計です。

一言で言えば:

「LLMの“挙動”と“品質”を、継続的に管理する仕組み」

従来のMLOpsやDevOpsと似ていますが、LLM特有の課題が強く出ます。

  • 出力が非決定的で、品質が揺れる
  • プロンプトやツールの変更で性能が大きく変わる
  • コスト/レイテンシ/安全性がトレードオフになる

2. なぜLLMopsが必要なのか

LLM機能は実装後からが本番です。
プロンプトやデータ、評価軸が変わるたびに品質が揺れます。

よくある“運用事故”

  • ある日突然、回答が冗長・曖昧になる
  • 精度が落ちたのに気づくのが遅れる
  • コストが急増する(推論回数/トークン増)
  • セキュリティ/安全性の問題(危険な出力や漏洩)

「動いてるけど信用できない」 が最大の敵です。


3. LLMopsで扱う領域(全体像)


3.1 プロンプト・ツールの設計

  • 入力/出力フォーマットの固定(型 or JSON)
  • ツールの責務分離(検索・DB参照など)
  • “やってはいけないこと”の明示

3.2 評価(Evaluation)

  • ゴールデンデータ(期待出力のサンプル)を用意
  • 回答の精度/一貫性/安全性をスコア化
  • 変更前後で比較(回帰テスト)

3.3 監視(Observability)

  • プロンプト、入出力、レイテンシ、コストを記録
  • 失敗パターンを可視化
  • “劣化を検知” できる状態にする

3.4 Langfuseで回すLLMopsサイクル

3.4.1 Traces 一覧(実行ログの全体像)

image.png

  • どのワークフローが、いつ、どの入力で走ったかを俯瞰
  • 失敗/遅延/異常の検知が最初に起きる場所

3.4.2 Trace 詳細(入出力の現物)

image.png

  • 「何が入力され、何が返ったか」をその場で追える
  • 失敗パターンの特定が早くなる

3.4.3 Scores(評価の定量化)

image.png

  • LLM as a Judge(後述) / 人間評価の結果が可視化される
  • 改善対象のTraceを素早く抽出できる

3.4.4 Prompts(プロンプト管理)

image.png

  • プロンプトの変更履歴とバージョンを管理
  • 変更がスコアにどう影響したかを追跡可能

3.4.5 Datasets(評価用入力の固定)

image.png

  • 「同じ入力」で比較できるようにして評価の再現性を確保
  • 回帰テストの基盤になる
  • 実際のTracing・擬似で作成したデータどちらも可能

3.4.6 Experiments(改善前後の比較)

image.png

  • 変更前後でレイテンシ・コスト・Scoreが上がったかを確認
  • 「改良か改悪か」を定量で判断

4. Routune HubでのLLMopsの実践例

4.1 分業エージェント + 型で制御

Mastraで 役割分割 しつつ、入出力の型で暴走を防止しました。

const OptimizerInput = z.object({
  calendar: z.array(z.string()),
  constraints: z.array(z.string())
});

const OptimizerOutput = z.object({
  optimizedSchedule: z.array(z.string()),
  rationale: z.string()
});

4.2 Langfuseでログ + 評価

Langfuseで プロンプト/入出力/時間/コスト を追跡。
評価セットに対して定期的に比較し、劣化を検知しました。

langfuse.trace({
  name: "routine-optimization",
  input,
  output,
  metadata: { latencyMs, model, cost }
});

4.3 LLM as a Judge(実運用での評価設計)

AIの回答を別のAIが採点する仕組みです。
ワークフローの最後に評価Agentを配置することで、本番環境の回答品質を自動評価できます。

image.png

AIによる評価と人間の評価を組み合わせることで、より信頼性の高い評価が可能になります。


5. LLMopsで大事な考え方(実践メモ)

5.1 “LLMは不安定”が前提

  • 完璧な正解はない
  • 出力は確率的に揺れる
  • だからこそ 観測と評価が最重要

5.2 変更は必ず比較する

  • プロンプト変更 = モデル変更と同じレベルの影響
  • 小さな変更でも 回帰評価 を通す

5.3 人間のレビューも必要

  • 自動評価だけでは拾えないニュアンスがある
  • 最終的な品質判断は人間
  • Langfuse の Score で判断を残す

6. 詳細ドキュメント(公式参照)

LLMOps(IBM): https://www.ibm.com/jp-ja/think/topics/llmops
Langfuse: https://langfuse.com/docs

まとめ

LLM機能は 「作って終わり」ではなく「育てていくもの」 です。
そのための運用設計がLLMopsであり、
品質・安全性・コストを継続的に管理する仕組み が重要になります。

Mastraのようなフレームワークと、
Langfuseのような観測基盤を組み合わせると
LLMopsの土台が作りやすくなるのでおすすめです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?