前言:本文专为复习总结而写,全程围绕「Ollama本地化部署」+「bge-m3向量化模型调用」展开,步骤清晰、重点突出,兼顾理论与实战,代码可直接复制运行,适合复习巩固相关知识点,同时对比在线模型(通义千问)凸显本地化部署的优势,助力快速掌握核心操作。

一、背景

随着大语言模型(LLM)的普及,文本向量化成为AI领域的核心基础操作——将文本转化为计算机可识别的浮点数向量,广泛应用于语义检索、文本聚类、相似度计算、RAG知识库搭建等场景。

当前主流的向量化方式主要分为两种:一是调用在线向量化模型(如通义千问、ChatGPT的API),二是本地化部署向量化模型。但在线调用存在明显局限:需联网、有调用次数/Token费用限制、敏感数据上传存在隐私泄露风险,且响应速度受网络影响较大。

在此背景下,Ollama本地化部署工具的出现,搭配开源免费的bge-m3向量化模型,完美解决了在线调用的痛点,成为个人学习、小型项目开发及隐私敏感场景的最优选择,也是复习过程中需重点掌握的实战方案。

二、介绍Ollama

Ollama 是一款轻量级、开源免费的本地大模型部署与管理工具,核心作用是简化大语言模型(LLM)和向量化模型的本地化部署流程,无需复杂的环境配置(无需折腾Docker、不用手动配置依赖),一条命令即可完成模型下载、启动与调用,让开发者能够在本地机器上轻松构建和管理各类AI模型,由本地硬件提供算力支撑,无需依赖云端服务器。

Ollama的核心特点:

  • 极简部署:无需复杂配置,下载安装后,一条命令即可拉取并运行模型,3分钟即可完成基础部署,哪怕是没有丰富运维经验的开发者也能快速上手。

  • 模型丰富:官方支持Llama 3、Qwen2.5、bge-m3等480+主流开源模型,涵盖对话模型、向量化模型,可按需下载,同时支持导入自定义模型。

  • 跨平台兼容:支持Windows、MacOS、Linux系统,且支持GPU加速(NVIDIA显卡自动调用CUDA,AMD显卡支持ROCm,Mac M系列芯片支持Metal加速),资源占用可控,小模型(如bge-m3)在普通笔记本上也能流畅运行。

  • API友好:提供简洁的HTTP API,支持Python、Java等多种语言调用,且API格式兼容OpenAI,现有代码改个基础地址即可适配使用。

本文重点使用Ollama部署bge-m3向量化模型,实现文本向量化的本地化调用——bge-m3是智源研究院发布的开源向量化模型,支持超过100种语言,能处理从句子到长文档的多种输入,在语义检索、跨语言检索任务中表现出色,是目前最流行的开源文本嵌入模型之一,且完全免费可商用。

三、bge-m3简介

BGE-M3是北京智源人工智能研究院推出的新一代通用文本嵌入模型,支持多语言、多粒度、多功能的文本向量化表示,适用于检索、分类、聚类等多种自然语言处理任务。

四、实战代码

# \RAG\RAG_Ollama.py
#本地部署模型后,访问嵌入模型以及输出文本的向量表示

from ollama import Client

# 创建Ollama客户端实例
client = Client(host="http://127.0.0.1:11434")

# 获取模型列表并打印端口和访问链接
# models = client.list()
#
# for model in models:
#     print(model)

def get_embedding(text, model_name="bge-m3"):
    # 使用ollama库获取嵌入向量
    response = client.embed(model_name, text)
    embedding = response['embeddings']
    return embedding

test_query = "我爱你"
vec = get_embedding(test_query)
print(vec[0])
#  "我爱你" 文本的嵌入表示的维度。
print("维度:",len(vec[0]))

# import ollama
# def get_embedding(text, model_name="bge-m3"):
#     # 使用ollama库获取嵌入向量
#     response = ollama.embed(model_name, text)
#     embedding = response['embeddings']
#     return embedding
#
# test_query = "我爱你"
# vec = get_embedding(test_query)
# print(vec[0])
# #  "我爱你" 文本的嵌入表示的维度。
# print("维度:",len(vec[0]))

四、效果

五、总结

bge-m3生成的向量固定为1024维。核心流程:安装Ollama → 拉取bge-m3模型 → 安装requests依赖 → 编写API调用代码 → 实现文本向量化(单文本/批量),全程开源免费、无网络依赖。离线AI应用开发:结合Ollama部署的对话模型,开发离线AI工具(如离线文本分析工具、本地智能助手),无需依赖云端API,提升应用的稳定性和隐私性。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