阿里云部署微调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

相关推荐
INFINI Labs4 小时前
Easysearch 集成阿里云与 Ollama Embedding API,构建端到端的语义搜索系统
阿里云·云计算·openai·embedding·easysearch
耳东哇4 小时前
阿里云百炼平台创建智能体-上传文档
数据库·redis·阿里云
Elastic 中国社区官方博客4 小时前
Elastic 9.1/8.19:默认启用 BBQ,ES|QL 支持跨集群搜索(CCS)正式版,JOINS 正式版,集成 Azure AI Foundry
大数据·elasticsearch·搜索引擎·全文检索·azure·elastic
AKAMAI6 小时前
运维逆袭志·第1期 | 数据黑洞吞噬一切 :自建系统的美丽陷阱
运维·人工智能·云计算
找不到、了7 小时前
Mysql使用Canal服务同步数据->ElasticSearch
数据库·mysql·elasticsearch
在云上(oncloudai)7 小时前
AWS Lambda Function 全解:无服务器计算
serverless·云计算·aws
Adorable老犀牛8 小时前
Exporters | 安装elasticsearch_exporter
elasticsearch·prometheus·exporter
干了这杯柠檬多10 小时前
使用maven-shade-plugin解决es跨版本冲突
java·elasticsearch·maven
JuiceFS10 小时前
3000 台 JuiceFS Windows 客户端性能评估
后端·云原生·云计算