LLMs之DeepSeek:仅需四个步骤的最简练实现DeepSeek-R1推理—基于Ollama框架实现本地部署并启用DeepSeek-R1实现推理图文教程

LLMs之DeepSeek:仅需四个步骤的最简练实现DeepSeek-R1推理—基于Ollama框架实现本地部署并启用DeepSeek-R1实现推理图文教程

目录

第一步、安装Ollama

LLM之Ollama:ollama的简介、安装和使用方法、案例应用之详细攻略

第二步、基于Ollama实现本地部署并启用DeepSeek-R1模型服务

(1)、进入官网,找到对应模型的下载命令

(2)、本地打开ollama,执行下载命令

查看模型默认下载路径

(3)、测试deepseek-r1模型

(4)、查看deepseek-r1模型的信息:基于qwen2模型架构进行Q4_K_M量化而来


第一步、安装Ollama

LLM之Ollama:ollama的简介、安装和使用方法、案例应用之详细攻略

LLM之Ollama:ollama的简介、安装和使用方法、案例应用之详细攻略_ollama中文说明书-CSDN博客

第二步、基于Ollama实现本地部署并启用DeepSeek-R1模型服务

(1)、进入官网,找到对应模型的下载命令

地址:Ollama

(2)、本地打开ollama,执行下载命令

ollama run deepseek-r1:1.5b

查看模型默认下载路径

(3)、测试deepseek-r1模型

ollama run deepseek-r1:1.5b
ollama list                           # 列出计算机上的模型
ollama ps                            # 列出当前加载的模型
ollama show llama3.2                  # 显示模型信息
ollama stop llama3.2                   # 停止当前正在运行的模型

(4)、查看deepseek-r1模型的信息:基于qwen2模型架构进行Q4_K_M量化而来

  Model
    architecture        qwen2
    parameters          1.8B
    context length      131072
    embedding length    1536
    quantization        Q4_K_M

<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
发出的红包

打赏作者

一个处女座的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值