# ChatGLM-Tuning
一种平价的chatgpt实现方案,基于清华的 [ChatGLM-6B](https://github.com/THUDM/ChatGLM-6B) + LoRA 进行finetune.
数据集: [alpaca](https://github.com/tatsu-lab/stanford_alpaca)
有colab的同学可以直接在colab上尝试: <a href="https://colab.research.google.com/github/mymusise/ChatGLM-Tuning/blob/master/examples/finetune.ipynb">
<img alt="Build" src="https://colab.research.google.com/assets/colab-badge.svg">
</a>
[官方ptuning代码](https://github.com/THUDM/ChatGLM-6B/blob/main/ptuning)
## Demo
- [开源版的文心一言](https://github.com/visual-openllm/visual-openllm)
## S1 Finetune
### 准备
- 显卡: 显存 >= 16G (最好24G或者以上)
- 环境:
- - python>=3.8
- - cuda>=11.6, cupti, cuDNN, TensorRT等深度学习环境
- - pip3 install -r requirements.txt
### 数据预处理
转化alpaca数据集为jsonl
```bash
python cover_alpaca2jsonl.py \
--data_path data/alpaca_data.json \
--save_path data/alpaca_data.jsonl \
```
tokenization
```bash
python tokenize_dataset_rows.py \
--jsonl_path data/alpaca_data.jsonl \
--save_path data/alpaca \
--max_seq_length 200 \
--skip_overlength
```
- `--jsonl_path` 微调的数据路径, 格式jsonl, 对每行的['context']和['target']字段进行encode
- `--save_path` 输出路径
- `--max_seq_length` 样本的最大长度
### 训练
```bash
python finetune.py \
--dataset_path data/alpaca \
--lora_rank 8 \
--per_device_train_batch_size 6 \
--gradient_accumulation_steps 1 \
--max_steps 52000 \
--save_steps 1000 \
--save_total_limit 2 \
--learning_rate 1e-4 \
--fp16 \
--remove_unused_columns false \
--logging_steps 50 \
--output_dir output
```
### 推理
参考 [infer.ipynb](infer.ipynb)
<details><summary><b>Finetune前后对比</b></summary>
利用Alpaca数据集合对ChatGLM-6B Finetune后,在Alpaca数据集上表现得更好:
- `Answer:` 是模型的输出
- `#### Answer:` 是原答案

</details>
## S2. Reward Model
## S3. PPO
## LoRA
| LoRA | Dataset |
| ------------------------------------- | ------------ |
| mymusise/chatglm-6b-alpaca-lora | Alpaca |
| mymusise/chatglm-6b-alpaca-zh-en-lora | Alpaca-zh-en |
| *(on the way)* | Alpaca-zh |
### 使用预训练好的LoRA
参考 [examples/infer_pretrain.ipynb](https://colab.research.google.com/github/mymusise/ChatGLM-Tuning/blob/master/examples/infer_pretrain.ipynb)
# TODO:
- ~~bs > 1 support~~
- 使用中文数据
- 加入RLHF
没有合适的资源?快使用搜索试试~ 我知道了~
一种平价的chatgpt实现方案, 基于ChatGLM-6B + LoRA

共40个文件
sample:13个
head:4个
py:3个

需积分: 0 14 下载量 80 浏览量
2023-08-29
14:25:20
上传
评论 1
收藏 21.62MB ZIP 举报
温馨提示
一种平价的chatgpt实现方案,基于清华的 ChatGLM-6B + LoRA 进行finetune. 数据集: alpaca 有colab的同学可以直接在colab上尝试: Build 官方ptuning代码 Demo 开源版的文心一言 S1 Finetune 准备 显卡: 显存 >= 16G (最好24G或者以上) 环境: python>=3.8 cuda>=11.6, cupti, cuDNN, TensorRT等深度学习环境 pip3 install -r requirements.txt 数据预处理 转化alpaca数据集为jsonl python cover_alpaca2jsonl.py \ --data_path data/alpaca_data.json \ --save_path data/alpaca_data.jsonl \ tokenization python tokenize_dataset_rows.py \ --jsonl_path data/alpaca_data.jsonl \ --save_path
资源推荐
资源详情
资源评论





























收起资源包目录





























































共 40 条
- 1
资源评论


进击的代码家
- 粉丝: 3248
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 用户注册协议-服务协议-电子商务互联网.doc
- 信息化环境下信息技术教师的能力素养.doc
- 计算机维护与维修试题B及答案.docx
- 网络营销模拟卷.doc
- 市内电话业务计算机综合管理系统补充二.doc
- 数学建模十大算法总结.doc
- 机器人学第5章-机器人控制算法4.ppt
- 工程项目管理试卷A1.doc
- assembly_learning-汇编语言资源
- 网络安全课程设计.doc
- 基于51单片机的防盗报警系统的设计.doc
- 制定网络推广方案需要八个步骤上课讲义.pdf
- 基于51单片机的温湿度DHT11采集.docx
- 软件工程填空题汇总.doc
- 基于 Pytorch 与 torchtext 构建的自然语言处理深度学习框架
- grapilot-C语言资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制
