baichuan-inc / Baichuan2

A series of large language models developed by Baichuan Intelligent Technology
https://huggingface.co/baichuan-inc
Apache License 2.0
4.03k stars 286 forks source link

base模型推理pred和inputs完全一样 #394

Closed shuiyigt closed 3 months ago

shuiyigt commented 3 months ago

试了一下base的例子,输入"登鹳雀楼->王之涣\n夜雨寄北->", generate之后拿到的pred,解码后还是这个,没有多出“李商隐”,有人遇到过吗,代码完全没改,运行正常也没报错。

shuiyigt commented 3 months ago

开始可能是用的版本较低,完全没有输出新东西,但也不显示报错。

后来升级了版本: torch:2.2.2+cu118,xterms:0.0.25.post1+cu118 开始报错: RuntimeError: probability tensor contains either inf, nan or element < 0 排查了一些issue,开始怀疑模型文件。

用sha256sum检查了三个bin文件,发现有一个跟hugg上给的sha256不一样。尽管字节大小都完全一样。 重新下了一份文件替换后,开始输出正常了。 但似乎不像demo显示的那么快停止,看起来是直接输出到max_len。

inputs = tokenizer('登鹳雀楼->王之涣\n夜雨寄北->', return_tensors='pt').to('cuda:0') pred = model.generate(**inputs, max_new_tokens=64, repetition_penalty=1.1) print(tokenizer.decode(pred.cpu()[0], skip_special_tokens=True)) 登鹳雀楼->王之涣 夜雨寄北->李商隐 泊秦淮->杜牧 赤壁->杜牧 过松源晨炊漆公店->杨万里 约客->赵师秀 论诗->赵翼 己亥杂诗->龚自珍 浣溪沙->晏殊 采

windygoo commented 1 month ago

同遇到这个问题了