提问"荆轲刺秦王",模型返回与史实相去甚远

#23
by freedenS - opened

top_p=0.9 tempatuer=0.6

荆轲刺秦王是中国历史上一个著名的故事,发生在公元前227年。荆轲是一个蒙古人,受秦始皇之托,前往朝鲜半岛(当时称为“东胡”)作为一个使者。然而,荆轲秘密计划刺杀秦始皇。

当荆轲回到中国时,他发现自己被秦始皇的卫士所包围。荆轲拿着一个盒子,上面写着“毒性很强”的字样,试图说服卫士打开盒子。然而,卫士们不相信他,结果被毒杀。荆轲本人也被杀害。

这起事件通常被解释为一个失败的刺杀行动,但也被解释为一个象征性的行动,表明秦始皇的权力和权威。荆轲刺秦王的故事已经成为中国历史和文化中一个重要的主题。

top_p=0 tempature=1

荆轲刺秦王是中国历史上著名的刺杀事件,发生在公元前227年。刺客荆轲被秦王政任命为使者,前往燕国请求秦国将他所谓的祖国的头颅作为礼物。荆轲带着毒匕首前往,计划在见到秦王时刺杀他。然而,刺杀行动被燕国的官员们发现,他们试图阻止荆轲,但他成功地刺杀了秦王政。然而,荆轲本人也被杀死了。这个事件标志着秦国的衰落和六国的复兴

测试脚本

from transformers import AutoTokenizer, AutoModelForCausalLM

model_id = "./Llama3-8B-Chinese-Chat"

tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id, device_map="auto"
)

messages = [
    {"role": "system", "content": "You are Llama3-8B-Chinese-Chat, which is finetuned on Llama3-8B-Instruct with Chinese-English mixed data by the ORPO alignment algorithm. You, Llama3-8B-Chinese-Chat, is developed by Shenzhi Wang (王慎执 in Chinese). You are a helpful assistant."},
    {"role": "user", "content": "荆轲刺秦王"},
]

input_ids = tokenizer.apply_chat_template(
    messages, add_generation_prompt=True, return_tensors="pt"
).to(model.device)

outputs = model.generate(
    input_ids,
    max_new_tokens=8196,
    do_sample=True,
    temperature=1,
    top_p=0,
)
response = outputs[0][input_ids.shape[-1]:]
print(tokenizer.decode(response, skip_special_tokens=True))

我们v1和v2模型的训练数据都没有包含专门的历史的数据,基于的模型也是英文的llama3-8b-instruct模型,因此对中国历史不熟悉是正常的。如果有相关的数据集,后续我们可以进一步优化。

明白了,感谢解答

shenzhi-wang changed discussion status to closed

Sign up or log in to comment