赞
踩
暂无
基于transformer结构
GLM-4-9B是智谱AI推出的最新一代预训练模型GLM-4系列中的开源版本,在语义、数学、推理、代码和知识等多方面的数据集测评中,GLM-4-9B及其人类偏好对齐的版本GLM-4-9B-Chat均表现出超越Llama-3-8B的卓越性能。以多模态模型GLM-4V-9B为例,这一模型采用了与CogVLM2相似的架构设计,能够处理高达1120 x 1120分辨率的输入,并通过降采样技术有效减少了token的开销。为了减小部署与计算开销,GLM-4V-9B没有引入额外的视觉专家模块,采用了直接混合文本和图片数据的方式进行训练,在保持文本性能的同时提升多模态能力。
-v 路径、docker_name和imageID根据实际情况修改
- docker pull image.sourcefind.cn:5000/dcu/admin/base/pytorch:2.1.0-centos7.6-dtk24.04-py310
- docker run -it --network=host --privileged=true --name=docker_name --device=/dev/kfd --device=/dev/dri --ipc=host --shm-size=32G --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -u root -v /path/your_code_data/:/path/your_code_data/ -v /opt/hyhal/:/opt/hyhal/:ro imageID /bin/bash
-
- cd /your_code_path/glm4-9b_pytorch
- cd basic_demo
- pip install -r requirements.txt
- cd ./docker
- docker build --no-cache -t glm4-9b:latest .
-
- docker run -it --network=host --privileged=true --name=docker_name --device=/dev/kfd --device=/dev/dri --ipc=host --shm-size=32G --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -u root -v /path/your_code_data/:/path/your_code_data/ -v /opt/hyhal/:/opt/hyhal/:ro imageID /bin/bash
-
- cd /your_code_path/glm4-9b_pytorch
- cd basic_demo
- pip install -r requirements.txt
1、关于本项目DCU显卡所需的特殊深度学习库可从光合开发者社区下载安装: https://developer.hpccube.com/tool/
- DTK软件栈:dtk24.04
- python:python3.10
- torch:2.1
- deepspeed: 0.12.3
Tips:以上dtk软件栈、python、torch等DCU相关工具版本需要严格一一对应
2、其他非特殊库直接按照下面步骤进行安装
- cd basic_demo
- pip install deepspeed-0.12.3+das1.0+gita724046.abi0.dtk2404.torch2.1.0-cp310-cp310-manylinux2014_x86_64.whl
- pip install -r requirements.txt
本仓库以ADGEN (广告生成) 数据集为例介绍代码的使用方法,可通过Google Drive 或者 Tsinghua Cloud下载处理好的 ADGEN 数据集。数据集下载完成后,将数据解压到data目录下。
数据按路径存放后,执行下面的数据转换代码,生成的dev.jsonl
train.jsonl
默认保存在AdvertiseGen/saves
目录下:
python gen_messages_data.py --data_path /path/to/AdvertiseGen
数据集目录结构如下:
- ├── data
- │ ├── AdvertiseGen
- │ ├── saves # 生成的
- │ ├── dev.json
- │ └── train.json
若想生成自己的数据文件,代码可参考gen_messages_data.py进行修改,样例采用如下格式。
{"messages": [{"role": "user", "content": "类型#裤*材质#牛仔布*风格#性感"}, {"role": "assistant", "content": "3x1的这款牛仔裤采用浅白的牛仔面料为裤身材质,其柔然的手感和细腻的质地,在穿着舒适的同时,透露着清纯甜美的个性气质。除此之外,流畅的裤身剪裁将性感的腿部曲线彰显的淋漓尽致,不失为一款随性出街的必备单品。"}]}
{"messages": [{"role": "system", "content": "", "tools": [{"type": "function", "function": {"name": "get_recommended_books", "description": "Get recommended books based on user's interests", "parameters": {"type": "object", "properties": {"interests": {"type": "array", "items": {"type": "string"}, "description": "The interests to recommend books for"}}, "required": ["interests"]}}}]}, {"role": "user", "content": "Hi, I am looking for some book recommendations. I am interested in history and science fiction."}, {"role": "assistant", "content": "{\"name\": \"get_recommended_books\", \"arguments\": {\"interests\": [\"history\", \"science fiction\"]}}"}, {"role": "observation", "content": "{\"books\": [\"Sapiens: A Brief History of Humankind by Yuval Noah Harari\", \"A Brief History of Time by Stephen Hawking\", \"Dune by Frank Herbert\", \"The Martian by Andy Weir\"]}"}, {"role": "assistant", "content": "Based on your interests in history and science fiction, I would recommend the following books: \"Sapiens: A Brief History of Humankind\" by Yuval Noah Harari, \"A Brief History of Time\" by Stephen Hawking, \"Dune\" by Frank Herbert, and \"The Martian\" by Andy Weir."}]}
system
角色为可选角色,但若存在 system
角色,其必须出现在 user
角色之前,且一个完整的对话数据(无论单轮或者多轮对话)只能出现一次 system
角色。tools
字段为可选字段,若存在 tools
字段,其必须出现在 system
角色之后,且一个完整的对话数据(无论单轮或者多轮对话)只能出现一次 tools
字段。当 tools
字段存在时,system
角色必须存在并且 content
字段为空。预训练模型可通过SCNet AIModels下载,当前用例默认预训练模型为:glm-4-9b-chat。
finetune_demo
目录下,首先安装所需环境信息:pip install -r requirements.txt
deepspeed配置文件
:ds_zereo_2,ds_zereo_3lora.yaml/ ptuning_v2.yaml / sft.yaml
: 模型不同方式的配置文件,包括模型参数、优化器参数、训练参数等。部分重要参数解释如下:
data/AdvertiseGen/saves/
: .jsonl
数据地址../checkpoints/glm-4-9b-chat/
: 模型地址configs/lora.yaml
: 配置文件地址bash train.sh
这里使用deepspeed
作为加速方案,请确认当前环境已经根据环境配置章节安装好了deepspeed
库。
bash train_dp.sh
如果按照上述方式进行训练,每次微调都会从头开始,如果你想从训练一半的模型开始微调,你可以加入第四个参数,这个参数有两种传入方式:
yes
, 自动从最后一个保存的Checkpoint开始训练,例如:python finetune.py ../data/AdvertiseGen/saves/ ../checkpoints/glm-4-9b-chat/ configs/lora.yaml yes
XX
, 断点号数字,例600
则从序号600 Checkpoint开始训练,例如:python finetune.py ../data/AdvertiseGen/saves/ ../checkpoints/glm-4-9b-chat/ configs/lora.yaml 600
进入basic_demo目录下
参数解释
- pip install -U huggingface_hub hf_transfer
- export HF_ENDPOINT=https://hf-mirror.com/
-
- python quick_start.py
- # chat
- python trans_cli_demo.py --model_name_or_path ../checkpoints/glm-4-9b-chat
- # 多模态
- python trans_cli_vision_demo.py --model_name_or_path ../checkpoints/glm-4v-9b
python trans_web_demo.py --model_name_or_path ../checkpoints/glm-4-9b-chat
您可以在finetune_demo/inference.py 中使用微调后的模型,执行方式如下。
python inference.py your_finetune_path
数据集:AdvertiseGen
device | iters | train_loss |
---|---|---|
A800 | 1000 | 3.0219 |
K100 | 1000 | 3.0205 |
多轮对话
家居,教育,科研
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。