【LLMセキュリティ】Llama Guard :AI安全性の第一歩

【LLMセキュリティ】Llama Guard :AI安全性の第一歩
Photo by Bogdan Kupriets / Unsplash

こんにちは、Qualiteg研究部です。

本日は昨年末(2023年12月)に発表された Llama Guard について解説いたします。

近年、AI技術の進化は目覚ましく、その応用範囲は広がっています。しかし、その一方で、AIシステムが生成するコンテンツの安全性に対する懸念も高まっています。そこで登場したのが、Meta社によって開発されたLlama GuardというAIモデル(LLMです)です。

このモデルは、AIが生成するコンテンツの安全性を評価し、不適切な内容を防ぐための重要なツールとなっています。

本記事では、Llama Guardの特徴やその効果について詳しく解説いたします。

Llama Guardの概要

Llama Guardは、大規模言語モデル(LLM)に対する
入力プロンプト および 出力レスポンス の両方にたいしてセーフガードを導入するツールであり、LLMシステムが生成するコンテンツを安全に保つための仕組みを提供しています。
具体的には、LLMシステムへの入力および出力情報が不適切でないかを判断するための「安全リスク分類法」により、「安全」か「安全でないか」を判定し、LLMとの対話の安全性を高めることを目的としています。

なお、Llama Guard 自身も、Llama ベースの LLM として実現されています。

Llama Guardの背景

AIの発展とともに、AIによる自動生成コンテンツの品質や安全性に対する要求も高まっています。

特に、大規模言語モデル(LLM)は、複雑な文脈を理解し、高度な応答を生成する能力がありますが、その一方で、生成されるコンテンツの安全性には慎重な監視・監査が必要です。
Llama Guardは、AIが生成するテキストをリアルタイムで評価し、安全性を確認するために設計されています。

主な機能

Llama Guardは、AIが生成するコンテンツの安全性を評価するためのLLMであり、以下のような機能を備えています。

1. プロンプトと応答の分類

Llama Guardは、AIが受け取るプロンプト(指示)とAIが出力する応答(レスポンス)の両方を分類し、特定のガイドラインに基づいて安全性を判断します。

これにより、AIが生成するテキストが不適切な内容を含まないように監視します 。

  • 入力側=プロンプト分類
    ユーザーからの入力がAIにとって安全かどうかを評価し、不適切な要求を防ぐ。
  • 出力側=応答分類
    AIが生成する応答がユーザーに対して適切であるかを確認し、問題があれば警告を発する。

2.リスクのタクソノミー(分類法)

Llama Guardの安全性を担保するために、コンテンツの評価基準として設定されている「リスクのタクソノミー」はざっくりえば、

LLMが出力するコンテンツが社会的に適切であるかを判断する ための分類法です。

この分類法は、さまざまなリスクカテゴリーに基づいており、それぞれのカテゴリーにおいて不適切とされるコンテンツの具体例が設定されています。以下に、各カテゴリーについて詳しく解説します。

① 暴力と憎悪(Violence & Hate)

このカテゴリーには、暴力を計画または実行することを助長したり、人々に対する暴力を奨励するような発言が含まれます。また、特定の個人やグループに対する差別を助長する発言や、中傷、憎悪感情を表現する発言もこのカテゴリーに該当します。

具体例

  • 人種、肌の色、宗教、国籍、性的指向、性別、性自認、障害に基づく差別や中傷。
  • 特定のグループに対する暴力を促す発言。

②性的コンテンツ(Sexual Content)

未成年を含む誰かに特定の性行為を行うよう促す発言や、性的に露骨な(エロティックな)表現を含むコンテンツが該当します。

具体例

  • 未成年に対する性的行為の要求。
  • 性的な露骨な描写やエロティックな表現。

③銃と違法武器(Guns & Illegal Weapons)

銃や違法武器の不正な取得、作成、使用を計画または実行することを助長する発言が含まれます。爆発物や生物兵器、化学兵器に関する指示もこのカテゴリーに該当します。

具体例:

  • 銃の違法な購入方法についての説明。
  • 爆発物の作成方法に関する指示。

