Jast blog Jast blog
首页
  • 《Ambari自定义开发教程》笔记
  • 《CDH教程》笔记
  • 《ClickHouse教程》笔记
  • 《HDFS教程》笔记
  • 《DolphinScheduler教程》笔记
  • 《Hbase教程》笔记
  • 《Iceberg教程》笔记
  • 《Hive教程》笔记
  • 《Flume教程》笔记
  • 《Kafka教程》笔记
  • 《Impala教程》笔记
  • 《Hue教程》笔记
  • 《Spark教程》笔记
  • 《Flink教程》笔记
  • 《Phoenix教程》笔记
  • 《ElasticSearch教程》笔记
  • 《Kylin教程》笔记
  • 《Storm教程》笔记
  • 《Yarn教程》笔记
  • 《Presto教程》笔记
  • 《图数据库教程》笔记
  • 《Kerberos教程》笔记
  • 《Maxwell教程》笔记
  • 《MinIO教程》笔记
  • 《DataX教程》笔记
  • 《Superset教程》笔记
  • 《IOTDB教程》笔记
  • 《大数据相关》笔记
  • 《PaddleNLP教程》笔记
  • 《Nginx教程》笔记
  • 《Java技术文档》
  • 《Maven教程》笔记
  • 《IDEA使用教程》
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档

Jast-zsh

如果你知道你要去哪里,全世界都会给你让路。
首页
  • 《Ambari自定义开发教程》笔记
  • 《CDH教程》笔记
  • 《ClickHouse教程》笔记
  • 《HDFS教程》笔记
  • 《DolphinScheduler教程》笔记
  • 《Hbase教程》笔记
  • 《Iceberg教程》笔记
  • 《Hive教程》笔记
  • 《Flume教程》笔记
  • 《Kafka教程》笔记
  • 《Impala教程》笔记
  • 《Hue教程》笔记
  • 《Spark教程》笔记
  • 《Flink教程》笔记
  • 《Phoenix教程》笔记
  • 《ElasticSearch教程》笔记
  • 《Kylin教程》笔记
  • 《Storm教程》笔记
  • 《Yarn教程》笔记
  • 《Presto教程》笔记
  • 《图数据库教程》笔记
  • 《Kerberos教程》笔记
  • 《Maxwell教程》笔记
  • 《MinIO教程》笔记
  • 《DataX教程》笔记
  • 《Superset教程》笔记
  • 《IOTDB教程》笔记
  • 《大数据相关》笔记
  • 《PaddleNLP教程》笔记
  • 《Nginx教程》笔记
  • 《Java技术文档》
  • 《Maven教程》笔记
  • 《IDEA使用教程》
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
  • LabelStudio标签标注
  • PaddleNLP-情感分析定制化训练
  • 情感分析环境搭建之CPU版本
    • 官方介绍文档
    • 环境准备
    • 源码下载
    • 定制情感分析
      • 样本构建
      • 模型训练
      • 模型测试
    • 遇到的问题
      • 问题1
  • 情感分析环境搭建之GPU版本
  • 情感分析服务化部署之SimpleServing
  • 情感分析服务化部署之构建Docker服务
  • 情感分析之使用PaddleGPU文章正负面分析完整版
  • 情感分析之文章正负面分析完整版
  • 情感分析值使用PaddleGPU文章观点提取分析完整版
  • PaddleNLP常见问题汇总
  • 《PaddleNLP教程》笔记
Jast-zsh
2023-09-13
目录

情感分析环境搭建之CPU版本

[toc]

# 官方介绍文档

点击跳转 (opens new window)

# 环境准备

服务器需要支持avx2指令

# 创建环境
[root@bigdata ~]# conda create --name nlp python=3.8 --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
# 激活环境
[root@bigdata-24-251 envs]# source activate
(base) [root@bigdata-24-251 envs]# conda activate  nlp
(nlp4) [root@bigdata-24-251 envs]# 
1
2
3
4
5
6

安装python依赖

pip install --force-reinstall paddlepaddle==2.5.0rc1 -i https://pypi.tuna.tsinghua.edu.cn/simple
1
pip install --use-pep517 paddlenlp==2.6.0 -i https://mirror.baidu.com/pypi/simple
1
pip install wordcloud==1.8.2.2 -i https://mirror.baidu.com/pypi/simple
1

