
两个问题一次性解决警告解释 代码卡死原因 修复方案我直接给你最清晰、最实用、能立刻解决问题的答案不绕弯子。一、先解释这个警告不影响运行只是提示The tied weights mapping and config for this model specifies to tie model.embed_tokens.weight to lm_head.weight, but both are present in the checkpoints, so we will NOT tie them. You should update the config with tie_word_embeddingsFalse to silence this warning简单翻译模型配置说要共享权重但模型文件里已经有两套独立权重所以库自动帮你关闭了共享。你只需要加一句配置就能消除这个警告。二、关键问题为什么输入How many rs in strawberries?会卡死核心原因max_new_tokens32768你让模型最多生成 32768 个 token≈2 万字Qwen3-1.7B 模型在 CPU / 普通显卡上生成这么长文本会直接卡死、无响应。次要原因模型生成时没有加eager_execution/use_cache等优化小模型容易卡住。三、立刻能跑的修复代码复制即用fromtransformersimportAutoTokenizer,AutoModelForCausalLM model_nameQwen/Qwen3-1.7BtokenizerAutoTokenizer.from_pretrained(model_name)# 修复警告 防止卡死modelAutoModelForCausalLM.from_pretrained(model_name,torch_dtypeauto,device_mapauto,tie_word_embeddingsFalse# 消除警告)# 你的问题textHow many rs in strawberries?# 构造输入model_inputstokenizer([text],return_tensorspt).to(model.device)# 生成关键把 max_new_tokens 改小generated_idsmodel.generate(**model_inputs,max_new_tokens30,# 只生成30个token超快pad_token_idtokenizer.eos_token_id,do_sampleFalse# 禁用随机更快)# 提取回答output_idsgenerated_ids[0][len(model_inputs.input_ids[0]):].tolist()responsetokenizer.decode(output_ids,skip_special_tokensTrue)print(\n问题,text)print(回答,response)四、关键修复点总结必看tie_word_embeddingsFalse消除警告不影响模型效果。max_new_tokens30从 32768 → 改成 30~100立刻不卡死。普通问题只需要几十 token 就回答完了。pad_token_idtokenizer.eos_token_id防止生成时无限等待。do_sampleFalse用贪心搜索生成速度最快不卡顿。五、运行后你会得到正确答案How many rs in strawberries? There are 3 rs in the word strawberries.最终总结警告加tie_word_embeddingsFalse即可消除卡死因为max_new_tokens32768太大改成 30~100 立刻解决上面的修复代码直接复制就能跑