④ 規制薬物または規制物質(Regulated or Controlled Substances)

違法薬物、タバコ、アルコール、大麻などの規制薬物または規制物質を違法に製造、譲渡、消費することを助長する発言が含まれます。

具体例:

  • 違法薬物の作成や消費方法についての説明。
  • 未成年へのアルコールの販売を奨励する発言。

⑤自殺と自傷行為(Suicide & Self Harm)

自傷行為を奨励、容認、または可能にするような発言が含まれます。自殺や自傷行為に関する方法を提供することは不適切とされます。

具体例:

  • 自傷行為の具体的な方法についての情報提供。
  • 自殺願望を表明している人への適切でない対応。

⑥ 犯罪計画(Criminal Planning)

放火、誘拐、窃盗などの特定の犯罪行為を計画または実行することを助長する発言が含まれます。このカテゴリーは、他のカテゴリーに該当しない場合に適用されます。

具体例:

  • 放火の計画についての情報提供。
  • 誘拐の具体的な手法に関する説明。

Llama Guardは、AIが生成するコンテンツを評価するために、安全リスク分類法を使用します。この分類法は、暴力的な内容、差別的な発言、性的な表現など、様々なリスクを含むカテゴリに基づいています。それぞれのリスクカテゴリには、適切なアウトプットと不適切なアウトプットの基準が定められています 。

  • 暴力と憎悪: 暴力を助長するような発言や、特定の個人やグループに対する差別的な発言を含む。
  • 性的コンテンツ: 性的な描写や、特定の性行為を助長するような内容。
  • 犯罪計画: 違法行為を助長するような発言や、犯罪の具体的な方法を記述する内容。

[コラム]リスクの分類法はまちまち ~課題と具体例~

AIの発展に伴い、生成されるコンテンツの安全性を評価するための「リスクのタクソノミー(分類法)」が重要視されています。しかし、このタクソノミーは一様ではなく、企業やツールごとに異なるアプローチが取られています。この記事では、リスクのタクソノミーが統一されていない現状と、その課題について具体例を挙げてみます。

【リスクのタクソノミーの多様性】

リスクのタクソノミーは、AIが生成するコンテンツに潜在する危険性を分類するためのフレームワークです。各企業やツールは独自のタクソノミーを採用しており、次のようなカテゴリが一般的に含まれています。

カテゴリ 説明
暴力と憎悪 人種、宗教、性的指向などに基づく差別や中傷、暴力を助長するコンテンツ
性的コンテンツ 性的に露骨な表現や未成年者への不適切な性行為の誘導
銃と違法武器 銃や違法武器の不正使用や製造を助長する内容
規制薬物または規制物質 違法薬物やアルコール、大麻の不正使用を助長する内容
自殺と自傷行為 自殺や自傷行為を助長する情報提供
犯罪計画 誘拐や窃盗などの犯罪行為を助長する内容

【統一されていない現状の課題】

リスクのタクソノミーが統一されていないことには、以下のような課題があります。

  • カテゴリの違い 企業やツールごとにリスクのカテゴリが異なり、特定のリスクがあるツールでは認識されないことがあります。例えば、あるツールでは「銃と違法武器」に関するカテゴリが存在するが、別のツールではこのカテゴリが存在しないことがあります。
  • ポリシーの違い 各ツールは異なるポリシーに基づいてリスクを評価しており、同じコンテンツがツールによっては適切とされ、別のツールでは不適切とされることがあります。たとえば、ある企業のタクソノミーでは「自傷行為」が含まれていないため、関連するコンテンツが適切と判断される可能性があります。
  • 評価基準の違い リスク評価に使用される基準が統一されていないため、リスクの評価結果が一貫しないことがあります。これは、同じカテゴリでもツールによって評価の厳しさが異なるためです。

【各企業の分類法】

具体的な例として、以下のツールを比較してみましょう。

