首页 > 其他分享 >使用 LoRA 和 Hugging Face 高效训练大语言模型

使用 LoRA 和 Hugging Face 高效训练大语言模型

时间:2023-04-12 23:56:53浏览次数:48  
标签:tokenizer True Hugging dataset length model Face LoRA id

在本文中,我们将展示如何使用 大语言模型低秩适配 (Low-Rank Adaptation of Large Language Models,LoRA) 技术在单 GPU 上微调 110 亿参数的 FLAN-T5 XXL 模型。在此过程中,我们会使用到 Hugging Face 的 TransformersAcceleratePEFT 库。

通过本文,你会学到:

  1. 如何搭建开发环境
  2. 如何加载并准备数据集
  3. 如何使用 LoRA 和 bnb (即 bitsandbytes) int-8 微调 T5
  4. 如何评估 LoRA FLAN-T5 并将其用于推理
  5. 如何比较不同方案的性价比

另外,你可以 点击这里 在线查看此博文对应的 Jupyter Notebook。

快速入门: 轻量化微调 (Parameter Efficient Fine-Tuning,PEFT)

PEFT 是 Hugging Face 的一个新的开源库。使用 PEFT 库,无需微调模型的全部参数,即可高效地将预训练语言模型 (Pre-trained Language Model,PLM) 适配到各种下游应用。PEFT 目前支持以下几种方法:

注意: 本教程是在 g5.2xlarge AWS EC2 实例上创建和运行的,该实例包含 1 个 NVIDIA A10G

1. 搭建开发环境

在本例中,我们使用 AWS 预置的 PyTorch 深度学习 AMI,其已安装了正确的 CUDA 驱动程序和 PyTorch。在此基础上,我们还需要安装一些 Hugging Face 库,包括 transformers 和 datasets。运行下面的代码就可安装所有需要的包。

# install Hugging Face Libraries
!pip install git+https://github.com/huggingface/peft.git
!pip install "transformers==4.27.1" "datasets==2.9.0" "accelerate==0.17.1" "evaluate==0.4.0" "bitsandbytes==0.37.1" loralib --upgrade --quiet
# install additional dependencies needed for training
!pip install rouge-score tensorboard py7zr

2. 加载并准备数据集

这里,我们使用 samsum 数据集,该数据集包含大约 16k 个含摘要的聊天类对话数据。这些对话由精通英语的语言学家制作。

{
  "id": "13818513",
  "summary": "Amanda baked cookies and will bring Jerry some tomorrow.",
  "dialogue": "Amanda: I baked cookies. Do you want some?\r\nJerry: Sure!\r\nAmanda: I'll bring you tomorrow :-)"
}

我们使用

标签:tokenizer,True,Hugging,dataset,length,model,Face,LoRA,id
From: https://www.cnblogs.com/huggingface/p/17311912.html

相关文章

  • LoRa水压传感器解决方案
    lora压力传感器 采用LoRa扩频技术的一款管道压力传感器。能够实时检测水、油、气等多种介质管道压力。通过LoRaWAN低功耗传感器网络传输到远程平台。传感器内置19000mAH大容量锂亚电池,可连续工作数年。支持智能的物联网平台,实现远程数据监控和管理。无线压力监测报警器是一款锂电......
  • LoRa振动传感器终端的功能有哪些
    LoRa振动传感器终端是一款支持LoRaWAN标准的资产监测产品,本产品基于三轴加速度计实现仓储环境物品振动监测,并通过LoRa技术实现无线报警功能。该产品可应用于安防系统中,主要应用于智能仓储、智慧工地、酱酒数字平台、智慧油田、智慧工厂等地方贵重物品监测。三轴无线振动传感器符......
  • LoRa温湿度传感器广泛应用
    LORA温湿度传感器是基于LORA无线传输的低功耗数据采集上传系列产品之一。模块选用进口高性能32位ARM主控器和高质量元器件,在高温、高湿、高寒等恶劣环境中具有可靠性好、极强的长期稳定性、抗干扰性强等优良性能。本产品可广泛应用于农业实验室,工业,环保,卫生防疫,仓储,温室,机房等领......
  • 如何使用Alpaca-LoRA来微调ChatGPT这样的模型?
    原文标题:HowtouseAlpaca-LoRAtofine-tuneamodellikeChatGPT原文地址:https://replicate.com/blog/fine-tune-alpaca-with-lora?continueFlag=4ecae39885197a5c008faabbefb5c824如何使用Alpaca-LoRA来微调ChatGPT这样的模型?低秩自适应(LoRA)是一种微调模型的技术,它比以......
  • Java中interface接口使用方法详解
    前言在我们之前的文章里有说过,Java的类是单继承的,也就是说,一个类只能有一个“亲爹”。但是Java的类到底能不能实现多继承呢?间接实现多继承行不行?其实这是可以的!我们可以利用Java里的interface接口,来让Java的类间接地实现多继承,相当于是给一个类安排了“干爹”,而且还可以有多个“干......
  • stable diffusion打造自己专属的LORA模型
    通过Lora小模型可以控制很多特定场景的内容生成。但是那些模型是别人训练好的,你肯定很好奇,我也想训练一个自己的专属模型(也叫炼丹~_~)。甚至可以训练一个专属家庭版的模型(familymodel),非常有意思。将自己的训练好的Lora模型放到stableDiffusionlora目录中,同时配上美丽的封面图。......
  • stable diffusion打造自己专属的LORA模型
    通过Lora小模型可以控制很多特定场景的内容生成。但是那些模型是别人训练好的,你肯定很好奇,我也想训练一个自己的专属模型(也叫炼丹~_~)。甚至可以训练一个专属家庭版的模型(familymodel),非常有意思。将自己的训练好的Lora模型放到stableDiffusionlora目录中,同时配上美丽的封面图。......
  • glibc GDBusInterfaceVTable
    staticconstGDBusInterfaceVTableboo_vtable={NULL,/*_method_call*/NULL,/*_get_property*/NULL/*_set_property*/};/***GDBusInterfaceVTable:*@method_call:Functionforhandlingincomingmethodcalls.*@get_property:Function......
  • 上线一天,4k star | Facebook:Segment Anything
    前言 本文介绍了FacebookAIResearch的SegmentAnything(SA)项目:用于图像分割的新任务、模型和数据集。在数据收集循环中使用该模型,它构建了迄今为止最大的分割数据集,在1100万张许可和尊重隐私的图像上有超过10亿个掩码。该模型被设计和训练为可提示的,因此它可以将零样本......
  • Hugging News #0407: Google AI 的 Pix2Struct 来啦、开发者资源页面发布
    每一周,我们的同事都会向社区的成员们发布一些关于HuggingFace相关的更新,包括我们的产品和平台更新、社区活动、学习资源和内容更新、开源库和模型更新等,我们将其称之为「HuggingNews」,本期HuggingNews有哪些有趣的消息,快来看看吧!社区活动ControlNet微调冲刺活动为了帮......