阿里云部署微调chatglm3

git Ifs install

Git lfs 主要用于管理大型文件。在传统的Git仓库中,所有文件内容都会被完整记录在每一次提交中,这会导致仓库体积增大,克隆、拉取和推送操作变慢,甚至可能超出存储限额。Git LFS通过将大文件替换成文本指针,这些指针存储在Git仓库中,而实际的大文件则存储在远程的LFS服务器上,从而有效解决这些问题。

拉取模型(分两步拉取)

git clone https://huggingface.co/minlik/chinese-alpaca-plus-7b-merged

git clone https://huggingface.co/entity303/lawgpt-lora-7b-v2

cd chinese-alpaca-plus-7b-mergedcd lawgpt-lora-7b-v2 到对应模型的目录下去再执行

git Ifs pull 拉取大文件

git Ifs Is-files 检查文件完整性

langchain +大模型

bisheng大模型框架

提示词工程:

你是一个友好型的客服助理,请你回答用户的问题{input)},这是你和用户的聊天记录{chat_history},读取文件内容{context}

工作链:

是一个按照指定顺序调用不同组件的过程,这里的组件除了大模型,还包括各类获取数据 或者处理数据的API、代码等,同时[工作链/Chains]还可以嵌套词用其做[工作链/Chains].

大模型微调(新数据对模型进行训练)

登录阿里云平台,选择菜单栏文档与社区,选择机器学习平台PAI,免费试用 选择交互式建模DSW ,授权进入到控制台,,

创建实例,官方镜像选择pytorch1.12

AI资产管理的DSW gallery--->轻量微调和推理

部署chatglm3-6b

git clone https://github.com/THUDM/ChatGLM3.git

source /etc/network_turbo 启动学术加速

创建虚拟环境 conda create --name myenv python=3.10

conda init

conda activate myenv 激活虚拟环境

cd ChatGLM3

pip install--upgrade pip

下载相关依赖

下载相应依赖包(可选source /etc/network_turbo)

pip install-r requirements.txt

pip install jupyter_client

下载模型(三种方式)

第一种(huggingface直接拉取)(最推荐这种切换目录cd /root/autodl-tmp)

其他方法:就是先上传到阿里云盘,再从阿里云盘拉取

切换目录 cd /root/autodl-tmp

更新软件包 sudo apt update

安装git-Ifs

sudo apt-get install git-Ifs

初始化git-Ifs

git lfs install

克隆项目中的小文件

git clone https://huggingface.co/THUDM/chatglm3-6b (选这个命令)

git clone https://www.modelscope.cn/ZhipuAl/chatglm3-6b.git (备选)

当看到这句话:Unpacking objects: 100% (84/84), 39.16 KiB | 1.30 MiB/s, done. Ctrl键+c退出

进入项目目录 cd chatglm3-6b

拉取大文件 git Ifs pull

验证文件完整性 git Ifs Is-files 带星号的是完整下载的

4d5567466e * pytorch_model-00001-of-00007. bin

4ad4153401 * pytorch_model-00002-of-00007. bin

a2be9b17c3 * pytorch_model-00003-of-00007. bin

b5526891el * pytorch_model-00004-of-00007. bin

84bb18a476 * pytorch_model-00005-of-00007. bin

1181875a2d * pytorch_model-00006-of-00007. bin

1271b638dc * pytorch_model-00007-of-00007. bin

cd chatGlm3/basic_demo 切换目录

vi cli_demo.py 修改到本地模型文件路径

python cli_demo.py 就可以在终端和模型对话

(网页启动)

python web_demo.py

从申请云主机的平台上粘贴来的命令:

ssh-p 21133 root@connect.westb.seetacloud.com (将root@connect.westb.seetacloud.com替换下面的对应位置1)

修改后的命令: 输入到win power shell中

ssh-CNg-L 6006:127.0.0.1:7860 root@connect.westc.gpuhub.com -p 21133

密码:Ap/u32aKvCAY

浏览器打开 http://127.0.0.1:6006

到这里模型部署完毕

微调类型

  • 原理:LoRA(Low-Rank Adaptation)是一种参数高效的微调方法,通过在模型的权重矩阵中添加低秩矩阵来调整模型参数,从而在不改变原始模型结构的情况下,实现对模型的微调。
    Freeze-tuning 微调
  • 原理:Freeze-tuning 是一种冻结部分模型参数的微调方法。在微调过程中,只更新模型的部分参数,而保持其他参数不变。这种方法可以减少计算量和显存占用,同时避免对模型的过度调整。
    P-Tuning 微调
  • 原理:P-Tuning 是一种通过调整模型的输入提示(prompt)来进行微调的方法。通过对输入文本的提示进行设计和优化,引导模型生成更符合任务需求的输出。
    全参数微调
  • 原理:全参数微调是对模型的所有参数进行调整的微调方法。这种方法会更新模型的每一个参数,以使模型更好地适应特定任务的数据集。

