在本地运行 DeepSeek-R1 并构建 RAG 应用程序!
带有 DeepSeek-R1、LangChain 和 SingleStore 的 RAG 应用程序
DeepSeek-R1 在人工智能社区引起了不小的轰动。该模型由中国人工智能公司 DeepSeek 开发,目前正在与 OpenAI 的顶级模型进行比拼。DeepSeek-R1 之所以如此受欢迎,不仅在于其强大的功能,还在于其开源特性,任何人都可以下载并在本地运行。在本篇博文中,我将指导您使用 Ollama 在您的设备上设置 DeepSeek-R1。
为什么选择 DeepSeek-R1?
DeepSeek-R1 脱颖而出有几个原因。它不仅比许多其他模型更便宜,而且在问题解决、推理和编码方面也表现出色。其内置的思维链推理提高了效率,使其成为其他模型的有力竞争者。让我们深入了解如何在本地系统上运行此模型。
Ollama 入门
在开始之前,我们先来讨论一下 Ollama。Ollama 是一款免费的开源工具,允许用户在本地运行自然语言处理模型。使用 Ollama,您可以轻松下载并运行 DeepSeek-R1 模型。
您可以按照以下方式开始:
步骤1:安装Ollama
首先,你需要下载并安装 Ollama 。访问 Ollama 网站并下载与你的操作系统匹配的版本。 按照网站上提供的安装说明进行操作。
第 2 步:下载 DeepSeek-R1
正如你所见,当你访问 Ollama 网站时,你可以运行 DeepSeek-R1 的不同参数。你可以 在这里 找到要求的详细信息(如上图所示)。
您可以运行 1.5b、7b、8b、14b、32b、70b、671b,显然,随着参数的增大,硬件要求也会随之增加。我在本教程中使用的是 7b 版本。
安装 Ollama 后,打开终端并输入以下命令下载 DeepSeek-R1 模型:
ollama run deepseek-r1
Enter fullscreen mode
Exit fullscreen mode
此命令指示 Ollama 下载模型。根据您的网速,下载可能需要一些时间。下载过程中可以喝杯咖啡!
步骤 3:验证安装
下载后,运行以下命令验证安装:
ollama list
Enter fullscreen mode
Exit fullscreen mode
您应该会在可用模型列表中看到 deepseek-r1。如果看到了,那就太棒了!您已准备好运行该模型。
步骤4:运行DeepSeek-R1
现在,让我们使用以下命令启动模型:
ollama run deepseek-r1
Enter fullscreen mode
Exit fullscreen mode
就这样,你就可以在本地与 DeepSeek-R1 进行交互了。就这么简单!
第五步:提出疑问
通过模型进行思路链推理。
该模型在编码任务上也表现出色。我们也来验证一下这种方法。
上述代码相关查询的详细答案。
下面是使用 DeepSeek-R1 处理不同用例的完整分步视频。
VIDEO
我对 DeepSeek-R1 的第一印象简直令人震惊:)
按照本指南,您已成功使用 Ollama 在本地计算机上设置 DeepSeek-R1。此设置提供了强大的 AI 集成解决方案,确保应用程序的隐私性、速度和控制力。欢迎您试用 DeepSeek-R1,探索本地 AI 模型的潜力。顺便说一句,为您的 AI/ML 应用程序配备一个强大的数据库至关重要。我建议使用像SingleStore 这样的一体化数据平台 。
让我们使用 DeepSeek 和 SingleStore 构建一个 RAG 应用程序
如果您想扩展学习并构建一个简单的 RAG 应用程序,您可以按照本教程进行操作。
我们将从 NVIDIA NIM 微服务中设置 DeepSeek API 密钥(是的,我会演示如何设置)。NVIDIA NIM(推理微服务)是一组微服务,可帮助跨云、数据中心和工作站部署 AI 模型。我们将使用 LangChain 作为我们的 LLM 框架来绑定所有内容。我们将使用 SingleStore 作为我们的矢量数据库。
让我们开始吧(跟随)
1. 先决条件 [全部免费]
首先,创建一个免费的 SingleStore 帐户。登录您的帐户,并为自己创建一个工作区和一个数据库。
创建工作区后,创建附加到该工作区的数据库。单击“创建数据库”,如仪表板屏幕截图所示,即可创建数据库。
太棒了!现在,我们创建了数据库来存储 RAG 应用程序的自定义文档。
下一步是创建一个笔记本。没错,一个免费的笔记本环境。SingleStore 有一个很酷的集成功能,你可以使用他们的笔记本(就像你的 Google Collab 一样)。
转到 Data Studio,然后创建一个新的 Notebook。
给你的笔记本命名
这就是你将要降落的地方。
确保从下拉菜单中选择您创建的工作区和数据库,如下所示。我的工作区名称是“pavappy-workspace-1”,我创建的数据库是“DeepSeek”。所以我选择了两者。
现在,我们已准备好编写 RAG 应用程序。请逐步将以下所有代码添加到新创建的笔记本中(请确保运行每个代码片段)。
从安装所有必需的库和依赖项开始。
!pip install langchain --quiet
!pip install pdf2image --quiet
!pip install pdfminer.six --quiet
!pip install singlestoredb --quiet
!pip install tiktoken --quiet
!pip install --upgrade unstructured==0.10.14 --quiet
!pip install -qU pypdf langchain_community
!pip install langchain-nvidia-ai-endpoints --quiet
!pip install langchain-deepseek-official --quiet
Enter fullscreen mode
Exit fullscreen mode
导入库
from langchain.document_loaders import PyPDFLoader
from langchain_nvidia_ai_endpoints import ChatNVIDIA
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.chains import RetrievalQA
from langchain.vectorstores import SingleStoreDB
import os
Enter fullscreen mode
Exit fullscreen mode
加载您的自定义文档 [我使用了公开的pdf,您可以替换并使用您自己的文档)
file_path = "https://unctad.org/system/files/official-document/wesp2023_en.pdf"
loader = PyPDFLoader(file_path)
data = loader.load()
Enter fullscreen mode
Exit fullscreen mode
将文档拆分成块
text_splitter = RecursiveCharacterTextSplitter(chunk_size=2000, chunk_overlap=0)
texts = text_splitter.split_documents(data)
Enter fullscreen mode
Exit fullscreen mode
设置 OpenAI 嵌入(用于矢量化)
os.environ["OPENAI_API_KEY"] = "Add your OpenAI API key"
embedding = OpenAIEmbeddings()
Enter fullscreen mode
Exit fullscreen mode
将嵌入存储在 SingleStore 中
docsearch = SingleStoreDB.from_documents(
texts,
embedding,
table_name="deepseek_rag", # Replace table name with any name
host="admin:password@host_url:3306/database_name", # Replace with your SingleStore connection
port=3306
)
Enter fullscreen mode
Exit fullscreen mode
在上面的代码中,admin 是常量,无需更改。您可以从访问选项卡获取密码,主机 URL 如下所示。转到“部署”选项卡,您应该会看到您的工作区,点击“连接”,然后会看到如下所示的下拉菜单。从那里选择“SQL IDE”,您将看到所有必需的详细信息。
接下来, 通过 NVIDIA NIM 初始化 DeepSeek。 从 NVIDIA NIM 微服务免费获取 DeepSeek-R1 API 密钥。点击 此处 获取。
client = ChatNVIDIA(
model="deepseek-ai/deepseek-r1",
api_key="Add your DeepSeek-R1 API key you received from NVIDIA NIM microservice", # Replace with your NVIDIA API key
temperature=0.7,
top_p=0.8,
max_tokens=4096
)
Enter fullscreen mode
Exit fullscreen mode
创建 RAG 链
qa_chain = RetrievalQA.from_chain_type(
llm=client,
chain_type="stuff",
retriever=docsearch.as_retriever(search_kwargs={"k": 3}),
return_source_documents=True
)
Enter fullscreen mode
Exit fullscreen mode
查询 RAG 系统
query = "What India's GDP growth is projected to be?"
result = qa_chain.invoke({"query": query})
Enter fullscreen mode
Exit fullscreen mode
显示结果
print("Answer:", result["result"])
print("\nSources:")
for doc in result["source_documents"]:
print(f"- Page {doc.metadata['page']}: {doc.page_content[:100]}...")
Enter fullscreen mode
Exit fullscreen mode
您应该会看到模型的良好响应:)
您可以检查数据库,了解数据是如何分块并以向量嵌入格式存储的。
这是您可以尝试的完整代码库:)
带有 DeepSeek-R1、LangChain 和 SingleStore 的 RAG 应用程序
我们将设置 NVIDIA 的 DeepSeek API 密钥,因为我们将使用 NVIDIA NIM 微服务。NVIDIA NIM(推理微服务)是一组微服务,可帮助跨云、数据中心和工作站部署 AI 模型。我们将使用 LangChain 作为我们的 LLM 框架来绑定所有内容。我们将使用 SingleStore 作为我们的矢量数据库。
先决条件
感谢您阅读我的文章。希望您尝试了整个教程。您也可以通过我的 YouTube 频道 关注我。我每周都会制作 AI/ML/数据相关的视频。
文章来源:https://dev.to/pavanbelagatti/run-deepseek-r1-locally-for-free-in-just-3-minutes-1e82