Руководство Клода по распространенным сценариям использования: аудит контента
Аудит содержимого - ключевой аспект поддержания безопасной, уважительной и продуктивной среды в цифровых приложениях. В этом руководстве мы рассмотрим, как использовать Клод Проведите аудит контента в ваших цифровых приложениях.
Посетите наш Рецепты для обзора содержимого Посмотрите пример аудита контента с помощью Claude.
Это руководство посвящено проверке пользовательского контента в вашем приложении. Если вы ищете руководство по аудиту взаимодействия с Клодом, обратитесь к нашей статье Рекомендации по границам безопасности.
Перед использованием Клод
Решите, стоит ли использовать Клода для просмотра контента
Вот несколько ключевых показателей, по которым вам стоит выбрать LLM, например Claude, а не традиционный подход к аудиту контента на основе машинного обучения или правил:
Вам нужна экономически эффективная и быстрая реализация
Традиционные методы машинного обучения требуют значительных инженерных ресурсов, опыта машинного обучения и затрат на инфраструктуру. Системы ручного аудита обходятся еще дороже. С помощью Claude вы можете создавать сложные системы аудита за меньшее время и с меньшими затратами.
Вам необходимо семантическое понимание и быстрое принятие решений
Традиционные подходы машинного обучения, такие как моделирование мешка слов или простое сопоставление шаблонов, часто не позволяют понять тон, намерения и контекст контента. Хотя человеческие системы рецензирования отлично справляются с пониманием семантического смысла, им требуется время на проверку контента. Claude устраняет этот пробел, сочетая семантическое понимание с возможностью быстро принимать решения по рецензированию.
Вам нужны последовательные политические решения
Используя расширенные возможности рассуждений, Claude может последовательно интерпретировать и применять сложные рекомендации по рецензированию. Такая последовательность помогает обеспечить справедливое отношение ко всему контенту и снижает риск того, что непоследовательные или предвзятые решения по рецензированию могут подорвать доверие пользователей.
С течением времени ваша политика в области рецензирования может меняться или развиваться
После внедрения традиционного подхода к машинному обучению внесение изменений может занять много времени и потребовать больших объемов данных. С другой стороны, по мере изменения продукта или потребностей клиента Claude может легко адаптироваться к изменениям или дополнениям в политиках аудита без обширной перемаркировки обучающих данных.
Вам нужны интерпретируемые рассуждения о решениях по аудиту
Если вы хотите предоставить пользователям или регулирующим органам четкие объяснения решений по рецензированию, Claude может подготовить подробные и последовательные обоснования. Такая прозрачность крайне важна для укрепления доверия и обеспечения подотчетности в практике рецензирования контента.
Вам нужна поддержка нескольких языков без необходимости поддерживать отдельные модели
Традиционные подходы к машинному обучению обычно требуют создания отдельных моделей или обширных процессов перевода для каждого поддерживаемого языка. Для проведения ручного аудита требуется персонал, свободно владеющий каждым из поддерживаемых языков. Многоязычные возможности Claude упрощают проведение аудита для глобальной клиентской базы, позволяя классифицировать билеты на разных языках без необходимости использования отдельных моделей или длительных процессов перевода.
Вам нужна мультимодальная поддержка
Мультимодальные возможности Claude позволяют ему анализировать и интерпретировать контент в виде текста и изображений. Это делает его универсальным инструментом для всестороннего аудита контента в средах, где необходимо оценивать различные типы медиа.
Антропология Все модели Claude обучены быть честными, полезными и безобидными. Это может привести к тому, что Claude будет просматривать контент, считающийся особо опасным (в соответствии с нашими Политика приемлемого использования), независимо от используемой подсказки. Например, сайт для взрослых, который хочет разрешить пользователям размещать откровенный сексуальный контент, может обнаружить, что 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
При выборе модели важно учитывать объем данных. Если вопрос стоит о стоимости, то небольшая модель, такая как Claude 3 Haiku, - отличный выбор, поскольку она экономически эффективна. Вот примерная стоимость проведения текстового аудита платформы социальных сетей, на которую поступает миллиард сообщений в месяц:
- Размер содержимого
- Количество сообщений в месяц: 1 млрд.
- Количество символов в сообщении: 100
- Всего знаков: 100 млрд.
- Предполагаемое количество токенов
- Входной токен: 28,6 млрд (из расчета 1 токен на каждые 3,5 символа)
- Процент сообщений с меткой: 3%
- Вывод для каждого помеченного сообщения Токен Количество: 50
- Общее количество токенов на выходе: 1,5 млрд.
- Клод 3 Хайку Сметная стоимость
- Стоимость входного жетона: 2,860 MTok * $0.25/MTok = $715
- Стоимость выходного жетона: 1,500 MTok * $1.25/MTok = $1,875
- Ежемесячная стоимость: $715 + $1,875 = $2,590
- Клод 3.5 Сонет Сметные расходы
- Стоимость входного жетона: 2,860 MTok * $3.00/MTok = $8,580
- Стоимость выходного жетона: 1 500 MTok * $15.00/MTok = $22,500
- Ежемесячная стоимость: $8 580 + $22 500 = $31 080
Фактические затраты могут отличаться от этих оценок. Эти оценки основаны на информации о пакетный файл Выделенные в разделе советы. Убрав explanation
поле, количество выходных маркеров может быть еще больше сокращено.
Мощные советы по строительству
Чтобы использовать Claude для аудита содержимого, Claude должен понять требования вашего приложения к аудиту. Давайте начнем писать запрос, чтобы вы могли определить свои требования к аудиту:
import anthropic
import json
# 初始化 Anthropic 客户端
client = anthropic.Anthropic()
def moderate_message(message, unsafe_categories):
# 将不安全类别列表转换为字符串,每个类别占一行
unsafe_category_str = '\n'.join(unsafe_categories)
# 为 Claude 构建提示,包括消息和不安全类别
assessment_prompt = f"""
确定以下消息是否需要审核,
基于下面列出的不安全类别。
消息:
<message>{message}</message>
不安全类别:
<categories>
{unsafe_category_str}
</categories>
仅使用以下格式响应 JSON 对象:
{{
"violation": <布尔字段,表示消息是否应该被审核>,
"categories": [被违反类别的逗号分隔列表],
"explanation": [可选。如果有违规行为则仅包含。]
}}"""
# 发送请求给 Claude 进行内容审核
response = client.messages.create(
model="claude-3-haiku-20240307", # 使用 Haiku 模型以降低成本
max_tokens=200,
temperature=0, # 使用 0 温度以提高一致性
messages=[
{"role": "user", "content": assessment_prompt}
]
)
# 解析 Claude 的 JSON 响应
assessment = json.loads(response.content[0].text)
# 从评估中提取违规状态
contains_violation = assessment['violation']
# 如果有违规,获取类别和解释;否则使用空默认值
violated_categories = assessment.get('categories', []) if contains_violation else []
explanation = assessment.get('explanation') if contains_violation else None
return contains_violation, violated_categories, explanation
# 处理每条评论并打印结果
for comment in user_comments:
print(f"\n评论: {comment}")
violation, violated_categories, explanation = moderate_message(comment, unsafe_categories)
if violation:
print(f"违反的类别: {', '.join(violated_categories)}")
print(f"解释: {explanation}")
else:
print("未检测到问题。")
В этом примереmoderate_message
Функция содержит приглашение к оценке с указанием категории небезопасного содержимого и сообщения, которое мы хотим оценить. Подсказка просит Клода оценить, следует ли проверять сообщение или нет, основываясь на категории небезопасности, которую мы определили.
Затем оценка модели анализируется, чтобы определить, существует ли нарушение. Если нарушение существует, Claude также возвращает список нарушенных категорий и объяснение того, почему сообщение считается небезопасным.
Оцените свои советы
Обзор контента - это вопрос категоризации. Поэтому вы можете использовать наш классификационная поваренная книга Те же приемы, которые описаны в статье "Определение точности системы аудита контента".
Еще один момент: вместо того чтобы рассматривать аудит контента как проблему бинарной категоризации, вы можете создать несколько категорий для представления различных уровней риска. Создание нескольких уровней риска позволяет регулировать интенсивность аудита. Например, вы можете автоматически блокировать запросы пользователей с высоким уровнем риска, а многие запросы со средним уровнем риска помечать как требующие ручной проверки.
import anthropic
import json
# 初始化 Anthropic 客户端
client = anthropic.Anthropic()
def assess_risk_level(message, unsafe_categories):
# 将不安全类别的列表转换为字符串,每个类别占一行
unsafe_category_str = '\n'.join(unsafe_categories)
# 为 Claude 构造提示,包括待评估的消息、不安全类别和风险级别定义
assessment_prompt = f"""
评估以下消息的风险级别,判断是否需要审核,
基于下面列出的不安全类别。
消息:
<message>{message}</message>
不安全类别:
<categories>
{unsafe_category_str}
</categories>
根据您对用户消息应根据定义的不安全类别进行审核的信心,分配风险级别:
0 - 无风险
1 - 低风险
2 - 中等风险
3 - 高风险
仅以 JSON 对象格式回复,使用以下格式:
{{
"risk_level": <表示风险级别的数值字段>,
"categories": [违规类别的逗号分隔列表],
"explanation": <可选。仅在风险级别大于 0 时包含>
}}"""
# 发送请求给 Claude 进行风险评估
response = client.messages.create(
model="claude-3-haiku-20240307", # 使用 Haiku 模型以降低成本
max_tokens=200,
temperature=0, # 使用 0 温度以提高一致性
messages=[
{"role": "user", "content": assessment_prompt}
]
)
# 解析 Claude 的 JSON 响应
assessment = json.loads(response.content[0].text)
# 从评估中提取风险级别、违规类别和解释
risk_level = assessment["risk_level"]
violated_categories = assessment["categories"]
explanation = assessment.get("explanation")
return risk_level, violated_categories, explanation
# 处理每个评论并打印结果
for comment in user_comments:
print(f"\n评论: {comment}")
risk_level, violated_categories, explanation = assess_risk_level(comment, unsafe_categories)
print(f"风险级别: {risk_level}")
if violated_categories:
print(f"违规类别: {', '.join(violated_categories)}")
if explanation:
print(f"解释: {explanation}")
Код реализует assess_risk_level
функция, использующая Claude для оценки уровня риска сообщения. Функция принимает на вход список сообщений и категории опасности.
Внутри функции для Клода генерируется запрос, содержащий сообщение, которое необходимо оценить, категорию нарушения безопасности и конкретное описание уровня риска, который необходимо оценить. Запрос предписывает Клоду ответить в виде JSON-объекта, включающего уровень риска, категорию нарушения и, по желанию, объяснение.
Такой подход обеспечивает гибкую проверку контента путем присвоения уровней риска. Его можно легко интегрировать в более крупные системы, чтобы автоматически фильтровать контент или помечать комментарии для ручной проверки на основе оцененных уровней риска. Например, при выполнении этого кода комментарии Delete this post now or you better hide. I am coming after you and your family.
Отнесен к категории высокого риска из-за своей опасной угрозы. Вместо этого в комментариях Stay away from the 5G cellphones!! They are using 5G to control you.
отнесены к категории среднего риска.
Развертывание подсказок
Когда вы будете удовлетворены качеством решения, настанет время развернуть его в производственной среде. Вот несколько лучших практик использования аудита контента:
- **Обеспечение четкой обратной связи с пользователями:** Обеспечьте полезную и конструктивную обратную связь, когда пользовательский ввод был заблокирован или ответ был отмечен из-за модерации контента, помогая пользователям понять, почему их сообщение было отмечено, и информируя их о том, как переформулировать его должным образом. В приведенном выше примере кода это делается с помощью ответа Claude в файле
explanation
Реализация этикетки. - **Анализ проверенного контента:** Отслеживайте типы контента, отмеченные системой аудита, чтобы выявить тенденции и возможные области для улучшения.
- **Непрерывная оценка и совершенствование:** Регулярно оценивайте эффективность системы проверки контента с помощью таких показателей, как точность и отзыв. Используйте эти данные для итеративного улучшения подсказок, ключевых слов и критериев оценки.
улучшать производительность
В сложных сценариях в дополнение к стандартным Советы по проектированию Кроме того, некоторые дополнительные стратегии могут помочь повысить производительность. Вот несколько дополнительных стратегий:
Определите темы и приведите примеры
Помимо перечисления категорий небезопасности в подсказках, можно было бы внести дополнительные улучшения, предоставив определения и связанные фразы для каждой категории.
import anthropic
import json
# 初始化 Anthropic 客户端
client = anthropic.Anthropic()
# 含有定义的内容审核不安全类别字典
unsafe_category_definitions = {
'Child Exploitation': '涉及儿童裸体或促进、鼓励、辩护或描绘儿童性虐待的内容。',
'Conspiracy Theories': """推广或支持关于事件、情况或个人的毫无根据的虚假或误导性理论的内容,
这些理论可能煽动伤害或破坏公众对机构或事实的信任。""",
'Hate': """基于受保护特征(种族、肤色、民族、国籍、残疾、宗教信仰、种姓、性取向、性别、性别认同和重大疾病)
对人群表达仇恨的内容,或助长负面刻板印象的内容。""",
'Indiscriminate Weapons': '涉及大规模杀伤性武器制造的内容。',
'Intellectual Property': '侵犯第三方知识产权的内容。',
'Non-Violent Crimes': '鼓励、辩护或推动非暴力犯罪的内容。',
'Privacy': '包含私人个人敏感信息的内容。',
'Self-Harm': '鼓励、辩护或推动自残行为的内容。',
'Sex Crimes': '鼓励、辩护或推动性犯罪的内容。',
'Sexual Content': '包含色情描述或性行为明确描写的内容。',
'Specialized Advice': """包含金融、医疗或法律建议的内容。
金融建议包括投资、股票、债券或任何财务规划的指导。""",
'Violent Crimes': '鼓励、辩护或推动暴力犯罪的内容。',
}
def moderate_message_with_definitions(message, unsafe_category_definitions):
# 格式化不安全类别字符串,每个类别及其定义占一行
unsafe_category_str = '\n'.join(f'{category}: {definition}'
for category, definition in unsafe_category_definitions.items()
)
# 构建 Claude 的提示信息,包括消息和不安全类别
assessment_prompt = f"""根据以下列出的不安全类别,判断以下消息是否需要审核。
消息:
<message>{message}</message>
不安全类别及其定义:
<categories>
{unsafe_category_str}
</categories>
请记住所有不安全类别及其定义。
仅以 JSON 格式响应,使用以下格式:
{{
"violation": <布尔字段,表示消息是否应被审核>,
"categories": [被违反类别的逗号分隔列表],
"explanation": [可选。如果存在违规,才包含。]
}}"""
# 向 Claude 发送内容审核请求
response = client.messages.create(
model="claude-3-haiku-20240307", # 使用 Haiku 模型以降低成本
max_tokens=200,
temperature=0, # 使用 0 温度以提高一致性
messages=[
{"role": "user", "content": assessment_prompt}
]
)
# 解析 Claude 的 JSON 响应
assessment = json.loads(response.content[0].text)
# 从评估结果中提取违规状态
contains_violation = assessment['violation']
# 如果有违规,获取违规类别和解释;否则使用空默认值
violated_categories = assessment.get('categories', []) if contains_violation else []
explanation = assessment.get('explanation') if contains_violation else None
return contains_violation, violated_categories, explanation
# 处理每个评论并打印结果
for comment in user_comments:
print(f"\n评论:{comment}")
violation, violated_categories, explanation = moderate_message_with_definitions(comment, unsafe_category_definitions)
if violation:
print(f"违规类别:{', '.join(violated_categories)}")
print(f"解释:{explanation}")
else:
print("未发现问题。")
moderate_message_with_definitions
функция основана на предыдущей moderate_message
Функция была расширена за счет сопоставления каждой небезопасной категории с подробным определением. Код сочетает в себе оригинальную функцию unsafe_categories
Список заменяется на unsafe_category_definitions
Словарь. Этот словарь сопоставляет каждую категорию небезопасности с соответствующим определением. Как имя категории, так и ее определение включаются в сообщение подсказки.
Стоит отметить, чтоSpecialized Advice
Определение категорий теперь уточняет типы финансовых консультаций, которые должны быть запрещены. В результате ранее принятое moderate_message
Рецензии на "Сейчас отличное время для инвестиций в золото!" Сейчас - это нарушение.
Рассмотрим пакетную обработку
В случаях, когда проверка в режиме реального времени не требуется, для снижения затрат рассмотрите возможность массового просмотра сообщений. Включите несколько сообщений в контекст подсказки и позвольте Клоду оценить, какие из них необходимо просмотреть.
import anthropic
import json
# 初始化 Anthropic 客户端
client = anthropic.Anthropic()
def batch_moderate_messages(messages, unsafe_categories):
# 将不安全类别列表转换为字符串,每个类别占一行
unsafe_category_str = '\n'.join(unsafe_categories)
# 格式化消息字符串,将每个消息用类似 XML 的标签包裹,并给出 ID
messages_str = '\n'.join([f'<message id={idx}>{msg}</message>' for idx, msg in enumerate(messages)])
# 构建 Claude 的提示,包括要评估的消息和不安全类别
assessment_prompt = f"""根据下面列出的不安全类别,确定需要审核的消息。
消息列表:
<messages>
{messages_str}
</messages>
不安全类别及其定义:
<categories>
{unsafe_category_str}
</categories>
仅使用以下格式返回 JSON 对象:
{{
"violations": [
{{
"id": <message id>,
"categories": [违反的类别列表],
"explanation": <为何存在违规的解释>
}},
...
]
}}
重要提示:
- 记得分析每条消息是否存在违规行为。
- 选择任何合理适用的违规类别。"""
# 发送审核请求给 Claude
response = client.messages.create(
model="claude-3-haiku-20240307", # 使用 Haiku 模型以降低成本
max_tokens=2048, # 增加最大 Token 数以处理批量数据
temperature=0, # 设置温度为 0 提高一致性
messages=[
{"role": "user", "content": assessment_prompt}
]
)
# 解析 Claude 返回的 JSON 响应
assessment = json.loads(response.content[0].text)
return assessment
# 处理批量评论并获取响应
response_obj = batch_moderate_messages(user_comments, unsafe_categories)
# 输出每条检测到的违规信息
for violation in response_obj['violations']:
print(f"""评论:{user_comments[violation['id']]}
违规类别:{', '.join(violation['categories'])}
解释:{violation['explanation']}
""")
В этом примереbatch_moderate_messages
Функция обрабатывает проверку целой партии сообщений с помощью одного вызова API Claude. Внутри функции создается подсказка, содержащая список сообщений для оценки, категорию небезопасного содержимого и его описание. Подсказка просит Claude вернуть JSON-объект со списком всех сообщений, содержащих нарушения. Каждое сообщение в ответе идентифицируется по его id, который соответствует позиции сообщения во входном списке. Обратите внимание, что поиск оптимального размера партии для ваших конкретных нужд может потребовать некоторых экспериментов. Хотя увеличение размера партии может снизить затраты, это может привести к некоторому снижению качества. Кроме того, вам может потребоваться увеличить количество вызовов API Claude в max_tokens
параметр, чтобы учесть более длинные ответы. Для получения дополнительной информации о максимальном количестве маркеров, которое может быть выведено выбранной моделью, см. Страница сравнения моделей.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...