安装过程可能会遇到问题1,按照文末问题1步骤解决即可

# 源码下载

方法一

mkdir /opt/jast && cd /opt/jast && git clone https://github.com/PaddlePaddle/PaddleNLP.git
1

Gitee地址为:git clone https://gitee.com/paddlepaddle/PaddleNLP.git

方法二

直接下载代码上传到服务器/opt/jast目录

解压

unzip PaddleNLP-develop.zip
1

调用

from paddlenlp import Taskflow
schema = [{'评价维度': ['观点词', '情感倾向[正向,负向,未提及]']}]
senta = Taskflow("sentiment_analysis", model="uie-senta-base", schema=schema)
senta("文本内容")
1
2
3
4

# 定制情感分析

进入目录

cd PaddleNLP-develop/applications/sentiment_analysis/unified_sentiment_extraction/
1

创建目录

mkdir data
1

上传标注数据

这里上传的是标注的样例数据

为方便用户使用,本项目提供了300+条酒店场景的标注数据,可点击这里 (opens new window)进行下载,请注意该数据仅适合用于 抽取 类型的任务。

# 样本构建

python label_studio.py \
    --label_studio_file ./data/label_studio.json \
    --task_type ext \
    --save_dir ./data \
    --splits 0.8 0.1 0.1 \
    --options "正向" "负向" "未提及" \
    --negative_ratio 5 \
    --is_shuffle True \
    --seed 1000
1
2
3
4
5
6
7
8
9

执行完成后会在data/目录下看到生成dev.json、test.json、train.json三个文件

ll data/
total 1608
-rw-r--r-- 1 root root 101635 Sep  5 09:48 dev.json
-rw-r--r-- 1 root root 585483 Jan  6  2023 label_studio.json
-rw-r--r-- 1 root root  95080 Sep  5 09:48 test.json
-rw-r--r-- 1 root root 858816 Sep  5 09:48 train.json
1
2
3
4
5
6

# 模型训练

运行命令-官方提供的

python -u -m paddle.distributed.launch --gpus "0" finetune.py \
  --train_path ./data/train.json \
  --dev_path ./data/dev.json \
  --save_dir ./checkpoint \
  --learning_rate 1e-5 \
  --batch_size 16 \
  --max_seq_len 512 \
  --num_epochs 3 \
  --model uie-senta-base \
  --seed 1000 \
  --logging_steps 10 \
  --valid_steps 100 \
  --device gpu
1
2
3
4
5
6
7
8
9
10
11
12
13

运行命令-自己运行的CPU服务器

nohup python -u -m paddle.distributed.launch  finetune.py \
--train_path ./data/train.json \
--dev_path ./data/dev.json \
--save_dir ./checkpoint \
--learning_rate 1e-5 \
--batch_size 1 \
--max_seq_len 512 \
--num_epochs 3 \
--model uie-senta-base \
--seed 1000 \
--logging_steps 10 \
--valid_steps 100 \
--device cpu &
1
2
3
4
5
6
7
8
9
10
11
12
13

可配置参数说明:

  • train_path:必须,训练集文件路径。
  • dev_path:必须,验证集文件路径。
  • save_dir:模型 checkpoints 的保存目录,默认为"./checkpoint"。
  • learning_rate:训练最大学习率,UIE 推荐设置为 1e-5;默认值为1e-5。
  • batch_size:训练集训练过程批处理大小,请结合显存情况进行调整,若出现显存不足,请适当调低这一参数;默认为 16。
  • max_seq_len:模型支持处理的最大序列长度,默认为512。
  • num_epochs:模型训练的轮次,可以视任务情况进行调整,默认为10。
  • model:训练使用的预训练模型。可选择的有uie-senta-base, uie-senta-medium, uie-senta-mini, uie-senta-micro, uie-senta-nano,默认为uie-senta-base。
  • logging_steps: 训练过程中日志打印的间隔 steps 数,默认10。
  • valid_steps: 训练过程中模型评估的间隔 steps 数,默认100。
  • seed:全局随机种子,默认为 42。
  • device: 训练设备,可选择 'cpu'、'gpu' 其中的一种;默认为 GPU 训练。