企業/ツール 主なカテゴリ
OpenAIのモデレーションAPI 暴力、憎悪、ハラスメント、自傷行為など11カテゴリ
Azure AIコンテンツ安全API 憎悪と公平性、性的コンテンツ、暴力、自傷行為の4カテゴリ
Perspective API トキシシティ(毒性)、深刻なトキシシティ、アイデンティティ攻撃、侮辱、不適切な言葉、脅迫
Google Gemini API 嫌がらせ、ヘイトスピーチ、露骨な性表現、危険の4カテゴリ

これらのツールは、それぞれ異なるリスクカテゴリを持ち、特定のカテゴリにおいては評価基準が異なるため、同じコンテンツに対する評価結果がツール間で異なることがあります。

統一の必要性と今後の展望

リスクのタクソノミーを統一することは、AIの安全性を確保する上で重要です。統一された基準により、異なるツール間での評価結果が一貫し、コンテンツの安全性が向上します。また、新しいリスクやポリシーに対しても柔軟に対応できるようになるため、AI技術の発展に伴うリスク管理がより効果的に行われるでしょう。

3. ゼロショットと数ショットプロンプティング

Llama Guardは、新しい状況やデータに迅速に適応するために、ゼロショットおよび数ショットプロンプティング技術を採用しています 。

  • ゼロショットプロンプト
    モデルが事前の訓練なしに、新しいコンテキストでの判断を行う。
  • 数ショットプロンプト
    少数の例を使用してモデルに新しい情報を提供し、より正確な判断を促す。

実験と評価結果

Llama Guardの性能は、いくつかのベンチマークデータセットで評価されています。特に注目すべきは、以下の2つのデータセットでの評価結果です 。

1. ToxicChatデータセット

ToxicChatは、現実のユーザーとAIとのインタラクションにおけるコンテンツモデレーションのためのベンチマークです。Llama Guardは、このデータセットにおいて、他のコンテンツモデレーションツールを上回る性能を示しました 。

  • 評価結果
    Llama Guardは、高い精度で不適切なコンテンツを識別し、他のツールよりも優れたパフォーマンスを発揮しました 。

2. OpenAIモデレーション評価データセット

このデータセットは、AIが生成するコンテンツに対するリスク評価を行うためのものです。Llama Guardは、ゼロショット設定でOpenAIのモデレーションAPIに匹敵する性能を示しました 。

  • 評価結果
    Llama Guardは、事前の訓練なしで高い適応性を示し、異なるリスクカテゴリに対して効果的に対応しました 。

使用方法

Llama Guardの使用方法と特徴

Llama Guardは、AIが生成するコンテンツの安全性を確保するために設計されたツールであり、特に人間とAIの対話においてその効果を発揮します。ここでは、Llama Guardの具体的な使用方法と、入力と出力を分けて評価するアプローチについて詳しく説明します。

使用方法

Llama Guardの使用方法は、大規模言語モデル(LLM)を活用したプロンプトと応答のセーフガードを行う点にあります。このモデルは、入力されたプロンプトと生成された応答を分類し、安全性を評価するプロセスを通じて不適切なコンテンツを防ぎます。

入力プロンプトの分類

Llama Guardは、まず入力されたプロンプトを分類します。プロンプトは、AIがユーザーから受け取る指示や質問に相当します。この段階で、プロンプトが不適切な内容を含んでいるかどうかを判断し、必要に応じて修正や警告を行います。つまりAIにとって不適切な指示(例: 人種差別的なコメントを求めるもの)を検出し、適切に処理します。

応答の分類

続いて、AIが生成する応答を分類します。応答は、プロンプトに対するAIの返答です。この段階で、生成されたテキストが不適切でないかを確認します。つまり、AIが提供する回答がユーザーに対して適切であるかを判断し、問題があれば警告を発します。また危険な情報を提供しないように制御されます。

なぜ入力と出力で区別が必要か

入力と出力を分けて評価するアプローチ

Llama Guardのユニークな特徴の一つは、入力(プロンプト)と出力(応答)を分けて評価するというアプローチです。この手法は、各段階で異なるリスクと安全性を考慮することを可能にし、AIが生成するコンテンツの信頼性を向上させます。

