[NLP] LLM---训练一个中文LLama2的步骤

news2025/9/19 0:06:27

一 数据集

  • 【Awesome-Chinese-LLM中文数据集】

  • 【awesome-instruction-dataset】
  • 【awesome-instruction-datasets】
  • 【LLaMA-Efficient-Tuning-数据集】
  • Wiki中文百科(25w词条)wikipedia-cn-20230720-filtered
  • BaiduBaiKe(563w词条) 百度网盘 提取码: bwvb
  • Medical Dataset

 二 预训练LLama2

2.1 扩充词表

因为在llama官方所提供的词表中,中文的部分只有700个,这也是llama中文能力聊胜于无的原因。为了训练自己的中文LLaMa,这里将引入新的中文分词器。

如果需要扩充词表,可以用sentencepiece训练新的词表。

具体可参考【GitHub - taishan1994/sentencepiece_chinese_bpe】

然后合并新的词表,参考代码【merge_tokenizers】

2.2 预训练

主要参考2个库。

LLaMA-Efficient-Tuning

具体参考文档,支持单GPU训练。

Chinese-LLaMA-Alpaca-2-预训练脚本

支持多机多卡训练

2.3 监督微调(sft)

中文SFT语料最近陆陆续续开源了很多(bell、MOSS、alpaca-zh等),但是坦白讲,质量都不高,大家可自行下载并需要进行清洗,清洗SFT数据是个耗时耗力的工作,但根据作者微调经验,一份高质量的SFT数据是相当重要的‼️(如果不清洗SFT数据,可能无法获得满意的SFT效果,建议大家在这块多花些时间) 中文SFT语料网上最近很多,大家自行下载。因为SFT语料一般较小,我们没必要提前分词,而是在构建Dataloader的时候进行分词构建batch送给模型。

分为参数高效微调和全部/部分参数微调。

参数高效微调一般是冻结原模型,通过adapter、lora、Prefix-tuning(前缀微调)等方法微调,peft库目前已经支持这些方法,一般用lora,结构简单。

微调代码库

(1)llama2官方微调教程:llama-recipes

#if running on multi-gpu machine
export CUDA_VISIBLE_DEVICES=0

python llama_finetuning.py  --use_peft --peft_method lora --quantization --model_name /patht_of_model_folder/7B --output_dir Path/to/save/PEFT/model

(2)Llama2-Chinese-模型微调

(3)LLaMA-Efficient-Tuning-sft监督微调

(4)Chinese-LLaMA-Alpaca-2-指令精调脚本

2.4 RLHF微调

llama2增加了RLHF(Reinforcement Learning from Human Feedback)基于人类反馈的强化学习。

RLHF训练流程如下图:

(1)先对模型进行微调,具体参考微调部分。

(2)训练一个奖励模型

原则上,我们可以直接用人类标注来对模型做 RLHF 微调。然而,这将需要我们给人类发送一些样本,在每轮优化后计分,这个流程需要耗费大量人工,且需要大量数据集,而人类阅读和标注的速度有限。更简单的办法就是用用人类标注集来训练一个奖励模型。奖励模型的目的是模拟人类对文本的打分。构建奖励模型有许多能用的策略: 最直接的便是预测标注 (比如根据好与坏,输出比分或者布尔值)。最佳实践是,预测结果的排序,即对每个 prompt (输入文本) 对应的两个结果yk,yj,模型预测人类标注的比分哪个更高。

(3)基于人类反馈的强化学习

有了微调的语言模型和奖励模型,可以开始执行 RL 循环了,主要分为以下三步:

  1. 生成对 prompt (输入文本) 的反馈。
  2. 用奖励模型来对反馈评分。
  3. 对评分,进行一轮策略优化的强化学习。

