本文にスキップ
AI News HubLIVE
サイト内リライト3 分で読了

Fireworksが全モデルでプロンプトインジェクションを防止する方法

記事の要約

Fireworksは、ユーザー入力内の制御トークン文字列がモデルの制御トークンとして誤ってエンコードされるのを防ぐ安全なトークン化(safe_tokenization)メカニズムを導入しました。この機能はAPIリクエストごとのブール値フラグとして提供され、通常の入力には影響を与えず、制御トークンが解釈されるのを防ぎ、チャットテンプレートの構造を維持します。記事では、問題の原因、攻撃の実演、動作原理、およびモデル出力への影響を詳しく説明しています。

Fireworksが全モデルでプロンプトインジェクションを防止する方法
誤りを報告

訂正窓口はまだ利用できません。記事情報をコピーして保存できます。

訂正案内
本文へ

Fireworks AIは最近、プロンプトインジェクション問題を根本的に解決するための新しい安全メカニズムである「安全なトークン化(safe_tokenization)」を発表しました。これは、すべてのオープンモデルに保護を提供するものです。プロンプトインジェクションは、現在の大規模言語モデル推論サービスにおける一般的な脆弱性です。ユーザー入力内のテキスト文字列が、トークナイザーによってモデルの制御トークンとして誤ってエンコードされ、システムプロンプトやロール境界を改ざんする可能性があります。Fireworksは、シンプルなブール値パラメータを導入することで、プロンプトインジェクションに対する効果的な防御を実現しました。

Fireworksのチーフサイエンティストは、ブログ記事でこの問題の根本原因を詳しく説明しています。彼は、ほとんどのオープンモデルがHuggingFaceトークナイザーを使用しており、その標準的なプロセスは、最初にJinjaチャットテンプレートを使用して会話全体を単一の文字列にレンダリングし、次にその文字列をエンコードすることを指摘しています。このプロセスでは、ユーザーテキストとテンプレート内の制御トークンが混在し、トークナイザーはどのバイトがテンプレートから来たのか、ユーザーから来たのかを区別できません。その結果、ユーザー入力がモデルの制御トークン文字列(例:<|im_start|>など)を含む場合、それらは実際の制御トークンとしてエンコードされ、モデルの出力動作を変更する可能性があります。

記事では、Kimi K2.6モデルを使用した完全な攻撃のデモが示されています。攻撃者はユーザーメッセージ内に偽のシステムロール切り替え命令を埋め込み、元々英語に固定されたシステムプロンプトをスペイン語に上書きします。実験では、安全なトークン化がオフの場合、モデルは攻撃者のスペイン語の指示に従いましたが、安全なトークン化をオンにすると、モデルは元の英語のルールを守りました。この違いは、ログ確率(logprobs)で定量的に確認できます。

安全なトークン化の動作原理は、2つのレベルの修正を含みます。モデルロード時には、システムが完全な語彙表(特殊トークンと追加トークンの両方)をスキャンし、制御トークンがユーザー補間コンテンツから分離されるようにチャットテンプレートを前処理します。リクエスト時には、テンプレートからの構造トークンは本来のトークンIDとしてエンコードされ、ユーザーテキストの各セグメントは特別なトークン化ステップを経て、制御トークンになる可能性のあるバイトがサブワード単位に分割されます。2つのパスは設計上一致しているため、攻撃者はテンプレートとユーザーコンテンツの間に隙間を見つけることができません。

Fireworksは、安全なトークン化が通常のユーザー入力に対して完全に透過的であることを強調しています。ユーザーコンテンツが制御トークン文字列を含まない場合、安全パスとデフォルトパスは同一のトークンIDを生成します。さらに、このメカニズムの計算コストは非常に低く、モデルの再読み込みや追加のネットワークホップは必要ありません。ユーザーはAPIリクエストに「safe_tokenization: true」を追加するだけで、この保護を有効にできます。Fireworksがサポートするすべてのオープンモデル(DeepSeek、Kimi、Qwen、Llama、GLMなど)でこの機能が利用可能であり、ストリーミングと非ストリーミングの両方の補完に対応しています。

業界では、プロンプトインジェクションは現在のAI推論プラットフォームが直面する最大のセキュリティ上の脅威の1つと考えられています。Fireworksの安全なトークン化ソリューションは、業界にシンプルで効果的な解決策を提供します。記事が述べているように、「本番環境での推論は、悪意のあるユーザーコンテンツに耐えられる必要があります。safe_tokenization: trueは、Fireworksがトークンレベルでその保証を行う方法です。これにより、あなたのシステムプロンプトが、他の誰のものでもなく、あなたの製品を定義するのです。」

要点と分析を開く

記事インテリジェンス

エンジニア上級

要点

  • プロンプトインジェクションは、ユーザー入力内の制御トークン文字列がモデルの制御トークンと同一のバイトストリームを共有し、誤ってエンコードされることによって発生します。
  • Fireworksの安全なトークン化は、モデルロード時に語彙表をスキャンし、リクエスト時にユーザーコンテンツをセグメントごとにエンコードすることで、制御トークン文字列がサブワードに分割され、実際の制御トークンIDとしてエンコードされないようにします。
  • このメカニズムはリクエストごとのブール値フラグ(safe_tokenization: true)として提供され、通常の入力に対しては動作が変わらず、制御トークンインジェクションのみを防止し、計算コストは最小限です。
  • 安全なトークン化は、DeepSeek、Kimi、Qwen、Llama、GLMなど、Fireworksがサポートするすべてのオープンモデルで利用可能であり、ストリーミングと非ストリーミングの両方の補完に対応しています。

要点と分析は自動生成され、誤りを含む場合があります。原典をご確認ください。