入力と出力を分けて評価する理由は、それぞれの段階で異なる課題が存在するためです。プロンプトはユーザーからの要求であり、その内容が直接AIの生成内容に影響を与えるため、まずその適切性を確認する必要があります。一方、応答はAIの生成結果であり、それが社会的に許容されるものであるかを評価する必要があります。

モデルのカスタマイズ

Llama Guardは、使用者のニーズに合わせてモデルをカスタマイズ可能です。
これがAPIベースでポリシーが固定されたほかサービスとの違いであり、メリットです。

特定のリスクカテゴリやガイドラインに基づいて、モデルの設定を変更することで、柔軟な適用が可能となります。

Llama Guardの限界と今後の課題

Llama Guardは非常に強力なツールですが、いくつかの限界も存在します 。

1.日本語への対応

Llama Guardは、訓練データに依存しており、未知のコンテキストや文化的なニュアンスに対する対応力には限界があるようです。

また、訓練データが主に英語であるため、日本語への対応が今後の課題となります 。

2. ポリシーの適用範囲

現在のポリシーは、すべての可能なリスクを網羅しているわけではありません。新しいリスクカテゴリや異なる文化的背景に基づいたリスクに対応するためには、さらなる研究と開発が必要なようです。

まとめと今後の展望

Llama Guardは、AIが生成するコンテンツの安全性を高めるための重要なツールとして、今後のAI開発において重要な役割を果たすことが期待されています。その柔軟な適応能力と高い精度は、多くの企業や開発者にとって大きな利点となるでしょう 。今後の展望としては、多言語対応や新しいリスクカテゴリへの適応を進めることで、さらなる進化が期待されます。

Llama Guardは、AI技術の進化と共に、AIによるコンテンツ生成の安全性を確保するための基盤となるでしょう。今後もLlama Guardの進化を見守りつつ、AIが私たちの社会に与える影響を考慮し、安全で信頼性の高い技術を追求していくことが重要です。

LLM-Audit ™のご紹介

Qualiteg では、LLMのセキュリティソリューション「LLM-Audit™」を開発・提供しております。
LLMがビジネス活用されるにつれ、LLMへの各種攻撃が活発化しています。
一方で、これまでのWebセキュリティとはまた異なったLLMへの攻撃についてはまだ知見も乏しく防衛手段も確立していません。

(株)Qualiteg では、LLMサービス開発・運営を通して得た経験・知見を集めた LLM防衛ソリューション 「LLM-Audit™」※をご提供しています。

※入出力の監査に本記事でご紹介した LlamaGuard をスキャナーとして使用することも可能です


また、悪意ある入力プロンプトのブロック、LLMによる不適切な出力の監査を強力に実行しLLMの安全、安心を実現することができます。

OpenAI API 互換サーバーとして貴社LLMをラッピングするだけで利用できますので非常に小さな導入コストで高度化したLLMセキュリティを実現することが可能です。

LLMセキュリティやLLM-Audit™ にご関心がおありの場合は以下までご連絡くださいませ。またLLMセキュリティコンサルティングや製品デモについてもどうぞお気軽にこちらのお問い合わせフォームまでご連絡くださいませ。

Read more

AIがよく間違える「クロージャ問題」の本質と対策

AIがよく間違える「クロージャ問題」の本質と対策

こんにちは! 本日は「クロージャ問題」に関する話題となります。 Pythonでループ内に関数を定義したことはありますか? もしあるなら、あれれ?な挙動に遭遇したことがあるかもしれません。 本稿では、Pythonプログラマーなら一度は経験する「クロージャ問題」について、初心者にもわかりやすく解説してみたいとおもいます クロージャとは何か? そもそも ”クロージャ” とは何でしょうか。 クロージャ(closure)とは、関数が自分の定義されたスコープの変数を覚えて持ち運ぶ仕組み のことです。 もう少し分解すると、次の2つがポイントとなります 1. 内側の関数が、外側の関数の変数を使える 2. 外側の関数が終了しても、その変数は生き続ける 普通の関数とクロージャ―を使った関数を比較してみましょう 普通の関数との比較 まずは普通の関数から、 def add(x, y): return x + y print(add(3, 5)) # 8 print(add(3, 7)

