当前位置:   article > 正文

llama3的微调与部署

llama3的微调与部署

第一次做大模型的微调,记录一下。我的显卡是 4060ti 16G,显存只有16G注定会碰到很多问题。

模型:Llama3-Chinese-8B-Instruct

1. 我首先选择了LLaMA-Factory做为工具进行微调,最终结果提示显存不足,大概差1G吧。参考Llama3本地部署与高效微调入门_llama3 8b 微调-CSDN博客

2. 我又用unsloth作为工具进行微调,将fp16设置成True,bf16设置成False,可以生成相应的lora。参考使用Unsloth微调Llama3-Chinese-8B-Instruct中文开源大模型_llama3 unsloth-CSDN博客 https://colab.research.google.com/drive/135ced7oHytdxu3N2DNe1Z0kqjyYIkDXp?usp=sharing

3. 用transformers加载unsloth生成的lora和Llama3-Chinese-8B-Instruct时,  如果device_map为auto时,可以加载成功,但是很慢,gpu大概用了13G左右。

AutoModelForCausalLM.from_pretrained(mode, device_map="auto", torch_dtype=torch.float16)

如果将device_map设置成gpu,则会报错,提示显存不足。

4. 改用ollama部署,但ollama需要gguf格式的文件。将第二步生成的lora,直接保存成gguf,仍然提示显存不足

model.push_to_hub_gguf("hf/model", tokenizer, token = "")

修改了quantization_method参数,也没有用。这里我是将微调加保存放在一个py文件内,让后执行py文件,model会load和finetune后会一直占着显存,无法释放。我不清楚如果用jupyter会不会好些。

5. 用convert-lora-to-ggml.py转换第二步中生成的lora为bin文件。参考nous-llama.cpp/convert-llama-ggml-to-gguf.py at master · NousResearch/nous-llama.cpp · GitHub

6. 将Llama3-Chinese-8B-Instruct转成gguf文件,参考llama.cpp/examples/quantize/README.md at master · ggerganov/llama.cpp · GitHub

7. 做个Modelfile之后用ollama部署,最终可以load成功

总结:如果没有24G以上的显存还是用ollama+llama.cpp比较好

遗留问题:

1. 我查看40系列的显卡是支持bf16,为什么微调时不能用bf16

2. 在其他的贴子下看到,用ollama分别加载model和lora,效果不好,需要在第二步将model和lora merge。待验证。ollama 使用自己的微调模型_ollama微调模型-CSDN博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/948718
推荐阅读
相关标签
  

闽ICP备14008679号