训练的Loss和输出突然全是nan【小白找bug】

某一天,我重新跑了两天之前正常跑的代码,训练的Loss和输出突然全是nan(从epoch0就是nan了),我惊慌失措。我的代码是关于微调llama的,于是我开始找问题,在输入进入llama之前都是没问题的,进入llama的输出变成了nan,所以有可能是llama本身的数值有问题,我是用下载好的llama权重文件初始化的,可以使用简单的程序验证一下是不是下载的权重文件的问题:

python 复制代码
import torch
import transformers
from transformers import LlamaForCausalLM, LlamaTokenizer
from transformers import pipeline


model_dir = "/llama/"  # 权重文件的路径

model = LlamaForCausalLM.from_pretrained (model_dir)
tokenizer = LlamaTokenizer.from_pretrained (model_dir)

print(type(model))
for name, param in model.named_parameters():
    if torch.isnan(param).any():
        print(f"Parameter {name} contains NaN")
    if torch.isinf(param).any():
        print(f"Parameter {name} contains Inf")
    if param.abs().max() > 1e6:  # 值过大可能导致数值溢出
        print(f"Parameter {name} has very large values: {param.abs().max()}")

pipeline = transformers.pipeline (
          "text-generation",
          model=model,
          tokenizer=tokenizer,
          torch_dtype=torch.float16,
          device_map="auto",
          )

sequences = pipeline (
          'I have tomatoes, basil and cheese at home. What can I cook for dinner?\n',
          do_sample=True,
          top_k=10,
          num_return_sequences=1,
          eos_token_id=tokenizer.eos_token_id,
          max_length=400,
          )

for seq in sequences:
    print (f"{seq ['generated_text']}")

运行这个程序后,有的param确实是NaN和Inf,也报错了。但是我刚下载完llama权重时候运行这个程序是没问题的。

确认就是llama权重文件的问题。

只能使用convert_llama_weights_to_hf.py再转换一份权重文件了。运行这个代码的时候又报错了:

python 复制代码
ImportError: cannot import name 'TikTokenConverter' from 'transformers.convert_slow_tokenizer'

于是只好重新安装transformers,不报错了

python 复制代码
pip install git+https://github.com/huggingface/transformers

注意安装transformer的命令并不是pip install transformers==xxx版本,我一开始这样安装都没解决报错。

后记:很奇怪,可能是服务器磁盘坏了一小块?我不理解,两天前没毛病,两天后全是毛病,心累,哭/(ㄒoㄒ)/~~

相关推荐
Flittly5 分钟前
【LangGraph新手村系列】(2)自定义状态与归约器:让 LangGraph 记住更多东西
python·langchain·aigc
好运的阿财6 分钟前
OpenClaw工具拆解之apply_patch+sandboxed_read
人工智能·python·ai编程·openclaw·openclaw工具
iAm_Ike12 分钟前
怎么关闭MongoDB不需要的HTTP管理接口及REST API
jvm·数据库·python
kishu_iOS&AI13 分钟前
NLP —— LSTM/GRU模型
人工智能·pytorch·深度学习·自然语言处理·gru·lstm
hrhcode16 分钟前
【LangChain】一.LangChain v1.0-快速上手(核心组件、工具、中间件)
python·ai·langchain·agent
SunnyDays101122 分钟前
Python Word 转 Excel 详解(含整个文档、特定页面或表格转换)
python·word 转 excel·docx 转 xlsx·word 表格导出 excel
m0_7411733322 分钟前
CSS移动端实现卡片悬浮投影_利用box-shadow设置层次感
jvm·数据库·python
西洼工作室23 分钟前
uniapp+vue3+python对接阿里云短信认证服务alibabacloud_dypnsapi20170525
python·阿里云·uni-app
chushiyunen24 分钟前
pygame实现射击游戏
python·游戏·pygame
sinat_3834373625 分钟前
如何在 Laravel 中筛选并格式化匹配预定义列表的产品数据
jvm·数据库·python