首页 > 其他分享 >使用Colab_LLaMA_Factory_LoRA微调_Llama3(可自定义数据)

使用Colab_LLaMA_Factory_LoRA微调_Llama3(可自定义数据)

时间:2024-05-02 14:56:29浏览次数:32  
标签:Colab True Llama3 Factory content LLaMA 使用 LoRA

使用 LLaMA Factory 微调 Llama-3 中文对话模型

项目主页: https://github.com/hiyouga/LLaMA-Factory

这个过程超级简单,半个多小时在T4上就能跑完。

完全可以替换成自己的数据,支持中文数据。

安装 LLaMA Factory 依赖

  1%cd /content/ 2%rm -rf LLaMA-Factory 3!git clone https://github.com/hiyouga/LLaMA-Factory.git 4%cd LLaMA-Factory 5%ls 6!pip install "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git" 7!pip install --no-deps xformers==0.0.25 8!pip install .[bitsandbytes]

更新自我认知数据集

  1import json 2 3%cd /content/LLaMA-Factory/ 4 5NAME = "New LLama3" 6AUTHOR = "AI ONES" 7 8with open("data/identity.json", "r", encoding="utf-8") as f: 9 dataset = json.load(f) 10 11for sample in dataset: 12 sample["output"] = sample["output"].replace("NAME", NAME).replace("AUTHOR", AUTHOR) 13 14with open("data/identity.json", "w", encoding="utf-8") as f: 15 json.dump(dataset, f, indent=2, ensure_ascii=False)

