Ollama本地安装与Embedding模型配置指南!

知识库领域的 LLM 大模型和 Embedding 大模型有区别么?为什么在 RAG 领域,需要单独设置 embedding 大模型?

在人工智能领域,大型语言模型(LLM)和嵌入模型(Embedding Model)是自然语言处理(NLP)中的两大关键技术,尤其在知识库构建和信息检索中发挥着重要作用。

尽管它们都属于 NLP 范畴,但它们在功能、应用场景和资源需求上存在显著差异。

Embedding 模型的主要任务是将文本转换为数值向量表示。这些向量可以用于计算文本之间的相似度、进行信息检索和聚类分析。

Embedding 模型的输出是数值向量。计算机在理解词句含义的时候,是不具备能力的,计算机只能看到一段 01010111 这样的结果。然而,人类看到的词句,是赋予了内部的含义,还带了大量的普世认知。

参考台大李宏毅老师的一张图,做一下说明。

当我们人类理解 猫 vs 狗 和 狗 vs 花的差异的时候,能自然的理解,觉得猫和狗是更加相近的物种;而狗和花,一个是动物,另一个是植物,偏差会更多。

在这里插入图片描述

那么,如何让计算机能理解这些词背后的含义呢。所使用的技术就是 Embedding。一句话简单说,embedding 就是把计算机无法理解的字词,转换成一个向量矩阵。

比较相似,或者含意比较接近的词向量之间的距离,是更加接近的。比如 dog 和 cat,dog 和 rabbit; 然而,flower 和 dog,就会隔得比较远。

Embedding 模型广泛应用于文本相似度计算、信息检索、聚类和推荐系统。

在大模型知识库领域中,单独设置 Embedding 模型可以降低系统资源占用和响应延迟,特别是在大规模知识库构建和信息检索中,可以极大程度提升经济型和效率。一般的应用包含以下几个部分:

典型应用流程

在这里插入图片描述

\1. 知识库构建阶段

  • 使用Embedding模型将文档转换为向量,存储向量到向量数据库(如FAISS、Milvus)

\2. 检索阶段

  • 用相同的Embedding模型将用户问题转换为向量,在向量数据库中快速检索相似文档

\3. 回答生成阶段

  • 将检索到的相关文档作为上下文,使用LLM生成最终答案
推荐的Embedding模型

Crew.ai 官方组件支持的 Embedding 模型有:

  • openai:OpenAI 的嵌入模型
  • google:Google 的文本嵌入模型
  • azure:Azure OpenAI 嵌入
  • ollama:使用 Ollama 进行局部嵌入
  • vertexai:Google Cloud VertexAI 嵌入
  • cohere:Cohere 的嵌入模型
  • 基岩版:AWS Bedrock 嵌入
  • huggingface: Hugging Face 模特
  • watson:IBM Watson 嵌入

接下来,我们看一下如何在本地安装 Ollama 提供的 embedding 模型。本案例选用的是 nomic-embed-text。

项目参考链接:https://ollama.com/search?c=embedding

在这里插入图片描述

先激活对应的工作环境。

source crewai-env/bin/activate

每次开始新的终端会话时,都需要重新激活虚拟环境。如果您看到命令提示符前面有 (crewai) 这样的标识,说明环境已经正确激活。

在这里插入图片描述

安装依赖

pip install crewai ollama

看到这个代表已经激活

在这里插入图片描述

启动 ollama

ollama serve

安装 embedding 模型

ollama pull nomic-embed-text

因为要配置给其他的服务用,所以需要解决 Ollama 的 embedding host获取问题。

要获取 Ollama 的 embedding host,有以下几种方法:

默认地址:

Ollama 默认运行在 http://localhost:11434。如果您是在本地机器上安装的 Ollama,通常不需要更改这个地址。

如果不确定是否这个端口,验证 Ollama 服务是否运行及其地址,可以按照这个方法执行。

# 检查 Ollama 服务状态curl http://localhost:11434/api/version

在这里插入图片描述

看到 11434 的监听结果,说明这个端口就是 ollama 的embedding 模型开放的端口。

到这一步,就代表着 ollama 的embedding 模型已经安装成功。可以对接给其他的应用和服务了。

AI大模型学习福利

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

大模型&AI产品经理如何学习

求大家的点赞和收藏,我花2万买的大模型学习资料免费共享给你们,来看看有哪些东西。

1.学习路线图

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己整理的大模型视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

在这里插入图片描述

