Hzfinfdu commited on
Commit
4503e73
1 Parent(s): 6db37dc

Upload README.md

Browse files
Files changed (1) hide show
  1. README.md +66 -0
README.md CHANGED
@@ -16,6 +16,7 @@
16
  - [本地部署](#本地部署)
17
  - [下载安装](#下载安装)
18
  - [使用示例](#使用示例)
 
19
  - [友情链接](#友情链接)
20
  - [开源协议](#开源协议)
21
 
@@ -29,6 +30,7 @@
29
  - [**moss-moon-003-sft-int4**](https://huggingface.co/fnlp/moss-moon-003-sft-int4/tree/main): 4bit量化版本的`moss-moon-003-sft`模型,约占用12GB显存即可进行推理。
30
  - [**moss-moon-003-sft-int8**](https://huggingface.co/fnlp/moss-moon-003-sft-int8): 8bit量化版本的`moss-moon-003-sft`模型,约占用24GB显存即可进行推理。
31
  - [**moss-moon-003-sft-plugin-int4**](https://huggingface.co/fnlp/moss-moon-003-sft-plugin-int4): 4bit量化版本的`moss-moon-003-sft-plugin`模型,约占用12GB显存即可进行推理。
 
32
  - **moss-moon-003-pm**: 在基于`moss-moon-003-sft`收集到的偏好反馈数据上训练得到的偏好模型,将在近期开源。
33
  - **moss-moon-003**: 在`moss-moon-003-sft`基础上经过偏好模型`moss-moon-003-pm`训练得到的最终模型,具备更好的事实性和安全性以及更稳定的回复质量,将在近期开源。
34
  - **moss-moon-003-plugin**: 在`moss-moon-003-sft-plugin`基础上经过偏好模型`moss-moon-003-pm`训练得到的最终模型,具备更强的意图理解能力和插件使用能力,将在近期开源。
@@ -256,6 +258,70 @@ python moss_gui_demo.py
256
 
257
  如您不具备本地部署条件或希望快速将MOSS部署到您的服务环境,请联系我们获取推理服务IP地址以及专用API KEY,我们将根据当前服务压力考虑通过API接口形式向您提供服务,接口格式请参考[这里](https://github.com/OpenLMLab/MOSS/blob/main/moss_api.pdf)。
258
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
259
  ## :link: 友情链接
260
 
261
  - [VideoChat with MOSS](https://github.com/OpenGVLab/Ask-Anything/tree/main/video_chat_with_MOSS) - 将MOSS接入视频问答
 
16
  - [本地部署](#本地部署)
17
  - [下载安装](#下载安装)
18
  - [使用示例](#使用示例)
19
+ - [硬件要求](#硬件要求)
20
  - [友情链接](#友情链接)
21
  - [开源协议](#开源协议)
22
 
 
30
  - [**moss-moon-003-sft-int4**](https://huggingface.co/fnlp/moss-moon-003-sft-int4/tree/main): 4bit量化版本的`moss-moon-003-sft`模型,约占用12GB显存即可进行推理。
31
  - [**moss-moon-003-sft-int8**](https://huggingface.co/fnlp/moss-moon-003-sft-int8): 8bit量化版本的`moss-moon-003-sft`模型,约占用24GB显存即可进行推理。
32
  - [**moss-moon-003-sft-plugin-int4**](https://huggingface.co/fnlp/moss-moon-003-sft-plugin-int4): 4bit量化版本的`moss-moon-003-sft-plugin`模型,约占用12GB显存即可进行推理。
33
+ - [**moss-moon-003-sft-plugin-int8**](https://huggingface.co/fnlp/moss-moon-003-sft-plugin-int8): 8bit量化版本的`moss-moon-003-sft-plugin`模型,约占用24GB显存即可进行推理。
34
  - **moss-moon-003-pm**: 在基于`moss-moon-003-sft`收集到的偏好反馈数据上训练得到的偏好模型,将在近期开源。
35
  - **moss-moon-003**: 在`moss-moon-003-sft`基础上经过偏好模型`moss-moon-003-pm`训练得到的最终模型,具备更好的事实性和安全性以及更稳定的回复质量,将在近期开源。
36
  - **moss-moon-003-plugin**: 在`moss-moon-003-sft-plugin`基础上经过偏好模型`moss-moon-003-pm`训练得到的最终模型,具备更强的意图理解能力和插件使用能力,将在近期开源。
 
258
 
259
  如您不具备本地部署条件或希望快速将MOSS部署到您的服务环境,请联系我们获取推理服务IP地址以及专用API KEY,我们将根据当前服务压力考虑通过API接口形式向您提供服务,接口格式请参考[这里](https://github.com/OpenLMLab/MOSS/blob/main/moss_api.pdf)。
260
 
261
+ ### 硬件要求
262
+
263
+ 下表提供了一个batch size=1时本地部署MOSS进行推理所需的显存大小。**量化模型暂时不支持模型并行。**
264
+
265
+ | 量化等级 | 加载模型 | 完成一轮对话(估计值) | 达到最大对话长度2048 |
266
+ | -------- | -------- | ---------------------- | -------------------- |
267
+ | FP16 | 31GB | 42GB | 81GB |
268
+ | Int8 | 16GB | 24GB | 46GB |
269
+ | Int4 | 7.8GB | 12GB | 26GB |
270
+
271
+ ## 微调
272
+
273
+ 本仓库提供了基于 MOSS 基座模型进行 SFT 训练的微调代码 [finetune_moss.py](https://github.com/OpenLMLab/MOSS/blob/main/finetune_moss.py).下面以微调不带 plugins 的对话数据为例介绍代码的使用方法(带 plugins 的数据与此一致)。
274
+
275
+ ### 软件依赖
276
+
277
+ ```bash
278
+ accelerate==0.17.1
279
+ numpy==1.24.2
280
+ regex==2022.10.31
281
+ torch==1.13.1+cu117
282
+ tqdm==4.64.1
283
+ transformers==4.25.1
284
+ ```
285
+
286
+ ### 使用方法
287
+
288
+ 将数据集按照 [conversation_without_plugins](https://github.com/OpenLMLab/MOSS/tree/main/SFT_data/conversations/conversation_without_plugins) 格式处理并放到 `sft_data` 目录中。将 [configs](https://github.com/OpenLMLab/MOSS/tree/main/configs) 文件夹下载到本地(可根据自己的计算配置更改相关信息,详细请参考 [accelerate](https://huggingface.co/docs/accelerate/usage_guides/deepspeed) 官方文档。
289
+
290
+ 创建 `run.sh` 文件并将以下内容复制到该文件中:
291
+
292
+ ```bash
293
+ num_machines=4
294
+ num_processes=$((num_machines * 8))
295
+ machine_rank=0
296
+
297
+ accelerate launch \
298
+ --config_file ./configs/sft.yaml \
299
+ --num_processes $num_processes \
300
+ --num_machines $num_machines \
301
+ --machine_rank $machine_rank \
302
+ --deepspeed_multinode_launcher standard finetune_moss.py \
303
+ --model_name_or_path fnlp/moss-moon-003-base \
304
+ --data_dir ./sft_data \
305
+ --output_dir ./ckpts/moss-moon-003-sft \
306
+ --log_dir ./train_logs/moss-moon-003-sft \
307
+ --n_epochs 2 \
308
+ --train_bsz_per_gpu 4 \
309
+ --eval_bsz_per_gpu 4 \
310
+ --learning_rate 0.000015 \
311
+ --eval_step 200 \
312
+ --save_step 2000"
313
+ ```
314
+
315
+ 然后,运行以下指令进行训练:
316
+ ```bash
317
+ bash run.sh
318
+ ```
319
+ 多节点运行需每台机器都运行一次,且需要正确指定每台机器的 `machine_rank`.
320
+ 如果你想要从本地加载模型,可以将 run.sh 中的 fnlp/moss-moon-003-base 改为你本地的模型路径。
321
+
322
+ 在使用的时候注意 `moss-moon-003-base` 模型的 tokenizer 中,`eos token` 为 `<|endoftext|>`,在训练SFT模型时需要将该 token 指定为 `<eom>` token.
323
+
324
+
325
  ## :link: 友情链接
326
 
327
  - [VideoChat with MOSS](https://github.com/OpenGVLab/Ask-Anything/tree/main/video_chat_with_MOSS) - 将MOSS接入视频问答