多轮对话微调

基于AutoDL的ChatGLM3-6b部署微调实践(全流程) - 知乎

(先激活虚拟环境)

安装依赖

pip install transformers==4.30.2 accelerate sentencepiece astunparse deepspeed

克隆项目

cd ~

git clone https://github.com/tangqiaoyu/ToolAlpaca.git

调整数据格式

/root/ChatGLM3/finetune_demo/scripts/format_tool_alpaca.py --path "/root/ToolAlpaca/data/train_data.json"

进入修改参数

cd /root/ChatGLM3/finetune_demo/scripts

找到这个文件

finetune_pt_multiturn.sh

进入修改训练数据路径

BASE_MODEL_PATH=/root/autodl-tmp/chatglm3-6b

DATASET_PATH=(一般是: /root/formatted_data/tool_alpaca.jsonl)

注意:这里的数据集一般是jsonl文件,不是传统神经网络那种格式

微调开始

cd /root/ChatGLM3/finetune_chatmodel_demo

/root/ChatGLM3/finetune_demo/scripts/finetune_pt_multiturn.sh

微调结束(大概3个小时) (微调显示)

(train_runtime: 12381.253, train_samples_per_second': 1.292, train_steps_per_second: 0.081, train_loss': 0.26453141117095946, epoch': 3.95) 100%

Saving PrefixEncoder

INFOlconfiguration_utils.py:458\] 2023-11-11 00:32:07,299 \>\>Configuration saved in output/tool_alpaca_pt-20231110-210524-128-2e-2/config.json I 1000/1000 \[3:26:21\<00:00, 12.38s/it

上述表示微调完成

调用微调模型

进入对应目录cd /root/ChatGLM3/composite_demo

测试模型

python inference.py --pt-checkpoint "/root/ChatGLM3/finetune_demo/output/advertise_gen_pt-20231111-212157-128-2e-2" --model /root/autodl-tmp/chatglm3-6b

启动微调好的模型

MODEL_PATH="/root/autodl-tmp/chatglm3-6b" PT_PATH="/root/ChatGLM3/finetune_demo/output/tool_alpaca_pt-20231110-210524-128 -2e-2" streamlit run main. py

train_data.json内容大概如下:

输入输出格式微调

cd ~

wget-O AdvertiseGen.tar.gz https://cloud.tsinghua.edu.cn/f/b3f119a008264b1cabd1/?dl=1

tar -xzvf AdvertiseGen.tar.gz /root/ChatGLM3/finetune_demo/scripts/format_advertise_gen.py --path "/root/AdvertiseGen/train.json"

进入修改参数

cd /root/ChatGLM3/finetune_demo/scripts

找到这个文件 finetune_pt.sh

进入修改训练数据路径

BASE MODEL PATH=/root/autodl-tmp/chatglm3-6b DATASET_PATH=看自己情况(一般是:/root/formatted data/advertise gen.jsonl

微调开始

cd /root/ChatGLM3/finetune demo /root/ChatGLM3/finetune_demo/scripts/finetune_pt.sh

相关推荐
腾讯云开发者3 小时前
腾讯云 MCP 场景征集计划 | 你的方案,正在定义开发新范式
云计算·腾讯云
杏花春雨江南3 小时前
腾讯云 CVM 上的 SpringBoot 应用避免非法访问
spring boot·云计算·腾讯云
Mar1f5 小时前
阿里云百炼智能体连接云数据库实践(DMS MCP)
数据库·人工智能·mysql·阿里云·oracle
艾小米5 小时前
AWS申请增加弹性IP配额流程
云计算·aws
观测云16 小时前
阿里云 ECS 可观测性最佳实践
阿里云·云计算
chenglin01616 小时前
阿里云——云存储与数据库服务
数据库·阿里云·云计算
GeminiJM18 小时前
Elasticsearch数据迁移方案深度对比:三种方法的优劣分析
大数据·elasticsearch·jenkins
似水流年 光阴已逝20 小时前
腾讯云重保流程详解:从预案到复盘的全周期安全防护
安全·云计算·腾讯云
The_Second_Coming1 天前
最小化 CentOS 模板虚拟机安装与配置
linux·运维·服务器·学习·centos·云计算