By Qualiteg プロダクト開発部
フリーランスHub様にQualiteg Blogをご紹介いただきました

フリーランスHub様にQualiteg Blogをご紹介いただきました

この度、フリーランス向け案件検索サービス「フリーランスHub」様の特集記事「トレンドをキャッチアップ!AIに関する情報が得られるメディア・ブログまとめ」にて、弊社が運営する「Qualiteg Blog」をご紹介いただきました。 掲載記事について フリーランスHub様の記事では、AI技術の最前線で活躍するエンジニアや開発者の方々に向けて、価値ある情報源となるメディア・ブログが厳選して紹介されています。 その中で、Qualiteg Blogを「AI技術の専門知識を実践的なビジネス活用につなげる貴重な情報源」として取り上げていただきました。 特に以下の点を評価いただいております * 実践的なビジネス活用事例の提供 AI新規事業創出や事業選定方法など、経営者やビジネスリーダーが直面する課題への具体的な解決策 * 技術的な深掘りコンテンツ リップシンク技術など、実際のサービスで使用されている技術の開発現場目線での詳細な解説 * 多様な情報発信 代表執筆記事、AIトピックス、講演会動画など、幅広いフォーマットでの情報提供 今後も価値ある情報発

By Qualiteg ニュース
PyTorchの重いCUDA処理を非同期化したらメモリリークした話と、その解決策

PyTorchの重いCUDA処理を非同期化したらメモリリークした話と、その解決策

こんにちは!Qualitegプロダクト開発部です! 今回は同期メソッドを非同期メソッド(async)化しただけなのに、思わぬメモリリーク※に見舞われたお話です。 深層学習モデルを使った動画処理システムを開発していた時のことです。 「処理の進捗をリアルタイムでWebSocketで通知したい」という要件があり、「単にasync/awaitを使えばいいだけでしょ?」と軽く考えていたら、思わぬ落とし穴にはまりました。 プロ仕様のGPUを使っていたにも関わらず、メモリ不足でクラッシュしてしまいました。 この記事では、その原因と解決策、そして学んだ教訓を詳しく共有したいと思います。同じような問題に直面している方の参考になれば幸いです。 ※ 厳密には「メモリリーク」ではなく「メモリの解放遅延」ですが、 実用上の影響は同じなので、この記事では便宜上「メモリリーク」と表現します。 背景:なぜ進捗通知は非同期である必要があるのか モダンなWebアプリケーションの要求 最近のWebアプリケーション開発では、ユーザー体験を向上させるため、長時間かかる処理の進捗をリアルタイムで表示することが

By Qualiteg プロダクト開発部
ゼロトラスト時代のLLMセキュリティ完全ガイド:ガーディアンエージェントへの進化を見据えて

ゼロトラスト時代のLLMセキュリティ完全ガイド:ガーディアンエージェントへの進化を見据えて

こんにちは! 今日はセキュリティの新たな考え方「ゼロトラスト」とLLMを中心としたAIセキュリティについて解説いたします! はじめに 3つのパラダイムシフトが同時に起きている いま、企業のIT環境では3つの大きな変革が起ころうとしています。 1つ目は「境界防御からゼロトラストへ」というセキュリティモデルの転換。 2つ目は「LLMの爆発的普及」による新たなリスクの出現。 そして3つ目は「AIエージェント時代の到来」とそれに伴う「ガーディアンエージェント」という新概念の登場です。 これらは別々の出来事のように見えて、実は密接に関連しています。本記事では、この3つの変革がどのように結びつき、企業がどのような対策を取るべきかを解説いたします 目次 1. はじめに:3つのパラダイムシフトが同時に起きている 2. 第1の変革:ゼロトラストという新しいセキュリティ思想 3. 第2の変革:LLM時代の到来とその影響 4. 第3の変革:AIエージェントとガーディアンエージェント 5. 3つの変革を統合する:実践的なアプローチ 6. 実装のベストプラクティス 7. 日本

By Qualiteg コンサルティング