HuggingFace peft LoRA 微调 LLaMA
1. 安装必要库
pip install transformers peft accelerate
2. 加载 LLaMA 模型和分词器
从 Hugging Face Transformers 加载预训练的 LLaMA 模型和分词器。
from transformers import AutoModelForCausalLM, AutoTokenizer# 加载 LLaMA 模型和分词器
model_name = "meta-llama/Llama-2-7b-hf" # 替换为适合的模型
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto", load_in_8bit=True)# 设置 pad_token 为 eos_token(如果模型没有 pad_token)
tokenizer.pad_token = tokenizer.eos_token
model.resize_token_embeddings(len(tokenizer)) # 调整词汇表大小
3. 配置 LoRA 微调
使用 PEFT 配置 LoRA 参数。
from peft import get_peft_model, LoraConfig, TaskType# 定义 LoRA 配置
lora_config = LoraConfig(task_type=TaskType.CAUSAL_LM, # 因果语言模型任务inference_mode=False,r=8, # LoRA 的秩lora_alpha=16,lora_dropout=0.05
)# 将 LoRA 应用于模型
model = get_peft_model(model, lora_config)# 检查模型被正确标记为 trainable
print(model)
4. 定义数据集加载器
使用自定义数据集加载器和 Hugging Face 提供的 DataCollator 进行批量处理。
数据集预处理流程及其代码如下链接:训练数据格式为<input,output>,为什么微调大模型时,模型所需的输入数据input_ids有时仅包含了input,而有时包含了input和output呢?-CSDN博客
from torch.utils.data import DataLoader
from transformers import DataCollatorForSeq2Seq# 自定义数据集(之前定义的 FineTuneDataset)
dataset = FineTuneDataset(data_path="./train.jsonl", tokenizer=tokenizer, max_length=1024)# 定义数据批处理器
data_collator = DataCollatorForSeq2Seq(tokenizer, padding=True)
5. 配置 TrainingArguments
设置训练超参数,包括学习率、批次大小、保存频率等。
from transformers import TrainingArgumentstraining_args = TrainingArguments(output_dir="./llama_lora_finetuned", # 输出模型路径evaluation_strategy="steps", # 每隔多少步进行验证save_strategy="steps", # 保存检查点的策略logging_dir="./logs", # 日志文件路径per_device_train_batch_size=8, # 每个设备的训练批次大小gradient_accumulation_steps=4, # 梯度累积learning_rate=2e-4, # 学习率num_train_epochs=3, # 训练轮数save_steps=500, # 每隔多少步保存模型logging_steps=100, # 日志记录频率fp16=True, # 使用混合精度训练push_to_hub=False # 如果需要保存到 Hugging Face Hub
)
6. 定义模型和 Trainer
from transformers import Trainer# 定义 Trainer
trainer = Trainer(model=model, # 微调的模型args=training_args, # 训练参数train_dataset=dataset, # 训练数据集data_collator=data_collator, # 数据批处理器
)
7. 启动训练
trainer.train()
trainer.save_model("./llama_lora_finetuned")
tokenizer.save_pretrained("./llama_lora_finetuned")
相关文章:
HuggingFace peft LoRA 微调 LLaMA
1. 安装必要库 pip install transformers peft accelerate2. 加载 LLaMA 模型和分词器 从 Hugging Face Transformers 加载预训练的 LLaMA 模型和分词器。 from transformers import AutoModelForCausalLM, AutoTokenizer# 加载 LLaMA 模型和分词器 model_name "meta-…...
记-编译magisk_v22
1) 下载源码 git clone gitgitee.com:MayuriNFC/Magisk.git 使用国内镜像站 2) 切换标签: git checkout v22.0 3)下载/更新依赖 git submodule initgit sumodule update 4)下载对应ndk(自动下载出错了,用了手动下载), wget -c https://dl.google.com/android/reposito…...
前端登录业务
1.用户登录成功拿到token,放在请求拦截器的请求头中,调用户接口才可以获取到用户信息,存储到仓库中,以便其他组件使用用户信息 2.退出登录需要清空用户数据,以及本地存储,调退出登录接口告诉服务器当前toke…...
项目2路由交换
背景 某学校为满足日常教学生活需求,推动数字校园的建设,学校有办公楼和学生宿舍楼和服务器集群三块区域,请合理规划IP地址和VLAN,实现企业内部能够互联互通现要求外网能通过公网地址访问服务器集群,学生和老师能正常…...
易语言 OCR 文字识别
一.引言 文字识别,也称为光学字符识别(Optical Character Recognition, OCR),是一种将不同形式的文档(如扫描的纸质文档、PDF文件或数字相机拍摄的图片)中的文字转换成可编辑和可搜索的数据的技术。随着技…...
云手机+YouTube:改变通信世界的划时代技术
随着科技的不断进步,手机作为人们生活中不可或缺的工具,也在不断地更新换代。近年来,一个名为“油管云手机”的全新产品正在引起广泛的关注和讨论。作为一个运用最新科技实现的新型手机,它在通信领域带来了全新的体验和革命性的变…...
C++-----------映射
探索 C 中的映射与查找表 在 C 编程中,映射(Map)和查找表(Lookup Table)是非常重要的数据结构,它们能够高效地存储和检索数据,帮助我们解决各种实际问题。今天,我们就来深入探讨一下…...
清空DNS 缓存
如果遇到修改了host文件,但是IP和域名的映射有问题的情况,可以尝试刷新DNS缓存。 ipconfig/flushdns win建加R建,然后输入cmd,然后回车 然后回车,或者点击确定按钮。 出现如下所示标识清空DNS 缓存成功。...
计算机网络习题( 第3章 物理层 第4章 数据链路层 )
第3章 物理层 一、单选题 1、下列选项中,不属于物理层接口规范定义范畴的是( )。 A、 接口形状 B、 引脚功能 C、 传输媒体 D、 信号电平 正确答案: C 2、在物理层接口特性中,用于描述完成每种功能的事件发…...
UE5 崩溃问题汇总!!!
Using bundled DotNet SDK version: 6.0.302 ERROR: UnrealBuildTool.dll not found in "..\..\Engine\Binaries\DotNET\UnrealBuildTool\UnrealBuildTool.dll" 在你遇到这种极奇崩溃的BUG ,难以解决的时候。 尝试了N种方法,都不行的解决方法。…...
基于ArcGIS Pro的SWAT模型在流域水循环、水生态模拟中的应用及案例分析;SWAT模型安装、运行到结果读取全流程指导
目前,流域水资源和水生态问题逐渐成为制约社会经济和环境可持续发展的重要因素。SWAT模型是一种基于物理机制的分布式流域水文与生态模拟模型,能够对流域的水循环过程、污染物迁移等过程进行精细模拟和量化分析。SWAT模型目前广泛应用于流域水文过程研究…...
Docker下TestHubo安装配置指南
TestHubo是一款开源免费的测试管理工具, 下面介绍Docker 私有部署的安装与配置。TestHubo 私有部署版本更适合有严格数据安全要求的企业,支持在本地或专属服务器上运行,以实现对数据和系统的完全控制。 1、Docker 服务端安装 Docker安装包下…...
AWS、Google Cloud Platform (GCP)、Microsoft Azure、Linode和 桔子数据 的 价格对比
要对比 AWS、Google Cloud Platform (GCP)、Microsoft Azure、Linode 和 桔子数据 的 价格,我们需要先了解每个平台的定价模型、服务类型以及不同服务之间的价格差异。以下是根据各个平台常见服务(如计算实例、存储、数据传输等)做的一个 简化…...
基础优化方法
梯度下降 学习率代表每一次沿着这个方向走多远, batchsize的概念 梯度下降通过不断沿着反梯度方向更新参数求解 两个重要的超参数是 batchsize 和 学习率...
v语言介绍
V 语言是一种多用途的编程语言,可以用于前端开发、后端开发、系统编程、游戏开发等多个领域。它的设计哲学是提供接近 C 语言的性能,同时简化开发过程并提高代码的安全性和可读性。接下来我会详细介绍 V 在前后端开发中的应用,并给出一个具体…...
Ubuntu安装Apache Airflow详细指南
本文我们介绍如何在Ubuntu上安装Apache Airflow。Apache Airflow旨在通过编程方式编写、调度和监控工作流。随着数据编排在现代数据工程中变得越来越重要,掌握Apache Airflow等工具可以显著提高您的生产力和效率。 学习Apache Airflow的首要任务是安装单机版本进行测…...
【数据可视化复习方向】
1.数据可视化就是数据中信息的可视化 2.数据可视化主要从数据中寻找三个方面的信息:模式、关系和异常 3.大数据可视化分类:科学可视化、信息可视化、可视分析学 4.大数据可视化作用:记录信息、分析推理、信息传播与协同 5.可视化流程&…...
CentOS下安装RabbitMQ
提示:“奔跑吧邓邓子” 的高效运维专栏聚焦于各类运维场景中的实际操作与问题解决。内容涵盖服务器硬件(如 IBM System 3650 M5)、云服务平台(如腾讯云、华为云)、服务器软件(如 Nginx、Apache、GitLab、Redis、Elasticsearch、Kubernetes、Docker 等)、开发工具(如 Gi…...
探究音频丢字位置和丢字时间对pesq分数的影响
丢字的本质 丢字的本质是在一段音频中一小段数据变为0 丢字对主观感受的影响 1. 丢字位置 丢字的位置对感知效果有很大影响。如果丢字发生在音频信号的静音部分或低能量部分,感知可能不明显;而如果丢字发生在高能量部分或关键音素上,感知…...
音视频入门基础:MPEG2-TS专题(23)——通过FFprobe显示TS流每个packet的信息
音视频入门基础:MPEG2-TS专题系列文章: 音视频入门基础:MPEG2-TS专题(1)——MPEG2-TS官方文档下载 音视频入门基础:MPEG2-TS专题(2)——使用FFmpeg命令生成ts文件 音视频入门基础…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...
虚拟电厂发展三大趋势:市场化、技术主导、车网互联
市场化:从政策驱动到多元盈利 政策全面赋能 2025年4月,国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》,首次明确虚拟电厂为“独立市场主体”,提出硬性目标:2027年全国调节能力≥2000万千瓦࿰…...
ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]
报错信息:libc.so.6: cannot open shared object file: No such file or directory: #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...
【PX4飞控】mavros gps相关话题分析,经纬度海拔获取方法,卫星数锁定状态获取方法
使用 ROS1-Noetic 和 mavros v1.20.1, 携带经纬度海拔的话题主要有三个: /mavros/global_position/raw/fix/mavros/gpsstatus/gps1/raw/mavros/global_position/global 查看 mavros 源码,来分析他们的发布过程。发现前两个话题都对应了同一…...
第22节 Node.js JXcore 打包
Node.js是一个开放源代码、跨平台的、用于服务器端和网络应用的运行环境。 JXcore是一个支持多线程的 Node.js 发行版本,基本不需要对你现有的代码做任何改动就可以直接线程安全地以多线程运行。 本文主要介绍JXcore的打包功能。 JXcore 安装 下载JXcore安装包&a…...
20250609在荣品的PRO-RK3566开发板的Android13下解决串口可以执行命令但是脚本执行命令异常的问题
20250609在荣品的PRO-RK3566开发板的Android13下解决串口可以执行命令但是脚本执行命令异常的问题 2025/6/9 20:54 缘起,为了跨网段推流,千辛万苦配置好了网络参数。 但是命令iptables -t filter -F tetherctrl_FORWARD可以在调试串口/DEBUG口正确执行。…...
[QMT量化交易小白入门]-六十二、ETF轮动中简单的评分算法如何获取历史年化收益32.7%
本专栏主要是介绍QMT的基础用法,常见函数,写策略的方法,也会分享一些量化交易的思路,大概会写100篇左右。 QMT的相关资料较少,在使用过程中不断的摸索,遇到了一些问题,记录下来和大家一起沟通,共同进步。 文章目录 相关阅读1. 策略概述2. 趋势评分模块3 代码解析4 木头…...
