造数据集的时候遇到的,llm不能很好的帮你替换,替换的内容不对,或者是替换的位置不对,比如这里就是替换位置不对,只盯着doc2替换,无视你的替换位置的变化。 待处理文本
{
"question": "填空题,吊车检验合格证件及驾驶操作合格证件报审手续完备,合格证件在________ 内。\n{%doc1%}\n{%doc2%}\n{%doc3%}\n",
"content": "吊车检验合格证件及驾驶操作合格证件报审手续完备,合格证件在有效期内。",
}
prompt
相关部分
将question中doc1替换直接照搬 content 的内容,doc2、doc3替换为与问题无关的两句话,是真正的替换不是照搬文字。
Response
"question": "填空题,吊车检验合格证件及驾驶操作合格证件报审手续完备,合格证件在________ 内。\n遵守所有相关的安全操作规程。\n吊车检验合格证件及驾驶操作合格证件报审手续完备,合格证件在有效期内。\n定期对设备进行安全检查。",
}
使用占位符可以清楚地表明这是一个待替换的部分,而不是一个静态的文本。这有助于LLM理解prompt的结构。如果prompt中直接使用doc1
、doc2
、doc3
这样的文本,可能会与实际的文档内容或其他文本混淆,使用{%doc1%}、{%doc2%}、{%doc3%}
可以明确这是一个特殊的标记。
使用占位符提高信息替换成功率
prompt
相关部分
将question中{%doc3%}替换直接照搬 content的内容,{%doc1%}、{%doc2%}替换为与问题无关的两句话,是真正的替换不是照搬文字。
Response
{
"question": "填空题,吊车检验合格证件及驾驶操作合格证件报审手续完备,合格证件在________ 内。\n遵守所有相关的安全操作规程。\n定期对设备进行安全检查。\n吊车检验合格证件及驾驶操作合格证件报审手续完备,合格证件在有效期内。",
}
prompt
这里还有一个小细节,与待替换文本占位符相对顺序对齐提升替换位置准确率,比如这里你用了占位符,
将question中{%doc3%}替换直接照搬 content的内容,{%doc2%}、{%doc1%}替换为与问题无关的两句话,是真正的替换不是照搬文字。
prompt
中的顺序为{%doc2%}、{%doc1%}
,但是待处理的文本中顺序是 {%doc1%}、{%doc2%}
,两者不一致,替换的位置就不能保证了。
Response
{
"question": "填空题,高架车驾驶及操作人员应经过相关机构或________ 的专门培训。\n操作前应熟悉所有安全指南。\n高架车驾驶及操作人员应经过相关机构或设备制造厂的专门培训。\n定期对设备进行维护以确保其良好状态。",
}
明显地,这里实际替换了{%doc2%}
而不是你要求的{%doc3%}
。
相关测试基于Qwen1.5-14B-Chat