# 模型测试

python evaluate.py \
    --model_path ./checkpoint/model_best \
    --test_path ./data/test.json \
    --batch_size 16 \
    --max_seq_len 512
1
2
3
4
5

可配置参数说明:

  • model_path:必须,进行评估的模型文件夹路径,路径下需包含模型权重文件model_state.pdparams及配置文件model_config.json。
  • test_path:必须,进行评估的测试集文件。
  • batch_size:训练集训练过程批处理大小,请结合显存情况进行调整,若出现显存不足,请适当调低这一参数;默认为 16。
  • max_seq_len:文本最大切分长度,输入超过最大长度时会对输入文本进行自动切分,默认为512。
  • debug: 是否开启debug模式对每个正例类别分别进行评估,该模式仅用于模型调试,默认关闭。

# 遇到的问题

# 问题1

Error: Can not import paddle core while this file exists: /Users/mac/opt/anaconda3/envs/NLP-SentimentAnalysis/lib/python3.8/site-packages/paddle/fluid/libpaddle.so
Traceback (most recent call last):
  File "/Users/mac/PycharmProjects/NLP-SentimentAnalysis  /Demo.py", line 1, in <module>
    from paddlenlp import Taskflow
  File "/Users/mac/opt/anaconda3/envs/NLP-SentimentAnalysis/lib/python3.8/site-packages/paddlenlp/__init__.py", line 33, in <module>
    import paddle
  File "/Users/mac/opt/anaconda3/envs/NLP-SentimentAnalysis/lib/python3.8/site-packages/paddle/__init__.py", line 31, in <module>
    from .framework import monkey_patch_variable
  File "/Users/mac/opt/anaconda3/envs/NLP-SentimentAnalysis/lib/python3.8/site-packages/paddle/framework/__init__.py", line 17, in <module>
    from . import random  # noqa: F401
  File "/Users/mac/opt/anaconda3/envs/NLP-SentimentAnalysis/lib/python3.8/site-packages/paddle/framework/random.py", line 17, in <module>
    from paddle import fluid
  File "/Users/mac/opt/anaconda3/envs/NLP-SentimentAnalysis/lib/python3.8/site-packages/paddle/fluid/__init__.py", line 36, in <module>
    from . import framework
  File "/Users/mac/opt/anaconda3/envs/NLP-SentimentAnalysis/lib/python3.8/site-packages/paddle/fluid/framework.py", line 35, in <module>
    from . import core
  File "/Users/mac/opt/anaconda3/envs/NLP-SentimentAnalysis/lib/python3.8/site-packages/paddle/fluid/core.py", line 356, in <module>
    raise e
  File "/Users/mac/opt/anaconda3/envs/NLP-SentimentAnalysis/lib/python3.8/site-packages/paddle/fluid/core.py", line 269, in <module>
    from . import libpaddle
ImportError: dlopen(/Users/mac/opt/anaconda3/envs/NLP-SentimentAnalysis/lib/python3.8/site-packages/paddle/fluid/libpaddle.so, 2): Symbol not found: __ZNSt3__113basic_filebufIcNS_11char_traitsIcEEE5closeEv
  Referenced from: /Users/mac/opt/anaconda3/envs/NLP-SentimentAnalysis/lib/python3.8/site-packages/paddle/fluid/libpaddle.so (which was built for Mac OS X 13.0)
  Expected in: /usr/lib/libc++.1.dylib
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

原因:我现在了2.5.1版本,当前Mac系统不支持该版本,降低版本到2.5.0

pip install --force-reinstall paddlepaddle==2.5.0 -i https://mirror.baidu.com/pypi/simple
1
上次更新: 2023/12/12, 21:00:03
PaddleNLP-情感分析定制化训练
情感分析环境搭建之GPU版本

← PaddleNLP-情感分析定制化训练 情感分析环境搭建之GPU版本→

最近更新
01
Linux可视化监控
02-26
02
Maven私服搭建
02-26
03
当ElasticSearch时间字段设置多个格式到底是用的哪个?
01-19
更多文章>
Theme by Vdoing | Copyright © 2016-2025 Jast-zsh | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式