https://github.com/milvus-io/bootcamp/tree/master/solutions/text_search_engine/quick_deploy 本文地址:http://api.04007.cn/article/1130.html,未经许可,不得转载.
按照上面的方法使用docker搭建起了一个搜索内容,并且通过导入测试文件text.csv以及example.csv文件可以进行NLP检索。但这些测试数据都是英文,如果导入中文的csv文件会报错。原因是mysql字符编码问题,经过调试可以修改代码中的mysql_helpers.py 第28行的mysql表创建代码即可:本文地址:http://api.04007.cn/article/1130.html,未经许可,不得转载.
sql = "create table if not exists " + table_name + "(milvus_id TEXT, title TEXT ,text TEXT) DEFAULT CHARSET=utf8mb4;"bootcamp中text_search_engine默认使用的是paraphrase-mpnet-base-v2预训练模型的,通过上面的修改也能对中文进行搜索,但其主要针对的是西文,如果要使用中文进行NLP检索的话最好更换预训练模型。网上资料上说,目前还没有专门的中文预训练模型。如果应用场景是中文后推荐选择multilingual相关模型,其目前支持50多种语言,以语义相似度计算为例,多语种的模型可以比较中文和英文之间的语义相似度。择multilingual相关模型有最新版本distiluse-base-multilingual-cased-v2。模块介绍地址如下:
https://huggingface.co/sentence-transformers/distiluse-base-multilingual-cased-v2
milvus-io/bootcamp中的text_search_engine要换成中文搜索模型需要进行以下操作:本文地址:http://api.04007.cn/article/1130.html,未经许可,不得转载.
1.修改text-search-webserver容器中的/app/src/config.py修改模型
#MODEL_PATH = 'model/paraphrase-mpnet-base-v2'
MODEL_PATH = 'model/distiluse-base-multilingual-cased-v2'本文地址:http://api.04007.cn/article/1130.html,未经许可,不得转载.
2.修改text-search-webserver容器中的/app/src/encode.py文件
修改模型的初始化方法中把paraphrase-mpnet-base-v2.zip修改成 https://public.ukp.informatik.tu-darmstadt.de/reimers/sentence-transformers/v0.2/distiluse-base-multilingual-cased-v2.zip 。不过这个文件不小,有500多M,可以先下载后放至服务器docker容器中的/app/src目录下。不同的模型向量维度是不一样的,如果直接这样使用会碰到报错:告诉你设置的向量维度和当前的向量维度不同,需要修改/app/src/config.py文件将VECTOR_DIMENSION由原来的768修改为distiluse-base-multilingual-cased-v2的512值。本文地址:http://api.04007.cn/article/1130.html,未经许可,不得转载.
VECTOR_DIMENSION = int(os.getenv("VECTOR_DIMENSION", "512"))本文地址:http://api.04007.cn/article/1130.html,未经许可,不得转载.
然后重启text-search-webserver容器。到这里基本处理逻辑已经OK了。本文地址:http://api.04007.cn/article/1130.html,未经许可,不得转载.
本文地址:http://api.04007.cn/article/1130.html,未经许可,不得转载.
本文地址:http://api.04007.cn/article/1130.html 未经许可,不得转载. 手机访问本页请扫描右下方二维码.
![]() |
![]() |
手机扫码直接打开本页面 |