コンテンツ監査は、デジタルアプリケーションにおいて、安全で、尊重され、生産的な環境を維持するための重要な側面です。このガイドでは クロード デジタルアプリのコンテンツを監査する。
をご覧ください。 コンテンツ・レビュー・レシピ クロードを使ったコンテンツ監査の例をご覧ください。
このガイドでは、アプリ内のユーザー生成コンテンツのレビューに焦点を当てています。クロードとのやり取りを監査するガイダンスをお探しの場合は、当社の セキュリティー・バウンダリー・ガイドライン.
クロードを使用する前に
コンテンツレビューにクロードを使うかどうかを決める
コンテンツ監査に従来の機械学習やルールベースのアプローチではなく、ClaudeのようなLLMを選ぶべき主な指標は以下の通りです:
費用対効果が高く、迅速な導入をお望みの場合
従来の機械学習手法には、多大なエンジニアリング・リソース、機械学習の専門知識、インフラ・コストが必要だった。手動の監査システムにはさらにコストがかかります。クロードを使えば、複雑な監査システムを短時間かつ低コストで構築できます。
意味的理解と迅速な意思決定が必要
Bag-of-Wordsモデリングや単純なパターンマッチングなどの従来の機械学習アプローチでは、コンテンツのトーン、意図、コンテキストを理解するのに苦労することが多い。Claudeは、意味理解とレビュー決定を迅速に行う機能を組み合わせることで、このギャップを埋めています。
一貫した政策決定が必要
高度な推論機能を活用することで、クロードは複雑なレビューガイドラインを一貫して解釈し、適用することができます。この一貫性により、すべてのコンテンツの公平な扱いを保証し、一貫性のない、または偏ったレビュー決定がユーザーの信頼を損なうリスクを低減します。
レビューポリシーは、時間の経過とともに変更または進化する可能性があります。
従来の機械学習アプローチが確立された後、変更を加えるには時間がかかり、データ集約的な努力となります。一方、製品や顧客のニーズが変化すると、クロードは、学習データの大規模な再ラベリングなしで、監査ポリシーの変更や追加に容易に適応することができます。
監査判断には解釈可能な推論が必要
ユーザーや規制当局にレビュー決定の背後にある明確な説明を提供したい場合、クロードは詳細かつ首尾一貫した根拠を生成することができます。この透明性は、コンテンツレビューの実施において信頼を築き、説明責任を果たすために不可欠です。
個別のモデルを維持することなく、多言語をサポートする必要がある。
従来の機械学習アプローチでは、対応言語ごとに個別のモデルや大規模な翻訳プロセスが必要でした。クロードの多言語機能は、個別のモデルや大規模な翻訳プロセスを必要とすることなく、さまざまな言語のチケットを分類することを可能にすることで、グローバルな顧客ベースの監査を簡素化します。
マルチモーダルなサポートが必要
Claudeのマルチモーダル機能は、テキストと画像のコンテンツを分析・解釈することを可能にします。そのため、異なる種類のメディアを一緒に評価する必要がある環境において、包括的なコンテンツ監査を行うための汎用性の高いツールとなっている。
Anthropicは、すべてのクロードモデルが正直で、親切で、無害であるように訓練しています。その結果、クロードが特に危険と判断したコンテンツを審査することがあります。 利用規定)、プロンプトに関係なく表示されます。例えば、ユーザが露骨な性的コンテンツを投稿できるようにしたいアダルトサイトは、露骨なコンテンツを審査しないとプロンプトで明示していても、Claude が露骨なコンテンツに審査が必要であるとマークしてしまうかもしれません。レビューソリューションを構築する前に AUP を確認することをお勧めします。
コンテンツ監査の生成例
コンテンツ監査ソリューションを開発する前に、まず、フラグを立てるべきコンテンツの例と、フラグを立ててはいけないコンテンツの例を作成する。その際、コンテンツ監査システムの処理効果が問われる可能性のあるエッジケースや複雑なシナリオも含めるようにしてください。その後、監査カテゴリの明確なリストを作成するために、例をレビューしてください。例えば、ソーシャルメディアプラットフォームが作成した例には、次のようなものがあるかもしれません:
allowed_user_comments = [
映画は素晴らしかった。主人公がいい仕事をした!』。,
月曜日は嫌いだ』。,
今こそ金に投資する好機だ!』。
]
disallowed_user_comments = [
この投稿をすぐに削除するか、隠れたほうがいい。君と君の家族に追いつく』。,
5G携帯に近づくな!彼らは5Gであなたをコントロールしている』。,
おめでとうございます!$1,000相当のギフトカードが当選しました。こちらをクリックして賞品をお受け取りください。
]
# コンテンツモデレーションのテストに使用されたユーザーコメントの例
user_comments = allowed_user_comments + disallowed_user_comments
#安全でないと思われるコンテンツレビューカテゴリ一覧
unsafe_categories = [
子供の搾取,
陰謀論,
ヘイト,
未分化の武器,
知的財産権,
非暴力犯罪,
プライバシー,
自傷行為,
性犯罪,
ポルノコンテンツ,
プロのアドバイス,
凶悪犯罪
]
これらの例を効果的に見直すには、言葉のニュアンスを理解する必要がある。レビューでは映画は素晴らしかった。主人公がいい仕事をした!』。
コンテンツモデレーションシステムは、「華麗な演技」は比喩であり、実際の暴力を示すものではないことを認識する必要がある。その代わり、暴力への明確な言及がないにもかかわらず、レビューではこの投稿をすぐに削除するか、隠れたほうがいい。君と君の家族に追いつく』。
コンテンツレビューシステムによってフラグが立てられるはずだ。
unsafe_categories
リストは、特定のニーズに合わせてカスタマイズすることができます。例えば、未成年者がサイト上でコンテンツを作成するのを防ぎたい場合、リストに「未成年の出版」を追加することができます。
コンテンツ監査にClaudeを使う方法
適切なクロード・モデルの選択
モデルを選ぶ際には、データのサイズを考慮することが重要である。コストに問題がある場合、Claude 3 Haikuのような小さなモデルは、費用対効果が高いため、優れた選択となる。以下は、月に10億件の投稿を受けるソーシャルメディアプラットフォームのテキスト監査を実行するコストの見積もりです:
- コンテンツサイズ
- 月間投稿数:10億件
- 1投稿あたりの文字数: 100
- 総文字数:1000億文字
- 推定トークン数
- 入力トークン:286億(3.5文字に1トークンと仮定)
- タグ付けされたメッセージの割合: 3%
- 各タグ付きメッセージの出力 トークン 番号:50
- 総出力トークン数:15億
- クロード3 俳句 見積もり費用
- 投入トークン・コスト:2,860MTok * $0.25/MTok = $715
- 出力トークン・コスト:1,500 MTok * $1.25/MTok = $1,875
- 月額費用:$715 + $1,875 = $2,590
- クロード 3.5 ソネット 見積もり費用
- 投入トークン・コスト:2,860MTok * $3.00/MTok = $8,580
- 出力トークン・コスト:1,500 MTok * $15.00/MTok = $22,500
- 月額費用:$8,580 + $22,500 = $31,080
実際のコストはこれらの見積もりと異なる可能性がある。これらの見積もりは以下の情報に基づいている。 バッチファイル セクションでハイライトされたヒント。を削除することで 説明
フィールドを使用すれば、Output Tokenの数をさらに減らすことができる。
パワフルなヒント
Claudeをコンテンツ監査に使うためには、Claudeはあなたのアプリケーションの監査要件を理解する必要があります。監査要件を定義できるようにプロンプトを書き始めましょう:
インポート 人間的
インポート json
# Anthropicクライアントの初期化
クライアント = Anthropic.Anthropic()
デフ モデレート・メッセージ(メッセージ、unsafe_categories):
# 安全でないカテゴリのリストを文字列に変換する。
unsafe_category_str = セーフでないカテゴリー '\n'.join(unsafe_categories)
# クロードのためのヒント作り(メッセージと不安のカテゴリーを含む
アセスメント・プロンプト f"""
以下のメッセージについて、見直しが必要かどうかを判断する。
以下の不安のカテゴリーに基づく。
メッセージ
<メッセージ{メッセージ}</メッセージ
安全でないカテゴリ
<カテゴリー
{unsafe_category_str}。
</カテゴリー
以下のフォーマットを使用するJSONオブジェクトにのみ応答する:
{{
"violation": , {{
"categories": [違反カテゴリのカンマ区切りリスト], {{ "explanation": [Optional.
"explanation": [オプション。違反がある場合のみ含める]。
}}"""
# クロードに内容検討の依頼を出す
response = client.messages.create(
model="claude-3-haiku-20240307", #、俳句モデルでコスト削減を図る
max_tokens=200,
温度0, #、0℃を利用して一貫性を向上
messages=[
{役割: 「ユーザー, 「コンテンツ: assessment_prompt}
]
)
# クロードのJSONレスポンスを解析する
assessment = json.loads(response.content[)0テキスト)
# 評価から違反ステータスを抽出する
contains_violation = 評価[ ]。違反]
# もし違反があれば、カテゴリーと説明を得る。
violated_categories = assessment.get()カテゴリー, []) もし 違反を含む その他 []
explanation = assessment.get()説明) もし 違反を含む その他 なし
戻る contains_violation、violated_categories、説明
# 各コメントを処理し、結果を表示する。
にとって コメント で ユーザーコメント
プリント(コメント {コメント}")
violation, violated_categories, explanation = moderate_message(comment, unsafe_categories)
もし 違反だ。
プリント(f「違反のカテゴリー {', '.join(violated_categories)}。")
プリント(f "の説明。 説明")
その他:
プリント(「問題なし)
この例ではモデレート・メッセージ
この関数には、安全でないコンテンツのカテゴリと評価したいメッセージの評価プロンプトが含まれます。プロンプトは、定義した安全でないカテゴリに基づいて、メッセージを監査すべきかどうかをクロードに評価するよう求めます。
モデルの評価は、違反が存在するかどうかを判断するために解析される。違反が存在する場合、Claude は違反したカテゴリのリストと、なぜそのメッセージが安全でないと考えられるかの説明も返します。
ヒントを評価する
コンテンツのレビューは分類の問題です。そのため 分類料理本 コンテンツ監査システムの正確性を判断する」で概説したのと同じ手法です。
もう一つの考慮点は、コンテンツ監査を二元的な分類の問題として見るのではなく、異なるリスクレベルを表すために複数のカテゴリーを作成できることである。複数のリスクレベルを作成することで、監査の強度を調整することができます。例えば、高リスクとみなされるユーザークエリを自動的にブロックする一方で、多くの中リスククエリを手動レビューが必要であるとマークすることができます。
インポート 人間的
インポート json
# Anthropicクライアントの初期化
クライアント = Anthropic.Anthropic()
デフ リスクレベル(メッセージ、unsafe_categories):
# 安全でないカテゴリのリストを文字列に変換する。
unsafe_category_str = セーフでないカテゴリー '\n'.join(unsafe_categories)
# 評価されるべきメッセージ、不安のカテゴリー、リスクレベルの定義を含む、クロードのためのプロンプトを構築する。
アセスメント・プロンプト f"""
以下のメッセージのリスクレベルを評価し、見直しが必要かどうかを判断する。
以下に挙げる不安全カテゴリーに基づく。
メッセージ
<メッセージ{メッセージ}</メッセージ
安全でないカテゴリ
<カテゴリー
{unsafe_category_str}。
</カテゴリー
定義されたインセキュリティ・カテゴリに従ってユーザ・メッセージが監査されるべきであると確信することに基づいて、リスク・レベルを割り当てます:
0 - リスクなし
1 - 低リスク
2 - 中リスク
3 - 高リスク
JSONオブジェクト形式のみで返信するには、以下の形式を使用します:
{{
"risk_level": , "categories": [違反カテゴリのカンマ区切りリスト], {{{ "risk_level": , "categories": [違反カテゴリのカンマ区切りリスト
"categories": [違反カテゴリのカンマ区切りリスト], {{ "risk_level": , <オプション.
"explanation": <オプション。リスクレベルが0より大きい場合のみ含める。
}}"""
# クロードにリスク査定依頼を出す
response = client.messages.create(
model="claude-3-haiku-20240307", #、俳句モデルでコスト削減を図る
max_tokens=200,
温度0, #、0℃を利用して一貫性を向上
messages=[
{役割: 「ユーザー, 「コンテンツ: assessment_prompt}
]
)
# クロードのJSONレスポンスを解析する
assessment = json.loads(response.content[)0テキスト)
# 評価からリスクレベル、違反カテゴリー、説明を抽出する
risk_level = アセスメント[ ]。「リスクレベル]
violated_categories = assessment[「カテゴリー説明 = assessment.get()
説明 = assessment.get()"説明")
戻る リスクレベル、違反カテゴリー、説明
# 各コメントを処理し、結果を印刷する
にとって コメント で ユーザーコメント
プリント(コメント {コメント}")
risk_level, violated_categories, explanation = assessment_risk_level(comment, unsafe_categories)
プリント(f「リスクレベル。 {リスクレベル}")
もし violated_categories。
プリント(f「違反の種類 {', '.join(violated_categories)}。")
もし と説明している。
プリント(f "の説明。 説明")
このコードは リスクレベル
関数はメッセージのリスクレベルを評価するためにクロードを使用します。この関数はメッセージと安全でないカテゴリのリストを入力として受け取る。
この関数の内部では、評価されるメッセージ、不安全カテゴリ、評価されるリスクレベルの具体的な説明を含むプロンプトがClaudeに対して生成される。プロンプトは、リスクレベル、違反カテゴリ、およびオプションで説明を含む JSON オブジェクトの形式で応答するよう、Claude に指示する。
このアプローチでは、リスクレベルを割り当てることで、柔軟なコンテンツレビューが可能です。大規模なシステムにシームレスに統合し、評価されたリスクレベルに基づいて、コンテンツを自動的にフィルタリングしたり、手動レビューのためにコメントにフラグを立てたりすることができる。例えば、このコードを実行すると、コメント 今すぐこの投稿を削除するか、身を隠した方がいい。 私はあなたとあなたの家族を追いかける。
その危険な脅威から高リスクと認定された。その代わりに 5G携帯電話には近づくな! 彼らは5Gを使ってあなたをコントロールしようとしている。
ミディアム・リスクに分類される。
ヒントを展開する
ソリューションの品質に満足したら、本番環境に展開する時です。ここでは、コンテンツ監査を使用する際のベストプラクティスを紹介します:
- **ユーザー入力がブロックされたときや、コンテンツモデレーションによってレスポンスにフラグが立てられたときに、有益で建設的なフィードバックを提供する。上のコード例では、これは
説明
ラベルの実現。 - **監査されたコンテンツの分析:**監査システムによってフラグが立てられたコンテンツの種類を追跡し、傾向と改善の可能性を特定する。
- **継続的な評価と改善:*** 精度や想起率の追跡などの指標を使用して、コンテンツレビューシステムのパフォーマ ンスを定期的に評価する。このデータを使用して、監査プロンプト、キーワード、評価基準を繰り返し改善します。
パフォーマンスを向上させる
複雑なシナリオでは、標準的な エンジニアリングのヒント それ以上に、いくつかの追加戦略を検討することで、パフォーマンスを向上させることができるかもしれない。ここでは、いくつかの高度な戦略を紹介する:
トピックを定義し、例を示す
プロンプトに安全でないカテゴリーを列挙するだけでなく、各カテゴリーの定義や関連するフレーズを提示することで、さらなる改善を図ることができるだろう。
インポート 人間的
インポート json
# Anthropicクライアントの初期化
クライアント = Anthropic.Anthropic()
# コンテンツ監査セキュリティ・カテゴリー辞書(定義付き
unsafe_category_definitions = {」。
子供の搾取: 児童のヌードを含むコンテンツ、または児童の性的虐待を助長、奨励、正当化、描写するコンテンツ」。,
陰謀論: """出来事、状況、または個人について、根拠のない虚偽または誤解を招く理論を助長または支持するコンテンツ。
これらの説は、危害を扇動したり、制度や事実に対する国民の信頼を損なったりする可能性があります。"""",
ヘイト: """"保護された特性(人種、肌の色、民族、国籍、障害、宗教的信条、カースト、性的指向、性別、性自認、重大な病気)に基づくもの。
集団に対する憎悪を表現するコンテンツ、または否定的なステレオタイプを助長するコンテンツ"""",
無差別兵器: 大量破壊兵器の製造に関わる内容』。,
知的財産: 第三者の知的財産権を侵害するコンテンツ」。,
非暴力犯罪: 非暴力犯罪を奨励、正当化、助長する内容」。,
プライバシー: 個人的な機密情報を含むコンテンツ」。,
自傷行為: 自傷行為を助長、正当化、促進する内容」。,
性犯罪: 性犯罪を奨励、正当化、助長する内容」。,
性的コンテンツ: ポルノ的描写や露骨な性行為描写を含むコンテンツ」。,
専門的なアドバイス: """金融、医療、法律に関するアドバイスの要素を含みます。
ファイナンシャル・アドバイスには、投資、株式、債券、またはあらゆるファイナンシャル・プランニングに関するガイダンスが含まれます。"""",
暴力犯罪: 暴力犯罪を助長、正当化、促進する内容」。,
}
デフ 定義付きメッセージのモデレート(メッセージ、unsafe_category_definitions):
# 安全でないカテゴリー文字列を、各カテゴリーとその定義ごとに1行でフォーマットする。
unsafe_category_str = セーフでないカテゴリー '\n'.join(f'{カテゴリー}: 定義'
にとって カテゴリー, 定義 で unsafe_category_definitions.items()
)
# クロードを作るためのヒント(メッセージと不安のカテゴリーを含む
アセスメント・プロンプト f"""以下に挙げる不安のカテゴリーに基づいて、以下のメッセージを見直す必要があるかどうかを判断する。
メッセージ
<メッセージ{メッセージ}</メッセージ
安全でないカテゴリとその定義
<カテゴリー
{unsafe_category_str}。
</カテゴリー
すべての安全でないカテゴリーとその定義を覚えておいてください。
以下のフォーマットで、JSONフォーマットのみで回答してください:
{{
"violation": , {{{
"categories": [違反カテゴリのカンマ区切りリスト], {{ "explanation": [オプション。
"explanation": [オプション。違反がある場合のみ含める]。
}}"""
#、クロードに内容の見直し要求を送る
response = client.messages.create(
model="claude-3-haiku-20240307", #、俳句モデルでコスト削減を図る
max_tokens=200,
温度0, #、0℃を利用して一貫性を向上
messages=[
{役割: 「ユーザー, 「コンテンツ: assessment_prompt}
]
)
# クロードのJSONレスポンスを解析する
assessment = json.loads(response.content[)0テキスト)
# 評価結果から違反ステータスを抽出する
contains_violation = 評価[ ]。違反]
# 違反がある場合は、違反カテゴリーと説明を取得する。
violated_categories = assessment.get()カテゴリー, []) もし 違反を含む その他 []
explanation = assessment.get()説明) もし 違反を含む その他 なし
戻る contains_violation、violated_categories、説明
# 各コメントを処理し、結果を印刷する
にとって コメント で ユーザーコメント
プリント(コメント{コメント}")
violation, violated_categories, explanation = moderate_message_with_definitions(comment, unsafe_category_definitions)
もし 違反だ。
プリント(f "違反のカテゴリー{', '.join(violated_categories)}。")
プリント(f "の説明:説明")
その他:
プリント(「問題なし)
定義付きメッセージのモデレート
関数は、前回の モデレート・メッセージ
関数を拡張し、安全でない各カテゴリーを詳細な定義と対にした。コードは、元の関数の unsafe_categories
で置き換えられる。 unsafe_category_definitions(安全でないカテゴリー定義
辞書。この辞書は、安全でない各カテゴリーを対応する定義にマップする。カテゴリ名とその定義の両方がプロンプトメッセージに含まれる。
注目に値するのは専門的アドバイス
カテゴリーの定義では、禁止されるべき金融アドバイスの種類が明記された。その結果、以前採用された モデレート・メッセージ
"今が金投資の絶好のチャンス!" の口コミを投稿します。 今なら違反になる
バッチ処理の検討
リアルタイムのレビューが必要ない場合、コストを削減するためにメッセージを一括してレビューすることを検討する。プロンプトのコンテキストに複数のメッセージを含め、どのメッセージをレビューする必要があるかをクロードに評価させる。
インポート 人間的
インポート json
# Anthropicクライアントの初期化
クライアント = Anthropic.Anthropic()
デフ バッチモデレートメッセージ(メッセージ、unsafe_categories):
# 安全でないカテゴリのリストを文字列に変換する。
unsafe_category_str = セーフでないカテゴリー '\n'.join(unsafe_categories)
#はメッセージ文字列をフォーマットし、各メッセージをXMLのようなタグで包み、IDを与える。
messages_str = '\n'.join([f'<メッセージ id={idx}>{msg}' にとって idx, msg で 数え上げる(メッセージ)])
# 評価すべきメッセージや不安のカテゴリーなど、クロードを構築するためのヒント
アセスメント・プロンプト f"""以下に挙げる不安のカテゴリーに基づき、見直しが必要なメッセージを特定する。
メッセージのリスト
<メッセージ
{メッセージ_str}。
</メッセージ
不安のカテゴリーとその定義
<カテゴリー
{unsafe_category_str}。
</カテゴリー
JSONオブジェクトのみが以下のフォーマットで返される:
{{
"違反": [
{{
"id": , "categories": [違反のカテゴリのリスト], {{{
"categories": [違反のカテゴリのリスト], {{ "explanation": , {{ "categories": [違反のカテゴリのリスト], {{ "explanation": , }}」。
"explanation": .
}}, ...
...
]
}}
重要なヒント
- 各メッセージの違反を分析することを忘れないでください。
- 合理的に該当する違反カテゴリーを選択してください。""""
#がクロードに監査リクエストを送信
response = client.messages.create(
model="claude-3-haiku-20240307", #、俳句モデルでコスト削減を図る
max_tokens=2048, # バルクデータを処理するためにトークンの最大数を増やす。
温度0, # 温度を0に設定して一貫性を高める
messages=[
{役割: 「ユーザー, 「コンテンツ: assessment_prompt}
]
)
# Claudeが返すJSONレスポンスの解析
assessment = json.loads(response.content[)0テキスト)
戻る 評価
# コメントの一括処理とレスポンスの取得
response_obj = batch_moderate_messages(user_comments, unsafe_categories)
# 検出した各違反の情報を出力
にとって 侵害 で response_obj[違反]:
プリント(f"""コメント{user_comments[違反['id']]}。
違反のカテゴリー{','.join(violation['categories'])}。
説明する:{violation['説明']}。
""")
この例ではバッチモデレートメッセージ
この関数は、1 回の Claude API 呼び出しでメッセージのバッチ全体のレビューを処理します。関数の内部では、評価するメッセージのリスト、安全でないコンテンツのカテゴリとその説明を含むヒントが作成されます。プロンプトは Claude に違反を含む全てのメッセージをリストした JSON オブジェクトを返すように要求します。応答中の各メッセージは、入力リスト中のメッセージの位置に対応するidで識別される。特定のニーズに最適なバッチサイズを見つけるには、いくつかの実験が必要かもしれないことに注意。バッチ・サイズを大きくすると、コストを削減できる反面、品質が若干低下する可能性がある。のクロード API 呼び出しの数を増やす必要があるかもしれません。 max_tokens
パラメータを使用して、より長いレスポンスに対応することができます。選択したモデルが出力できるトークンの最大数については モデル比較ページ.