DeepSeek介绍及使用ollama本地化部署DeepSeek-R1大模型

DeepSeek

中文名深度求索人工智能基础技术研究有限公司(简称“深度求索”或“DeepSeek”),成立于2023年,是一家专注于实现AGI的中国公司。
在本月初推出 DeepSeek-R1后,该公司宣称其在执行数学、编码和自然语言推理等任务时“性能可与OpenAI的最新模型之一媲美”。

Ollama介绍

Ollama 是一个开源项目,它提供了一个框架和工具,用于在本地环境中运行、部署和管理大型语言模型(LLMs)。Ollama 旨在简化 LLMs 的使用,使得开发者和研究人员能够更容易地在自己的硬件上运行这些模型,而不需要依赖云服务或高性能计算资源。

Ollama安装

官网https://ollama.com/
https://www.chengpei.top/upload/ollama_web.png
点击download,选择对应操作系统下载安装即可。
安装完成后即可执行ollama相关命令进行大模型下载,已下载模型查看等操作
如:ollama list可以查看当前已下载模型,如果是刚安装完成这里是没有内容的
https://www.chengpei.top/upload/ollama_list.png

模型搜索安装

搜索模型地址:https://ollama.com/search
https://www.chengpei.top/upload/ollama_search.png
这里可以看到我们需要的deppseek-r1就在第一个,点进去可以看到有很多版本可以下载,这里的1.5b 7b 8b 671b等等中的“b”代表“billion”,也就是十亿。这些数字表示模型参数的数量。
比如:671b:代表模型含有约671亿个参数。如此大规模的参数数量使得模型具有极其强大的学习能力和表达能力,可以对海量数据中的复杂模式和规律进行深度学习和理解。不过,这类超大规模参数的模型对计算资源(如高性能的 GPU、大规模的内存等)和数据量的要求也非常高,训练和部署的难度与成本都显著增加。
这里我是本地电脑部署所以选用了8b这个版本,运行命令:ollama run deepseek-r1:8b安装模型
https://www.chengpei.top/upload/deepseek.png
模型大小4.9GB,下载需要一段时间,下载完成后会使用该模型新建一个会话,这里我们就可以和deepseek进行对话了。当然这里因为数据量以及电脑性能的关系,这个ai助手的智能程度当然是远远不及官网上的效果。

chatbox

以上我们和deepseek r1对话只能在控制台里,如果需要一个类似官网的可视化界面,这里可以下载一个软件chatbox,官网:https://chatboxai.app/zh
下载安装完成后,初次进去软件会进入一个向导界面
https://www.chengpei.top/upload/chatbox.png
这里点击使用自己的API key或本地模型,模型提供方选择OLLAMA API,模型选择deepseek r1:8b,保存后即可在对话框中进行对话

