Skip to content

Commit 3f5cf9a

Browse files
Update
1 parent 7ce6c9f commit 3f5cf9a

File tree

2 files changed

+107
-107
lines changed

2 files changed

+107
-107
lines changed
Lines changed: 106 additions & 106 deletions
Original file line numberDiff line numberDiff line change
@@ -1,106 +1,106 @@
1-
# 基于Paddle进行文本分类
2-
3-
## 🎨 语言
4-
5-
- [English](/README.md)
6-
- [中文](/README-中文.md)
7-
8-
## 📝 描述
9-
10-
这个程序是基于`Paddle`框架进行`文本分类`
11-
12-
文本可以是`中文`或者`英文`,模型选用`单语言模型`,也就是说你必须知道输入的文本是中文还是英文,然后来调用相应的模型进行预测。
13-
14-
所使用的单语言模型:
15-
16-
* 中文文本分类: `hfl/roberta-wwm-ext-large`
17-
* 英文文本分类: `ernie-2.0-large-en`
18-
19-
当然,你也可以选择`多语言模型`进行训练,可能准确率不如单语言模型
20-
21-
## ⚙ 环境
22-
23-
* 使用 `1 * NVIDIA Tesla V100 32G` 进行训练(推荐)。请确保CUDA等已经安装成功
24-
* 当然,你也可以使用CPU来进行训练
25-
26-
## 🛠 库依赖
27-
28-
* Python 3.9
29-
* paddlepaddle 2.1.3
30-
* 如果你用CPU进行训练,那么安装 `CPU only` 版本
31-
* 如果你用GPU进行训练,那么请根据你的GPU和CUDA安装正确的GPU版本。
32-
比如:paddlepaddle-gpu==2.1.3.post101
33-
* paddlenlp 2.1.0
34-
35-
如果你想要部署模型,你还需要安装:
36-
37-
* fastapi 0.79
38-
* uvicorn 0.18.2
39-
40-
## 📚 文件
41-
42-
* 主要有2个文件夹:
43-
* `1-train`: 用来训练得到能够进行预测的模型
44-
* `2-deploy`: 用来部署训练得到的模型,作为API
45-
* 程序主要使用了 `Jupyter Notebook` 。你也可把 `.ipynb` 转换为 `.py`
46-
* 文件前面的序号是你需要运行的顺序
47-
* 比如,你会先运行 `1-xxx.ipynb` ,然后运行 `2-xxx.ipynb`
48-
* `1-train/checkpoint``2-deploy/models` 文件夹中的文件都是假文件,真正的文件需要你通过训练得到
49-
50-
## 📖 数据
51-
52-
* data文件夹中的文件只是一些样例数据
53-
54-
* 你需要把你的data转换为一个 `csv` 文件,并且使用 `\t` 来进行分割
55-
56-
* 样例数据:
57-
58-
| text_a | label |
59-
| ----------------------------------------------------- | ----- |
60-
| Do you ever get a little bit tired of life | A |
61-
| Like you're not really happy but you don't wanna die | B |
62-
| ... | ... |
63-
| Like you're hangin' by a thread but you gotta survive | B |
64-
| 'Cause you gotta survive | C |
65-
66-
* 你必须确保在文本和标签中没有 `\t``重要!!!`
67-
* 你需要把data分成 train(80%) 和 test(20%) ,你可以自己指定划分的比例
68-
69-
## 🎯 运行
70-
71-
可能有些东西需要你自己进行调整。比如:路径
72-
73-
* 步骤1:运行 `train.ipynb` 。运行后,在 `checkpoint` 文件夹中会生成训练后的模型
74-
* 如果你的文本是中文的,请运行 `1.1-train_Chinese.ipynb`
75-
* 如果你的文本是英文的,请运行 `1.2-train_English.ipynb`
76-
* 步骤2(可选):运行 `2-evaluate.ipynb` 。运行后,可以得到分类报告
77-
* 步骤3(可选):运行 `3-predict.ipynb` 。运行后,可以读取文件进行批量预测
78-
* 步骤4(可选):运行 `4-predict_only_one.ipynb` 。运行后,可以单独预测一条文本
79-
* 步骤5:运行 `5-to_static.ipynb` 。运行后,可以得到能够部署的静态图模型
80-
* 步骤6(可选):运行 `6-infer.ipynb` 。用来测试部署
81-
82-
## 📢 部署
83-
84-
得到能够部署的静态图模型后,可以使用 FastAPI 或者其他 API 框架进行部署。
85-
86-
把训练和转换得到的模型放到 `2-deploy/models/English` 或者 `2-deploy/models/Chinese` 中,并且让它们像下面这个样子:
87-
88-
* label_map.json
89-
* model.pdiparams
90-
* model.pdiparams.info
91-
* model.pdmodel
92-
* tokenizer_config.json
93-
* vocab.txt
94-
95-
运行: `python main.py`
96-
97-
访问: `localhost:1234/docs` 查看文档
98-
99-
## 💡 其他
100-
101-
PaddlePaddle 、 PaddleNLP 和 FastAPI 的文档:
102-
103-
* [PaddlePaddle](https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/index_cn.html)
104-
* [PaddleNLP](https://paddlenlp.readthedocs.io/zh/latest/)
105-
* [FastAPI](https://fastapi.tiangolo.com/zh/)
106-
1+
# 基于Paddle进行文本分类
2+
3+
## 🎨 语言
4+
5+
- [English](/README.md)
6+
- [中文](/README-zh.md)
7+
8+
## 📝 描述
9+
10+
这个程序是基于`Paddle`框架进行`文本分类`
11+
12+
文本可以是`中文`或者`英文`,模型选用`单语言模型`,也就是说你必须知道输入的文本是中文还是英文,然后来调用相应的模型进行预测。
13+
14+
所使用的单语言模型:
15+
16+
* 中文文本分类: `hfl/roberta-wwm-ext-large`
17+
* 英文文本分类: `ernie-2.0-large-en`
18+
19+
当然,你也可以选择`多语言模型`进行训练,可能准确率不如单语言模型
20+
21+
## ⚙ 环境
22+
23+
* 使用 `1 * NVIDIA Tesla V100 32G` 进行训练(推荐)。请确保CUDA等已经安装成功
24+
* 当然,你也可以使用CPU来进行训练
25+
26+
## 🛠 库依赖
27+
28+
* Python 3.9
29+
* paddlepaddle 2.1.3
30+
* 如果你用CPU进行训练,那么安装 `CPU only` 版本
31+
* 如果你用GPU进行训练,那么请根据你的GPU和CUDA安装正确的GPU版本。
32+
比如:paddlepaddle-gpu==2.1.3.post101
33+
* paddlenlp 2.1.0
34+
35+
如果你想要部署模型,你还需要安装:
36+
37+
* fastapi 0.79
38+
* uvicorn 0.18.2
39+
40+
## 📚 文件
41+
42+
* 主要有2个文件夹:
43+
* `1-train`: 用来训练得到能够进行预测的模型
44+
* `2-deploy`: 用来部署训练得到的模型,作为API
45+
* 程序主要使用了 `Jupyter Notebook` 。你也可把 `.ipynb` 转换为 `.py`
46+
* 文件前面的序号是你需要运行的顺序
47+
* 比如,你会先运行 `1-xxx.ipynb` ,然后运行 `2-xxx.ipynb`
48+
* `1-train/checkpoint``2-deploy/models` 文件夹中的文件都是假文件,真正的文件需要你通过训练得到
49+
50+
## 📖 数据
51+
52+
* data文件夹中的文件只是一些样例数据
53+
54+
* 你需要把你的data转换为一个 `csv` 文件,并且使用 `\t` 来进行分割
55+
56+
* 样例数据:
57+
58+
| text_a | label |
59+
| ----------------------------------------------------- | ----- |
60+
| Do you ever get a little bit tired of life | A |
61+
| Like you're not really happy but you don't wanna die | B |
62+
| ... | ... |
63+
| Like you're hangin' by a thread but you gotta survive | B |
64+
| 'Cause you gotta survive | C |
65+
66+
* 你必须确保在文本和标签中没有 `\t``重要!!!`
67+
* 你需要把data分成 train(80%) 和 test(20%) ,你可以自己指定划分的比例
68+
69+
## 🎯 运行
70+
71+
可能有些东西需要你自己进行调整。比如:路径
72+
73+
* 步骤1:运行 `train.ipynb` 。运行后,在 `checkpoint` 文件夹中会生成训练后的模型
74+
* 如果你的文本是中文的,请运行 `1.1-train_Chinese.ipynb`
75+
* 如果你的文本是英文的,请运行 `1.2-train_English.ipynb`
76+
* 步骤2(可选):运行 `2-evaluate.ipynb` 。运行后,可以得到分类报告
77+
* 步骤3(可选):运行 `3-predict.ipynb` 。运行后,可以读取文件进行批量预测
78+
* 步骤4(可选):运行 `4-predict_only_one.ipynb` 。运行后,可以单独预测一条文本
79+
* 步骤5:运行 `5-to_static.ipynb` 。运行后,可以得到能够部署的静态图模型
80+
* 步骤6(可选):运行 `6-infer.ipynb` 。用来测试部署
81+
82+
## 📢 部署
83+
84+
得到能够部署的静态图模型后,可以使用 FastAPI 或者其他 API 框架进行部署。
85+
86+
把训练和转换得到的模型放到 `2-deploy/models/English` 或者 `2-deploy/models/Chinese` 中,并且让它们像下面这个样子:
87+
88+
* label_map.json
89+
* model.pdiparams
90+
* model.pdiparams.info
91+
* model.pdmodel
92+
* tokenizer_config.json
93+
* vocab.txt
94+
95+
运行: `python main.py`
96+
97+
访问: `localhost:1234/docs` 查看文档
98+
99+
## 💡 其他
100+
101+
PaddlePaddle 、 PaddleNLP 和 FastAPI 的文档:
102+
103+
* [PaddlePaddle](https://www.paddlepaddle.org.cn/documentation/docs/zh/guides/index_cn.html)
104+
* [PaddleNLP](https://paddlenlp.readthedocs.io/zh/latest/)
105+
* [FastAPI](https://fastapi.tiangolo.com/zh/)
106+

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
## 🎨 Language
44

55
* [English](/README.md)
6-
* [中文](/README-中文.md)
6+
* [中文](/README-zh.md)
77

88
## 📝 Description
99

0 commit comments

Comments
 (0)