对输入的两个句子进行推理预测,获得它们的语义相似度
工具 | 说明 |
---|---|
python | 开发语言 |
paddlepaddle | 深度学习框架 |
flask | python web框架 |
gevent | python 并发框架 |
接口名 | 类型 | 说明 |
---|---|---|
calculate_similarity | post | 提供句子相似度计算 |
参数名 | 类型 | 说明 |
---|---|---|
text_list1 | list | 句子列表1 |
text_list2 | list | 句子列表2 |
返回值 | 类型 | 说明 |
---|---|---|
probs | list | 相似度列表 |
例如输入是text_list1=[list1_t1,list1_t2,...]
和text_list2=[list2_t1,list2_t2,...]
,则输出为scores=[score1,score2,...]
其中score1
是list1_t1
和list2_t1
的语义相似度得分,score2
是list1_t2
和list2_t2
的语义相似度得分...
对于paddlepadlle深度学习框架,参考快速安装
或直接使用如下命令安装:
# gpu版
python -m pip install paddlepaddle-gpu==2.0.2.post100 -f https://paddlepaddle.org.cn/whl/mkl/stable.html
# cpu版
python -m pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
该项目使用深度语言模型ERNIE,并基于预训练模型进行微调
所需的预训练模型是ERNIE1.0中文Base模型
,点击下载
对于python web框架flask和并发框架gevent,使用如下命令安装即可:
pip install flask gevent
conf/model_conf.json
配置了常见的模型参数,如果这些参数不够满足要求,可以根据实际需求更改,然后重写模型加载前的参数读取方法即可
下面是配置参数的示例:
{
"ernie": {
"use_cuda": true,
"batch_size": 32,
"init_checkpoint": "data/ernie/pretrained_model/params",
"ernie_config_path": "data/ernie/pretrained_model/ernie_config.json",
"vocab_path": "data/ernie/pretrained_model/vocab.txt",
"save_inference_model_path": "data/ernie/inference_models"
}
}
use_cuda
表示是否使用GPU
init_checkpoint
表示模型要加载的检查点(训练好的模型输出的变量、参数等数据)
ernie_config_path
和vocab_path
是预训练模型的参数和词典
save_inference_model_path
为模型推理时加载的模型文件。
如果没有训练,可以直接使用预训练模型进行推理预测,即init_checkpoint
的路径改为预训练模型的params
即可(如示例)。
进入该项目的根目录,然后执行命令
# 不指定参数,使用默认值
python server.py
# 指定参数
python server.py --port 6100 --model ernie
# 可使用`python server.py --help`查看参数说明
其中参数说明如下:
参数名 | 默认值 | 说明 |
---|---|---|
port | 6100 | 开放端口 |
model | ernie | 指定模型 |
项目根目录下ernie_train.py
提供了训练ernie模型的方法,训练集和验证集的格式均为:s1\t
s2\t
label
北京有多少人 北京的人口数量是多少 1
这个空气净化器有用吗? 空气刘海是怎么样的 0
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。