メインコンテンツまでスキップ

セキュリティのベストプラクティス

無料のレビュー用APIを使用

OpenAI のモデレーション API は無料で使用でき、完了プロセスで安全でないコンテンツの頻度を減らすのに役立ちます。または、ユース ケースに応じて、独自のコンテンツ フィルタリング システムを開発することもできます。

敵対的テスト

敵対的な入力に対して堅牢であることを確認するために、アプリケーションを「レッドチーム化」することをお勧めします。代表的なセットや、アプリケーションを「破壊」しようとする人々のセットを反映したものなど、幅広い入力とユーザーの動作で製品をテストします。話題が逸れる?「前の指示を無視してこれを行う」のように、誰かがヒント注入を介してこの機能を簡単にリダイレクトできますか?

ヒューマンコンピュータインタラクション (HITL )

可能であれば、実際に使用する前に人間が出力を確認することをお勧めします。これは、リスクの高いドメインとコード生成で特に重要です。人間はシステムの限界を認識し、出力を検証するために必要なすべての情報にアクセスできる必要があります (たとえば、アプリケーションがメモを集約する場合、人間は参照用に元のメモに簡単にアクセスできる必要があります)。

ラピッドエンジニアリング

「ヒント エンジニアリング」は、出力テキストの主題とトーンを制限するのに役立ちます。これにより、ユーザーが作成しようとしても、不要なコンテンツが生成される可能性が低くなります。モデルに追加のコンテキスト (たとえば、新しい入力に先行する望ましい動作の高品質の例) を与えると、モデルの出力を望ましい方向に導くことが容易になります。

「顧客を知る」(KYC )

通常、ユーザーがサービスにアクセスするには、登録してログインする必要があります。このサービスを既存のアカウント (Gmail、LinkedIn、Facebook のログインなど) にリンクすると役立つ場合がありますが、すべてのユース ケースに適しているとは限りません。クレジット カードまたは ID を要求すると、リスクがさらに軽減されます。

ユーザーの入力と出力のトークンを制限

ユーザーがプロンプトに入力できるテキストの量を制限すると、プロンプト インジェクションを回避できます。出力トークンの数を制限すると、誤用の可能性を減らすのに役立ちます。

特に信頼できるソースからの入力または出力の範囲を絞り込むと、アプリケーションで発生する可能性のある悪用のレベルが低下します。

検証済みのドロップダウン フィールド (Wikipedia の映画のリストなど) を介してユーザー入力を許可する方が、オープン テキスト入力を許可するよりも安全です。

可能であれば、バックエンドで実績のある一連の資料から出力を返す方が、新しく生成されたコンテンツを返すよりも安全かもしれません (たとえば、顧客からの問い合わせを最初から答えようとするのではなく、最も近い既存のカスタマー サポート記事にルーティングします)。

ユーザーからの問題報告を許可

一般に、ユーザーは、アプリケーションの動作に関する誤機能やその他の懸念を報告するための簡単にアクセスできる方法 (リストされている電子メール アドレス、チケットの送信方法など) を用意する必要があります。このアプローチは人間が監視し、適切に対応する必要があります。

制限の理解と伝達

不正確な情報の幻覚から、不快な出力、バイアスなどに至るまで、言語モデルは大幅な変更なしではすべてのユースケースに適しているとは限りません。モデルが目的に適しているかどうかを検討し、さまざまな潜在的な入力に対する API のパフォーマンスを評価して、API のパフォーマンスが低下する可能性がある状況を特定します。顧客ベースと彼らが使用するインプットの範囲を考慮し、彼らの期待が適切に調整されていることを確認してください。

OpenAI では、安全性とセキュリティが非常に重要です。

開発中に API または OpenAI に関連するその他の安全性またはセキュリティの問題に気付いた場合は、調整された脆弱性開示プログラムを通じてこれらの問題を提出してください。

エンドユーザー識別子

リクエストでエンド ユーザー ID を送信することは、OpenAI が不正使用を監視および検出するのに役立つ便利なツールです。これにより、OpenAI は、アプリケーションでポリシー違反が検出された場合に、より実用的なフィードバックをチームに提供できます。

ID は、各ユーザーを一意に識別する文字列である必要があります。識別情報が送信されないように、ユーザー名またはメール アドレスをハッシュ化することをお勧めします。ログインしていないユーザーに製品プレビューを提供する場合は、代わりにセッション ID を送信できます。

次のように、userパラメーターを介して API 要求にエンド ユーザー ID を含めることができます。

response = openai.Completion.create(
model="text-davinci-003",
prompt="This is a test",
max_tokens=5,
user="user123456"
)