Open songkq opened 10 months ago
抱歉,应该是'Human:{prompt} Assistant: '这个格式,即,已经在readme中修正
@wuyiquan 好的,请教下为什么在SFT数据中只用eos </s>
,不使用bos <s>
?
用eos主要是方便多轮对话的自动截断,bos用不用应该没有太大影响,格式统一即可
@wuyiquan 好的,谢谢。我看Demo里单轮对话的prompt在Human:
和Assistant:
后面都没有加\n
,而多轮对话的prompt在组织时,首轮对话的</s>Human:
没有加\n
,以及最后一个Assistant:
后面没有加\n
,其他Human:
和Assistant:
后面加了\n
。多轮对话在SFT阶段是严格按这种格式组织训练的嘛?
单轮对话:
</s>Human:喝了二两酒开船会如何 </s>Assistant:
多轮对话:
</s>Human:喝了二两酒开船会如何
</s>Assistant:
饮酒后驾驶机动车是违法行为,不仅可能导致交通事故的发生,还可能会被处以罚款、拘留等处罚。如果已经喝了二两酒,建议不要再开车上路,以免发生危险。如果您需要代驾服务或者找人帮忙接送,可以考虑使用相关服务来确保安全出行。同时也要注意遵守交通规则和法律法规,保障自己和他人的生命安全。
</s>Human:
我是开船,不是开车
</s>Assistant:
作为一名船长,您应该了解海上交通安全法规并严格遵守规定。在航行过程中,请务必保持清醒头脑,避免饮酒或服用任何影响判断力的药物。此外,为了保证船只的安全运营,您还需要具备一定的专业知识和技能,包括对气象条件、海况以及其他船舶的观察能力等等。因此,我建议您在航行前进行充分准备工作,并且始终将乘客和其他船员的安全放在首位。如有必要,您也可以寻求专业的指导和帮助,以便更好地应对各种情况。
</s>Human:
好的,谢谢你的建议 </s>Assistant:
这是哪里的Demo?我们的sft数据的格式里不额外带\n,换句话说,可以把所有出现的\n当作一个正常的字符
感谢提醒,这个好像是一个bug,我们训练过程是没有\n的,推断时候多加了这个\n,我们尽快修复下。
@wuyiquan 请问推理时使用的prompt template 和示例给的SFT数据格式为啥不一致?
inputs = tokenizer(f'</s>Human:{prompt} </s>Assistant: ', return_tensors='pt')