【llm大语言模型】一文看懂llama2(原理,模型,训练) - 知乎 (zhihu.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1006856.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

气传导耳机品牌排行榜前十名,性能出色的气传导耳机分享

​气传导耳机在运动、户外、办公等场景中具有独特的优势。然而,面对市场上琳琅满目的气传导耳机产品,很多用户不知如何下手。接下来,我将推荐市面上热销火爆,并性能出色、性价比高的气传导耳机给大家,希望大家都能选到…

Kubernetes configmap + Secret

secret 参考文档:使用 Secret 安全地分发凭证 | Kubernetes 使用 Secret 安全地分发凭证 创建 Secret: (secret.yaml) apiVersion: v1 kind: Secret metadata:name: test-secret data:username: bXktYXBwpassword: Mzk1MjgkdmR…

Linux Day13 ---信号量

一、信号量 1.1 一些概念 用来管理对资源的访问 一个特殊的变量,只允许对它进行等待(wait)和发送信号(signal),代表可用资源个数, 取0,1 二值信号量 取 3,5 计数信号量 p操作:原子减一,代表获取资源,可能阻塞 v…

【共建开源】手把手教你贡献一个 SeaTunnel PR,超级详细教程!

Apache SeaTunnel是一个非常易于使用的、超高性能的分布式数据集成平台,支持海量数据的实时同步。每天可稳定高效同步数百亿数据,已被近百家企业投入生产使用。 现在的版本不支持通过jtds的方式链接sqlserver,我们来自己写代码来实现它&…

Spark 框架概述

目录 一、Spark 是什么 1.1 统一分析引擎? 二、Spark 风雨十年 ​三、Spark VS Hadoop(MapReduce) 3.1 面试题:Hadoop 的基于进程的计算和 Spark 基于线程方式优缺点? 四、Spark 四大特点 ​4.1 速度快 4.2 易于使用 4.3 通用性…

使用jib-maven-plugin插件构建镜像并推送至私服Harbor

jib-maven-plugin 插件配置 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apa…

19-springcloud(下)

一 分布式配置中心 1 Spring Cloud Config 分布式系统面临问题 在分布式系统中&#xff0c;由于服务数量巨多&#xff0c;为了方便服务配置文件统一管理&#xff0c;实时更新&#xff0c;所以需要分布式配置中心组件。 什么是Spring Cloud Config Spring Cloud Config项目是…

20230913java面经整理

1.hashmap为什么重写hashcode必须重写equals&#xff1f;不重写hashcode&#xff1f; hashcode判断对象存放的索引值&#xff0c;equals判断相同索引下对象是否相同&#xff0c;不同则存放&#xff08;链表&#xff09; hashcode提升查询效率&#xff0c;通过哈希计算&#xf…

【【萌新编写riscV之计算机体系结构之CPU 总二】】

萌新编写riscV之计算机体系结构之CPU 总二&#xff08;我水平太差总结不到位&#xff09; 在学习完软件是如何使用之后 我们接下来要面对的问题是 整个程序是如何运转的这一基本逻辑 中央处理器(central processing unit&#xff0c;CPU)的任务就是负责提取程序指令&#xff0…

2023年9月16日(星期六)骑行新海晏村

2023年9月16日 (星期六)&#xff1a;骑行新海晏村&#xff0c;早8:30到9:00&#xff0c; 大观楼门囗集合&#xff0c;9:30准时出发 【因迟到者&#xff0c;骑行速度快者&#xff0c;可自行追赶偶遇。】 偶遇地点: 大观楼门囗集合&#xff0c;家住东&#xff0c;南&#xff0c…

Redis常用应用场景

Redis是一款开源的基于内存的键值存储系统&#xff0c;它提供了多种数据结构和丰富的功能&#xff0c;适用于各种不同的应用场景。以下是Redis常用的应用场景&#xff1a; 1.缓存&#xff1a;Redis最常见的用途就是作为缓存。由于Redis存储在内存中&#xff0c;读取速度非常快…

9.13-广读最新研究方向论文核心思路汇总

思路借鉴 GRILL: Grounded Vision-language Pre-training via Aligning Text and Image Regions 关键词&#xff1a; 对象文本对齐 摘要&#xff1a;泛化到未见过的任务是少量样本学习者在不熟悉的任务上实现更好零散视觉表现的重要能力。然而&#xff0c;这种泛化到视觉语言任…

通过小程序实现微信扫码授权登录,网站接入微信扫码登录功能(永久免费)

需求 网站如果想要实现微信扫码登录其实有很多种方案&#xff0c;常见的方案就是微信开放平台和微信公众号服务号。前者是目前大部分网站并且是微信认可的一种方式&#xff0c;后者是开发者发现服务号具备扫码关注后即可获取用户基本信息的能力后而开发的一种方式。 而这两者…

idea创建一个微服务项目

idea创建一个微服务项目 前提&#xff1a;懂得创建基于pom 的 springboot项目 1.像平时创建Maven项目一样创建一个项目 2.删掉src文件&#xff0c;只剩下下面的东西 3.基于这个项目创建model&#xff0c;model也是一个Maven项目&#xff0c;基于springboot mvc 都行&#xff…

openGauss学习笔记-68 openGauss 数据库管理-创建和管理普通表-向表中插入数据

文章目录 openGauss学习笔记-68 openGauss 数据库管理-创建和管理普通表-向表中插入数据68.1 背景信息68.2 操作步骤68.2.1 向表customer_t1中插入一行68.2.2 向表中插入多行68.2.3 从指定表插入数据到当前表68.2.4 删除备份表 openGauss学习笔记-68 openGauss 数据库管理-创建…

Python 图形化界面基础篇:添加复选框( Checkbutton )到 Tkinter 窗口

Python 图形化界面基础篇&#xff1a;添加复选框&#xff08; Checkbutton &#xff09;到 Tkinter 窗口 引言什么是 Tkinter 复选框&#xff08; Checkbutton &#xff09;&#xff1f;步骤1&#xff1a;导入 Tkinter 模块步骤2&#xff1a;创建 Tkinter 窗口步骤3&#xff1a…

【数据分享】2006-2021年我国城市级别的排水和污水处理相关指标(20多项指标)

《中国城市建设统计年鉴》中细致地统计了我国城市市政公用设施建设与发展情况&#xff0c;在之前的文章中&#xff0c;我们分享过基于2006-2021年《中国城市建设统计年鉴》整理的2006—2021年我国城市级别的市政设施水平相关指标、2006-2021年我国城市级别的各类建设用地面积数…

Vue3表单

文章目录 Vue3表单1. 概念2. 输入框3. 复选框4. 单选按钮5. select下拉列表5.1 下拉列表单选5.1 下拉列表多选时绑定到数组5.3 使用 v-for 循环输出选项 6. 值绑定7. 修饰符7.1 .lazy7.2 .number7.3 .trim Vue3表单 1. 概念 可以用 v-model 指令在表单 、 及 等元素上创建双向…

微信内测新功能:“微信分期”来了!

微信作为一款社交 App&#xff0c;早已成为了现在人们日常生活中不可缺少的一部分。 随着生态不断完善&#xff0c;它所涵盖的功能也是越来越多。 据镭射财经&#xff0c;微信近日正在测试一款名为“微信分期”的全系消费信贷产品。功能入口位于微信钱包中&#xff0c;资金方为…

预约微信小程序源码系统制作搭建 适用于多场景 支持万能DIY功能

分享一个预约微信小程序源码系统&#xff0c;适用于多种预约场景&#xff0c;含完整代码包前端后端详细的搭建教程&#xff0c;支持万能DIY功能&#xff0c;让你轻松开发制作一个属于自己的想要的预约小程序。 一、预约微信小程序源码系统制作搭建的基本步骤和注意事项&#xf…