AMD W7900本地大型语言模型的微调

GenAI-contest/01-LLM_Fine-tuning at main · amd/GenAI-contest (github.com)

大型语言模型(LLMs)在大量的文本数据上进行训练。因此,它们能够生成连贯且流畅的文本。Transformer架构是所有LLMs的基础构建块,它作为底层架构,使LLMs能够通过捕捉上下文关系和长距离依赖来理解并生成文本。为了更好地理解Transformer架构的哲学,建议阅读论文《Attention is All You Need》。Transformer架构的简化版本大致如下:

微调可以让原始的大型语言模型更好地适应特定应用场景,从而在众多任务上取得更优的结果。从宏观层面来讲,微调过程主要包括以下三个步骤:

  1. 准备训练数据集:根据目标应用场景,收集或构建相关的训练数据。这些数据应该反映希望模型学习的特定领域知识或语言风格。数据集可以是标注过的(例如,带有分类标签的文本),也可以是未标注的,具体取决于微调任务的性质。

  2. 训练微调模型:使用准备好的数据集,在原始大型语言模型的基础上进行微调训练。这个过程涉及调整模型的内部参数,以便模型能够更好地理解和生成符合特定任务要求的文本。微调时可能会用到梯度下降等优化算法,以及对学习率、批次大小等超参数的调整。

  3. 部署并使用微调后的模型:训练完成后,将微调过的模型部署到实际应用环境中。这可能包括集成到现有的软件系统、Web服务或是开发新的应用程序中。用户或开发者可以通过API调用等方式,利用该模型进行预测、生成文本或执行其他语言处理任务,从而在特定场景下获得比通用模型更佳的性能表现。

总之,微调是通过针对具体任务定制化训练,优化大型语言模型的一种手段,旨在提升模型在特定领域的准确性和实用性。

在配备AMD Radeon GPU卡的PC上工作,可能需要先通过命令安装PyTorch。

安装依赖

下一步,需要安装一系列的Python库,包括但不限于Hugging Face的Transformers库、数据集处理库、加速库等,以及为了进行特定任务的训练和优化,还需要安装TRL、PEFT(参数高效的微调方法)和bitsandbytes-rocm(针对ROCm GPU优化的库)。

pip install transformers
pip install datasets
pip install accelerate
pip install huggingface
pip install huggingface-hub
pip install scipypip install trl  # 为了使用最近的SFTTrainerpip install peft  # 为了使用PEFT进行高效模型微调# 针对ROCm GPU安装bitsandbytes
git clone https://github.com/Lzy17/bitsandbytes-rocm
cd bitsandbytes-rocm
make hip
sudo python3 setup.py install

确保能够在一个支持ROCm环境的系统上顺利进行深度学习相关的开发和实验。

模型和数据集

下载 facebook/opt-1.3b 模型和 mlabonne/guanaco-llama2-1k dataset 数据集:

export HF_ENDPOINT=https://hf-mirror.com
./hfd.sh facebook/opt-1.3b --tool aria2c -x 4
./hfd.sh mlabonne/guanaco-llama2-1k --dataset --tool aria2c -x 4

使用自定义数据集微调LLM模型

将展示如何使用facebook/opt-1.3b模型,并结合mlabonne/guanaco-llama2-1k数据集进行微调。

克隆脚本

首先,克隆含有微调示例脚本的仓库:

git clone https://github.com/amd/GenAI-contest.git
cd GenAI-contest/01-LLM_Fine-tuning
微调模型

接下来,设置模型ID并执行微调脚本。

export MODEL_ID="../opt-1.3b"
CUDA_VISIBLE_DEVICES=0 python3 llm_finetuning_and_inference.py --model-id=$MODEL_ID

测试微调后的模型

要测试微调后的模型,请执行以下命令:

CUDA_VISIBLE_DEVICES=0 python3 llm_finetuning_and_inference.py --model-id=$MODEL_ID --inference

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue和Django前后端实现跨域

