阿里开源大模型通义千问Qwen进行训练

阿里开源大模型通义千问Qwen进行训练

训练包括全参数训练和微调。这里主要针对微调进行说明。这里首先运行成功一个官网的案例

官网地址:https://github.com/QwenLM/Qwen2.5

看官网代码中,位置:Qwen2.5-main\examples\llama-factory,同时看 “finetune-zh.md”,里面有详细说明,但是部分说明细节不够,下面同时进行说明。

      前置条件:已经实现“使用阿里开源大模型通义千问Qwen进行推理”

使用阿里开源大模型通义千问Qwen进行推理-CSDN博客

(1)激活虚拟环境

conda activate qwen25_env

此虚拟环境下已经可以使用大模型进行推理,看前置条件说明。

(2)下载并安装LLaMA-Factory

git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git

cd LLaMA-Factory

pip install -e ".[torch,metrics]"

运行llamafactory-cli version显示如下,成功

dfd10e2195574bce9a43a2f76fd6dfa4.png

(3)拷贝qwen2-7b-qlora-sft.yaml训练配置文件到LLaMA-Factory目录

为了先快速测试,先测试qlora训练,qwen2-7b-qlora-sft.yam

https://github.com/QwenLM/Qwen2.5下载的例子examples/llama-factory目录中

d6340446069542529fe87ad992c51b36.png

当然不拷贝也可以,如果不拷贝,需要指定qwen2-7b-qlora-sft.yaml的相对或绝对路径

(4)修改qwen2-7b-qlora-sft.yaml三个位置

模型路径,数据集名字,输出路径

a14c9bbc607a4f2dba5035f9c3e30b24.png

(5)dataset_info.json中配置数据集

LLaMA-Factory/data/dataset_info.json中配置数据集的名字和一些属性,例子已经配置好了,这里使用identity,一个模型自我认知的数据集

779db70d510f450b909c26dac8775554.png

c9e1c2a35f2f495d8a1669f5af76f8bb.png

(6)数据集identity.json部分内容展示

里面的name和author可以根据需要替换成你需要的名字和作者。比如名字可以是“Tom”,作者可以是“Qwen”,可以替换后训练

12d8c2b085974c2ea7b3b22fc60e3415.png

17228cebf6b24139a54c1a5ac596dac3.png

(7)训练命令在LLaMA-Factory目录下执行

QLoRA训练:

cd /home/lyp/qwen2.5/LLaMA-Factory/

llamafactory-cli train qwen2-7b-qlora-sft.yaml

如果报错:

2cef6567f38a49baac5d6db0366fa409.png

按照提示,虚拟环境下安装即可

pip install bitsandbytes>=0.39.0

重新运行成功

llamafactory-cli train qwen2-7b-qlora-sft.yaml

(8)合并:配置文件qwen2-7b-merge-lora.yaml也拷贝到LLaMA-Factory目录

当然在命令行直接指定qwen2-7b-merge-lora.yaml的相对或绝对路径也可以

(9)修改qwen2-7b-merge-lora.yaml配置文件

三个位置,原来模型路径,训练后增量模型目录,输出合并后目录

a329561e7af24540ba7dec025c0bba35.png

(10)LLaMA-Factory目录下执行合并

cd /home/lyp/qwen2.5/LLaMA-Factory/

llamafactory-cli export qwen2-7b-merge-lora.yaml

(11)使用合并模型预测代码

里面的提示语prompt可以修改为hi或hello等,看看与训练文件数据的结果是否一致,经过测试是一致的。

b15f9b9f6fef4ae1b5ba05dfa31aae5d.png

(12)更多可以测试的训练数据集

看数据集配置文件:LLaMA-Factory/data/dataset_info.json,里面配置好的很多都有数据集可以测试。目录LLaMA-Factory/data下面,json结尾的都是可以测试的数据集。

b843547061f642f1b40ad5b44244b7cb.png

(13)如何训练自己的垂直业务来微调大模型

最简单的一个方案,看(12)更多可以测试的训练数据集,观察分析里面的数据集类型,看看哪一种数据模式和自己的垂直业务最接近,直接模仿设置你自己的数据集替代即可。

(14)训练模式选择

全量参数训练需要GPU资源和性能比较高,一般个人和小企业使用较少。通常先尝试LoRA 和QLoRA两个方法,QLoRA训练需要的显存更少。至于那个方法更好,需要经过实验来验证。

机器学习原理与实践
https://www.bilibili.com/cheese/play/ss27274
优质课程,试听课一定听听,100%好评至今。

 

 

