You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vertex AI多Prompt响应一致性问题及UNSD区域国家列表获取异常排查

问题排查思路
  • Prompt结构混乱:原Prompt混合了说明文本、格式示例和冗余称呼(如Hi Bard),模型容易混淆任务核心,导致部分区域无输出或响应不一致。
  • 格式约束不明确:仅用output: country=[]作为格式示例,没有强制要求模型严格遵循,输出随机性无法被有效约束。
  • 参数配置未最大化一致性:虽然设置了temperature=0,但top_p和top_k的取值仍给模型保留了一定选择空间,可能引发输出波动。
解决方案

1. 重构Prompt,明确任务与格式

  • 移除冗余表述,直接告知模型需严格遵循UNSD M49分类标准返回结果。
  • 增加明确的格式强制要求,并加入一个已知正确的区域示例,强化模型对输出格式的认知。
  • 统一输入为纯区域名称,避免自然语言提问带来的歧义。

2. 调整参数强化输出一致性

  • 保持temperature=0(确保输出确定性),将top_p设为1.0、top_k设为1,彻底限制模型的随机选择空间。
  • 调高max_output_tokens至1024,避免因内容过长被截断导致结果缺失。

3. 增加结果校验与重试机制

  • 对返回结果进行格式校验,若不符合country=[...]格式,自动重试2-3次。
  • 预先使用UNSD官方区域名称作为输入,避免因名称表述差异导致模型匹配失败。
修改后的示例代码
import vertexai
from vertexai.language_models import TextGenerationModel

vertexai.init(project="XXXXXXXXXXXXXXXXXXX", location="us-central1")
# 优化参数,最大化输出一致性
parameters = {
    "max_output_tokens": 1024,
    "temperature": 0,
    "top_p": 1.0,
    "top_k": 1
}
model = TextGenerationModel.from_pretrained("text-bison@001")

def get_unsd_countries(target_region):
    prompt = f"""
    任务:严格按照联合国统计司(UNSD)M49地理分类标准,返回指定子区域的所有国家列表。
    输出必须严格遵循格式:country=[国家名称1, 国家名称2, ...]
    示例参考:
    输入:东欧
    输出:country=[阿尔巴尼亚, 安道尔, 亚美尼亚, 奥地利, 阿塞拜疆, 白俄罗斯, 比利时, 波斯尼亚和黑塞哥维那, 保加利亚, 克罗地亚, 塞浦路斯, 捷克, 丹麦, 爱沙尼亚, 芬兰, 法国, 格鲁吉亚, 德国, 希腊, 匈牙利, 冰岛, 爱尔兰, 意大利, 哈萨克斯坦, 拉脱维亚, 列支敦士登, 立陶宛, 卢森堡, 马耳他, 摩尔多瓦, 摩纳哥, 黑山, 荷兰, 北马其顿, 挪威, 波兰, 葡萄牙, 罗马尼亚, 俄罗斯联邦, 圣马力诺, 塞尔维亚, 斯洛伐克, 斯洛文尼亚, 西班牙, 瑞典, 瑞士, 土耳其, 乌克兰, 英国]
    
    输入:{target_region}
    输出:
    """
    response = model.predict(prompt, **parameters)
    # 格式校验与重试
    for _ in range(3):
        if "country=[" in response.text:
            return response.text.strip()
        response = model.predict(prompt, **parameters)
    return "获取失败,请检查区域名称或重试"

# 测试西欧区域
western_europe_result = get_unsd_countries("西欧")
print(f"Response from Model: {western_europe_result}")

内容的提问来源于stack exchange,提问作者Gijs van den Dool

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 23:15:25