需求人群
目标受众为需要在Go应用中集成语义搜索功能的开发者,尤其是那些处理小型到中型数据集,并且希望利用BERT模型和GPU加速来提高搜索效率的开发者。
使用场景
使用该库为文档或文章创建向量索引,实现快速检索。在推荐系统中,利用用户行为生成的向量嵌入,进行相似项目推荐。在自然语言处理应用中,使用BERT模型生成文本的语义嵌入,进行文本相似度分析。
产品特色
llama.cpp无cgo集成:不使用cgo,而是依赖purego,直接从Go代码调用共享C库,简化了集成、部署和交叉编译。支持BERT模型:通过llama.cpp支持BERT模型,只要它们使用GGUF格式。预编译二进制文件与Vulkan GPU支持:为Windows和Linux提供预编译的二进制文件,编译时包含Vulkan以实现GPU加速。嵌入搜索索引:支持从计算出的嵌入创建搜索索引,可以保存到磁盘上,之后加载使用,适合小规模应用的基本向量搜索。
使用教程
11. 安装库:下载适用于Windows和Linux的预编译二进制文件,或者从源代码编译。22. 加载模型:使用`search.NewVectorizer`函数初始化一个模型,使用GGUF文件。33. 生成文本嵌入:使用`EmbedText`方法为给定的文本输入生成向量嵌入。44. 创建索引并添加向量:使用`search.NewIndex`创建一个新的索引,并使用`Add`方法添加多个向量及其对应的标签。55. 搜索索引:使用`Search`方法执行搜索,传入嵌入向量和要检索的结果数量。66. 打印结果:遍历搜索结果,打印每个结果及其相关性分数。