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

如何为Flan T5模型编写正确提示以实现语义选项匹配?

Flan-T5 语义选项匹配任务提示词优化方案

原提示的核心问题是输入结构模糊,模型无法准确区分选项列表和选择指令的对应关系。通过优化提示词的结构化设计,就能让Flan-T5返回正确结果。

优化思路

Flan-T5对明确的任务指令和模块化的输入结构敏感度更高,需要把任务目标、选项列表、选择要求三个部分清晰拆分,同时约束输出格式,避免模型产生歧义。

不同场景的正确提示示例

1. 基于位置选择(如“第一个”)

调整后的提示词明确任务边界,让模型精准定位选项位置:

model = AutoModelForSeq2SeqLM.from_pretrained("google/flan-t5-small")
tokenizer = AutoTokenizer.from_pretrained("google/flan-t5-small")

inputs = tokenizer('''任务:从以下选项中根据要求选择正确项,仅返回选中的选项内容。
选项:
(a) Quinoa Salad
(b) Kale Smoothie
要求:选择第一个选项''', return_tensors="pt")
outputs = model.generate(**inputs)
print(tokenizer.batch_decode(outputs, skip_special_tokens=True))

预期输出:['Quinoa Salad'](部分情况下可能返回带序号的['(a) Quinoa Salad'],可通过提示词进一步约束输出格式)

2. 基于语义匹配(如“我想要鱼”)

针对语义关联的选择需求,补充清晰的任务指令即可:

inputs = tokenizer('''任务:从以下选项中根据要求选择正确项,仅返回选中的选项内容。
选项:
(a) Barbeque Chicken
(b) Smoked Salmon
要求:我想要鱼''', return_tensors="pt")
outputs = model.generate(**inputs)

预期输出:['Smoked Salmon']

3. 基于简称/别名匹配(如“BBQ那款”)

如果涉及简称或别名,可在选项后补充注释,帮助模型建立关联:

inputs = tokenizer('''任务:从以下选项中根据要求选择正确项,仅返回选中的选项内容。
选项:
(a) Barbeque Chicken(BBQ鸡肉)
(b) Smoked Salmon(烟熏三文鱼)
要求:BBQ那款''', return_tensors="pt")
outputs = model.generate(**inputs)

预期输出:['Barbeque Chicken']

关键优化点

  • 明确任务目标:直接告诉模型“选择正确选项”的核心任务,避免模糊表述
  • 结构化输入:用换行和模块标题拆分选项、要求,降低模型解析难度
  • 约束输出格式:要求“仅返回选中的选项内容”,避免模型生成无关文本
  • 补充必要注释:针对简称、专业术语等,补充释义帮助模型理解语义关联

内容的提问来源于stack exchange,提问作者Rahul Seeetharaman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 01:40:24