在魔塔社区上,微调大模型

 1.微调简介

   微调AI大模型,要求非常高的电脑配置,特别是高配置的GPU,如果要使用个人电脑配置,那成本有点高,目前魔塔社区,为新用户提供了几十个小时高配置电脑的使用服务,话不多说,直接开始

2 准备账号和环境

      魔塔社区的集成环境是要关联阿里云服务环境的,如果没有阿里云的账号,那就要注册阿里云:阿里云-计算,为了无法计算的价值

     接下来,再注册和登录魔搭的账号:https://modelscope.cn/home

注册完成后,按照下面的箭头操作。

    先点击我的Notebook,再点击GPU环境

文章推荐使用的环境版本是:

软件版本
unbuntu22.04
cuda

12.1.0 

python3.10
torch2.3.0

点击启动之后,等待大概两分钟之后,就可以点击"查看NoteBook",进入魔塔社区内置的JupyterLab的功能,然后找到NoteBook标签,新建一个NoteBook

增添一个代码块,并执行以下命令

!pip3 install --upgrade pip
!pip3 install bitsandbytes>=0.39.0

拉取 LLaMA-Factory,过程大约需要几分钟

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

接下来需要去到终端,安装LLaMA-Factory的相关配置

在打开的终端,执行以下命令

cd LLaMA-Factory
pip3 install -e ".[torch,metrics]"

执行之后的结果如下:

如果有抛出异常提示,可能是包冲突了,可以试着执行

pip3 install --no-deps -e .

执行以下命令,降低transformer的版本,以防最新的LLaMA-Factory,还未支持transformer-4.50.0以上版本

pip3 install transformers==4.46.3

3 下载模型

本文使用的模型是Yi-1.5-6B,该模型在魔塔社区上的地址是:https://www.modelscope.cn/models/01ai/Yi-1.5-6B

通过下面的命令就可以在 notebook 里执行下载(在 terminal也一样,如果需要在terminal执行需要去掉前面的!)。

!git clone https://www.modelscope.cn/01ai/Yi-1.5-6B-Chat.git

4,实战微调模型

开源社区有许多非常优秀的专门用于微调代码库具体的你可以参考这里:

https://github.com/01-ai/Yi-1.5?tab=readme-ov-file#fine-tuning

这里选择llama_factory,其git地址:https://github.com/hiyouga/LLaMA-Factory

4.1 创建微调训练相关的配置文件

在左侧的文件列表,Llama-Factory的文件夹里,打开examps\train_qlora(注意不是 train_lora)下提供的llama3_lora_sft_awq.yaml,复制一份并重命名为yi_lora_sft_bitsandbytes.yaml

这个文件里面写着和微调相关的关键参数。

打开这个文件,将第一行model_name_or_path更改为你下载模型的位置。

下面我的修改,你可以逐行对比一下,不一致或者缺少的配置,就要添加一下

### model
model_name_or_path: ../Yi-1.5-6B-Chat
quantization_bit: 4
trust_remote_code: true

### method
stage: sft
do_train: true
finetuning_type: lora
lora_rank: 8
lora_target: all

### dataset
dataset: identity
template: yi
cutoff_len: 1024
max_samples: 1000
overwrite_cache: true
preprocessing_num_workers: 16
dataloader_num_workers: 4

### output
output_dir: saves/yi-6b/lora/sft
logging_steps: 10
save_steps: 500
plot_loss: true
overwrite_output_dir: true
save_only_model: false
report_to: none  # choices: [none, wandb, tensorboard, swanlab, mlflow]

### train
per_device_train_batch_size: 1
gradient_accumulation_steps: 8
learning_rate: 1.0e-4
num_train_epochs: 3.0
lr_scheduler_type: cosine
warmup_ratio: 0.1
bf16: true
#ddp_timeout: 180000000

### eval
val_size: 0.1
per_device_eval_batch_size: 1
eval_strategy: steps
eval_steps: 500

从上述的配置,我们可以看到,本次微调的数据集是identity。可以打开https://github.com/hiyouga/LLaMA-Factory/blob/main/data/identity.json

查看文件的内容

保存yi_lora_sft_bitsandbytes.yaml 文件,回到终端terminal。

在 LLaMA-Factory 目录下,输入以下命令启动微调脚本(大概需要10分钟)

llamafactory-cli train examples/train_qlora/yi_lora_sft_bitsandbytes.yaml

当你看到一下界面,说明微调过程结束了

如果在微调过程中,抛出ImportError,极大可能是下载的LLaMA-Factory,和当前集成环境有版本冲突,请查看https://github.com/hiyouga/LLaMA-Factory中README的软硬件依赖,对照当前集成环境的软件版本

