Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OpenLLMetryとInstanaで始める大規模言語モデル(LLM) と AIアプリケー...

OpenLLMetryとInstanaで始める大規模言語モデル(LLM) と AIアプリケーションの AI Observability入門

Instanauts_jp#4 みんなのInstana
OpenLLMetryとInstanaで始める大規模言語モデル(LLM) と AIアプリケーションのAI Observability入門

2024年3月7日の Instanaのユーザー会:Instanauts_jp でお話しした資料です。
https://instanautsjp.connpass.com/event/309401/presentation/

watsonxやChatGPTなどの大規模言語モデル(LLM)とAIアプリケーションが急速に普及している現代において、これらの技術の監視とパフォーマンス管理の重要性が高まっています。OpenLLMetryとInstanaを使用したLLMの監視・モニタリングについてお話ししました。

#OpenLLMetry #OpenTelemetry #Instana #Observablity

Daisuke Hiraoka

March 10, 2024
Tweet

More Decks by Daisuke Hiraoka

Other Decks in Technology

Transcript

  1. ©2024 IBM Corporation ⾃⼰紹介 平岡 ⼤祐 (Daisuke Hiraoka) ⽇本アイ・ビーエム株式会社 テクノロジー事業本部

    Automation TechSales / IBM Champion Japan Leader @HiraokaDaisuke n 楽しい課外活動 p コミュニティ運営 p Instanauts_jp p 紙型AIロボット TJBot p IBM Champions 2 2024年4⽉14⽇(⽇)に紙型AIロボット TJBotの 組み⽴てワークショップ開催します。 興味のある⽅はお声がけください。 今年は、TJBotの⾝体検査も Instanaでやってみたい
  2. 2024, IBM Champions, © 2024 IBM Corporation 3 IBM Champion

    IBM Championは、技術コミュニティやセミナーなど で、技術コンテンツの提供や発信、講師、技術コミュニ ティのリーダーシップなどの活動を積極的におこなって いただいたり、IBMにご助⾔いただけるお客様やビジネ スパートナー様への認定制度です。 IBM Championは社員ではなくて、お客様やビジネス パートナー様が対象です。 experts | advocates | leaders “IBM Champion”とは “IBM Champion”選考基準 過去12ヶ⽉のIBMテクノロジーに関するセミナー登壇や 情報発信、技術コミュニティのリーダーシップ等の活動 内容に基づくIBM Champion選考委員会による選考。 (質の⾼い10件以上の活動を推奨)
  3. IBM Champions, © 2024 IBM Corporation 4 IBM Rising Champions

    Program “IBM Rising Champion”とは IBM Champion へのステップとして過去12⽉の活動を対象に通年申請できる認定Programで 活動数に応じた IBM Contributor / IBM Advocate / IBM Influencer の3種類 IBM Contributor IBM Advocate IBM Influencer 活動数 2 • 2件の活動のエビデンス を提出 • 認定されると 「IBM Contributor 」の ステータス通知、Credly を通じてバッジを受け取 ることができます。 活動数 5 • IBM Contributorの活動に 加えて3件エビデンス提出 (合計5件) • 認定されると「IBM Advocate」のステータス 通知、Credly を通じて バッジを受け取ることがで きます。 活動数 8 • 2件の活動のエビデンスを 提出 • 認定されると 「IBM Contributor 」のス テータス通知、Credly を 通じてバッジを受け取るこ とができます。
  4. ©2024 IBM Corporation • 現在、⽣成AIに関する関⼼が⾼まっており、⼤規模⾔語モデル(LLM)を活⽤し たAIアプリケーションの利⽤が増えています。 • 今回は、この⽣成AIに関するInstanaの新しい機能(オープンベータ) について ご紹介します。

    • このセッションでは、新機能についてご理解を深めていただき、ご意⾒や ご要望をいただくことで、今後の機能改善に繋げていきたいと考えています。 このセッションについて 5
  5. ©2024 IBM Corporation ⽣成AIってこんなことに使われる 抽出 Extract 分類 Classify ⽂書要約 Summarize

    抽出 Generate 質疑応答 Q&A コード⽣成 Code 翻訳 Translation 膨⼤なドキュメントやSNS から特定の固有表現を抽出 (ブランド、製品、⼈物、 ⼟地、企業など) 書類から重要な部分を抽出 抽出 顧客のレビューのトピック 分類 ユーザーの感情分析 分類 報告書や記事など、⻑い⽂ 章を短時間で要約 会議やセッションなどの 議事録を要約 ⽂書要約 報告書や記事の作成 広告コンテンツやSNS投稿 をユーザーに代わって⽣成 テキスト ⽣成 ⾃社サービス/製品などの FAQ対応を⾃動化 社内資料の情報を効率的に 検索、抽出 質疑応答 開発者のコード開発を⽀援 コードの説明ドキュメント の⾃動⽣成 コード ⽣成 顧客サポートの多⾔語対応 グローバル市場調査に際す る外国語テキストの翻訳 翻訳 7
  6. ©2024 IBM Corporation 1. Instanaの内部で⽣成AI技術を使⽤するケース 1. Summary and reporting the

    incident status 2. Root Cause Diagnosis⾃動化 3. Action⾃動化: Ansible EDA + Watson Code Assistant + Ansible Light Speed 2. ⽣成AI技術を活⽤している⼈・システムを⽀援する ⽣成AIとInstanaの関わり : ユースケースの整理 8
  7. ©2024 IBM Corporation みんなのInstana : ペルソナの整理 1. IT運⽤者 2. 設計者

    3. アプリ開発者 4. テスト実施者 5. エンドユーザー(アプリ/サービス利⽤者) 6. AIエンジニア など ⽣成AI技術を活⽤している⼈・システムを⽀援する 本⽇はAIエンジニアをフォーカス 9
  8. ©2024 IBM Corporation • 不透明性(ブラックボックス性) • LLMの内部処理の複雑さと理解の難しさ (モデルがどのように結果を導き出したのかを明らかにするのは困難) • 出⼒の予測不可能性

    • 単⼀の単語を 変更するだけで異なる結果を得られる可能性がある • 性能の変動性 • 特定のプロンプトやAPIリクエストによっては、処理時間が不安定になり遅延発⽣ • コストの不透明性 • プロンプトやAPIリクエストの実⾏時に消費されるトークン量を正確に追跡することは困難 • 使⽤量に基づくコストの⾒積りが不透明になりがち 大規模言語モデル(LLM) を活用したAIアプリケーションの現状課題 質問を⼊⼒ 回答を出⼒ 学習 学習データ 外部サービス 質問を⼊⼒ 回答を出⼒ 10
  9. ©2024 IBM Corporation OpenLLMetry (Observability over LLM application) IBM Instana

    LLMプロバイダー ベクトル データベース ⽣成AI フレームワーク watsonx OpenAI HugingFace Cohere Bedrok Replicate Vertex AI Anthropic Pinecone Chroma Weaviate Milvus LangChain LlamaIndex Haystack LiteLLM InstanaはオープンソースのOpenLLMetryを活⽤して、 ⽣成AIが組み込まれたLLMアプリケーションの可観測性を強化します。 11
  10. ©2024 IBM Corporation • LLMアプリケーションの監視とデバッグを簡単に開始可能 • OpenTelemetryに LLMの出⼒とデバック機能を拡張したOSS • IBMもOpenLLMetryに積極的に貢献

    • Instana は既に OpenTelemetry をサポート • OpenTelemetry を使⽤してメトリクス、トレース、ログを収集可能 OpenLLMetry (Observability over LLM application) https://github.com/traceloop/openllmetry 12
  11. ©2024 IBM Corporation できること: LLMアプリケーションのトレース • LLMアプリ全体でのリクエストのエンドツーエンドのトレース • 呼び出し単位で、質問(⼊⼒)、回答(出⼒)、使⽤モデルを確認可能 •

    呼び出し単位で、トークン消費量を確認可能 回答(出⼒) トークン消費量 呼び出しを時系列で表⽰ エラー箇所を特定 使⽤モデル 回答(出⼒) API Endpoint プロンプトやAPIリクエスト の処理時間を特定 13
  12. ©2024 IBM Corporation (補足説明) トークン消費量の追跡 • LLMで⽂章を読み書きするとき「トークン」という単位で認識 • watsonxやOpenAIは使⽤モデルの利⽤単価とトークン消費量によって使⽤料⾦を決定 •

    ダッシュボードで利⽤料がわかるが、 個々のトークン消費に伴う料⾦特定は難しい • 低コストで運⽤するためには、トークン数と⽂字数の把握が⼤事 https://platform.openai.com/tokenizer 使⽤モデルにおける利⽤単価($ / token) ⼊⼒トークン(token) + 出⼒ トークン(token) ✖ Tokenizer (OpenAI) テキストをトークンに分割し可視化するツール OpenAIのダッシュボード OpenAIの利⽤料⾦の算出⽅法 管理者は誰がどの アプリでトークン を消費したかは特 定できない 15
  13. ©2024 IBM Corporation アプリ実⾏環境 OpenTelemetry OpenLLMetry OpenLLMetryとInstanaの構成と導⼊⼿順 17 Instana バックエンド

    otlp exporter otlp/grpc:4317 or otlp/http:4318 Instana エージェント HTTP/2 watsonx OpenAI LangChain LLM アプリケーション ※Instanaエージェントを介さずに 直接 Instanaバックエンド送ることも可能 ⼿順は2ステップ 1. Instana エージェントのOpenTelemetry有効化 2. LLMアプリケーションへのOpenLLMetryのSDK導⼊、コード計装
  14. ©2024 IBM Corporation 1. InstanaエージェントのOpenTelemetryデータの受信はデフォルトで無効に なっているため、有効化します。 • grpcを有効にすると4317ポートでListen • httpを有効にすると4318ポートでListen

    以下のファイルを/opt/instana/agent/etc/instana/に配置することで configuration.yamlを変更せずに有効化できます Instana エージェントのOpenTelemetry有効化 (1) 18 cat <<EOF > configura0on_otel.yaml com.instana.plugin.opentelemetry: grpc: enabled: true h>p: enabled: true EOF https://www.traceloop.com/docs/openllmetry/integrations/instana
  15. ©2024 IBM Corporation 2. Instanaエージェントの再起動 systemctl restart instana-agent.service 3. OpenLLMetryからInstanaエージェントに接続するための環境変数設定

    • grpc 4317ポートでListenしている場合 TRACELOOP_BASE_URL=<instana-agent-hostname>:4317 • http 4318ポートでListenしている場合 TRACELOOP_BASE_URL=<instana-agent-hostname>:4318 • InstanaのAgentKeyの設定 TRACELOOP_HEADERS="Authorization=Api-Token%20<Agent Key>" Instana エージェントのOpenTelemetry有効化 (2) 19
  16. ©2024 IBM Corporation 1. Sampleコードの⼊⼿ (サンプルコードを試したい場合のみ) 1. git clone https://github.com/traceloop/openllmetry

    2. cd openllmetry/packages/sample-app/sample_app 2. SDKのインストール ( SDK導⼊時に、OpenTelemetryもインストール) pip install traceloop-sdk 3. langchainのコードへの計装 (2つの⾏をコードに追加するのみ) from traceloop.sdk import Traceloop Traceloop.init(app_name="langchain_example") OpenLLMetryの導⼊ ( LLMアプリケーションへの計装 ) 20 https://github.com/traceloop/openllmetry
  17. ©2024 IBM Corporation • OpenLLMetry、InstanaによりLLMアプリの監視とデバッグが容易に始められる • AIエンジニアが直⾯する以下の課題への対処が可能になる • ブラックボックスによる不透明性 :

    モデルの判断基準が不透明 • 出⼒の予測不可能性 : 単語の変更で結果が変わる可能性 • 性能の変動性 : 処理時間の不安定性や遅延 • コストの不透明性 : 消費トークン量の追跡が困難で、使⽤量に基づくコスト⾒積もりが不透明 • Instanaは、 LLMアプのオブザーバビリティ向上に向け、 OpenLLMetry、OpenTelemetry等のOSSコミュニティへの貢献しています • これらの機能は、Instanaを利⽤する全ての⽅が⾃由に利⽤できます。 ぜひお試しいただきフィードバックをお寄せください。 まとめ 21 InstanaにAIエンジニアの 仲間を増やすチャンス!