Are you sure you want to delete this task? Once this task is deleted, it cannot be recovered.
汀丶人工智能 12ef64778e | 1 year ago | |
---|---|---|
README.md | 1 year ago | |
main.ipynb | 1 year ago |
项目链接见文末
文心大模型开发套件ERNIEKit,面向NLP工程师,提供全流程大模型开发与部署工具集,端到端、全方位发挥大模型效能。
提供业界效果领先的ERNIE 3.0系列开源模型和基于ERNIE的前沿任务模型,满足企业和开发者对NLP模型开发和学习的需求,预置文本分类、文本匹配、序列标注、信息抽取、文本生成五大经典NLP任务,提供基于ERNIE3.0的预训练模型的开发和使用。
PS:这里特别注释一下,目前ERNIEKit套件在兼容Paddle2.4版本上还有点问题,稳定版本是2.2,下属环境介绍里也有表明,主要还是对1.x的fluid兼容问题。
文本匹配是NLP中一个重要的基础问题,NLP中的许多任务都可以抽象为文本匹配任务,其通常以文本相似度计算、文本相关性计算的形式,在应用系统中起核心支撑作用。
代码结构:
文本匹配任务位于./applications/tasks/text_matching
.
├── data ### 示例数据文件夹,包括各任务所需的训练集、测试集、验证集和预测集
│ ├── dev_data
│ │ └── dev.txt
│ ├── dev_data_tokenized
│ │ └── dev.txt
│ ├── dict
│ │ └── vocab.txt
│ ├── download_data.sh
│ ├── predict_data
│ │ └── infer.txt
│ ├── predict_data_tokenized
│ │ └── infer.txt
│ ├── test_data
│ │ └── test.txt
│ ├── test_data_tokenized
│ │ └── test.txt
│ ├── train_data_pairwise
│ │ └── train.txt
│ ├── train_data_pairwise_tokenized
│ │ └── train.txt
│ └── train_data_pointwise
│ └── train.txt
├── data_set_reader ### 与匹配任务相关的数据读取代码
│ └── ernie_classification_dataset_reader.py ### 使用ERNIE的FC匹配任务专用的数据读取代码
├── examples ### 各典型网络的json配置文件,infer后缀的为对应的预测配置文件
│ ├── mtch_bow_pairwise_ch_infer.json
│ ├── mtch_bow_pairwise_ch.json
│ ├── mtch_ernie_fc_pointwise_ch_infer.json
│ ├── mtch_ernie_fc_pointwise_ch.json
│ ├── mtch_ernie_pairwise_simnet_ch_infer.json
│ ├── mtch_ernie_pairwise_simnet_ch.json
│ ├── mtch_ernie_pointwise_simnet_ch_infer.json
│ └── mtch_ernie_pointwise_simnet_ch.json
├── inference ### 模型预测代码
│ └── custom_inference.py ### 文本匹配任务通用的模型预测代码
├── model ### 文本匹配任务相关的网络文件
│ ├── base_matching.py
│ ├── bow_matching_pairwise.py
│ ├── ernie_matching_fc_pointwise.py
│ ├── ernie_matching_siamese_pairwise.py
│ └── ernie_matching_siamese_pointwise.py
├── run_infer.py ### 依靠json进行模型预测的入口脚本
├── run_trainer.py ### 依靠json进行模型训练的入口脚本
└── trainer ### 模型训练和评估代码
├── custom_dynamic_trainer.py ### 动态库模式下的模型训练评估代码
└── custom_trainer.py ### 静态图模式下的模型训练评估代码
在文心中,基于ERNIE的模型都不需要用户自己分词和生成词表文件,非ERNIE的模型需要用户自己提前切好词,词之间以空格分隔,并生成词表文件。切词和词表生成可以使用「分词工具与词表生成工具」进行处理。
训练集
喜欢 打篮球 的 男生 喜欢 什么样 的 女生 爱 打篮球 的 男生 喜欢 什么样 的 女生 1
我 手机 丢 了 , 我 想 换 个 手机 我 想 买 个 新手机 , 求 推荐 1
大家 觉得 她 好看 吗 大家 觉得 跑 男 好看 吗 ? 0
喜欢 打篮球 的 男生 喜欢 什么样 的 女生 爱 打篮球 的 男生 喜欢 什么样 的 女生 爱情 里 没有 谁 对 谁错 吗 ?
我 手机 丢 了 , 我 想 换 个 手机 我 想 买 个 新手机 , 求 推荐 剑灵 高级 衣料 怎么 得
大家 觉得 她 好看 吗 大家 觉得 跑 男 好看 吗 ? 照片 怎么 变成 漫画
预测集
图片 上 得 牌子 是 什么 图片 上 是 什么 牌子 的 包
芹菜 包 什么 肉 好吃 芹菜 炒 啥 好吃
汽车 坐垫 什么 牌子 好 ? 什么 牌子 的 汽车 坐垫 好
词表
非ERNIE模型的词表文件示例存放在**./applications/tasks/text_matching/data/dict/vocab.txt :词表分为两列,第一列为词,第二列为id(从0开始),列与列之间用\t进行分隔。文心的词表中 [PAD]、[CLS]、[SEP]、[MASK]、[UNK]这5个词是必须要有的,若用户自备词表,需保证这5个词是存在的。部分词表示例如下所示:
[PAD] 0
[CLS] 1
[SEP] 2
[MASK] 3
的 4
这个 5
您好 6
...
[UNK] 1566
训练集
ERNIE数据集与非ERNIE数据集格式一致,不同之处在于不用分词
喜欢打篮球的男生喜欢什么样的女生 爱打篮球的男生喜欢什么样的女生 1
我手机丢了,我想换个手机 我想买个新手机,求推荐 1
大家觉得她好看吗 大家觉得跑男好看吗? 0
求秋色之空漫画全集 求秋色之空全集漫画 1
晚上睡觉带着耳机听音乐有什么害处吗? 孕妇可以戴耳机听音乐吗? 0
喜欢打篮球的男生喜欢什么样的女生 爱打篮球的男生喜欢什么样的女生 这边的状态显示是等待确认的
我手机丢了,我想换个手机 我想买个新手机,求推荐 求一本小说是和攻撕逼的
大家觉得她好看吗 大家觉得跑男好看吗? 四川商务职业学院好不好呀
求秋色之空漫画全集 求秋色之空全集漫画 杂志社摄影照片投稿
晚上睡觉带着耳机听音乐有什么害处吗? 孕妇可以戴耳机听音乐吗? 给姓全的男生起外号
测试集/验证集
尺有所短,后面是什么 尺有所短,后面写什么 1
为什么恐怖片会吓死人 为什么恐怖片会吓死人? 1
这是什么舞?(图片) 这是什么枪图片如下 0
这是什么意思,翻译一下 翻译一下这是什么意思 1
海 尔 全 自 动 洗 衣 机 怎 么 样 海 尔 全 自 动 洗 衣 机 怎 么 样 海 尔 全 自 动 洗 衣 机 怎 么 用 海 尔 全 自 动 洗 衣 机 怎 么 用
在 家 电 脑 做 什 么 兼 职 好 呢 在 家 电 脑 做 什 么 兼 职 好 呢 两 台 电 脑 做 什 么 兼 职 好 呢 两 台 电 脑 做 什 么 兼 职 好 呢
这 是 什 么 动 漫 的 图 片 啊 } 这 是 什 么 动 漫 的 图 片 啊 } 这 是 动 漫 还 是 图 片 这 是 动 漫 还 是 图 片
词表
ERNIE词表文件格式与非ERNIE的格式一致,ERNIE词表由文心model提供,./applications/models_hub路径下各ERNIE模型文件夹下存在着对应的词表文件,用户可根据需要进行选择,具体示例如下所示:
[PAD] 0
[CLS] 1
[SEP] 2
[MASK] 3
, 4
的 5
、 6
一 7
人 8
文心预置的可用于文本分类的模型源文件在applications/tasks/text_matching/model目录下,在介绍具体的模型前先对文本匹配网络涉及到的概念进行描述。
单塔 | 双塔 | |
---|---|---|
Pointwise | ||
Pairwise |
Pointwise/Pairwise
单塔/双塔
各个模型的特点如下所示:
网络名称(py文件的类名) | 简介 | 支持类型 | 支持预训练模型 |
---|---|---|---|
BowMatchingPairwise(bow_matching_pairwise.py) | 词袋模型,不考虑句子语序,用一组无序单词来表达一段文本;Pairwise双塔模型。 | Pairwise | ERNIE2.0-Base、ERNIE2.0-large、ERNIE3.0-Base、ERNIE3.0-x-Base、ERNIE3.0-Medium |
ErnieMatchingFcPointwise(ernie_matching_fc_pointwise) | 增加ERNIE预训练模型,下游网络为基础的文本匹配模型,可以任意搭配其他各种经典网络;Pointwise单塔模型。 | Pointwise | ERNIE2.0-Base、ERNIE2.0-large、ERNIE3.0-Base、ERNIE3.0-x-Base、ERNIE3.0-Medium |
ErnieMatchingSiamesePairwise(ernie_matching_siamese_pairwise.py) | 增加ERNIE预训练模型,下游网络采用余弦相似度作为匹配度计算,损失函数为合页损失函数;Pairwise双塔模型。 | Pairwise | ERNIE2.0-Base、ERNIE2.0-large、ERNIE3.0-Base、ERNIE3.0-x-Base、ERNIE3.0-Medium |
ErnieMatchingSiamesePointwise(ernie_matching_siamese_pointwise.py) | 增加ERNIE预训练模型,下游网络采用长短期记忆网络,可较好地处理序列文本中长距离依赖的问题;Pointwise双塔模型; | Pointwise | ERNIE2.0-Base、ERNIE2.0-large、ERNIE3.0-Base、ERNIE3.0-x-Base、ERNIE3.0-Medium、ERNIE-M |
面向搜索、推荐系统排序模块、召回模块的常规解决方案,具体如下:
文心提供的ERNIE预训练模型的下载脚本在applications/models_hub目录下,各预训练模型可由对应的download_xx.sh文件下载得到,用户可根据需求自行下载。其中,ernie_config.json为ERNIE预训练模型的配置文件,vocab.txt为ERNIE预训练模型的词表文件,params目录为ERNIE预训练模型的参数文件目录。
模型名称 | 下载脚本 | 备注 |
---|---|---|
ERNIE2.0-Base | sh download_ernie_2.0_base_ch.sh | 下载并解压后得到对应模型的参数、字典和配置 |
ERNIE2.0-large | sh download_ernie_2.0_large_ch.sh | |
ERNIE3.0-Base | sh download_ernie_3.0_base_ch.sh | |
ERNIE3.0-x-Base | sh download_ernie_3.0_x_base_ch.sh | |
ERNIE3.0-Medium | sh download_ernie_3.0_medium.sh |
匹配任务常用的指标有:Acc(准确率)、Precision(精确率)、Recall(召回率)、pn(正逆序比)、Auc、F1等
python -c "import platform;print(platform.architecture()[0]);print(platform.machine())"
使用GPU机器时,比CPU机器的安装多了GPU相关驱动的配置安装
1、 GPU环境及示例
环境示例
2、 配置环境变量:
set -x
#在LD_LIBRARY_PATH中添加cuda库的路径
export LD_LIBRARY_PATH=/home/work/cuda-10.1/lib64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/home/work/cuda-10.1/extras/CUPTI/lib64:$LD_LIBRARY_PATH
#在LD_LIBRARY_PATH中添加cudnn库的路径
export LD_LIBRARY_PATH=/home/work/cudnn/cudnn7.6.5/lib64:$LD_LIBRARY_PATH
#如果需要多卡并行训练,需要先下载NCCL,下载地址:http://bj.bcebos.com/wenxin-models/nccl.tar.gz,然后在LD_LIBRARY_PATH中添加NCCL库的路径
export LD_LIBRARY_PATH=/home/work/nccl_2.3.5/lib:$LD_LIBRARY_PATH
#如果FLAGS_sync_nccl_allreduce为1,则会在allreduce_op_handle中调用cudaStreamSynchronize(nccl_stream),这种模式在某些情况下可以获得更好的性能
export FLAGS_sync_nccl_allreduce=1
#是否是分布式训练,0标识是分布式,1标识是单机
export PADDLE_IS_LOCAL=1
export PADDLE_USE_GPU=1
#表示分配的显存块占GPU总可用显存大小的比例,范围[0,1]
export FLAGS_fraction_of_gpu_memory_to_use=0.5
#选择要使用的GPU
#export CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7
export CUDA_VISIBLE_DEVICES=0
#表示是否使用垃圾回收策略来优化网络的内存使用,<0表示禁用,>=0表示启用
export FLAGS_eager_delete_tensor_gb=1.0
#是否使用快速垃圾回收策略
export FLAGS_fast_eager_deletion_mode=1
#垃圾回收策略释放变量的内存大小百分比,范围为[0.0, 1.0]
export FLAGS_memory_fraction_of_eager_deletion=1
#设置python
#alias python= your python path
#alias pip= your pip path
注意:如果需要多卡并行训练,需要先下载NCCL,下载地址:http://bj.bcebos.com/wenxin-models/nccl.tar.gz ,然后在LD_LIBRARY_PATH中添加NCCL库的路径
#安装Ernie套件,大小在125MB左右
!git clone https://github.com/PaddlePaddle/ERNIE.git
进入指定任务目录./applications/tasks/text_matching
├── examples ### 各典型网络的json配置文件,infer后缀的为对应的预测配置文件
│ ├── mtch_bow_pairwise_ch.json
│ ├── mtch_ernie_fc_pointwise_ch.json
│ ├── mtch_ernie_pairwise_simnet_ch.json
│ └── mtch_ernie_pointwise_simnet_ch.json
# ernie_3.0 模型下载
# 进入models_hub目录
%cd ./ERNIE/applications/models_hub
# 运行下载脚本
!sh download_ernie_3.0_base_ch.sh
#进入对应目录
%cd ..
%cd ./tasks/text_matching
# %cd /home/aistudio/ERNIE/applications/tasks/text_matching
使用run_trainer.py脚本加载不同的配置文件从而训练不同的模型
#训练BowMatchingPairwise模型
python run_trainer.py --param_path ./examples/mtch_bow_pairwise_ch.json
#训练ErnieMatchingFcPointwise模型
python run_trainer.py --param_path ./examples/mtch_ernie_fc_pointwise_ch.json
#训练ErnieMatchingSiamesePairwise模型
python run_trainer.py --param_path ./examples/mtch_ernie_pairwise_simnet_ch.json
#训练ErnieMatchingSiamesePointwise模型
python run_trainer.py --param_path ./examples/mtch_ernie_pointwise_simnet_ch.json
#可自行修改代码
!python run_trainer.py --param_path ./examples/mtch_ernie_fc_pointwise_ch.json
部分结果展示
INFO: 02-14 17:24:30: custom_dynamic_trainer.py:86 * 140322371376896 current learning rate: 8.4e-06
INFO: 02-14 17:24:31: ernie_matching_fc_pointwise.py:169 * 140322371376896 phase = training loss = 0.0006464745383709669 acc = 1.0 precision = 1.0 step = 530 time_cost = 0.7681
INFO: 02-14 17:24:31: custom_dynamic_trainer.py:86 * 140322371376896 current learning rate: 7.6e-06
INFO: 02-14 17:24:32: ernie_matching_fc_pointwise.py:169 * 140322371376896 phase = training loss = 0.0007393724517896771 acc = 1.0 precision = 1.0 step = 540 time_cost = 0.7595
INFO: 02-14 17:24:32: custom_dynamic_trainer.py:86 * 140322371376896 current learning rate: 6.8e-06
INFO: 02-14 17:24:32: ernie_matching_fc_pointwise.py:169 * 140322371376896 phase = training loss = 0.0005058677052147686 acc = 1.0 precision = 1.0 step = 550 time_cost = 0.7621
INFO: 02-14 17:24:32: custom_dynamic_trainer.py:86 * 140322371376896 current learning rate: 6e-06
INFO: 02-14 17:24:33: ernie_matching_fc_pointwise.py:169 * 140322371376896 phase = training loss = 0.0005211303941905499 acc = 1.0 precision = 1.0 step = 560 time_cost = 0.7555
INFO: 02-14 17:24:33: custom_dynamic_trainer.py:86 * 140322371376896 current learning rate: 5.2e-06
INFO: 02-14 17:24:34: ernie_matching_fc_pointwise.py:169 * 140322371376896 phase = training loss = 0.0006375016528181732 acc = 1.0 precision = 1.0 step = 570 time_cost = 0.7505
INFO: 02-14 17:24:34: custom_dynamic_trainer.py:86 * 140322371376896 current learning rate: 4.4e-06
INFO: 02-14 17:24:35: ernie_matching_fc_pointwise.py:169 * 140322371376896 phase = training loss = 0.0006092005642130971 acc = 1.0 precision = 1.0 step = 580 time_cost = 0.7548
INFO: 02-14 17:24:35: custom_dynamic_trainer.py:86 * 140322371376896 current learning rate: 3.6e-06
INFO: 02-14 17:24:35: ernie_matching_fc_pointwise.py:169 * 140322371376896 phase = training loss = 0.0005502075655385852 acc = 1.0 precision = 1.0 step = 590 time_cost = 0.7621
INFO: 02-14 17:24:35: custom_dynamic_trainer.py:86 * 140322371376896 current learning rate: 2.8e-06
INFO: 02-14 17:24:36: ernie_matching_fc_pointwise.py:169 * 140322371376896 phase = training loss = 0.0006342551205307245 acc = 1.0 precision = 1.0 step = 600 time_cost = 0.7492
INFO: 02-14 17:24:36: custom_dynamic_trainer.py:86 * 140322371376896 current learning rate: 2e-06
INFO: 02-14 17:24:37: ernie_matching_fc_pointwise.py:174 * 140322371376896 phase = test acc = 0.88 precision = 0.8747 time_cost = 0.968 step = 50
INFO: 02-14 17:24:37: custom_dynamic_trainer.py:138 * 140322371376896 eval step = 50
INFO: 02-14 17:24:38: ernie_matching_fc_pointwise.py:169 * 140322371376896 phase = training loss = 0.0007312577217817307 acc = 1.0 precision = 1.0 step = 610 time_cost = 1.7231
INFO: 02-14 17:24:38: custom_dynamic_trainer.py:86 * 140322371376896 current learning rate: 1.2e-06
INFO: 02-14 17:24:39: ernie_matching_fc_pointwise.py:169 * 140322371376896 phase = training loss = 0.0009203955996781588 acc = 1.0 precision = 1.0 step = 620 time_cost = 0.756
INFO: 02-14 17:24:39: custom_dynamic_trainer.py:86 * 140322371376896 current learning rate: 4e-07
INFO: 02-14 17:24:39: ernie_matching_fc_pointwise.py:169 * 140322371376896 phase = training loss = 0.0004998981021344662 acc = 1.0 precision = 1.0 step = 630 time_cost = 0.704
INFO: 02-14 17:24:39: custom_dynamic_trainer.py:86 * 140322371376896 current learning rate: 0.0
INFO: 02-14 17:24:39: custom_dynamic_trainer.py:104 * 140322371376896 Final test result:
需要关注信息:模型保存路径
INFO: 02-14 17:24:43: dynamic_trainer.py:170 * 140322371376896 save path: ./output/mtch_ernie_3.0_base_fc_pointwise_ch/save_inference_model/inference_step_631
INFO: 02-14 17:24:44: run_trainer.py:102 * 140322371376896 end of run train and eval .....
#预测BowMatchingPairwise模型
python run_infer.py --param_path ./examples/mtch_bow_pairwise_ch_infer.json
#预测ErnieMatchingFcPointwise模型
python run_infer.py --param_path ./examples/mtch_ernie_fc_pointwise_ch_infer.json
#预测ErnieMatchingSiamesePairwise模型
python run_infer.py --param_path ./examples/mtch_ernie_pairwise_simnet_ch_infer.json
#预测ErnieMatchingSiamesePointwise模型
python run_infer.py --param_path ./examples/mtch_ernie_pointwise_simnet_ch_infer.json
#需要自行修改路径inference_model_path"
!python run_infer.py --param_path ./examples/mtch_ernie_fc_pointwise_ch_infer.json
# 最后会生成预测文件:/home/aistudio/ERNIE/applications/tasks/text_matching/output/predict_result.txt
部分预测结果展示:
7209396, 0.9994237422943115]')
INFO: 02-14 17:30:07: run_infer.py:50 * 140238487475968 ('现 在 吃 什 么 最 好 啊 现 在 吃 什 么 最 好 啊\t现 在 最 好 的 爆 吧 器 是 什 么 现 在 最 好 的 爆 吧 器 是 什 么', '[0.9997451901435852, 0.00025474882568232715]')
INFO: 02-14 17:30:07: run_infer.py:50 * 140238487475968 ('艾 尔 之 光 澄 说 的 是 什 么 话 艾 尔 之 光 澄 说 的 是 什 么 话\t艾 尔 之 光 澄 什 么 时 候 出 ? 艾 尔 之 光 澄 什 么 时 候 出 ?', '[0.999519944190979, 0.0004800466413144022]')
INFO: 02-14 17:30:07: run_infer.py:50 * 140238487475968 ('一 番 作 为 是 什 么 意 思 一 番 作 为 是 什 么 意 思\t撸 一 番 是 什 么 意 思 撸 一 番 是 什 么 意 思', '[0.9996808767318726, 0.0003191193100064993]')
INFO: 02-14 17:30:07: run_infer.py:50 * 140238487475968 ('微 分 子 的 性 质 是 什 么 微 分 子 的 性 质 是 什 么\t分 子 的 性 质 是 什 么 ? 分 子 的 性 质 是 什 么 ?', '[0.5368487238883972, 0.4631512463092804]')
INFO: 02-14 17:30:07: run_infer.py:50 * 140238487475968 ('手 机 看 电 影 哪 个 网 站 更 新 速 度 最 快 手 机 看 电 影 哪 个 网 站 更 新 速 度 最 快\t哪 个 网 站 的 电 影 更 新 最 快 哪 个 网 站 的 电 影 更 新 最 快', '[0.983171820640564, 0.016828108578920364]')
INFO: 02-14 17:30:07: run_infer.py:50 * 140238487475968 ('梦 见 拔 花 生 是 什 么 意 思 梦 见 拔 花 生 是 什 么 意 思\t梦 见 种 花 生 什 么 意 思 梦 见 种 花 生 什 么 意 思', '[0.9997345805168152, 0.0002654124400578439]')
INFO: 02-14 17:30:07: run_infer.py:50 * 140238487475968 ('逆 战 飓 风 之 龙 逆 战 飓 风 之 龙\t逆 战 送 飓 风 之 龙 的 号 逆 战 送 飓 风 之 龙 的 号', '[0.42942267656326294, 0.5705773234367371]')
INFO: 02-14 17:30:07: run_infer.py:50 * 140238487475968 ('移 动 宽 带 怎 么 样 ? 移 动 宽 带 怎 么 样 ?\t移 动 宽 带 怎 么 样 移 动 宽 带 怎 么 样', '[0.0005698217428289354, 0.9994301199913025]')
INFO: 02-14 17:30:07: run_infer.py:50 * 140238487475968 ('求 《 宝 贝 真 乖 》 全 文 , 谢 ! 求 《 宝 贝 真 乖 》 全 文 , 谢 !\t求 宝 贝 真 乖 全 文 求 宝 贝 真 乖 全 文', '[0.0024148777592927217, 0.9975850582122803]')
INFO: 02-14 17:30:07: run_infer.py:50 * 140238487475968 ('圆 周 率 是 谁 发 明 的 ? 圆 周 率 是 谁 发 明 的 ?\t是 谁 发 明 了 圆 周 率 是 谁 发 明 了 圆 周 率', '[0.0006937617436051369, 0.9993062019348145]')
INFO: 02-14 17:30:07: run_infer.py:50 * 140238487475968 ('爱 情 和 婚 姻 的 区 别 是 什 么 ? 爱 情 和 婚 姻 的 区 别 是 什 么 ?\t爱 情 与 婚 姻 有 什 么 区 别 么 ? 爱 情 与 婚 姻 有 什 么 区 别 么 ?', '[0.0005726246163249016, 0.9994274377822876]')
INFO: 02-14 17:30:07: run_infer.py:50 * 140238487475968 ('作 文 《 我 爱 什 么 》 作 文 《 我 爱 什 么 》\t因 为 有 什 么 , 我 更 的 作 文 因 为 有 什 么 , 我 更 的 作 文', '[0.9994762539863586, 0.0005237914156168699]')
INFO: 02-14 17:30:07: run_infer.py:50 * 140238487475968 ('你 为 什 么 喜 欢 周 杰 伦 译 文 你 为 什 么 喜 欢 周 杰 伦 译 文\t周 杰 伦 中 有 我 喜 欢 你 这 句 歌 词 是 什 么 歌 周 杰 伦 中 有 我 喜 欢 你 这 句 歌 词 是 什 么 歌', '[0.9997124075889587, 0.00028757069958373904]')
INFO: 02-14 17:30:07: run_infer.py:50 * 140238487475968 ('上 火 会 牙 痛 吗 上 火 会 牙 痛 吗\t牙 痛 是 上 火 吗 牙 痛 是 上 火 吗', '[0.002424687147140503, 0.9975753426551819]')
INFO: 02-14 17:30:07: run_infer.py:50 * 140238487475968 ('今 天 深 圳 天 气 怎 么 样 ? 今 天 深 圳 天 气 怎 么 样 ?\t今 天 深 圳 天 气 如 何 今 天 深 圳 天 气 如 何', '[0.0005872210604138672, 0.9994127750396729]')
INFO: 02-14 17:30:07: run_infer.py:50 * 140238487475968 ('谢 文 东 第 三 季 在 什 么 播 放 器 里 看 谢 文 东 第 三 季 在 什 么 播 放 器 里 看\t谢 文 东 第 三 季 要 在 什 么 播 放 器 里 看 谢 文 东 第 三 季 要 在 什 么 播 放 器 里 看', '[0.0007112747407518327, 0.9992886781692505]')
INFO: 02-14 17:30:07: run_infer.py:50 * 140238487475968 ('小 学 生 适 合 看 什 么 书 请 推 荐 小 学 生 适 合 看 什 么 书 请 推 荐\t有 什 么 适 合 小 学 生 六 年 级 学 生 看 的 书 有 什 么 适 合 小 学 生 六 年 级 学 生 看 的 书', '[0.035894427448511124, 0.9641055464744568]')
INFO: 02-14 17:30:07: run_infer.py:50 * 140238487475968 ('南 宁 属 于 哪 个 省 南 宁 属 于 哪 个 省\t南 宁 是 属 于 哪 个 省 南 宁 是 属 于 哪 个 省', '[0.0006054917466826737, 0.9993945360183716]')
最后会生成预测文件:/home/aistudio/ERNIE/applications/tasks/text_matching/output/predict_result.txt
fleetrun --gpus=x,y run_trainer.py./examples/cls_ernie_fc_ch.json
注意:如果需要多卡并行训练,需要先下载NCCL,下载地址:http://bj.bcebos.com/wenxin-models/nccl.tar.gz ,然后在LD_LIBRARY_PATH中添加NCCL库的路径
趁着情人节介绍推广一下文心ERNIEKit套件,赶快收藏起来,节后卷起来。文心大模型开发套件ERNIEKit,面向NLP工程师,提供全流程大模型开发与部署工具集,端到端、全方位发挥大模型效能。
效果领先、简单易用、高效灵活的NLP算法定制开发工具,预置30余个大规模预训练模型、40余个NLP基础任务、20余个数据预处理工具、10余个模型微调工具。支持在BML私有化平台中使用。(旗舰版)
案例集成度很高快点用起来吧!
PS:这里特别注释一下,目前ERNIEKit套件在兼容Paddle2.4版本上还有点问题,稳定版本是2.2,下属环境介绍里也有表明,主要还是对1.x的fluid兼容问题。
https://aistudio.baidu.com/aistudio/projectdetail/5501659?contributionType=1
Dear OpenI User
Thank you for your continuous support to the Openl Qizhi Community AI Collaboration Platform. In order to protect your usage rights and ensure network security, we updated the Openl Qizhi Community AI Collaboration Platform Usage Agreement in January 2024. The updated agreement specifies that users are prohibited from using intranet penetration tools. After you click "Agree and continue", you can continue to use our services. Thank you for your cooperation and understanding.
For more agreement content, please refer to the《Openl Qizhi Community AI Collaboration Platform Usage Agreement》