加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 综合聚焦 > 资源网站 > 资源 > 正文

Docker下SPTAG的安装与测试

发布时间:2019-11-22 00:50:17 所属栏目:资源 来源:掘金
导读:关于SPTAG SPTAG是 微软 开发的一款近似最近邻搜索( approximate nearest neighbor search)的库,可以用它来做dense vector的索引。 最常见的就是图像搜索这样的应用,当然文本检索做语义匹配也可以用到。 Docker 环境安装 因为SPTAG目前不支持mac版本,
  关于SPTAG  SPTAG是微软开发的一款近似最近邻搜索( approximate nearest neighbor search)的库,可以用它来做dense vector的索引。  最常见的就是图像搜索这样的应用,当然文本检索做语义匹配也可以用到。Docker下SPTAG的安装与测试  Docker 环境安装  因为SPTAG目前不支持mac版本,所以安装在docker里面就好了。我试了一下官方的dockerfile写的有点儿问题,我没运行起来。于是打算直接建一个docker镜像安装。  进入docker后运行:  安装boost1.67  安装cmake3.15.5  编译SPTAG  到这里环境就算搞好了。把编译好的结果放到/app下  装一下测试用到的python库  Docker镜像的保存  这里算是装好了基本的环境,这里再把环境保存一下。  先查看一下自己的container id。  Docker下SPTAG的安装与测试  我这里是:46b0c72411dc  再看下当前的镜像。Docker下SPTAG的安装与测试  编写rpc服务  因为SPTAG不支持Mac,所以为了能在Mac上访问,这里可以编写一个简单的Rpc Demo服务,将接口稍微封装一下即可。  这里代码放到了:github.com/nladuo/SPTA…  SPTAG_rpc_demo_server.py需要放到docker中,SPTAG_rpc_demo_client.py则直接import到自己的包里即可。  这里我们先把之前的镜像停掉,重新开一个带端口映射的容器(我这里用的8888端口)。  这里先把SPTAG_rpc_demo_server.py拷贝到新的docker容器中(注意容器的id的变化)。  然后通过python运行起来:Docker下SPTAG的安装与测试  到这里SPTAG的rpc服务算是搞好了,我们可以摁下Ctrl+p 然后再摁下Ctrl+q把服务放到后台运行。  测试Demo API  添加索引测试  这里添加了5个向量,分别是10个0,10个1,..., 10个4。Docker下SPTAG的安装与测试  搜索测试  然后测试下搜索,我们搜索10个0的向量,可以看到返回的10个0(本身)的距离是0,10个1的距离为=10,10个2的距离为=40。没有问题Docker下SPTAG的安装与测试  删除数据测试  删除之后,本身不在了。第三近的变成了10个3,=90Docker下SPTAG的安装与测试  删除索引测试  最后是删除索引,可以看到返回结果为True,删除成功。  真实场景下的接口  在真实场景中,  1 . 索引文件可能非常大,我们不会一批一批的添加数据,也不会使用网络开销很大的数据传输。  2 . 每次搜索时候不会每次都重新导入index,然后再调用搜索。  基于以上两个缺陷,这里我想到了以下解决方法:  1 . 针对索引的很大的问题,直接使用SPTAG提供的indexbuilder工具建立索引。  2 . 对于搜索问题,直接编写一个专门的搜索服务接口,在刚启动的时候就导入index。(如有需要可以对索引做定期更新,而非每次都重新加载)  通过indexbuilder建立索引  这里先导出一批测试数据到test_index_input.txt中  然后把test_index_input.txt放到docker里面Docker下SPTAG的安装与测试  然后进入到/app/Release目录建立索引  测试搜索服务  然后和上面的demo API类似,这里我编写了个search API。还是在这个项目里:github.com/nladuo/SPTA…  SPTAG_rpc_search_server.py需要放到docker中,SPTAG_rpc_search_client.py则直接import到自己的包里即可。  这里把SPTAG_rpc_search_server.py放到/app/Release目录后,启动起来。  然后再测一下搜索客户端。Docker下SPTAG的安装与测试  和之前的一样,没问题。Docker下SPTAG的安装与测试  到这里SPTAG的安装和测试就结束了

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读