Skip to content

Commit 5b505e4

Browse files
authored
[Docs] Refactor docs. (#10223)
* refactor docs. * Refine typos.
1 parent 7e0885d commit 5b505e4

File tree

9 files changed

+232
-30
lines changed

9 files changed

+232
-30
lines changed

docs/get_started/generate.md

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
2+
# 大模型生成快速上手
3+
4+
PaddleNLP 提供了方便易用的 Auto API,能够快速的加载模型和 Tokenizer。这里以使用 Qwen/Qwen2-0.5B 模型做文本生成为例:
5+
6+
```python
7+
from paddlenlp.transformers import AutoTokenizer, AutoModelForCausalLM
8+
tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2-0.5B")
9+
model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2-0.5B", dtype="float16")
10+
input_features = tokenizer("你好!请自我介绍一下。", return_tensors="pd")
11+
outputs = model.generate(**input_features, max_length=128)
12+
13+
print(tokenizer.batch_decode(outputs[0], skip_special_tokens=True))
14+
# ['我是一个AI语言模型,我可以回答各种问题,包括但不限于:天气、新闻、历史、文化、科学、教育、娱乐等。请问您有什么需要了解的吗?']
15+
```

docs/get_started/inference.md

+83
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
# 推理服务化快速上手
2+
3+
我们提供了一套基于动态图推理的简单易用 UI 服务化部署方法,用户可以快速部署服务化推理。
4+
5+
请确保,在部署前请确保已正确安装 PaddeNLP,clone 本 repo 下位置代码。以及自定义算子库。本部署的服务是兼容 OpenAI API 接口
6+
7+
Clone PaddleNLP 到本地
8+
```bash
9+
git clone https://github.com/PaddlePaddle/PaddleNLP.git && cd PaddleNLP/llm # 如已clone或下载PaddleNLP可跳过
10+
```
11+
12+
13+
环境准备
14+
15+
```
16+
python >= 3.9
17+
gradio
18+
flask
19+
paddlenlp_ops (可选,高性能自定义加速算子, 安装参考这里)
20+
```
21+
22+
服务化部署,单卡脚本如下:
23+
```bash
24+
25+
python ./predict/flask_server.py \
26+
--model_name_or_path Qwen/Qwen2.5-0.5B-Instruct \
27+
--port 8010 \
28+
--flask_port 8011 \
29+
--dtype "float16"
30+
```
31+
用户也可以使用 paddle.distributed.launch 启动多卡推理。
32+
33+
其中参数如下:
34+
- port: Gradio UI 服务端口号,默认8010。
35+
- flask_port: Flask 服务端口号,默认8011。
36+
37+
其他参数请参见推理文档中推理参数配置。
38+
39+
图形化界面:
40+
- 打开 http://127.0.0.1:8010 即可使用 gradio 图形化界面,即可开启对话。 API 访问: 您也可用通过 flask 服务化 API 的形式
41+
42+
访问服务:
43+
44+
1. 您可以直接使用 curl, 调用开始对话
45+
```
46+
curl 127.0.0.1:8011/v1/chat/completions \
47+
-H 'Content-Type: application/json' \
48+
-d '{"message": [{"role": "user", "content": "你好"}]}'
49+
```
50+
51+
2. 可以使用 OpenAI 客户端调用:
52+
```python
53+
from openai import OpenAI
54+
55+
client = OpenAI(
56+
api_key="EMPTY",
57+
base_url="http://localhost:8011/v1/",
58+
)
59+
60+
# Completion API
61+
stream = True
62+
completion = client.chat.completions.create(
63+
model="default",
64+
messages=[
65+
{"role": "user", "content": "PaddleNLP好厉害!这句话的感情色彩是?"}
66+
],
67+
max_tokens=1024,
68+
stream=stream,
69+
)
70+
71+
if stream:
72+
for c in completion:
73+
print(c.choices[0].delta.content, end="")
74+
else:
75+
print(completion.choices[0].message.content)
76+
```
77+
78+
79+
3. 还可可参考:./predict/request_flask_server.py 文件使用脚本调用。
80+
```bash
81+
# 在 PaddleNLP/llm 目录下
82+
python predict/request_flask_server.py
83+
```

docs/get_started/installation.rst

+9-1
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,22 @@
55

66
.. _飞桨官网: https://www.paddlepaddle.org.cn/
77

8+
cuda12.3 cuda11.8 可以参考一下安装链接:
9+
10+
.. code-block:: bash
11+
12+
python -m pip install paddlepaddle-gpu==3.0.0rc1 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/
13+
python -m pip install paddlepaddle-gpu==3.0.0rc1 -i https://www.paddlepaddle.org.cn/packages/stable/cu123/
14+
15+
816
pip安装
917
--------
1018

1119
最简单快捷的安装方式是使用pip。只需在命令行(终端)中运行以下命令:
1220

1321
.. code-block:: bash
1422
15-
pip install --upgrade --pre paddlenlp
23+
pip install --upgrade --pre paddlenlp==3.0.0b4
1624
1725
这将会自动安装最新版本的PaddleNLP。
1826

docs/get_started/training.md

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# 大模型训练快速上手
2+
3+
## 大模型 SFT 精调
4+
5+
快速微调,您现在只需复制者几行代码,即可开启大模型全量微调流程。
6+
```python
7+
from paddlenlp.trl import SFTConfig, SFTTrainer
8+
from datasets import load_dataset
9+
10+
dataset = load_dataset("ZHUI/alpaca_demo", split="train")
11+
12+
training_args = SFTConfig(output_dir="Qwen/Qwen2.5-0.5B-SFT", device="gpu")
13+
trainer = SFTTrainer(
14+
args=training_args,
15+
model="Qwen/Qwen2.5-0.5B-Instruct",
16+
train_dataset=dataset,
17+
)
18+
trainer.train()
19+
```
20+
21+
同时,我们还提供了更加高性能微调脚本,clone paddlenlp 即可开启训练。
22+
23+
```bash
24+
git clone https://github.com/PaddlePaddle/PaddleNLP.git && cd PaddleNLP # 如已clone或下载PaddleNLP可跳过
25+
mkdir -p llm/data && cd llm/data
26+
wget https://bj.bcebos.com/paddlenlp/datasets/examples/AdvertiseGen.tar.gz && tar -zxvf AdvertiseGen.tar.gz
27+
cd .. # change folder to PaddleNLP/llm
28+
python -u run_finetune.py ./config/qwen/sft_argument_0p5b.json
29+
```
30+
31+
32+
## 大模型预训练
33+
如果你想从随机初始化训练您的模型,或者在原来模型的基础上,加入额外语料继续训练。我们提供了高性能的预训练脚本。git clone 即可开始训练。
34+
```bash
35+
git clone https://github.com/PaddlePaddle/PaddleNLP.git && cd PaddleNLP # 如已clone或下载PaddleNLP可跳过
36+
mkdir -p llm/data && cd llm/data
37+
wget https://bj.bcebos.com/paddlenlp/models/transformers/llama/data/llama_openwebtext_100k.bin
38+
wget https://bj.bcebos.com/paddlenlp/models/transformers/llama/data/llama_openwebtext_100k.idx
39+
cd .. # change folder to PaddleNLP/llm
40+
python -u run_pretrain.py ./config/qwen/pretrain_argument_0p5b.json
41+
```

docs/hot_model.md

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# 热门模型介绍
2+
3+
## DeepSeek 系列及热门思考模型
4+
5+
PaddleNLP 全面支持 DeepSeek V3/R1/R1-Distill, 及 QwQ-32B 等热门思考模型。
6+
7+
推理方面: DeepSeek V3/R1完整版支持 FP8、INT8、4-bit 量化推理,MTP 投机解码。单机 FP8推理输出超1000 tokens/s; 4-bit 推理输出超2100 tokens/s! 发布新版推理部署镜像,热门模型一键部署。推理部署使用文档全面更新,体验全面提升!
8+
9+
训练方面:凭借数据并行、数据分组切分并行、模型并行、流水线并行以及专家并行等一系列先进的分布式训练能力,结合 Paddle 框架独有的列稀疏注意力掩码表示技术——FlashMask 方法,DeepSeek-R1系列模型在训练过程中显著降低了显存消耗,同时取得了卓越的训练性能提升。
10+
11+
| 模型系列 | 模型名称 |
12+
|----------------|--------------------------------------------------------------------------------------------|
13+
| DeepSeek-R1 | deepseek-ai/DeepSeek-R1, deepseek-ai/DeepSeek-R1-Zero, deepseek-ai/DeepSeek-R1-Distill-Llama-70B, deepseek-ai/DeepSeek-R1-Distill-Llama-8B, deepseek-ai/DeepSeek-R1-Distill-Qwen-14B, deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B, deepseek-ai/DeepSeek-R1-Distill-Qwen-32B, deepseek-ai/DeepSeek-R1-Distill-Qwen-7B |
14+
| QwQ | Qwen/QwQ-32B, Qwen/QwQ-32B-Preview |
15+
16+
## PP-UIE 系列
17+
PP-UIE 自研下一代通用信息抽取模型全新发布。强化零样本学习能力,支持极少甚至零标注数据实现高效冷启动与迁移学习,显著降低数据标注成本;具备处理长文本能力,支持 8192 个 Token 长度文档信息抽取,实现跨段落识别关键信息,形成完整理解;提供完整可定制化的训练和推理全流程,训练效率相较于 LLama-Factory 实现了1.8倍的提升。
18+
19+
| 模型系列 | 模型名称 |
20+
|----------------|--------------------------------------------------------------------------------------------|
21+
| PP-UIE | paddlenlp/PP-UIE-0.5B,paddlenlp/PP-UIE-1.5B, paddlenlp/PP-UIE-7B, paddlenlp/PP-UIE-14B |

docs/index.rst

+58-24
Original file line numberDiff line numberDiff line change
@@ -31,60 +31,94 @@
3131
.. toctree::
3232
:maxdepth: 1
3333
:caption: 模型库列表
34-
34+
35+
热门模型介绍 <hot_model.md>
3536
模型库列表 <model_list.rst>
36-
37-
37+
3838

3939
.. toctree::
4040
:maxdepth: 1
4141
:caption: 快速开始
4242

4343
安装 <get_started/installation>
44-
10分钟完成高精度中文情感分析 <get_started/quick_start>
45-
对话模板 <get_started/chat_template>
46-
47-
48-
.. toctree::
49-
:maxdepth: 1
50-
:caption: 数据准备
51-
52-
整体介绍 <data_prepare/overview>
53-
数据集列表 <data_prepare/dataset_list>
54-
加载数据集 <data_prepare/dataset_load>
55-
自定义数据集 <data_prepare/dataset_self_defined>
56-
数据处理 <data_prepare/data_preprocess>
44+
文本生成 <get_started/generate>
45+
快速训练 <get_started/training>
46+
快速推理 <get_started/inference>
5747

5848
.. toctree::
5949
:maxdepth: 1
60-
:caption: 飞桨大模型
50+
:caption: 飞桨大模型训练
6151

6252
飞桨大模型主文档 <llm/README.md>
6353
大模型-预训练文档 <llm/docs/pretrain.rst>
6454
大模型-精调文档 <llm/docs/finetune.md>
6555
大模型-DPO文档 <llm/docs/dpo.md>
6656
大模型-RLHF文档 <llm/docs/rlhf.md>
67-
大模型-推理部署教程 <llm/docs/predict/index.rst>
57+
模型融合文档 <llm/docs/mergekit.md>
58+
59+
60+
.. toctree::
61+
:maxdepth: 1
62+
:caption: 飞桨大模型推理
63+
64+
Docker部署-快速开始教程 <llm/server/docs/general_model_inference.md>
65+
大模型推理教程 <llm/docs/predict/inference_index.rst>
66+
实践调优 <llm/docs/predict/infer_optimize.rst>
67+
静态图模型列表 <llm/server/docs/static_models.md>
68+
各个模型推理量化教程 <llm/docs/predict/models.rst>
69+
异构设备推理 <llm/docs/predict/devices.rst>
6870
大模型-量化教程 <llm/docs/quantization.md>
69-
大模型-高级技术文档 <llm/docs/advanced.rst>
70-
71+
72+
7173
.. toctree::
7274
:maxdepth: 1
73-
:caption: 模型库
75+
:caption: 飞桨大模型特色技术
76+
77+
<llm/docs/unified_checkpoint.md>
78+
<llm/docs/flashmask.md>
79+
<llm/docs/llm_trainer.rst>
80+
81+
82+
83+
.. toctree::
84+
:maxdepth: 1
85+
:caption: PaddleNLP工具库
7486

75-
Transformer预训练模型 <model_zoo/index>
76-
使用Trainer API训练 <trainer.md>
77-
使用Trainer API进行模型压缩 <compression.md>
7887
一键预测功能 <model_zoo/taskflow>
7988
预训练词向量 <model_zoo/embeddings>
8089

90+
.. toctree::
91+
:maxdepth: 1
92+
:caption: PaddleNLP 教程
93+
94+
Transformer预训练模型 <model_zoo/index>
95+
Trainer API训练教程 <trainer.md>
96+
对话模板教程 <get_started/chat_template>
97+
多轮对话精调教程 <llm/docs/chat_template.md>
98+
中文情感分析教程 <get_started/quick_start>
99+
模型压缩教程 <compression.md>
100+
Torch2Paddle 权重转换教程 <llm/docs/torch2paddle.md>
101+
102+
81103

82104
.. toctree::
83105
:maxdepth: 1
84106
:caption: 评价指标
85107

86108
评价指标 <metrics/metrics.md>
87109

110+
111+
112+
.. :maxdepth: 1
113+
.. :caption: 数据准备
114+
115+
.. 整体介绍 <data_prepare/overview>
116+
.. 数据集列表 <data_prepare/dataset_list>
117+
.. 加载数据集 <data_prepare/dataset_load>
118+
.. 自定义数据集 <data_prepare/dataset_self_defined>
119+
.. 数据处理 <data_prepare/data_preprocess>
120+
121+
88122
.. toctree::
89123
:maxdepth: 1
90124
:caption: 实践教程

docs/llm/docs/llm_trainer.rst

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
=====================================================
2-
飞桨大模型统一训练器 PaddleNLP Trainer 训练教程
2+
飞桨大模型统一训练器 PaddleNLP Trainer
33
=====================================================
44

55

@@ -304,4 +304,4 @@ Pipeline Parallel 使用
304304
* `数据并行 <https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/06_distributed_training/data_parallel/index_cn.html>`_
305305
* `sharding 并行 <https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/06_distributed_training/group_sharded_parallel_cn.html#fenzuqiefenbingxing>`_
306306
* `张量并行 <https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/06_distributed_training/model_parallel_cn.html#zhangliangmoxingbingxing>`_
307-
* `流水线并行 <https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/06_distributed_training/pipeline_parallel_cn.html>`_
307+
* `流水线并行 <https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/06_distributed_training/pipeline_parallel_cn.html>`_

llm/docs/flashmask.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# FlashMask
1+
# FlashMask 灵活注意力掩码
22

33
在 Transformer 类大模型训练任务中,注意力掩码(Attention Mask)一方面带来了大量的冗余计算,另一方面因其 $O(N^2)$ 巨大的存储占用导致难以实现长序列场景的高效训练(其中 $N$ 为序列长度)。虽然业界已有 FlashAttention 等针对特定注意力掩码的计算加速方法,但其支持的注意力掩码模式有限,难以满足大模型训练任务对灵活注意力掩码的需求。为了解决上述问题,飞桨独创 FlashMask 技术,提出了列式稀疏的注意力掩码表示方法,支持灵活多样的注意力掩码模式,使得存储复杂度从 $O(N^2)$ 降低至 $O(N)$,并在此基础上实现了高效的算子 Kernel,极致加速大模型训练效率,尤其是长序列场景下的训练效率。
44

llm/docs/torch2paddle.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# torch2paddle
1+
# Torch2Paddle 权重转换教程
22

33
## 转化 Pytorch 权重
44
PaddleNLP 提供了可自动将 PyTorch 相关的权重转化为 Paddle 权重的接口,代码如下:
@@ -15,7 +15,7 @@ AutoModelForCausalLM.from_pretrained("/path/to/pytorch/model", convert_from_torc
1515

1616
## 合并 Pytorch 分片权重
1717

18-
当前 PaddleNLP 仅支持转化单个 Pytorch 权重:`pytorch_model.bin`文件。所以当Pytorch 权重为分片权重时,需要将其合并,合并脚本如下所示:
18+
当前 PaddleNLP 仅支持转化单个 Pytorch 权重:`pytorch_model.bin`文件。所以当 Pytorch 权重为分片权重时,需要将其合并,合并脚本如下所示:
1919

2020
```python
2121
import torch, os

0 commit comments

Comments
 (0)