LLM大模型本地部署与预训练微调

以通义千问-1_8B-Chat为例,按照官方教程,简单介绍如何将模型进行本地CPU部署以及预训练微调:
1、环境条件:Linux 24G内存左右
2、本地部署:
提前安装好git跟git lfs,否则可能拉取不到模型文件,git lfs主要用于大文件拉取。
拉取项目文件:

git clone https://github.com/QwenLM/Qwen.git

创建环境,建议单独创建一个新环境,避免与现有环境冲突,创建后要先安装pytorch,再安装项目依赖模块。

# 创建环境
conda create -n llm python==3.10.4
# 激活环境
conda activate llm 
# 安装pytorch 因为没有GPU 安装CPU版本即可
conda install pytorch==2.2.1 torchvision==0.17.1 torchaudio==2.2.1 cpuonly -c pytorch
# 再安装项目依赖
pip install -r requirements.txt 

项目文件以及环境安装好后,继续拉取模型文件,由于内存有限,拉取1.8B即可
拉取模型:

git clone https://www.modelscope.cn/qwen/Qwen-1_8B-Chat.git qwen_model

调用官方给的web_demo.py 进行本地推理,由于没有GPU使用CPU即可:

python web_demo.py --server-name 0.0.0.0 -c qwen_model --cpu-only

运行成功后出现模型对话地址:
在这里插入图片描述
打开地址,如果0.0.0.0无法打开,更换为主机的地址或者自定义的域名,比如我的主机域名为:node1,在浏览器输入:node1:8000即可:
在这里插入图片描述
至此本地化简单部署结束,此时我们使用还是官方训练好的模型,接下来,我们使用自定义数据,对模型进行微调,使其变为我们自己想要训练的模型:
参照官方文档:https://github.com/QwenLM/Qwen/blob/main/README_CN.md
Qwen模型的训练数据格式为:

[
  {
    "id": "identity_0",
    "conversations": [
      {
        "from": "user",
        "value": "你好"
      },
      {
        "from": "assistant",
        "value": "我是一个语言模型,我叫通义千问。"
      }
    ]
  }
]

按照模型的数据格式构建好自己的数据集,这里,我们将回答替换为是我们创造了Qwen模型,让它按照预设输出回答:
在这里插入图片描述
数据集构建后,使用项目文件:finetune/finetune_lora_single_gpu.sh 进行lora微调:
在这里插入图片描述

# 使用自定义数据集对模型进行微调
 bash finetune/finetune_lora_single_gpu.sh -m qwen_model/ -d train_data_law.json

模型微调过程会使用CPU,且占用内存大概22G左右;如果遇到内存不足,重启主机释放内存后再尝试训练,模型训练完会在当前路径生成一个 output_qwen文件夹,直接运行可能会报错,需要把原来模型里面的generation_config.json文件复制到output_qwen文件夹下面:在这里插入图片描述
调用微调好的模型:

python web_demo.py --server-name 0.0.0.0 -c output_qwen/ --cpu-only

再次跟它对话,可以正常返回微调结果:
在这里插入图片描述
在这里插入图片描述

LLM(Language Learning Model)是一个基于预训练模型的自然语言处理框架,可以用于各种NLP任务,如文本分类、命名实体识别、情感分析等。下面是LLM模型的本地部署微调流程: 1. 下载预训练模型 LLM模型基于预训练模型,可以通过Hugging Face官网下载预训练模型。选择相应的模型并下载到本地。 2. 安装LLM 可以使用pip命令安装LLM,命令如下: ``` pip install llm ``` 3. 加载预训练模型 使用LLM的load方法加载预训练模型,代码示例如下: ```python from llm.modeling import LLMForSequenceClassification model = LLMForSequenceClassification.from_pretrained('path/to/pretrained_model') ``` 4. 微调模型 使用LLM的train方法微调模型,代码示例如下: ```python import torch from llm.data import TextDataset, TextDataLoader from llm.training import LLMTrainer train_dataset = TextDataset('path/to/train_data', model.tokenizer) train_loader = TextDataLoader(train_dataset, batch_size=32, shuffle=True) optimizer = torch.optim.Adam(model.parameters(), lr=5e-5) trainer = LLMTrainer(model, optimizer) trainer.train(train_loader, epochs=3) ``` 5. 保存微调后的模型 使用LLM的save_pretrained方法保存微调后的模型,代码示例如下: ```python model.save_pretrained('path/to/fine_tuned_model') ``` 以上就是LLM模型的本地部署微调流程。需要注意的是,在微调模型时,需要准备好训练数据,并且调整好超参数,以达到最佳的微调效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灯下夜无眠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值