1.为什么要解决跨域: 前端与后端分处不同的域名,因为客户端访问不同源的服务端时会遭到浏览器的同源策略的拦截,所以我们需要配置CORS,处理的方式有很多,先来说下自己学习到的。 2.前端处理跨域: 前端项目是…

我21岁玩“撸货”,被骗1000多万

最近,撸货业界内发生了一些颇受瞩目的事件。 在郑州,数码档口下面抢手团长跑路失联,涉及金额几百万,在南京,一家知名的电商平台下的收货站点突然失联,涉及金额高达一千多万,令众多交易者震惊不已…

电机控制系列模块解析(20)—— MTPA

一、MTPA MTPA 是 "Maximum Torque Per Ampere" 的缩写,意为“最大转矩电流比”。在电机控制系统中,特别是永磁同步电机(PMSM)或其它永磁电机的控制策略中,MTPA 控制旨在实现电机在给定负载条件下&#xff…

2005-2022年全国及各省绿色信贷水平测算数据(含原始数据+计算过程+计算结果)

2005-2022年全国及各省绿色信贷水平测算数据(含原始数据计算过程计算结果) 1、时间:2005-2022年 2、来源:工业统计年鉴、统计年鉴、其中2017年采用插值法填补 3、范围:31省 4、方法说明:选取各省六大高…

汇中 SCL-61D2超声水表汇中通讯协议

RS-485串行通讯接口设置表 通用代码注释 读取正向仪表数据 DD的内容为 通讯示例 主机命令:2A 41 4A 仪表响应:26 41 4A 00 00 13 63 00 00 07 72 00 00 10 34 00 33 读取负向仪表数据:(单向型仪表无此命令) DD的内容…

【每日力扣】207. 课程表 与 208. 实现 Trie (前缀树)

🔥 个人主页: 黑洞晓威 😀你不必等到非常厉害,才敢开始,你需要开始,才会变的非常厉害 207. 课程表 你这个学期必须选修 numCourses 门课程,记为 0 到 numCourses - 1 。 在选修某些课程之前需要一些先修课…

深度优先搜索汇总

常用英文 最近公共祖先(Lowest Common Ancestor,简称LCA) posterity,英语单词,主要用作名词,作名词时译为“子孙,后裔;后代”。 什么是深度优先搜索 深度优先搜索,D…

Web3 ETF软件开发技术

Web3 ETF(交易所交易基金)是一种基于区块链技术的ETF,它旨在跟踪Web3资产(例如加密货币、NFT等)的价值表现。Web3 ETF的开发涉及到传统ETF开发的所有技术难点,此外还有一些独特的挑战。北京木奇移动技术有限…

基于Vue和uni-app的增强型多选框Checkbox组件开发

基于Vue和uni-app的增强型多选框(Checkbox)组件开发 摘要 随着前端技术的不断发展和用户体验要求的提升,传统的Checkbox组件已不能满足所有需求。本文介绍了一种基于Vue和uni-app的增强型多选框(Checkbox)组件的开发…

在win10折腾Flowise:部署和尝试

Flowise 是一种低代码/无代码拖放工具,旨在让人们轻松可视化和构建 LLM 应用程序。 本地部署 操作系统: win10 由于网络、操作系统等各种未知问题,使用npm install -g flowise的方式,尝试了很多次,都没有部署成功&am…

使用OverPy API批量获取OpenStreetMap(OSM)城市路网png图片和svg矢量图

在地理信息系统(GIS)和数据可视化领域,获取城市路网的图像对于分析和展示城市交通结构至关重要。OpenStreetMap (OSM) 是一个免费且开放的地理数据源,而OverPy 是一个用于访问OSM数据的Python库。本文将详细介绍如何使用OverPy AP…

程序员的实用神器之——通义灵码

通义灵码介绍 “通义灵码”是一款基于阿里云通义代码大模型打造的智能编码助手,产品于2023年10月31日云栖大会上,正式对外发布。新手亦能驾轻,老手恒常运,唯手熟尔。 通义灵码产品介绍_智能编码助手_AI编程_云效(Apsara Devops)…