swift和llama factory微调实录

Swift:

1、下载模型(gemma-2-9b-it)

软件依赖:

pip install protobuf 'transformers>=4.30.2' cpm_kernels 'torch>=2.0' gradio mdtex2html sentencepiece accelerate

软件下载:

pip install modelscope

模型下载:

export MODELSCOPE_CACHE='/hy-tmp' 设置下载路径

modelscope download --model LLM-Research/gemma-2-9b-it

2、下载swift框架(通过源码安装SWIFT——>可以修改安装包,方便运行训练和推理脚本)

git clone https://github.com/modelscope/swift.git
cd swift
pip install -e '.[all]'

3、启动网页端

cd swift

swift web-ui

4、在网页端设置参数,开始微调

LLaMA-Factory:

1、下载模型(Llama3-8B-Chinese-Chat)

pip install modelscope

export MODELSCOPE_CACHE='/hy-tmp'

modelscope download --model LLM-Research/Llama3-8B-Chinese-Chat

2、下载框架

git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e .

**准备数据集(自己的):

将训练数据放在 LLaMA-Factory/data目录下
并且修改数据注册文件:LLaMA-Factory/data/dataset_info.json,添加以下字段即可

"fintech": {
  "file_name": "fintech.json",
  "columns": {
    "prompt": "instruction",
    "query": "input",
    "response": "output",
    "history": "history"
  }
}

原本配有的identify数据集,需要自己修改一下{name}和{author},比如改成这样:

3、启动网页端

cd LLaMA-Factory
llamafactory-cli webui

4、在网页端设置参数,开始微调

微调——本地部署(试试效果)——(可以后就)合并导出(要设置导出路径,可以把它放在原模型同一目录下,/hy-tmp/hub/LLM-Research/Llama3-8B-Chinese-Chat-merged)

命令行方式:

创建cust文件夹,添加merge_lora.yaml

### examples/merge_lora/llama3_lora_sft.yaml
### model
model_name_or_path: /hy-tmp/hub/LLM-Research/Llama3-8B-Chinese-Chat
adapter_name_or_path: /hy-tmp/LLaMA-Factory/saves/Llama-3-8B-Chinese-Chat/lora/train_2024-11-21-12-40-09
template: llama3
finetuning_type: lora

### export
export_dir: /hy-tmp/hub/LLM-Research/Llama3-8B-Chinese-Chat-merged
export_size: 2
export_device: cuda
export_legacy_format: false

运行llamafactory-cli export /hy-tmp/LLaMA-Factory/cust/merge_lora.yaml

完成后就会发现模型文件夹多出了合并完权重后的新模型

(可以在本地部署时直接选该模型,就不用添加检查点路径了)

补充:

1、pip install -U huggingface_hub:通过 pip 安装或更新 huggingface_hub 包到最新版本

(-U 或 --upgrade 参数表示如果已经安装了该包,则会将其升级到最新版本;如果没有安装,则会安装最新版本)

(huggingface_hub 是一个 Python 库,它允许用户直接从 Python 脚本中访问 Hugging Face 模型仓库中的模型和数据集。通过这个库,开发者可以轻松地上传、下载和管理自己的模型和数据集)

  pip install huggingface-cli:安装 huggingface-cli 工具

(huggingface-cli 是 Hugging Face 提供的一个命令行接口工具)

如果你需要在 Python 脚本中以编程方式访问 Hugging Face 模型仓库的功能,应该安装 huggingface_hub。
如果你希望使用命令行工具来简化与 Hugging Face 模型仓库的交互,那么安装 huggingface-cli 会是一个不错的选择。  两者都可以单独使用,也可以结合使用。

CLI 是 "Command Line Interface" 的缩写,意为命令行接口

GUI是图形用户界面

CLI可以进行更精细的控制,占用的系统资源更少

常见的CLI工具:

bash(linux)、cmd和powershell(windows)、

专用 CLI 工具:
Git:版本控制系统,可以通过命令行进行操作。
Docker:容器化平台,提供了一系列命令行工具。
Hugging Face CLI:用于与 Hugging Face 模型仓库进行交互的命令行工具。

2、huggingface-cli download --resume-download shenzhi-wang/Llama3-8B-Chinese-Chat --local-dir hy-tmp

如果你使用了 --local-dir 参数,文件会保存在你指定的目录里,否则会保存在当前工作目录下

3、清空文件夹hy-tmp

rm -rf hy-tmp/.* hy-tmp/*(删除隐藏文件、所有文件和子文件夹)

-r 表示递归删除,即删除文件夹及其所有内容
-f 表示强制删除,不会提示确认

4、显存不够时(OutOfMemoryError)

ctrl+C:关闭进程,手动关闭结束其他进程,重新运行

减小batch-size

监控显存:watch -n 1 nvidia-smi(每秒运行一次)

5、

### 对 Llama Factory 进行微调 为了对 Llama Factory 中的模型进行微调,需遵循特定流程来准备环境并执行必要的配置。以下是详细的说明: #### 准备工作 安装部署 Llama Factory 是首要步骤,在此过程中会设置好用于后续操作的基础架构依赖项[^1]。 ```bash git clone https://github.com/your-repo/llama-factory.git cd llama-factory pip install -r requirements.txt ``` #### 配置训练参数 对于微调而言,调整超参数至关重要。这通常涉及修改学习率、批次大小以及迭代次数等关键因素。具体数值取决于所使用的数据集规模及其特性。 #### 执行微调命令 通过指定预训练权重路径及目标领域语料库位置启动微调脚本。假设已经准备好了一个名为 `custom_dataset` 的文件夹作为输入,则可以运行如下指令来进行实际的微调处理: ```bash python finetune.py --model_name_or_path pretrain_weights_directory \ --data_dir custom_dataset \ --output_dir output_model_directory \ --num_train_epochs 3 \ --per_device_train_batch_size 8 \ --learning_rate 5e-5 ``` 上述命令中的选项可以根据实际情况灵活调整以适应不同的应用场景需求。 #### 模型量化与转换 完成微调之后,还可以进一步优化模型性能,比如采用 INT8 或者更低精度的数据表示形式减少计算资源消耗;或者将最终得到的结果保存为 GGUF 格式的文件以便于跨平台移植使用。 ```bash # 假设已存在一个经过微调后的 PyTorch 模型 checkpoint.pt python quantize_and_convert_to_gguf.py --input_model checkpoint.pt --output gguf_converted.gguf ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值