微调过程大约需要 30 分钟。

  1from llmtuner import run_exp 2from llmtuner.extras.misc import torch_gc 3 4%cd /content/LLaMA-Factory/ 5 6run_exp(dict( 7 stage="sft", # 进行指令监督微调 8 do_train=True, 9 model_name_or_path="unsloth/llama-3-8b-Instruct-bnb-4bit", # 使用 4 比特量化版 Llama-3-8b-Instruct 模型 10 dataset="identity,alpaca_gpt4_en,alpaca_gpt4_zh", # 使用 alpaca 和自我认知数据集 11 template="llama3", # 使用 llama3 提示词模板 12 finetuning_type="lora", # 使用 LoRA 适配器来节省显存 13 lora_target="all", # 添加 LoRA 适配器至全部线性层 14 output_dir="llama3_lora", # 保存 LoRA 适配器的路径 15 per_device_train_batch_size=2, # 批处理大小 16 gradient_accumulation_steps=4, # 梯度累积步数 17 lr_scheduler_type="cosine", # 使用余弦学习率退火算法 18 logging_steps=10, # 每 10 步输出一个记录 19 warmup_ratio=0.1, # 使用预热学习率 20 save_steps=1000, # 每 1000 步保存一个检查点 21 learning_rate=5e-5, # 学习率大小 22 num_train_epochs=3.0, # 训练轮数 23 max_samples=300, # 使用每个数据集中的 300 条样本 24 max_grad_norm=1.0, # 将梯度范数裁剪至 1.0 25 quantization_bit=4, # 使用 4 比特 QLoRA 26 loraplus_lr_ratio=16.0, # 使用 LoRA+ 算法并设置 lambda=16.0 27 use_unsloth=True, # 使用 UnslothAI 的 LoRA 优化来加快一倍的训练速度 28 fp16=True, # 使用 float16 混合精度训练 29)) 30 31torch_gc()

模型推理

  1from llmtuner import ChatModel 2from llmtuner.extras.misc import torch_gc 3 4%cd /content/LLaMA-Factory/ 5 6chat_model = ChatModel(dict( 7 model_name_or_path="unsloth/llama-3-8b-Instruct-bnb-4bit", # 使用 4 比特量化版 Llama-3-8b-Instruct 模型 8 adapter_name_or_path="llama3_lora", # 加载之前保存的 LoRA 适配器 9 finetuning_type="lora", # 和训练保持一致 10 template="llama3", # 和训练保持一致 11 quantization_bit=4, # 加载 4 比特量化模型 12 use_unsloth=True, # 使用 UnslothAI 的 LoRA 优化来加快一倍的推理速度 13)) 14 15messages = [] 16while True: 17 query = input("\nUser: ") 18 if query.strip() == "exit": 19 break 20 21 if query.strip() == "clear": 22 messages = [] 23 torch_gc() 24 print("History has been removed.") 25 continue 26 27 messages.append({"role": "user", "content": query}) # 把提示词添加到消息中 28 print("Assistant: ", end="", flush=True) 29 response = "" 30 for new_text in chat_model.stream_chat(messages): # 流式输出 31 print(new_text, end="", flush=True) 32 response += new_text 33 print() 34 messages.append({"role": "assistant", "content": response}) # 把回答添加到消息中 35 36torch_gc()

colab代码地址:https://colab.research.google.com/drive/1RF1YuGTyUHFcVCLUO36KwqCBSr1G_n6w?usp=sharing

原创声明:本文为本人原创作品,首发于AI ONES https://wuxiongwei.com,如果转载,请保留本文链接,谢谢。

标签:Colab,True,Llama3,Factory,content,LLaMA,使用,LoRA
From: https://www.cnblogs.com/sunnywu/p/18170195

相关文章

  • 一分钟部署 Llama3 中文大模型,没别的,就是快
    前段时间百度创始人李彦宏信誓旦旦地说开源大模型会越来越落后,闭源模型会持续领先。随后小扎同学就给了他当头一棒,向他展示了什么叫做顶级开源大模型。美国当地时间4月18日,Meta在官网上发布了两款开源大模型,参数分别达到80亿(8B)和700亿(70B),是目前同体量下性能最好的开......
  • .net core,.net 6使用SoapCore开发webservice接口,以及使用HttpClientFactory动态访问we
    1.使用soapCorenuget包 2.新建接口及实现2.1新建接口 2.2新建实现 2.3新建接收实体 2.4返回实体 3.接口注入使用  4.启动程序,直接访问对应的asmx地址  ......
  • SpringBoot+MyBatisPlus报错 Invalid value type for attribute 'factoryBeanObjectTy
    依赖版本org.springframework.boot:spring-boot-starter-web:3.2.5com.baomidou:mybatis-plus-boot-starter:3.5.5错误Invalidvaluetypeforattribute'factoryBeanObjectType'问题原因:这个问题是由于依赖传递导致,在MyBatis起步依赖中的myBatis-spring版本过低,导致程......
  • vllm 通过不同的chat_template推理部署常见qwen、chatglm、llama3等开源大模型
    vllm版本4.0.0镜像vllmgithub官方镜像gpuv10032ga80080gopenaiapi方式出现的问题通过chat-template聊天模板解决1推理部署qwen系列模型测试我是谁问题:回答内容含有分词符,回答有杂论冗余内容模型文件没有默认聊天模板vllm官方也没有聊天模板找不到不过......
  • 如何拥有自己的专属GPT-本地部署目前最强大模型llama3
    你是不是苦于没法使用ChatGPT?或者访问了ChatGPT却没法使用GPT4?现在一切问题都可以解决了!4月18日,Meta发布两款开源Llama38B与Llama370B模型,供外部开发者免费使用。这个消息轰动了全球开发者。按照Meta的说法,Llama38B和Llama370B是目前同体量下,性能最好的开源模型。所以Ll......
  • ollama——快速上手Llama3部署使用
    ollama——快速上手Llama31.ollama安装#Linuxcurl-fsSLhttps://ollama.com/install.sh|sh#vi/etc/systemd/system/ollama.service[Unit]Description=OllamaServiceAfter=network-online.target[Service]ExecStart=/usr/local/bin/ollamaserveUser=ollamaGrou......
  • 学习笔记447—本地部署 Llama3 – 8B/70B 大模型!最简单的方法: 支持CPU /GPU运行 【3种
    本地部署Llama3–8B/70B大模型!最简单的方法:支持CPU/GPU运行【3种方案】目前在开源大模型领域,Llama3无疑是最强的!这次Meta不仅免费公布了8B和70B两个性能强悍的大模型,400B也即将发布,这是可以和GPT-4对打的存在!今天我们就来介绍3各本地部署方法,简单易懂,非常适合新手!1.G......
  • 扎克伯格说,Llama3-8B还是太大了,量化、剪枝、蒸馏准备上!
    扎克伯格说,Llama3-8B还是太大了,不适合放到手机中,有什么办法?量化、剪枝、蒸馏,如果你经常关注大语言模型,一定会看到这几个词,单看这几个字,我们很难理解它们都干了些什么,但是这几个词对于现阶段的大语言模型发展特别重要,它们就是将模型缩小的利器。这篇文章就带大家来认识认识它们,......
  • https://github.com/meta-llama/llama3 文生图
    https://github.com/meta-llama/llama3 Skiptocontent NavigationMenu Product Solutions OpenSource Pricing Searchorjumpto...  SigninSignup  meta-llama/llama3PublicNotificationsFork 1.4k Star ......
  • 使用ollama分别在我的window、mac、小米手机上部署体验llama3-8b
    1、ollama到底是个什么玩意一句话来说,Ollama是一个基于Go语言开发的简单易用的本地大模型运行框架。可以将其类比为docker(有类似docker中的一些常规命令list,pull,push,run等等),事实上确实也制定了类似docker的一种模型应用标准,在后边的内容中,你能更加真切体会到这一点。......