Llama3微调教程:超简单,人人都可以打造属于自己的GPT!
随着Llama 3的发布,国内各路英雄豪杰纷纷开启了炼丹之旅。Llama-3 8b在惊人的15万亿令牌上训练,而Llama-2仅为2万亿。毋庸置疑,Llama 3目前是开源大模型中能力最强的!其跑分成绩已经赶上了GPT-4。
随着Llama 3的发布,国内各路英雄豪杰纷纷开启了炼丹之旅。Llama-3 8b在惊人的15万亿令牌上训练,而Llama-2仅为2万亿。毋庸置疑,Llama 3目前是开源大模型中能力最强的!其跑分成绩已经赶上了GPT-4。
然而,Llama的优势不仅限于此。作为开源大模型,每个人都可以对其进行定制,这意味着相比GPT,它具有更强的定制性和安全性。Llama可应用于针对B端企业的自然语言处理、机器翻译、文本生成、问答系统、聊天机器人等场景。
目前,我们主要通过微调(Fine-Tuning)来定制所需的模型。例如,Llama 3原生不支持中文,但我们可以通过微调让它支持中文。
微调是指在已经经过大规模预训练的基础模型上,使用特定领域或任务的数据集对模型进行额外训练,以适应特定任务或问题。微调过程通常包括在预训练模型的基础上进行少量迭代训练,以调整模型参数,使其在特定任务上表现更好。
通过这个简单的Llama 3微调案例,我们可以体验整个大模型微调的过程。对于普通人来说,这是一个免费体验算法工程师工作方式的机会;如果你想转入AI行业,这也是一个很好的入门案例。
愿每个人都能从中受益,开启自己的AI探索之旅!如果觉得好别忘了点赞和收藏。
接下来,你将学习如何进行环境配置、数据准备、模型训练、模型运行、模型保存以及本地模型使用。在开始之前,让我们先完成一些准备工作。
准备工作
1、访问Unsloth
目前,最简单的方法是使用Unsloth,它是一个微调模型的集成工具。通过Unsloth微调Mistral、Gemma、Llama,速度提高2-5倍,内存减少70%!
访问Unsloth的GitHub地址:https://github.com/unslothai/unsloth,点击 “▶️Start on Colab” "即可打开Colab训练脚本。
为了方便大家快速上手,我已经将其翻译成中文并简化https://colab.research.google.com/drive/1pvzl7E2rdTF7LkDQZOTyl32_Vu9Zwe4N?usp=sharing
如果你是初学者,建议使用我修改过的Colab笔记。
2、创建Colab笔记副本
使用Colab的好处是标准化的环境,免去了很多问题。我们先将笔记复制为副本,这样它能保存到自己的Google Drive中。
3、连接T4 GPU
你可以免费使用Google提供的GPU资源,选择连接T4。当连接成功后,就可以开始了。
你也可以在弹框中选择T4 GPU。
当链接成功后,你就准备就绪了。
4、连接Google Drive
我们需要连接Google Drive,以便将训练好的模型保存到云端。使用Colab非常简单,你基本只需依次点击运行每个代码块即可。
5、安装Unsloth
点击运行,这段代码主要是安装Unsloth和模型训练相关的必要库。
展示执行时间表示已经执行过了。
步入正题
一切准备就绪,我们要进入正式流程了
1. 选择预训练模型
这一段代码主要用于选择我们要训练的模型,代码中已经帮我们选择好了"unsloth/llama-3-8b-bnb-4bit"。继续点击运行,等待模型下载完成。
点击之后,我们会看到它正在下载模型,需要等待它执行完毕。
2. 配置LoRA参数
我们的微调是通过LoRA实现的。LoRA(Low-Rank Adaptation of Large Language Models)是大语言模型的低阶适配器,用于在模型微调过程中只更新整个模型参数的一小部分,通常在1%到10%之间。
继续点击运行。
3. 准备数据
微调模型最重要的是数据。这里我们使用yahma的Alpaca数据集,它包含52,000条由OpenAI的text-davinci-003引擎生成的指令和演示数据。这些指令数据可用于对语言模型进行指令调优,使其更好地遵循指令。
Alpaca的数据结构如下
"instruction": "描述原子的结构。",
"input": "",
"output": "原子是所有物质的基本组成部分,由三种类型的粒子组成:质子、中子和电子。原子的结构可以描述为中心有一个原子核,周围环绕着电子云。原子核由质子和中子组成。质子是带正电的粒子,中子是不带电荷的中性粒子……"
- “instruction”: “描述原子的结构。”,每条数据,结构由三部分组成:instruction (指令)、input(输入)和output(输出),我们可以根据这个格式准备自己的数据集。
- instruction(指令):这部分定义了要求AI执行的任务或问题。它是一条明确的指示,告诉AI需要做什么。例如,“识别以下句子中的名词"或"我应该投资股票吗?”。
- input(输入):这部分提供了执行指令所需的具体信息或上下文。在某些情况下,这个部分可能为空,表示指令本身已经包含了执行任务所需的所有信息。
- output(输出):这部分是AI根据给定的指令和输入生成的答案或结果。它是AI处理完输入信息后的响应或解决方案。
继续点击播放,执行代码。
4. 训练模型
现在让我们使用Huggingface TRL的SFTTrainer库来训练模型,我们设置max_steps最大步数为60步来加快训练速度,让我们继续无脑的点击播放:
然后,就可以开始正式训练模型了。
5. 测试训练效果
训练完成后,我们可以测试模型效果。这里我们先让它生成斐波那契数列(Fibonacci sequence)。
你也可以更改指令instruction和输入input,测试你想要的内容。但是注意需要使用英文。
另外,我们还可以使用流格式,像使用GPT一样,一个个字地输出。
6. 保存模型和加载模型
目前,我们模型已经训练好了,我们可以将刚刚训练的LoRA保存下来。
6.1.保存和加载LoRA模型
点击运行,将LoRA模型保存到Colab的临时服务器中。
训练好的LoRA模型保存在lora_model文件夹中。
如果你想加载刚刚训练的LoRA模型进行测试,可以执行相应的代码。
6.2 保存为GGUF模型
目前较为常用的模型格式是GGUF,我们可以使用LM Studio在本地加载使用。这段代码可以将模型保存为不同的精度格式,建议使用Q4_K,生成的体积比较小,只有4GB。
生成的模型在这里,但是直接下载比较难。
我们可以执行这段代码,将生成的模型移动到Google云端硬盘中,这样下载更方便。
移动完成后,访问Google云端硬盘即可下载GGUF模型。
地址:https://drive.google.com/drive/my-drive
这样我们微调的整个过程就完成了。恭喜你!
本地使用模型
1.下载LM Studio的客户端
访问:https://lmstudio.ai 下载LM Studio的客户端,它可以加载我们刚刚训练的模型。
2. 导入模型
将GGUF文件放到LM Studio的模型文件夹中。打开保存模型的文件夹目录:models。
在指定路径中创建文件夹,目录结构为llama3/model-unsloth/。在models文件夹中新建一个文件夹llama3,然后再创建一个模型文件夹model-unsloth,将下载的模型放进去。
设置完成后,重启LM Studio。
3. 开始聊天
选择模型后,就可以开始聊天了。
总结
本教程详细介绍了如何使用Unsloth和Google Colab环境对Llama 3进行微调。使用Colab基本上是无脑点击运行就好了。
经过这个教程,我们发现微调模型主要有三个核心环节:
- 数据准备,这一步决定了质量;
- 模型训练,这一步硬件资源决定了时间;
- 模型测试,因为我们初步体验,所以比较简略,后续可以进一步探讨。
通过本教程,即使是AI领域的新手也能够掌握大模型的微调技术。Unsloth不仅降低了技术门槛,也为个人和小团队提供了强大的工具。
如果还有问题,可以查看我的notebook或者进群讨论。希望你能将这些知识应用于实际问题,解锁更多的可能性。
如何系统的去学习大模型LLM ?
作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。
但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料
包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓
一、全套AGI大模型学习路线
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
二、640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
三、AI大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
四、AI大模型商业化落地方案
阶段1:AI大模型时代的基础理解
- 目标:了解AI大模型的基本概念、发展历程和核心原理。
- 内容:
- L1.1 人工智能简述与大模型起源
- L1.2 大模型与通用人工智能
- L1.3 GPT模型的发展历程
- L1.4 模型工程
- L1.4.1 知识大模型
- L1.4.2 生产大模型
- L1.4.3 模型工程方法论
- L1.4.4 模型工程实践 - L1.5 GPT应用案例
阶段2:AI大模型API应用开发工程
- 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
- 内容:
- L2.1 API接口
- L2.1.1 OpenAI API接口
- L2.1.2 Python接口接入
- L2.1.3 BOT工具类框架
- L2.1.4 代码示例 - L2.2 Prompt框架
- L2.2.1 什么是Prompt
- L2.2.2 Prompt框架应用现状
- L2.2.3 基于GPTAS的Prompt框架
- L2.2.4 Prompt框架与Thought
- L2.2.5 Prompt框架与提示词 - L2.3 流水线工程
- L2.3.1 流水线工程的概念
- L2.3.2 流水线工程的优点
- L2.3.3 流水线工程的应用 - L2.4 总结与展望
- L2.1 API接口
阶段3:AI大模型应用架构实践
- 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
- 内容:
- L3.1 Agent模型框架
- L3.1.1 Agent模型框架的设计理念
- L3.1.2 Agent模型框架的核心组件
- L3.1.3 Agent模型框架的实现细节 - L3.2 MetaGPT
- L3.2.1 MetaGPT的基本概念
- L3.2.2 MetaGPT的工作原理
- L3.2.3 MetaGPT的应用场景 - L3.3 ChatGLM
- L3.3.1 ChatGLM的特点
- L3.3.2 ChatGLM的开发环境
- L3.3.3 ChatGLM的使用示例 - L3.4 LLAMA
- L3.4.1 LLAMA的特点
- L3.4.2 LLAMA的开发环境
- L3.4.3 LLAMA的使用示例 - L3.5 其他大模型介绍
- L3.1 Agent模型框架
阶段4:AI大模型私有化部署
- 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
- 内容:
- L4.1 模型私有化部署概述
- L4.2 模型私有化部署的关键技术
- L4.3 模型私有化部署的实施步骤
- L4.4 模型私有化部署的应用场景
学习计划:
- 阶段1:1-2个月,建立AI大模型的基础知识体系。
- 阶段2:2-3个月,专注于API应用开发能力的提升。
- 阶段3:3-4个月,深入实践AI大模型的应用架构和私有化部署。
- 阶段4:4-5个月,专注于高级模型的应用和部署。
这份完整版的大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓
更多推荐
所有评论(0)