Skip to content

可部署的相似度模型 deployable similarity model

License

Notifications You must be signed in to change notification settings

lerry-lee/similarity-model

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

相似度模型服务

对输入的两个句子进行推理预测,获得它们的语义相似度

环境依赖

工具 说明
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,...]

其中score1list1_t1list2_t1的语义相似度得分,score2list1_t2list2_t2的语义相似度得分...

启动步骤

环境搭建

  1. 深度学习环境

对于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
  1. 模型下载

该项目使用深度语言模型ERNIE,并基于预训练模型进行微调

所需的预训练模型是ERNIE1.0中文Base模型,点击下载

  1. python web环境

对于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_pathvocab_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 指定模型

另附:训练demo

项目根目录下ernie_train.py提供了训练ernie模型的方法,训练集和验证集的格式均为:s1\ts2\tlabel

北京有多少人	北京的人口数量是多少	1
这个空气净化器有用吗?	空气刘海是怎么样的	0

About

可部署的相似度模型 deployable similarity model

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages