怎么做游戏测评视频网站,企业网站建设方案渠道,linux网站环境,爱站工具包之前用https://github.com/FlagAlpha/Llama2-Chinese微调过几个模型#xff0c;总体来说llama2的生态还是比较好的#xff0c;过程很顺利。微调百川2就没那么顺利了#xff0c;所以简单做个记录 1. 数据准备#xff0c;我的数据是单轮对话#xff0c;之前微调llama2已经按… 之前用https://github.com/FlagAlpha/Llama2-Chinese微调过几个模型总体来说llama2的生态还是比较好的过程很顺利。微调百川2就没那么顺利了所以简单做个记录 1. 数据准备我的数据是单轮对话之前微调llama2已经按照sft格式做好txt文件翻看https://github.com/baichuan-inc/Baichuan2发现用的是json和我所用数据格式有所出入训练我还是用一开始用llama2的finetune脚本和参数按照baichuan2的数据格式调整了代码。不过最后为了兼容llama2我就把llama2的数据格式和tokenize_function给用在了百川2上看起来也没啥问题。 2. 模型选取用baichuan2-13b-chat作为预训练权重推理的时候总是头部输出我要的内容但是输出总是无法停止就算训完一个epoch也是这样很怪异研究半天不知道所以然干脆放弃采用不带chat的baichuan2-13b作为预训练权重这次很快出结果只要iter 100次保存下来的模型输出也是我想要的内容所以就不换了暂时用baichuan2-13b。主要是llama2已经跑的很好我实验也就不求甚解将就先用baichuan2-13b。在这个过程中--lora_r 1 --lora_alpha 32 --lora_dropout 0.1这几个参数我按照baichuan2仓库里设置了。 3. 给百川模型的加载统统加上trust_remote_code不然总是提示你y/N选择孙悟空都会是烦死了。 4. 训练模型遇到的错误1:
AttributeError: BaichuanTokenizer object has no attribute sp_model 这个错误通过简单回滚transfomers解决python3 -m pip install transformers4.33.2另外还有一个错误忘了具体是啥通过回滚bitsandbytes解决python3 -m pip install bitsandbytes0.41.0幸运的是llama2在这两个模块版本下同样工作。上面的错误其实也有人说挪下tokenization_baichuan.py里的super的位置我改了几处这个文件似乎不起作用随即放弃这个方案。 5. 推理过程遇到的错误2这个错误也是折腾了我好一会通过给AutoModelForCausalLM.from_pretrained加上pretraining_tp1参数解决先跑通原理没去深究了。
RuntimeError: mat1 and mat2 shapes cannot be multiplied (1x20 and 9x5120) 6. 训练还遇到一个内存不足的问题3google了两把按照提示加了个环境变量PYTORCH_CUDA_ALLOC_CONFmax_split_size_mb:1536果然就好了谷歌不欺我也。内存不是真不足而是碎片化严重调整max_split_size_mb比降低batch size总是好的。
torch.cuda.OutOfMemoryError: CUDA out of memory. Tried to allocate 1.20 GiB (GPU 0; 23.69 GiB total capacity; 20.29 GiB already allocated; 579.94 MiB free; 22.56 GiB reserved in total by PyTorch) If reserved memory is allocated memory try setting max_split_size_mb to avoid fragmentation. See documentation for Memory Management and PYTORCH_CUDA_ALLOC_CONF 7. llama2微调的参数module是q_proj,k_proj,v_proj,o_proj,down_proj,gate_proj,up_proj这些百川2很奇怪有个自己的W_pack把全连接打印了一下其实还有down_proj,o_proj,up_proj,gate_proj微调这几个部分效果也差不多微调哪些更好哪些更差暂时就不去比较了遇到问题也许可以调整一下。