在这里插入图片描述

(都打包成一块的了,不能一一展开,总共300多集)

因篇幅有限,仅展示部分资料,需要点击下方图片前往获取

3.技术文档和电子书

这里主要整理了大模型相关PDF书籍、行业报告、文档,有几百本,都是目前行业最新的。
在这里插入图片描述

4.LLM面试题和面经合集

这里主要整理了行业目前最新的大模型面试题和各种大厂offer面经合集。
在这里插入图片描述

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

在这里插入图片描述

<think>好的,用户想了解如何在LangChain中使用Ollama嵌入模型,需要教程和示例。首先,我需要回忆一下LangChain和Ollama的相关知识。Ollama是一个本地运行大型语言模型的工具,而LangChain是一个用于构建基于语言模型的应用程序的框架。嵌入模型通常用于将文本转换为向量表示,以便进行相似性比较或其他机器学习任务。 接下来,用户的问题涉及到如何在LangChain中集成Ollama的嵌入模型。我应该先确认Ollama是否支持嵌入模型,比如是否有一些预训练模型可以用来生成嵌入。例如,Ollama可能提供类似于llama2或其他的模型,这些模型可能具备生成嵌入的功能。 然后,我需要考虑LangChain中嵌入模型的使用方式。通常,LangChain提供了Embeddings类,用户需要指定嵌入模型的名称或路径。使用Ollama可能需要通过Ollama类来调用模型,因此可能需要安装相应的Python包,比如langchain_community中的Ollama集成。 接下来,我需要构造一个示例代码。首先,安装必要的库,比如`pip install langchain-community ollama`。然后,导入所需的模块,初始化Ollama服务,设置模型名称,比如'llama2:7b',并创建嵌入实例。之后,演示如何生成嵌入向量,比如使用embed_documents方法处理多个文本,或者使用embed_query处理单个查询。 还需要注意一些细节,比如确保Ollama服务已经启动,模型已经下载(通过`ollama pull llama2:7b`)。此外,可能需要处理不同模型之间的差异,比如嵌入向量的长度是否一致,或者是否需要调整参数。 用户可能遇到的问题包括安装依赖、模型下载、嵌入生成错误等,应该在回答中提及这些可能的注意事项。例如,提醒用户检查模型是否可用,服务是否运行,以及如何处理嵌入生成过程中的异常。 最后,生成相关问题,帮助用户进一步探索,比如比较不同模型的效果,优化性能的方法,或者处理长文本的策略。这些问题应该嵌入模型的使用场景和优化相关,符合用户可能的需求。 总结一下,回答的结构应该是:先介绍步骤,包括安装、导入、初始化、生成嵌入,然后给出示例代码,接着说明注意事项,最后提供相关问题。确保代码格式正确,使用中文解释每个步骤,并引用相关的参考资料,比如Ollama模型下载命令。</think>### LangChain中使用Ollama嵌入模型教程 #### 1. 环境准备 首先确保已安装Ollama并下载所需模型(例如`llama2:7b`): ```bash ollama pull llama2:7b # 下载模型[^1] pip install langchain-community ollama # 安装依赖库 ``` #### 2. 初始化嵌入模型 在Python脚本中引入Ollama嵌入模块: ```python from langchain_community.embeddings import OllamaEmbeddings # 初始化嵌入模型(确保Ollama服务已启动) embeddings = OllamaEmbeddings(model="llama2:7b") ``` #### 3. 生成文本嵌入 通过`embed_documents`方法批量处理文本: ```python texts = ["机器学习", "自然语言处理"] doc_embeddings = embeddings.embed_documents(texts) print(f"嵌入向量维度:{len(doc_embeddings[0])}") # 输出示例:嵌入向量维度:4096 ``` 通过`embed_query`处理单个查询: ```python query_embedding = embeddings.embed_query("深度学习") ``` #### 4. 集成到LangChain流程 可将嵌入模型向量数据库结合使用: ```python from langchain_community.vectorstores import FAISS # 创建向量存储 vector_store = FAISS.from_texts(texts, embeddings) ``` #### 注意事项 1. 本地服务验证:执行`ollama serve`确保服务运行在`http://localhost:11434` 2. 模型兼容性:不同模型的输出维度可能不同(如`llama2:7b`输出4096维) 3. 性能优化:通过`temperature`等参数调整生成效果: ```python embeddings = OllamaEmbeddings(model="llama2:7b", temperature=0.3) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值