Upload README.md
Browse files
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接入视频问答
|