如何为Google Cloud Vertex AI文本生成模型配置安全参数?
解决Google Palm2(text-bison@001)安全拦截问题的方法
你遇到的blocked: True和错误码253.0,是因为新闻内容触发了模型默认的安全拦截规则。通过Vertex AI Python API的safety_settings参数可以调整安全阈值,具体操作如下:
1. 明确安全类别与阈值选项
模型的安全控制涵盖4类风险内容,每类可设置不同拦截阈值:
- 类别枚举:
HARM_CATEGORY_HATE_SPEECH(仇恨言论)、HARM_CATEGORY_DANGEROUS_CONTENT(危险内容)、HARM_CATEGORY_SEXUALLY_EXPLICIT(色情内容)、HARM_CATEGORY_HARASSMENT(骚扰内容) - 阈值枚举:
BLOCK_LOW_AND_ABOVE:拦截低风险及以上内容(默认)BLOCK_MEDIUM_AND_ABOVE:仅拦截中、高风险内容BLOCK_ONLY_HIGH:仅拦截高风险内容BLOCK_NONE:不拦截任何内容(仅限内部研究、已审核数据集等合规场景)
2. 修改代码添加安全设置
需要导入对应的安全枚举类,然后在predict方法中传入safety_settings参数。示例代码如下:
from vertexai.language_models import TextGenerationModel from vertexai.language_models._language_models import SafetySetting, HarmCategory, HarmBlockThreshold parameters = { 'max_output_tokens': 256, 'temperature': 0.0, 'top_p': 1.0, 'top_k': 40, } # 自定义安全规则:根据需求调整每类内容的拦截阈值 safety_settings = [ SafetySetting( category=HarmCategory.HARM_CATEGORY_HATE_SPEECH, threshold=HarmBlockThreshold.BLOCK_ONLY_HIGH ), SafetySetting( category=HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT, threshold=HarmBlockThreshold.BLOCK_ONLY_HIGH ), SafetySetting( category=HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT, threshold=HarmBlockThreshold.BLOCK_ONLY_HIGH ), SafetySetting( category=HarmCategory.HARM_CATEGORY_HARASSMENT, threshold=HarmBlockThreshold.BLOCK_ONLY_HIGH ), ] prompt = "..." model = TextGenerationModel.from_pretrained('text-bison@001') response = model.predict( prompt, **parameters, safety_settings=safety_settings )
3. 关键注意事项
- 错误码
253.0对应内容触发安全规则,可针对性调整对应类别的阈值(比如怀疑是仇恨言论触发,就单独修改该类别的阈值)。 BLOCK_NONE需谨慎使用,必须确保使用场景符合Google Vertex AI的使用政策,避免合规风险。- 若调整后仍有拦截,可检查新闻内容是否包含明确违反政策的内容,或进一步降低对应类别的拦截等级。
内容的提问来源于stack exchange,提问作者roysc
相关产品推荐
相关产品推荐