<think>好的,我现在需要帮助用户了解如何在本地部署通义Qwen2.5-Omni-7B模型。首先,我需要确认用户的需求,他们可能希望在自己的服务器或个人电脑上运行这个模型,所以必须了解部署的系统要求、步骤以及可能的代码示例。 根据提供的引用内容,这个模型是阿里巴巴开源的,支持多模态,包括文本、图像、音频和视频的处理,并且能够流式生成响应。因此,在部署时需要考虑多模态处理的能力以及硬件资源是否足够。 首先,系统要求方面,用户需要足够的计算资源。因为模型参数是7B规模,通常需要至少16GB的GPU显存,比如使用NVIDIA V100或A10这样的显卡。同时,内存方面建议32GB以上,存储空间需要至少20GB,因为模型文件本身可能较大,加上依赖库和数据集。软件环境方面,需要Python 3.8或更高版本,PyTorch框架,以及Hugging Face的Transformers库,这些都是运行此类模型的基础。 接下来,部署步骤。第一步是环境准备,安装必要的库,比如transformers、torch、sentencepiece等。用户可能需要使用pip安装这些依赖。然后,模型下载,可以通过Hugging Face Hub或者阿里巴巴提供的源获取模型文件。需要确保下载正确的模型版本,可能使用git lfs来下载大文件。 然后是代码示例,用户需要加载模型和分词器。使用AutoModelForCausalLM和AutoTokenizer来自动加载适合的模型结构和分词器。同时,可能需要配置设备映射,比如device_map="auto"让模型自动分配到可用的GPU上。预处理输入部分,可能需要处理多模态数据,比如图像或音频,需要特定的处理器来转换成模型可接受的输入格式。生成输出时,设置参数如max_length、temperature等来控制生成文本的长度和多样性。对于流式输出,可能需要使用generate的streamer参数,但需要查看模型的文档是否支持。 部署注意事项方面,显存优化是关键。如果显存不足,可以考虑量化技术,比如bitsandbytes库的8位或4位量化,或者使用模型并行将模型分散到多个GPU上。多模态处理部分,用户需要确保输入数据经过正确的预处理,比如图像需要resize和归一化,音频可能需要转换为频谱图等。流式响应可能需要结合WebSocket或服务器推送技术,但具体实现可能需要参考模型的API文档。 此外,用户可能需要参考官方文档和GitHub仓库,因为开源项目通常会有详细的安装和使用说明,以及可能的常见题解答。如果遇到题,检查依赖版本是否兼容,比如PyTorch和CUDA的版本是否匹配,transformers库是否更新到支持该模型的版本。 最后,生成相关题需要考虑用户可能进一步的题,比如性能优化方法、处理多模态输入的技巧,或者与其他模型的对比。这样可以帮助用户更全面地理解和应用该模型。</think>### 通义 Qwen2.5-Omni-7B 本地部署指南 #### 一、部署要求 1. **硬件配置** - **GPU**: 推荐 NVIDIA V100/A10/A100 等显存 ≥16GB 的显卡(7B 模型推理需约 14GB 显存) - **内存**: ≥32GB - **存储**: ≥20GB 可用空间(模型文件约 14GB) 2. **软件环境** - Python ≥3.8 - PyTorch ≥2.0(需与 CUDA 版本匹配) - Transformers ≥4.37.0 - 其他依赖:`sentencepiece`, `accelerate`, `bitsandbytes`(量化部署时需安装) #### 二、部署步骤 1. **环境准备** ```bash pip install torch transformers sentencepiece accelerate ``` 2. **模型下载** ```bash git lfs install git clone https://www.modelscope.cn/qwen/Qwen2.5-Omni-7B.git ``` 3. **基础推理代码示例** ```python from transformers import AutoModelForCausalLM, AutoTokenizer model_path = "Qwen2.5-Omni-7B" tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True) model = AutoModelForCausalLM.from_pretrained( model_path, device_map="auto", trust_remote_code=True ) # 文本推理示例 inputs = tokenizer("法国的首都是哪里?", return_tensors="pt").to("cuda") outputs = model.generate(**inputs, max_length=50) print(tokenizer.decode(outputs[0])) ``` #### 三、多模态处理(需额外安装依赖) ```bash pip install pillow soundfile torchaudio ``` ```python # 图像推理示例 from PIL import Image image = Image.open("test_image.jpg").convert("RGB") image_input = model.image_processor(image, return_tensors="pt").to("cuda") text_input = tokenizer("描述这张图片", return_tensors="pt").to("cuda") outputs = model.generate(**dict(text_input, **image_input)) ``` #### 四、显存优化方案 1. **4-bit 量化部署** ```python model = AutoModelForCausalLM.from_pretrained( model_path, device_map="auto", load_in_4bit=True, # 启用4-bit量化 bnb_4bit_compute_dtype=torch.float16 ) ``` 2. **模型并行** ```python model = AutoModelForCausalLM.from_pretrained( model_path, device_map={"": 0}, # 手动分配多GPU max_memory={0:"16GiB", 1:"16GiB"} ) ``` #### 五、流式响应实现 ```python from transformers import TextStreamer streamer = TextStreamer(tokenizer) inputs = tokenizer("请解释量子计算", return_tensors="pt").to("cuda") model.generate(**inputs, streamer=streamer, max_new_tokens=500) ``` #### 六、部署验证 执行以下命令测试模型响应: ```bash python -c "from transformers import pipeline; pipe = pipeline('text-generation', model='Qwen2.5-Omni-7B'); print(pipe('你好,请作一首七言诗', max_length=50)[0]['generated_text'])" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值