Ollama部署EmbeddingGemma-300m:小白友好的向量检索入门
Ollama部署EmbeddingGemma-300m小白友好的向量检索入门1. 什么是EmbeddingGemma-300mEmbeddingGemma-300m是谷歌推出的开源文本嵌入模型专门用于将文本转换为向量表示。这个模型只有3亿参数体积小巧但性能强大特别适合在普通电脑上运行。简单来说它能把任何文字比如一句话、一段文章变成一串数字向量然后通过比较这些数字的相似度就能找到意思相近的内容。这就像给每段文字贴上一个数字指纹通过比较指纹就能快速找到相似的内容。1.1 为什么选择EmbeddingGemma-300m这个模型有三大优势特别适合初学者体积小量化后不到200MB普通笔记本就能运行多语言支持能处理100多种语言包括中文和英文混排开箱即用不需要复杂的配置安装就能用2. 快速安装Ollama和EmbeddingGemma-300m2.1 安装OllamaOllama是一个简化模型部署的工具安装非常简单访问Ollama官网(https://ollama.com)下载对应版本的安装包双击安装包按照提示完成安装打开终端(Windows用户打开命令提示符)输入以下命令检查是否安装成功ollama --version如果看到版本号输出说明安装成功。2.2 下载EmbeddingGemma-300m模型在终端中输入以下命令下载模型ollama pull embeddinggemma:300m这个命令会自动从CSDN星图镜像广场下载优化过的模型版本下载完成后你会看到类似这样的提示Successfully pulled embeddinggemma:300m3. 启动和使用Embedding服务3.1 启动服务在终端中输入以下命令启动服务ollama serve服务启动后你会看到类似这样的输出Listening on http://localhost:11434这意味着服务已经在本地11434端口运行了。3.2 使用Web界面EmbeddingGemma-300m自带一个简单的Web界面方便初学者使用打开浏览器访问 http://localhost:3000你会看到一个简洁的界面左侧是输入框右侧是结果展示区界面主要功能输入文本进行向量化比较两段文本的相似度查看向量生成的速度和效果3.3 测试文本相似度让我们做个简单测试在第一输入框输入我喜欢吃苹果在第二输入框输入苹果是我最爱的水果点击相似度验证按钮你会看到系统计算出的相似度分数0到1之间越接近1越相似通常这两句话的相似度应该在0.8以上。4. 实际应用示例构建简单检索系统现在我们来用EmbeddingGemma-300m构建一个简单的文档检索系统。4.1 准备Python环境确保你已安装Python 3.7然后安装必要的库pip install chromadb requests4.2 创建向量数据库新建一个Python文件vector_db.py输入以下代码import chromadb from chromadb.utils import embedding_functions # 初始化客户端 client chromadb.PersistentClient(path./my_vector_db) # 使用Ollama的Embedding函数 ef embedding_functions.OllamaEmbeddingFunction( urlhttp://localhost:11434/api/embeddings, model_nameembeddinggemma:300m ) # 创建集合 collection client.create_collection( namemy_documents, embedding_functionef ) # 添加一些文档 documents [ Python是一种流行的编程语言, Java也是一种广泛使用的编程语言, 深度学习是机器学习的一个分支, 神经网络由多个层次组成 ] ids [doc1, doc2, doc3, doc4] collection.add( documentsdocuments, idsids ) print(文档已添加到向量数据库)运行这个脚本它会在当前目录下创建my_vector_db文件夹存储你的向量数据。4.3 实现检索功能新建文件search.py输入以下代码import chromadb from chromadb.utils import embedding_functions # 连接已有数据库 client chromadb.PersistentClient(path./my_vector_db) ef embedding_functions.OllamaEmbeddingFunction( urlhttp://localhost:11434/api/embeddings, model_nameembeddinggemma:300m ) collection client.get_collection(my_documents, embedding_functionef) # 查询函数 def search(query, top_k2): results collection.query( query_texts[query], n_resultstop_k ) for i, doc in enumerate(results[documents][0]): print(f\n结果 {i1}:) print(doc) print(f相似度: {results[distances][0][i]:.3f}) # 测试查询 search(什么是Python语言)运行这个脚本它会返回与查询最相关的文档。例如对于什么是Python语言这个查询它应该会返回Python是一种流行的编程语言这个文档并且相似度分数较高。5. 常见问题解答5.1 模型运行需要什么配置最低配置4GB内存的普通笔记本电脑推荐配置8GB以上内存现代CPU(i5及以上)5.2 如何提高检索准确率确保查询语句完整明确对长文档进行适当分块(建议每块200-500字)可以尝试在查询前添加任务描述如检索编程语言相关信息Python有什么特点5.3 支持中文吗完全支持中文而且支持中英文混合内容。例如你可以用中文查询英文文档或者反过来。5.4 能处理多大文本单个文本建议不超过512个token(约300-400汉字)对于更长文本建议分段处理。6. 总结通过本文你已经学会了使用Ollama轻松部署EmbeddingGemma-300m模型通过Web界面测试文本相似度构建简单的文档检索系统实现基本的向量搜索功能EmbeddingGemma-300m的强大之处在于它小巧高效让普通开发者也能轻松使用先进的向量检索技术。你可以基于这个基础进一步开发更复杂的应用如个人知识管理系统文档内容推荐问答机器人多语言内容检索获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。