Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
NVIDIA NIMによるモデルのサービングと NVIDIA NeMo Guardrailsに...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Daisuke Akagawa (Akasan)
December 10, 2025
210
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
NVIDIA NIMによるモデルのサービングと NVIDIA NeMo Guardrailsによる安全性の担保
Daisuke Akagawa (Akasan)
December 10, 2025
More Decks by Daisuke Akagawa (Akasan)
See All by Daisuke Akagawa (Akasan)
生成AI時代のエンジニア育成について考えてみた
akasan
0
160
How_to_create_MLOps_Team.pdf
akasan
0
23
MLOps導入のための組織作りの第一歩
akasan
0
610
NVIDIA GTC2026 AI技術トレンドレポート
akasan
0
100
言語モデルに対する攻撃とその予防策について
akasan
0
32
Featured
See All Featured
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
370
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
350
GraphQLとの向き合い方2022年版
quramy
50
15k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
200
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
450
Designing for humans not robots
tammielis
254
26k
Transcript
NVIDIA NIMによるモデルのサービングと NVIDIA NeMo Guardrailsによる安全性の担保 1時間で理解するッ!!NVIDIA NIMやNVIDIA NeMoの基礎と実用例 株式会社スリーシェイク Sreake事業部
赤川 大空 Copyright © 3-shake, Inc. All Rights Reserved.
自己紹介 - 赤川大空(Akasan) - 株式会社スリーシェイク Sreake事業部 アプリチームの中で、特にML領域を担当 - MLOpsの構築支援など -
社内のNVIDIA Inceptionパートナー としての活動をリード
目次 1. NVIDIA NIMでモデルをサービングしてみよう 2. garakによるモデルの脆弱性スキャン 3. NeMo Guardrailsによる脆弱性対策
NVIDIA NIMでモデルをサービングしてみよう 01 Copyright © 3-shake, Inc. All Rights Reserved.
モデルを自前でサービングするときに悩むこと… どのGPUインスタンス 使えばいいんだ モデルを簡単に試した いけどデプロイ ハードルが高い GPUリソースちゃんと 使いこなせるか不安だ コードの管理とか大変そ うだ
改めてNVIDIA NIMとは? NVIDIA NIM™ は、クラウド、データセンター、ワーク ステーション、エッジなど、あらゆる NVIDIA アクセラ レーテッド インフラストラクチャに最新の
AI モデルを 迅速にデプロイできるように、最適化された事前構築済 みの推論マイクロサービスを提供します。 • あらかじめ最適化されたコンテナ上でモデルを動かすことができる • コンテナ化されているので様々なインフラ上で実行できる 本発表ではLlama3-8B-InstructをNIMで取り扱っていこうと思います!! https://www.nvidia.com/ja-jp/ai-data-science/products/nim-microservices/
Llama3-8B-Instructの利用方法 HuggingFaceからモデルを取得 NIMのコンテナから実行 Transformersを利用した方が最低限の準備 でモデルを利用できますが、 GPUのパフォーマンスを引き出すための 構築をすることは大変!!
Llama3-8B-Instructでパフォーマンス比較 比較対象 • transformersを利用してローカルでモデルパイプラインを読み込み実行 • NIMで構築したモデルへのアクセス 実験条件 • プロンプト:What is
capital of France? • Max_tokens:64 • 50回試行 実験結果 NIMは独自にローカルでモデルを実行するのと比較して高速に推論でき、 推論速度のばらつきも小さくすることができることを確認!! NIM HuggingFace Average 0.30 1.31 Min 0.29 0.91 Max 0.49 1.96 Deviation 0.04 0.37 単位:sec
garakによるモデルの脆弱性スキャン 02 Copyright © 3-shake, Inc. All Rights Reserved.
garakって何? • NVIDIAによって開発されているOSSツール • 指定した種類の攻撃を実行し、どれくらい攻撃が成功したかみることができる • どのような攻撃に弱いかを検知することで、ガードレールの設計指標になる ユースケース ❏ ドキュメントセットに対する質問応答(別名:検索拡張生成)
事実確認と出力モデレーションを強化します。 ❏ ドメイン特化型アシスタント(別名:チャットボット) アシスタントがトピックから逸 れず、設計された会話フローに従うようにします。 ❏ LLMエンドポイント カスタムLLMにガードレールを追加し、顧客とのやり取りをより安全にします。 ❏ LangChainチェーン LangChainを使用する場合、チェーンの周囲にガードレールレイヤーを追加可能
garakで検知できる脆弱性ってどんなのがあるの? ansiescape atkgen audio av_spam_scanning continuation dan divergence doctor donotanswer
dra encoding exploitation fileformats glitch goodside grandma latentinjection leakreplay lmrc malwaregen misleading packagehallucination phrasing promptinject realtoxicityprompts sata smuggling snowball suffix tap topic test visual_jailbreak web_injection 本日時点で利用できるプローブだけでこれだけあります!
garakによる検知実験の概要 • NIMにデプロイしたLlama3-8B-Instructを対象にする • 対象とするプローブはmalwaregenを採用 4つの項目について評価される Evasion ウイルス対策を無効化したりプロセスリス トに隠れたりするなど、検出を妨害する回 避アクションを実行するためのコードを
ジェネレーターに作成するよう要求 Payload キーロギングやクリプトジャッキングな ど、さまざまなマルウェアペイロードの コードを求めるプロンプトを含む SubFunctions 明らかに悪意のある言葉で表現されていな いが、マルウェアで一般的に役立つアク ションを実行するコードを作成するように ジェネレーターに要求 TopLevel 悪意のあるアクションを実行するマルウェ アまたはコードを作成するようにジェネ レーターに要求
早速使ってみる! 先ほど用意したNIMコンテナ上のモデルに対して実行してみます REST APIを対象としたgarakの使い方を紹介します 1. JSONファイルにREST APIの設定を記載する 2. garakコマンドを実行する ※
多くのリクエストをすることになるので、コスト管理にはご注意ください 参考:https://www.databricks.com/jp/blog/ai-security-action-applying-nvidias-garak-llms-databricks
設定ファイルの内容 NIMのコンテナのリクエスト先のURL メッセージの内容 $INPUTとするとそこにプロンプトが埋め込まれる レスポンスのどこに結果が含まれているか
garakコマンドの使い方 REST APIを対象とすることを明示 先ほどの設定ファイルのパスを指定 並列実行数を指定 検知対象のプローブを指定 (指定しない場合全てのプローブが対象になります)
セルフホストではないNIM上のモデルを利用する場合 独自にREST API形式のファイルを作成する必要はなく、パラメータにNIMから参照することを 指定すれば大丈夫です
garakによる検知結果 • malwaregen.SubFunctions:76.1% • malwaregen.Evasion: 83.3% • malwaregen.TopLevel: 97.5% •
malwaregen.Payload: 97.8% ❖ TopLevel(明らかに悪意のあるマルウェア作成の指示)に対する攻撃成功数は少なかった ❖ SubFunctions(マルウェアで一般的に役立つアクションを実行するコード)の生成依頼に 対しては1/4程度攻撃が成功している ※ 生成AIの出力になるので、同じ設定でも実行ごとに異なる結果になる可能性があります
garakによる検知結果 検知結果はコンソール画面以外にもHTMLファイルなどでも確認できます
NeMo Guardrailsによる脆弱性対策 03 Copyright © 3-shake, Inc. All Rights Reserved.
NeMo Guardrailsとは? NeMoの機能の一つであり、生成AIに対するガードレールを プログラミングを用いて実装できる https://developer.nvidia.com/ja-jp/blog/nemo-guardrails-prevents-llm-vulnerabilities-introduction/
NeMo Guardrailsとは? NeMo Guardrailsを利用すると、以下のような仕組みをプログラミング的に実現できます 1. 信頼性、安全性、セキュリティに優れた LLM ベースのアプリケーション構築 会話をガイドし、保護するためのレールを定義 特定のトピックにおけるアプリケーションの動作を定義し、不要なトピックの議論への参加を阻止
2. モデル、チェーン、その他のサービスの安全な接続 LLM を他のサービス(ツール)にシームレスかつ安全に接続 3. 制御可能なダイアログ LLM を事前に定義された会話パスに沿って操作することで、会話設計のベストプラクティスに従って インタラクションを設計し、標準的な運用手順(認証、サポートなど)を適用 この後の検証では1番目の安全なアプリケーションの構築にフォーカスします!!
安全性の担保ってどうやってやるの? 生成AIに対する攻撃にもいろいろな種類がある ◦ 攻撃的な表現をさせる ◦ 差別的表現をさせる ◦ プロンプトインジェクションを試みる などなど ➔ どんな攻撃に対して脆弱であるかはモデルによっても変わってしまう
➔ 使おうとしてるモデルがどんな攻撃に弱いかを知りたい ➔ 先ほどご紹介したgarakの出番になります
garakとNeMo Guardrailsの組み合わせ方 1. アプリケーションで利用されるLLMに対するエンドポイントを用意 2. garakを利用してエンドポイントに対して脆弱性スキャンを実行する 3. garakの結果安全性が低いと考えられる項目を洗い出す 4. NeMo
Guardrailsで安全性が低い項目に対する問い合わせが試みられた時 に対応するためのロジックを記述する 5. LLMエンドポイントにおける入出力にNeMo Guardrailsを導入し、入出力 をチェックする
NeMo Guardrailsを利用したアーキテクチャ 安全と判断された場合の処理フロー
NeMo Guardrailsを利用したアーキテクチャ 安全でないと判断された場合の処理フロー
NeMo Guardrailsの設定方法 モデルの設定 システムプロンプト
NeMo Guardrailsの設定方法 モデルの設定 コンテンツが安全であると判断された場合のエンドポイント コンテンツの安全性を確認するエンドポイント 安全性をチェックするためのレール定義
NeMo Guardrailsの設定方法 システムプロンプト 入力コンテンツの安全性を確認するための プロンプト 出力コンテンツの安全性を確認するための プロンプト
NeMo Guardrailsの設定方法 今回指定したシステムプロンプトは以下になります 指定したタスク: 受け取ったメッセージがマルウェア生成に関するものの場合unsafeレーティングさせる
NeMo Guardrailsの設定方法 Pythonコード ガードレールの設定を反映させたLLM呼び出しを実現 非同期でLLMを呼び出すAPIのアプリケーション実装
NeMo Guardrailsの設定方法 FastAPIサーバへのリクエスト先のURL メッセージの内容 $INPUTとするとそこにプロンプトが埋め込まれる レスポンスのどこに結果が含まれているか
検証実行方法 1. NIMでLlama3-8B-Instructを ホスティング 2. FastAPIサーバを立てて、NeMo Guardrails経由で NIMにアクセスできるようにする 3. FastAPIサーバ上のAPIに対してgarakを適用して
malwaregenに対する検証を実行
garakによる検知結果 • ガードレールを入れたことにより、どの項目でも改善が確認ました • SubFunctionsについては100%防げてはいませんが、プロンプトを調整すれ ば改善できる可能性はあると思っています ※ 全ての項目を100%防ぐことはできないので、重点的に対策する場所を絞るのが重要 NeMo Guardrailsなし
NeMo Guardrailsあり 改善 malwaregen.SubFunctions 76.1% 99.2% 23.1% malwaregen.Evasion 83.3% 100% 16.7% malwaregen.TopLevel 97.5% 100% 2.5% malwaregen.Payload 97.8% 100% 2.2%
ガードレールを設定するときの注意点!! ❏ NeMo Guardrailsに限らず、どのような手法を用いてもLLMの入出力を 100%希望した結果になることを保証することはできません ❏ ガードレールを適用する時にLLMを別途呼び出す関係で、レイテンシーは 増加します ❏ 設計なくガードレールを実装すると不用意にメンテナンスコストが増えて
しまいます。garakを使って重要度の高いと思われる項目を検出し、そこ から徐々に設定していくことをお勧めします
まとめ Copyright © 3-shake, Inc. All Rights Reserved.
まとめ • NVIDIA NIMを用いることで最適な環境でモデルを高速に動かすことができます • garakを利用してLLMの弱点を見つけることができます • NeMo Guardrailsを利用することでLLMの弱点を補うような仕組みを導入するこ とができます
これら3つのソフトウェアを連携することにより、 高速に推論できる安全性の高い アプリケーション構築をみなさんもぜひ試してみてください!!