学员闯关手册:https://aicarrier.feishu.cn/wiki/QtJnweAW1iFl8LkoMKGcsUS9nld
课程视频:https://www.bilibili.com/video/BV13U1VYmEUr/
课程文档:https://github.com/InternLM/Tutorial/tree/camp4/docs/L0/Python
关卡作业:https://github.com/InternLM/Tutorial/blob/camp4/docs/L0/Python/task.md
开发机平台:https://studio.intern-ai.org.cn/
开发机平台介绍:https://aicarrier.feishu.cn/wiki/GQ1Qwxb3UiQuewk8BVLcuyiEnHe
书生浦语官网:https://internlm.intern-ai.org.cn/
github网站:https://github.com/internLM/
InternThinker: https://internlm-chat.intern-ai.org.cn/internthinker
快速上手飞书文档:https://www.feishu.cn/hc/zh-CN/articles/945900971706-%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B%E6%96%87%E6%A1%A3
提交作业:https://aicarrier.feishu.cn/share/base/form/shrcnUqshYPt7MdtYRTRpkiOFJd;
作业批改结果:https://aicarrier.feishu.cn/share/base/query/shrcnkNtOS9gPPnC9skiBLlao2c
internLM-Chat 智能体:https://github.com/InternLM/InternLM/blob/main/agent/README_zh-CN.md
lagent:https://lagent.readthedocs.io/zh-cn/latest/tutorials/action.html#id2

在这里插入图片描述
结构设计
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
训练
在这里插入图片描述
在这里插入图片描述
部署微调
在这里插入图片描述
在这里插入图片描述

LMDeploy部署多模态大模型

#2、推理环境配置
conda create -n lmdeploy python=3.10 -y
conda activate lmdeploy
pip install lmdeploy==0.6.1 gradio==4.44.1 timm==1.0.9

#3、LMDeploy部署,编辑demo.py,通过pipeline.chat 接口来构造多轮对话管线
git clone https://github.com/Control-derek/InternVL2-Tutorial.git
cd InternVL2-Tutorial
conda activate lmdeploy
python demo.py
#网页应用部署体验,vscode自带端口转发
#3、LMDeploy部署demo.py,通过pipeline.chat 接口来构造多轮对话管线
## 3.1.导入相关依赖包
from lmdeploy import pipeline, TurbomindEngineConfig, GenerationConfig
from lmdeploy.vl import load_image

##  3.2.使用你的模型初始化推理管线
model_path = "your_model_path" #/root/share/new_models/openGVLab/InternVL2-2B
pipe = pipeline(model_path,
                backend_config=TurbomindEngineConfig(session_len=8192))
                
##  3.3.读取图片(此处使用PIL读取也行)
image = load_image('your_image_path')

##  3.4.配置推理参数
gen_config = GenerationConfig(top_p=0.8, temperature=0.8)
##  3.5.利用 pipeline.chat 接口 进行对话,需传入生成参数
sess = pipe.chat(('describe this image', image), gen_config=gen_config)
print(sess.response.text)
##  3.6.之后的对话轮次需要传入之前的session,以告知模型历史上下文
sess = pipe.chat('What is the woman doing?', session=sess, gen_config=gen_config)
print(sess.response.text)

XTuner微调实践

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#1、训练环境配置,镜像:Cuda12.2-conda,资源配置:50% A100 * 1
conda create --name xtuner-env python=3.10 -y
conda activate xtuner-env
pip install xtuner==0.1.23 timm==1.0.9
pip install 'xtuner[deepspeed]'
pip install torch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 --index-url https://download.pytorch.org/whl/cu121
pip install transformers==4.39.0 tokenizers==0.15.2 peft==0.13.2 datasets==3.1.0 accelerate==1.2.0 huggingface-hub==0.26.5 

#1、训练环境配置和准备基本配置文件
cd /root/xtuner
conda activate xtuner-env  # 或者是你自命名的训练环境
cd /root
git clone https://github.com/InternLM/xtuner.git
conda activate xtuner-env
#原始internvl的微调配置文件在路径./xtuner/configs/internvl/v2下,假设上面克隆的仓库在/root/InternVL2-Tutorial,复制配置文件到目标目录下
cp /root/InternVL2-Tutorial/xtuner_config/internvl_v2_internlm2_2b_lora_finetune_food.py /root/xtuner/xtuner/configs/internvl/v2/internvl_v2_internlm2_2b_lora_finetune_food.py

#2、微调数据集下载
#2.1、通过huggingface下载
huggingface-cli login
huggingface-cli download --repo-type dataset --resume-download lyan62/FoodieQA --local-dir /root/huggingface/FoodieQA --local-dir-use-symlinks False
#把数据处理为XTuner所需格式
python process_food.py
#2.2、利用share目录下处理好的数据集/root/share/datasets/FoodieQA

#3、开始微调
#3.1、微调
xtuner train internvl_v2_internlm2_2b_lora_finetune_food --deepspeed deepspeed_zero2
#指定新配置文件xtuner train /root/xtuner/xtuner/configs/internvl/v2/internvl_v2_internlm2_2b_lora_finetune_food.py --deepspeed deepspeed_zero2
#3.2、微调后,把模型checkpoint的格式转化为便于测试的格式,./work_dirs/internvl_v2_internlm2_2b_lora_finetune_food/lr35_ep10/为转换后的模型checkpoint保存的路径。
python xtuner/configs/internvl/v1_5/convert_to_official.py xtuner/configs/internvl/v2/internvl_v2_internlm2_2b_lora_finetune_food.py ./work_dirs/internvl_v2_internlm2_2b_lora_finetune_food/iter_640.pth ./work_dirs/internvl_v2_internlm2_2b_lora_finetune_food/lr35_ep10/
#3.3、修改MODEL_PATH为刚刚转换后保存的模型路径
cd /root/InternVL2-Tutorial
conda activate lmdeploy
python demo.py

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置文件参数解读

 path: 需要微调的模型路径,在InternStudio环境下,无需修改。
data_root: 数据集所在路径。
data_path: 训练数据文件路径。
image_folder: 训练图像根路径。
prompt_temple: 配置模型训练时使用的聊天模板、系统提示等。使用与模型对应的即可,此处无需修改。
max_length: 训练数据每一条最大token数。
batch_size: 训练批次大小,可以根据显存大小调整。
accumulative_counts: 梯度累积的步数,用于模拟较大的batch_size,在显存有限的情况下,提高训练稳定性。
dataloader_num_workers: 指定数据集加载时子进程的个数。
max_epochs:训练轮次。
optim_type:优化器类型。
lr: 学习率
betas: Adam优化器的beta1, beta2
weight_decay: 权重衰减,防止训练过拟合用
max_norm: 梯度裁剪时的梯度最大值
warmup_ratio: 预热比例,前多少的数据训练时,学习率将会逐步增加。
save_steps: 多少步存一次checkpoint
save_total_limit: 最多保存几个checkpoint,设为-1即无限制

LoRA相关参数
r: 低秩矩阵的秩,决定了低秩矩阵的维度。
lora_alpha 缩放因子,用于调整低秩矩阵的权重。
lora_dropout dropout 概率,以防止过拟合。
把这里的load_from传入你想要载入的checkpoint,并设置resume=True即可断点重续。

在这里插入图片描述
在这里插入图片描述

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