当前位置: 首页 > news >正文

大模型LLM基于PEFT的LoRA微调详细步骤---第一篇:模型下载篇

模型下载:

HuggingFace官网:https://huggingface.co/  ---- 需要VPN

魔搭社区:https://modelscope.cn/home  ---- 国内映射,不需要VPN

写在篇始:国内关注方法一即可。其余几种都需要VPN,而且在服务器下载的速度有限~~。

下一篇:微调详细流程以及环境...

方法一:魔搭(modelscope)下载

# 需要安装 pip install modelscope
from modelscope import snapshot_download
model_name = '要下载的模型名称'
local_model_dir = '保存的模型路径'
model_dir = snapshot_download(
    model_name, # 要下载的模型名称
    cache_dir=local_model_dir, # 下载到那个目录
    revision='master',
    ignore_file_pattern='.pth',# 配置过滤,不下载“.pth”的原始文件。只下载“.safetensors”的模型文件
)

方法二:huggingface_hub下载 - VPN

# ### pip install huggingface_hub
# 设置环境变量
import os
# 专用多线程下载器 hfd 环境变量
os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"

# 代码下载
from huggingface_hub import hf_hub_download
hf_hub_download(repo_id="amritgupta/qafacteval",filename="README.md",local_dir="./qafacteval")

方法三:使用transformers库下载 

使用 Hugging Face 的 transformers 库,Hugging Face 的 transformers 库可以自动下载和管理这些文件。

只需要指定模型名称或路径即可。

# 需要安装 pip install transformers 
from transformers import AutoModel, AutoTokenizer

# 指定模型名称或路径
model_name = "your-model-name-or-path"

# 自动下载并加载模型和分词器
model = AutoModel.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)

方法四:网页下载 - VPN

base:代表基础模型;

Instruct:代表在基础模型上面已经训练过一次了。

Qwen/Qwen2-VL-2B-Instruct-GPTQ-Int8:其中的int8代表量化等级为8;Instruct代表已经预训练了一次;

文件名

说明

.gitattributes

Git 配置文件,用于管理仓库的文本格式和换行符设置。通常不需要关心。

LICENSE

模型的许可证文件,说明模型的使用限制和权限。

README.md

模型的说明文档,通常包含模型的描述、使用方法、训练信息等。

chat_template.json

聊天模板配置文件,用于定义聊天模型的输入输出格式(如果有的话)。

config.json

模型的主配置文件,包含模型的结构信息(如层数、隐藏层大小等)。

generation_config.json

生成文本时的配置(如最大生成长度、温度参数等)。

merges.txt

分词器的合并规则文件(用于 BPE 分词器,如 GPT 系列模型)。

model-00001-of-00002.safetensors

模型权重文件的分片(第 1 部分)。总共有 2 个分片。

model-00002-of-00002.safetensors

模型权重文件的分片(第 2 部分)。总共有 2 个分片。

model.safetensors.index.json

模型权重分片的索引文件,指示如何加载分片文件。

preprocessor_config.json

预处理器的配置文件(通常用于图像模型,文本模型可能不需要)。

tokenizer.json

分词器的配置文件,包含分词器的规则和设置。

tokenizer_config.json

分词器的额外配置(如特殊 token、填充方式等)。

vocab.json

分词器的词汇表文件,包含所有 token 及其对应的 ID。

除了.gitattributes、README.md、LICENSE其余全下即可 

微调时需要下载哪些文件?

必需文件

模型权重文件

        model-00001-of-00002.safetensors

        model-00002-of-00002.safetensors

        model.safetensors.index.json(用于加载分片文件)

配置文件

        config.json(模型结构配置)

分词器文件

        tokenizer.json 或 tokenizer_config.json(分词器配置)

        vocab.json(词汇表)

        merges.txt(如果使用 BPE 分词器,如 GPT 系列)

生成配置文件(可选):

        generation_config.json(用于文本生成任务)

可选文件 

README.md:了解模型的背景和使用方法。

LICENSE:查看模型的使用限制。

chat_template.json:如果微调的是聊天模型,可能需要这个文件。

总结 

必需文件:模型权重分片(.safetensors)、config.json、分词器文件(tokenizer.json、vocab.json 等)。

可选文件:README.md、LICENSE、generation_config.json 等。

下载方式:使用 transformers 库自动下载,或手动从 Hugging Face 页面下载。

微调代码:使用 Trainer 或自定义训练循环进行微调。

 使用下载的模型

方法一:使用本地模型地址

AutoModelForCausalLM.from_pretrained("/data/gpt2") # 使用本地模型全路径

方法二:仅使用模型名称 --- 系统在VPN的情况下会自动下载

之所以不用写具体路径是因为huggingface工具链会在 .cache/huggingface/ 下维护一份模型的符号链接,无论你是否指定了模型的存储路径 ,缓存目录下都会链接过去,这样可以避免自己忘了自己曾经下过某个模型,此外调用的时候就很方便。
AutoModelForCausalLM.from_pretrained("huggyllama/llama-7b(模型名称)")

相关文章:

  • Mysql 的事务隔离级别相关问题
  • SealOS部署k8s集群(单节点)
  • 视频推拉流EasyDSS案例分析:互联网直播/点播技术与平台创新应用
  • Spring Boot 3.x 引入springdoc-openapi (内置Swagger UI、webmvc-api)
  • 【毕业论文格式】word分页符后的标题段前间距消失
  • 面试题:实现学生管理系统
  • kotlin基础知识点汇总
  • 在Eclipse 中使用 MyBatis 进行开发,通常需要以下步骤:
  • UVC摄像头命令推流,推到rv1126里面去
  • MongoDB 数据导出与导入实战指南(附完整命令)
  • ClickHouse 通过 ​*ARRAY JOIN* 结合 ​Map 类型的内置函数取数值
  • 谷歌Chrome或微软Edge浏览器修改网页任意内容
  • AI大数据挖掘的威力
  • .NET下根据文件的哈希值筛选重复文件
  • 虚拟机下ubuntu进不了图形界面
  • STM32 HAL库实战:轻松实现串口通信驱动蓝牙模块与ESP8266开发
  • Spring Boot集成Mybatis中如何显示日志
  • RCE-Labs超详细WP-Level11Level12(0/1的特殊替换)
  • 安装操作系统ubuntu-20.04.6-live-server-amd64
  • Facebook 的框架及技术栈
  • 广西鹿寨一水文站“倒刺扶手”存安全隐患,官方通报处理情况
  • 网警打谣:传播涉刘国梁不实信息,2人被处罚
  • 体坛联播|热刺追平单赛季输球纪录,世俱杯或创收20亿美元
  • A股三大股指低收:汽车股领涨,大金融走弱,两市成交近1.1万亿元
  • 贵州省委军民融合发展委员会办公室副主任李刚接受审查调查
  • 日本一季度实际GDP环比下降0.2%