<think>好的,用户之前已经询问过如何使用LangChain搭建RAG系统,现在他想知道如何结合本地的Ollama部署的embedding模型nomic-embed-text和推理模型deepseek-r1:8b来构建RAG。我需要先回顾之前的回答,看看有没有需要调整的地方,确保这次回答在结构上一致,但针对本地模型进行调整。 首先,用户明确提到了使用Ollama本地部署的两个模型:nomic-embed-text作为embedding模型,deepseek-r1:8b作为推理模型。这意味着我需要指导用户如何将这些本地模型集成到LangChain的流程中,替换之前提到的HuggingFaceEmbeddings和OpenAI等云端服务。 接下来,我需要考虑Ollama在LangChain中的支持情况。记得LangChain有Ollama的集成,可以通过Ollama的本地服务来加载模型。所以可能需要使用langchain.llms.Ollama和langchain.embeddings.OllamaEmbeddings相关的模块。 然后,文档加载和处理的步骤应该和之前类似,比如使用PyPDFLoader或WebBaseLoader,这部分不需要改变。文本分割也是一样的,使用RecursiveCharacterTextSplitter,所以这部分可以保持原样。 在向量化与存储部分,之前用的是HuggingFaceEmbeddings,现在需要替换为Ollama提供的nomic-embed-text模型。需要确认Ollama是否支持这个模型,以及如何正确调用。可能需要使用OllamaEmbeddings并指定模型名称。 对于推理模型,之前用的是OpenAI,现在要替换为本地Ollamadeepseek-r1:8b。这里需要使用Ollama类来初始化模型,并确保模型名称正确,同时可能需要调整参数,比如temperature等。 另外,用户可能是在本地环境运行,需要确保Ollama服务已经正确安装并运行,并且所需的模型已经下载到本地。可能需要提醒用户先通过ollama pull来获取模型。 还要注意代码示例的正确性,比如导入语句是否正确,参数是否匹配。例如,使用OllamaEmbeddings时,可能需要传递base_url参数,如果Ollama服务不在默认的端口上。 另外,用户可能需要了解如何启动Ollama服务,或者是否需要额外的配置步骤。但根据之前的问题,用户可能已经部署好了,所以重点放在如何在LangChain中使用这些模型。 最后,优化策略和应用场景部分可能需要调整,以反映使用本地模型的优势,比如数据隐私、离线使用等,以及可能的性能考虑,比如响应时间和硬件需求。 需要检查是否有潜在的误区,例如模型名称是否正确,Ollama的模型库中是否真的有nomic-embed-text和deepseek-r1:8b,或者是否有拼写错误。例如,deepseek-r1是否正确的模型名称,或者是否应为deepseek-r1-8b?需要确认。 总结步骤应该是: 1. 确认Ollama服务运行,模型已下载。 2. 文档加载和分割(同之前)。 3. 使用OllamaEmbeddings加载nomic-embed-text生成向量,存储到FAISS。 4. 配置检索器。 5. 使用Ollamadeepseek-r1:8b作为LLM,构建RAG链。 需要确保代码示例中正确引用了这些模型,并给出必要的参数,比如base_url如果Ollama服务在非默认位置的话。例如,如果Ollama在本地localhost:11434,可能不需要特别指定,但如果有自定义配置则需要。 可能还需要提醒用户安装必要的依赖,如langchain-community,ollama等,如果之前的回答中没有提到的话。 最后,需要测试代码是否可行,是否存在常见的错误,比如模型名称错误、服务未启动等,并在回答中给出相应的提示或解决方案。</think>以下是基于本地Ollama部署的 **nomic-embed-text**(Embedding模型)与 **deepseek-r1:8b**(推理模型)搭建RAG系统的分步指南,重点说明本地模型集成方法: --- ### 前置条件 1. **Ollama已安装**:确保本地已部署Ollama服务([安装文档](https://ollama.ai/)) 2. **模型下载**: ```bash ollama pull nomic-embed-text # 下载Embedding模型 ollama pull deepseek-r1:8b # 下载推理模型 ``` --- ### 分步实现代码 #### 1. 初始化本地模型 ```python from langchain_community.embeddings import OllamaEmbeddings from langchain_community.llms import Ollama # 初始化Embedding模型(nomic-embed-text) embeddings = OllamaEmbeddings( model="nomic-embed-text", # Ollama中注册的模型名称 base_url="http://localhost:11434" # Ollama服务地址 ) # 初始化推理模型(deepseek-r1:8b) llm = Ollama( model="deepseek-r1:8b", temperature=0.3, # 控制生成随机性(0-1,值越小越确定) num_ctx=4096 # 上下文窗口大小 ) ``` #### 2. 文档处理与向量化(与云端流程相同) ```python from langchain_community.document_loaders import PyPDFLoader from langchain_text_splitters import RecursiveCharacterTextSplitter # 加载PDF文档 loader = PyPDFLoader("论文.pdf") documents = loader.load() # 文本分块 text_splitter = RecursiveCharacterTextSplitter( chunk_size=500, chunk_overlap=50 ) splits = text_splitter.split_documents(documents) # 向量存储(使用FAISS) from langchain_community.vectorstores import FAISS vectorstore = FAISS.from_documents(splits, embeddings) ``` #### 3. 构建RAG链 ```python from langchain.chains import RetrievalQA # 创建检索器 retriever = vectorstore.as_retriever(search_kwargs={"k": 3}) # 组装RAG链 rag_chain = RetrievalQA.from_chain_type( llm=llm, chain_type="stuff", retriever=retriever, return_source_documents=True # 返回参考文档 ) ``` --- ### 关键优化技巧 1. **Embedding模型适配**: - Nomic-embed-text支持**8192 tokens长上下文**,可适当增大`chunk_size` - 若需更高精度,尝试调整`model_kwargs={"device": "cuda"}`(需GPU支持) 2. **推理模型调优**: ```python llm = Ollama( model="deepseek-r1:8b", temperature=0.3, # 降低生成随机性 top_p=0.9, # 控制生成多样性 stop=["<|endoftext|>"] # 添加停止符 ) ``` 3. **性能监控**: ```python # 测试响应速度 import time start = time.time() response = rag_chain.invoke("量子计算的核心优势是什么?") print(f"响应时间: {time.time()-start:.2f}s") ``` --- ### 常见问题解决 | 问题现象 | 解决方案 | |-------------------------|----------------------------------| | `ConnectionError` | 检查Ollama服务是否启动:`ollama serve` | | `Model not found` | 确认模型名称拼写,重新执行`ollama pull` | | 响应速度慢 | 减少`chunk_size`或升级硬件配置 | | 生成内容不相关 | 调整`search_kwargs={"k": 5}`增加检索量 | --- ### 本地部署优势 1. **数据隐私**:所有计算在本地完成,避免敏感数据外传 2. **定制化**:支持自定义微调模型(需使用Ollama Modelfile) 3. **离线运行**:无需互联网连接即可提供服务 通过这种方案,您可以完全基于本地环境构建安全可控的RAG系统,适合企业内网、科研机构等对数据隐私要求高的场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值