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

news/2024/11/13 7:25:17/

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.ppmy.cn/news/1461995.html

相关文章

快速掌握Spring底层原理整体脉络

快速掌握Spring底层原理整体脉络 介绍 在Java开发领域,Spring框架是一个非常流行的选择。作为一名Java架构师,了解Spring底层原理是非常重要的。本文将帮助你快速掌握Spring底层原理的整体脉络,让你更好地理解和应用Spring框架。 Spring框…

超级好用的C++实用库之MD5信息摘要算法

💡 需要该C实用库源码的大佬们,可搜索微信公众号“希望睿智”。添加关注后,输入消息“超级好用的C实用库”,即可获得源码的下载链接。 概述 MD5信息摘要算法是一种广泛使用的密码散列函数,由Ronald L. Rivest在1991年设…

Python | Leetcode Python题解之第92题反转链表II

题目: 题解: class Solution:def reverseBetween(self, head: ListNode, left: int, right: int) -> ListNode:# 设置 dummyNode 是这一类问题的一般做法dummy_node ListNode(-1)dummy_node.next headpre dummy_nodefor _ in range(left - 1):pre…

力扣HOT100 - 215. 数组中第K个最大元素

解题思路: 快速选择,目标是找出数组中第 k 小(或第 k 大)的元素,而不是对整个数组进行排序。 (需要和快排进行区分,快排的目的是排序) 注意: i l - 1, j r 1; 为什…

深度学习中常见的九种交叉验证方法汇总

目录 1. K折交叉验证(K-fold cross-validation) 2. 分层K折交叉验证(Stratified K-fold cross-validation) 3. 时间序列交叉验证(Time Series Split) 4. 留一交叉验证(Leave-One-Out Cross-…

SAP BSEG VS ACDOCA 差异

温习一下 ACDOCA VS BSEG matinal:S4 HANA 详解ACDOCA与BSEG的区别都在这了_sap acdoca-CSDN博客

神经网络案例实战

🔎我们通过一个案例详细使用PyTorch实战 ,案例背景:你创办了一家手机公司,不知道如何估算手机产品的价格。为了解决这个问题,收集了多家公司的手机销售数据:这些数据维度可以包括RAM、存储容量、屏幕尺寸、…

汇昌联信科技:做拼多多网店要押金吗?

做拼多多网店要押金吗?”这个问题,其实与拼多多的平台规则有关。在开店之前,商家需要详细了解平台的各项规定和费用构成,这样才能做好充足的准备。 一、明确回答问题 做拼多多网店,不需要支付押金。拼多多的入驻门槛相对较低&…