如果不知道怎么查看当前集成环境的软件版本,参考以下命令

# 在终端中执行以下命令,查看transformers版本
python3 -c "import transformers; print(transformers.__version__)"

4.2 推理测试

参考Llama-Factory文件夹中,examples\inference下提供的llama3_lora_sft.yaml,复制一份,并重命名为 yi_lora_sft.yaml

修改yi_lora_sft.yaml

# 保存模型的地址
model_name_or_path: ../Yi-1.5-6B-Chat
adapter_name_or_path: saves/yi-6b/lora/sft
template: yi
infer_backend: huggingface  # choices: [huggingface, vllm]
finetuning_type: lora
trust_remote_code: true

回到刚刚结束微调的终端Terminal,运行下面的推理命令(同样在Llama-Factory目录下运行)。

llamafactory-cli chat examples/inference/yi_lora_sft.yaml

等待模型加载完成,就可以开始聊天了

<think>好的,我现在需要帮助用户了解如何部署魔塔(ModelScope)社区的模型。首先,我需要回忆一下魔塔社区的基本信息。ModelScope是阿里巴巴推出的一个开源模型平台,提供各种预训练模型和工具,方便开发者使用和部署。用户可能已经知道一些基本概念,但需要具体的部署步骤。 接下来,我应该分解部署流程。通常,部署一个模型包括环境准备、模型选择、安装依赖、下载模型、编写推理代码以及部署服务等步骤。需要确保每个步骤都清晰,并且考虑到用户可能遇到的常见问题,比如环境配置错误或依赖冲突。 然后,我需要检查是否有引用内容需要整合。用户提供的参考引用[^1]提到大模型应用的学习和落地,这可能意味着用户希望实际应用模型,而不仅仅是理论部署。因此,在回答中可能需要强调实际应用中的注意事项,比如性能优化或服务监控。 还要注意格式要求,比如行内数学公式用$...$,独立公式用$$...$$,但在这个问题中可能用不到太多数学公式,不过如果有参数设置或数学表达式,要正确应用。同时,需要用中文回答,结构清晰,分步骤说明。 用户可能的问题包括环境配置的具体命令、如何选择适合的模型、如何处理依赖问题、推理代码示例以及部署后的测试方法。需要确保每个步骤都有对应的解释,并且提供示例代码,比如Python的调用示例。 另外,需要生成相关问题,可能涉及性能优化、模型微调、常见错误处理等,这些都需要在最后部分列出,帮助用户进一步探索。 最后,要确保回答真实可靠,可能需要参考ModelScope的官方文档,确保步骤正确无误。如果有不确定的地方,比如特定模型的依赖版本,应该建议用户查阅官方资料或社区支持。</think>### 魔塔(ModelScope)社区模型部署指南 #### 一、环境准备 1. **Python环境**:建议使用 Python 3.8+,通过虚拟环境隔离依赖: ```bash conda create -n modelscope python=3.8 conda activate modelscope ``` 2. **安装ModelScope核心库**: ```bash pip install modelscope ``` 若需GPU支持,需提前安装对应版本的PyTorch/CUDA。 #### 二、模型选择与下载 1. **访问ModelScope Hub**: 在[官网](https://modelscope.cn/models)搜索目标模型(如`达摩院语音识别模型`),复制模型ID(如`damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch`)。 2. **代码调用下载**: ```python from modelscope import snapshot_download model_dir = snapshot_download("damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch") ``` #### 三、模型推理示例 ```python from modelscope.pipelines import pipeline from modelscope.utils.constant import Tasks # 语音识别示例 asr_pipeline = pipeline(task=Tasks.auto_speech_recognition, model="damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch") result = asr_pipeline(audio_in="test.wav") print(result["text"]) ``` #### 四、服务化部署(以API服务为例) 1. **安装FastAPI**: ```bash pip install fastapi uvicorn ``` 2. **编写API服务**: ```python from fastapi import FastAPI from modelscope.pipelines import pipeline app = FastAPI() asr_pipeline = pipeline(task="auto-speech-recognition", model="damo/speech_paraformer-large_asr...") @app.post("/asr") def transcribe(audio_path: str): result = asr_pipeline(audio_in=audio_path) return {"text": result["text"]} ``` 3. **启动服务**: ```bash uvicorn main:app --reload --port 8000 ``` #### 五、部署优化建议 1. **性能调优**:启用GPU加速、使用模型量化(如`model.half()`) 2. **资源监控**:通过`nvidia-smi`或Prometheus监控显存/算力使用 3. **错误处理**:添加`try-except`块捕获`ModelNotFoundError`等异常
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值