所有文章 > AI驱动 > 如何在本地运行 DeepSeek
如何在本地运行 DeepSeek

如何在本地运行 DeepSeek

DeepSeek-R1 在 AI 社区引起了不小的轰动。该模型由中国 AI 公司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

此命令告诉 Ollama 下载模型。根据您的互联网速度,这可能需要一些时间。等待下载完成,喝杯咖啡吧!

步骤 3:验证安装

下载后,运行以下命令验证安装:

ollama list

您应该会在可用模型列表中看到 deepseek-r1。如果看到了,那就太好了!您已准备好运行该模型。

步骤 4:运行 DeepSeek-R1

现在,让我们使用以下命令启动模型:

ollama run deepseek-r1

就这样,您就可以在本地与 DeepSeek-R1 进行交互。就这么简单!

第 5 步:提出疑问

通过模型进行思路链推理。

该模型在编码任务中也表现良好。让我们也检查一下这种方法。

上述代码相关查询的详细答案。

下面是使用 DeepSeek-R1 处理不同用例的完整分步视频。

我对 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和DeepSeek账户

首先要创建一个免费的 SingleStore 帐户。登录您的帐户并为自己创建一个工作区和一个数据库。

创建工作区后,创建附加到该工作区的数据库。单击仪表板屏幕截图中所示的创建数据库来创建数据库。

太棒了。现在,我们创建了数据库来存储 RAG 应用程序的自定义文档。

下一步是创建一个笔记本。是的,一个免费的笔记本环境。SingleStore 有一个很酷的集成功能,您可以在其中使用他们的笔记本 [就像您的 Google 协作一样]

转到 Data Studio,然后创建一个新的 Notebook。

给你的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

导入库

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

加载您的自定义文档[我使用了公开的pdf,您可以替换并使用自己的文档

file_path = "https://unctad.org/system/files/official-document/wesp2023_en.pdf"
loader = PyPDFLoader(file_path)
data = loader.load()

将文档拆分成块

text_splitter = RecursiveCharacterTextSplitter(chunk_size=2000, chunk_overlap=0)
texts = text_splitter.split_documents(data)

设置 OpenAI 嵌入(用于矢量化)

os.environ["OPENAI_API_KEY"] = "Add your OpenAI API key"
embedding = OpenAIEmbeddings()

将嵌入存储在 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
)

在上面的代码中,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
)

创建RAG链

qa_chain = RetrievalQA.from_chain_type(
llm=client,
chain_type="stuff",
retriever=docsearch.as_retriever(search_kwargs={"k": 3}),
return_source_documents=True
)

查询 RAG 系统

query = "What India's GDP growth is projected to be?"
result = qa_chain.invoke({"query": query})

显示结果

print("Answer:", result["result"])
print("\nSources:")
for doc in result["source_documents"]:
print(f"- Page {doc.metadata['page']}: {doc.page_content[:100]}...")

您应该会看到模型的良好响应:

您可以检查数据库以查看数据是如何分块并以向量嵌入格式存储的。

这是您可以尝试的完整代码库:
pavanbelagatti/ DeepSeek-R1-LangChain-SingleStore-Tutorial

#你可能也喜欢这些API文章!