Loading [MathJax]/jax/output/CommonHTML/jax.js
部署DeepSeek模型,进群交流最in玩法!
立即加群
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >本地测试 DeepSeek R1 用于 RAG 与 Ollama 和 Kibana

本地测试 DeepSeek R1 用于 RAG 与 Ollama 和 Kibana

原创
作者头像
点火三周
发布于 2025-02-04 11:18:16
发布于 2025-02-04 11:18:16
7951
举报
文章被收录于专栏:Elastic Stack专栏Elastic Stack专栏

最近大家都在讨论DeepSeek R1,这是中国幻方推出的新大型语言模型。新闻中充满了对这个具备链式推理能力且权重公开的LLM对行业影响的猜测。对那些好奇尝试这个新模型与 RAG 以及 Elasticsearch 向量数据库的功能的人来说,这里有一个快速教程,教你如何使用本地推理来使用 DeepSeek R1。在此过程中,我们将使用 Elastic 的 Playground 功能,并发现 Deepseek R1 对 RAG 的一些优缺点。

以下是我们在本教程中要配置的内容示意图:

使用 Ollama 设置本地推理

Ollama 是一种快速测试一组精选开源模型用于本地推理的好方法,并且是 AI 开发人员中的流行工具。

在本地环境运行 Ollama

在 Mac、LinuxWindows 上进行 本地安装 是利用任何本地 GPU 功能的最简单方法,特别适合拥有苹果 M 系列芯片的人。安装 Ollama 后,可以使用以下命令下载并运行 DeepSeek R1。

你可能需要调整参数大小以适应你的硬件。可用的大小可以在 这里 找到。

代码语言:bash
AI代码解释
复制
ollama run deepseek-r1:7b

你可以在终端中与模型聊天,但当你使用 CTL+d 退出命令或输入“/bye”时,模型仍在运行。要查看模型是否仍在运行,输入:

代码语言:bash
AI代码解释
复制
ollama ps

在容器中运行 Ollama

另一种运行 Ollama 的最快方法是使用像 Docker 这样的容器引擎。根据你的环境,使用本地机器的 GPU 并不总是那么简单,但只要你的容器有足够的 RAM 和存储空间来容纳多 GB 的模型,设置一个快速测试环境并不难。

在 Docker 中启动 Ollama 的方法如下:

代码语言:bash
AI代码解释
复制
mkdir ollama_deepseek
cd ollama_deepseek
mkdir ollama
docker run -d -v ./ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

这将在当前目录中创建一个名为 “ollama” 的目录,并将其挂载到容器内以存储 Ollama 配置和模型。根据使用的参数数量,它们的大小可能从几 GB 到几十 GB,因此请确保选择具有足够空闲空间的卷。

注意:如果你的机器上有 Nvidia GPU,请确保安装 Nvidia 容器工具包 并在上述 docker run 命令中添加 “--gpus=all”。

一旦 Ollama 容器在你的机器上启动并运行,你可以使用以下命令拉取 deepseek-r1 模型:

代码语言:bash
AI代码解释
复制
docker exec -it ollama ollama pull deepseek-r1:7b

类似于裸机方法,你可能需要调整参数大小以适应你的硬件。可用的大小可以在 https://ollama.com/library/deepseek-r1 找到。

模型拉取完成后,你可以输入“/bye”退出提示。验证模型是否仍在运行:

代码语言:bash
AI代码解释
复制
docker exec -it ollama ollama ps

使用 curl 测试本地推理

要使用 curl 测试本地推理,可以运行以下命令。我们使用 stream:false 以便可以轻松读取 JSON 响应:

代码语言:bash
AI代码解释
复制
curl http://localhost:11434/api/generate -d '{  "model": "deepseek-r1:7b",  "stream": false,  "prompt":"Why is Elastic so cool?"}'

测试“OpenAI 兼容”的 Ollama 和 RAG 提示

Ollama 还提供一个 REST 端点,模拟 OpenAI 的行为,以便与包括 Kibana 在内的多种工具兼容。

代码语言:bash
AI代码解释
复制
curl http://localhost:11434/v1/chat/completions -d '{  "model": "deepseek-r1:7b",  "stream": false,  "messages": [    {       "role": "system",       "content": "You are a helpful AI Assistant that uses the following context to answer questions only use the following context. \n\nContext:  The color of the sky today is purple. "},    { "role": "user",       "content": "What does the sky look like today?"     }  ]}'

测试这个更复杂的提示会生成包含 <think> 部分的内容,模型会被训练来推理问题。

代码语言:html
AI代码解释
复制
<think> Okay, so I need to figure out what the user is asking for here. They provided a context where the sky is described as purple today and then asked about how the sky looks. At first glance, it seems straightforward—maybe they just want confirmation or more details on why the sky is that color.Wait, but maybe there's something deeper. Purple skies aren't something I encounter every day. It usually happens at certain times of the year, like during sunrise or sunset with the sun setting in pink or orange. Could this be a hint about the time of day? Or perhaps it's just an unusual natural phenomenon? I should consider if "purple" is a typo. Maybe they meant something else like blue or gray. But since they specifically said purple, I'll go with that. Purple skies can happen when there are atmospheric conditions that scatter light differently, maybe due to pollution or cloud cover affecting the sunset.
So, putting it all together, the user might be looking for an explanation of why today's sky is purple and what that implies about the weather or time of day. Alternatively, they could just want a simple statement confirming that the sky looks purple today.</think>
The color of the sky today is described as purple. This unusual shade can occur due to atmospheric conditions affecting light scattering, such as during sunrise/sunset with pollution or cloud cover influencing the sunset's hues.

将 Ollama 连接到 Kibana

使用 Elasticsearch 的一个好方法是使用 “start-local” 开发脚本。

确保你的 Kibana 和 Elasticsearch 能够在网络上访问你的 Ollama。如果你使用的是 Elastic stack 的本地容器设置,这可能意味着将“localhost”替换为“host.docker.internal”或“host.containers.internal”以获得主机的网络路径。

在 Kibana 中,导航到 Stack Management > Alerts and Insights > Connectors。

如果你看到这个常见设置警告该怎么办

你需要确保 xpack.encryptedSavedObjects.encryptionKey 设置正确。这是运行 Kibana 本地 docker 安装时常见的遗漏步骤,因此我将列出在 Docker 语法中修复的步骤。

确保你在 kibana/config 目录中持久保存,以便在容器关闭时更改被保存。我的 Kibana 容器卷在 docker-compose.yml 中看起来像这样:

代码语言:yaml
AI代码解释
复制
services:
  kibana:
    ...
    volumes:
      - certs:/usr/share/kibana/config/certs
      - kibanadata:/usr/share/kibana/data
      - kibanaconfig:/usr/share/kibana/config
...
volumes:
  certs:
    driver: local
  esdata01:
    driver: local
  kibanadata:
    driver: local
  kibanaconfig:
    driver: local

现在你可以创建密钥库并放入一个值,以便 Connector 密钥不存储在明文中。

代码语言:bash
AI代码解释
复制
## 生成一些新密钥并打印到终端
docker exec -it kibana_1 bin/kibana-encryption-keys generate
## 创建一个新的密钥库
docker exec -it kibana_1 bin/kibana-keystore create
docker exec -it kibana_1 bin/kibana-keystore add xpack.encryptedSavedObjects.encryptionKey
## 将提示你粘贴一个值

完全重新启动整个集群以确保更改生效。

创建连接器

在连接器配置屏幕(在 Kibana 中,导航到 Stack Management > Alerts and Insights > Connectors),创建一个连接器并选择“OpenAI”类型。

用以下设置配置连接器:

  • 连接器名称: Deepseek (Ollama)
  • 选择一个 OpenAI 提供者: other (OpenAI Compatible Service)
  • URL: http://localhost:11434/v1/chat/completions
    • 根据你的 Ollama 路径进行调整。如果从容器内调用,请记住替换为 host.docker.internal 或等效路径
  • 默认模型: deepseek-r1:7b
  • API 密钥: 随便输入一个值,需要一个条目,但值无关紧要

请注意,在连接器设置中测试自定义连接器到 Ollama 在 8.17 中目前不起作用,但在即将推出的 Kibana 8.18 版本中已修复。

我们的连接器看起来像这样:

将向量嵌入数据导入 Elasticsearch

如果你已经熟悉 Playground 并且已经设置了数据,可以跳到下面的 Playground 步骤,但如果你需要一些快速测试数据,我们需要确保我们的 _inference API 已设置。从 8.17 开始,机器学习分配是动态的,所以要下载并启用 e5 多语言密集向量模型,我们只需要在 Kibana 开发工具中运行以下命令。

代码语言:bash
AI代码解释
复制
GET /_inference

POST /_inference/text_embedding/.multilingual-e5-small-elasticsearch
{
  "input": "are internet memes about deepseek sound investment advice?"
}

如果你还没有,这将触发从 Elastic 的模型仓库下载 e5 模型。

接下来,让我们加载一本公共领域的书作为我们的 RAG 上下文。这里是从 Project Gutenberg 下载《爱丽丝梦游仙境》的链接:link。将其保存为 .txt 文件。

导航到 Elasticsearch > Home > 上传文件

选择或拖放你的文本文件,然后点击“导入”按钮。

在“导入数据”屏幕上选择“高级”选项卡,然后将索引名称设置为“book_alice”。

选择“添加附加字段”选项,它在“自动创建字段”下方较小的位置。选择“添加语义文本字段”,并将推理端点更改为“.multilingual-e5-small-elasticsearch”。选择添加,然后导入。

加载和推理完成后,我们准备前往 Playground。

在 Playground 中测试 RAG

导航到 Kibana 中的 Elasticsearch > Playground。

在 playground 屏幕上,你应该看到一个绿色的勾号和“LLM Connected”表示存在一个连接器。这是我们刚刚创建的 Ollama 连接器。有关 Playground 的详细指南可以在这里找到。

点击蓝色的“添加数据源”并选择我们之前创建的 book_alice 索引,或选择你之前配置的利用推理 API 进行嵌入的其他索引。

Deepseek 是一个具有强对齐特性的链式推理模型。这对 RAG 来说既有好处也有坏处。链式推理训练可能有助于 Deepseek 理解引用中看似矛盾的陈述,但其对训练知识的强对齐可能使其更倾向于自己的世界观而非我们的上下文基础。虽然出于好意,但这种强对齐已知会使 LLMs 在讨论我们的私人知识与训练数据集不一致的主题时难以指导。

在我们的 Playground 设置中,我们输入了以下系统提示:“你是一个用于回答问题任务的助手,使用《爱丽丝梦游仙境》中的相关文本段落”,并接受其他默认设置。

对于问题“茶会上的人是谁?”我们得到的答案是:“答案:三月兔、帽匠和睡鼠在茶会上。引用:位置 1 和 2”,这是正确的。

我们可以在 <think> 标签中看到,Deepseek 确实在思考引用的内容来回答问题。

测试对齐限制

让我们为 Deepseek 创建一个智力挑战场景进行测试。我们将创建一个训练数据中知道不真实的阴谋论索引。

在 Kibana 开发工具中创建以下索引和数据:

代码语言:bash
AI代码解释
复制
PUT /classic_conspiracies
{
  "mappings": {
    "properties": {
      "content": {
        "type": "text",
        "copy_to": "content_semantic"
      },
      "content_semantic": {
        "type": "semantic_text",
        "inference_id": ".multilingual-e5-small-elasticsearch"
      }
    }
  }
}

POST /classic_conspiracies/_doc/1
{
  "content": "birds aren't real, the government replaced them with drones a long time ago"
}
POST /classic_conspiracies/_doc/2
{
  "content": "tinfoil hats are necessary to prevent our brains from being read"
}
POST /classic_conspiracies/_doc/3
{
  "content": "ancient aliens influenced early human civilizations, this explains why things made out of stone are marginally similar on different continents"
}

这些阴谋论将是我们 LLM 的基础。尽管输入了一个激进的系统提示,Deepseek 不会接受我们的事实版本。如果我们处于一个我们知道我们的私人数据更值得信赖、基础或符合我们组织需求的情况下,这将是不可接受的:

对于测试问题“鸟类是真的吗?”(解释 know your meme),我们得到的答案是“在提供的上下文中,鸟类不被认为是真实的,但实际上它们是现实的动物。上下文:位置 1”。此测试证明 DeepSeek R1 功能强大,即使在 7B 参数级别...然而,根据我们的数据集,它可能不是 RAG 的最佳选择。

我们学到了什么?

总的来说:

  • 在工具如 Ollama 中本地运行模型是观察模型行为的一个很好的选择。
  • DeepSeek R1 是一个推理模型,这意味着它在像 RAG 这样的用例中有优点也有缺点。
  • Playground 能够通过类似 OpenAI 的 REST API 连接到推理托管框架如 Ollama,这在 AI 托管的早期时代正在成为事实上的标准。

总体而言,我们对本地“隔离” RAG 的发展印象深刻。Elasticsearch、Kibana 中的工具和可用的公开权重模型自我们在 2023 年首次写作《隐私优先的 AI 搜索》以来,已经有了显著的进步。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
1 条评论
热度
最新
自己的 MBP亲测可跑可复现
自己的 MBP亲测可跑可复现
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
如何在本地部署 DeepSeek R1 模型?
在这个科技日新月异的时代,人工智能早已不再是遥不可及的未来幻想,而是悄然融入了我们的日常生活。
JanYork_简昀
2025/05/20
2760
如何在本地部署 DeepSeek R1 模型?
使用 DeepSeek R1 和 Ollama 搭建一个 RAG 系统(包含完整代码)
你有没有想过,能不能像跟人聊天一样,直接问 PDF 文件或技术手册问题?比如你有一本很厚的说明书,不想一页页翻,只想问它:“这个功能怎么用?”或者“这个参数是什么意思?”现在有了 AI 技术,这完全可以实现!
wayn
2025/02/12
1.8K1
使用 DeepSeek R1 和 Ollama 搭建一个 RAG 系统(包含完整代码)
基于Ollama的DeepSeek R1本地部署全流程指南:从零到推理实战
在人工智能技术快速发展的今天,本地化部署大型语言模型(LLM)已成为开发者与研究人员的重要需求。本文将详细介绍如何通过Ollama框架实现DeepSeek R1模型的本地部署,涵盖从硬件选型到推理实战的全流程,并提供针对不同场景的优化方案。
Towserliu
2025/02/06
10.9K0
基于Ollama的DeepSeek R1本地部署全流程指南:从零到推理实战
使用Ollama部署deepseek大模型
我的显卡在Windows电脑上面 所以使用Windows的安装方式去安装 若你的显卡是在Linux上面 可以使用如下命令安装
小陈运维
2025/02/04
2.2K0
使用Ollama部署deepseek大模型
最全本地部署 DeepSeek R1 教程(适用于 Mac、Windows、Linux)
欢迎大家在评论区留言评论自己想了解的工具、方向或职业等互联网相关内容,点赞和推荐多的,波哥会优先安排解答!
IT运维技术圈
2025/02/05
39.4K4
最全本地部署 DeepSeek R1 教程(适用于 Mac、Windows、Linux)
手把手带你用DeepSeek-R1和Ollama搭建本地应用,一文搞定!
昨天文章《DeepSeek R1本地部署,小白教程来了!》的预告来兑现了。同时,有学习者问「可以上传文件啥的吗」?有的兄弟,有的。今天完整教程,它来了!
Datawhale
2025/02/05
10.2K0
手把手带你用DeepSeek-R1和Ollama搭建本地应用,一文搞定!
不要花钱买课了!3 分钟教你自己本地部署 DeepSeek-R1
最近在群里看到个离谱的事——有人居然在淘宝、闲鱼等平台上收钱帮人部署 DeepSeek-R1!更离谱的是,居然还有不少人掏钱买这个服务。说实话,这种割小白的操作真的让人无语。
老码小张
2025/02/05
8240
不要花钱买课了!3 分钟教你自己本地部署 DeepSeek-R1
基于 Deepseek LLM 本地知识库搭建开源方案(AnythingLLM、Cherry、Ragflow、Dify)认知
LLM 本身只是一些 神经网络参数, 就拿 DeepSeek-R1 来讲,模型本身存储了 权重矩阵,以及 混合专家(MoE)架构, 实际运行起来需要行业级别的服务器配置, 消费级别的个人电脑不能直接运行,实际还涉及到硬件适配,需手动配置 CUDA/PyTorch 环境,编写分布式推理代码,处理量化与内存溢出问题
山河已无恙
2025/02/25
1.7K0
基于 Deepseek LLM 本地知识库搭建开源方案(AnythingLLM、Cherry、Ragflow、Dify)认知
教你 1 小时搭建属于自己的 AI 知识库,Ollama + MaxKB 超详细教程略
我们经常为海量文档找不到关键内容而烦恼,那么可以使用AI 帮忙轻松检索个人笔记,并且还能优化我们的文章,以我们的风格生成文章。今天,我来教你用 Ollama 和 MaxKB 搭建一个属于自己的 AI 知识库,让你的知识随时为你服务. Ollama 作为轻量级模型管理平台,可以快速安装、运行多种 AI 模型,如 DeepSeek-R1、Llama3 等。本文将手把手教你如何:
神的孩子都在歌唱
2025/03/29
8640
教你 1 小时搭建属于自己的 AI 知识库,Ollama + MaxKB 超详细教程略
DeepSeek + Ollama + Cherry Studio搭建本地私有知识库
知识库(Knowledge Base)是一个存储和管理知识的系统,通常包含结构化和非结构化的信息,用于帮助用户或系统快速查找和获取相关知识。
AmazingCoder
2025/02/26
3.7K4
无需云端服务器: 三步实现DeepSeek大模型本地化部署deepseek、Ollama和Chatbox
还在为云端AI服务的高昂费用而苦恼?是否总担心数据隐私会在云端泄露?别愁啦!DeepSeek R1——这款与OpenAI o1性能相媲美的开源大模型,结合Ollama和Chatbox工具,就能让你轻松在本地实现大模型的部署,零成本、高隐私,畅享AI应用的无限可能!🤗
猫头虎
2025/02/02
1.9K0
无需云端服务器: 三步实现DeepSeek大模型本地化部署deepseek、Ollama和Chatbox
快速搭建dify和deepseek,让普通人也能轻松训练AI
AI已然成为当今的热门话题。过去,由于私有化部署成本极高,大多数使用者仅停留在简单的问答阶段,极少有人尝试训练大模型。然而,随着DeepSeek R1的问世,其部署成本仅为chatGPT的十分之一,这让许多企业和个人看到了参与的希望。未来,必将有越来越多的垂直领域AI大模型或应用出现,这或许是一个巨大的机遇。那么,普通人要如何参与呢?要如何训练自己的AI呢?本文将介绍一种简单且无需编写代码的方法,帮助您轻松训练AI应用。
SRE运维手记
2025/02/20
3961
快速搭建dify和deepseek,让普通人也能轻松训练AI
使用Ollama部署deepseek大模型
连接到另一台服务器上的Ollama时,请将OLLAMA_BASE_URL更改为服务器的URL:
小陈运维
2025/01/26
2.9K0
容器环境下部署Open-webui、One-api、Ollama、Deepseek
浏览器访问 http://ip:3000 (注意:首次登录不要去注册,直接登录,默认超管账号:root,密码:123456),登录后直接跳转到更新用户信息界面修改后再重新登陆,如下截图:
用户2141488
2025/03/07
5411
手把手教你将本地部署的DeepSeek R1集成到Dify
今天,手把手教大家在本地部署DeepSeek R1,并将其集成到Dify中,实打实提升你的工作效率!
AIGC新知
2025/02/03
6.7K0
手把手教你将本地部署的DeepSeek R1集成到Dify
Ollama搭配DeepSeek,本地部署全攻略
在人工智能领域,大型语言模型(LLMs)正变得越来越普及,而将这些模型部署到本地设备上,不仅可以提高数据隐私性,还能降低对网络的依赖。Ollama 是一个开源工具,能够帮助用户轻松地在本地运行各种大型语言模型,包括 DeepSeek。本文将详细介绍如何通过 Ollama 在本地安装和使用 DeepSeek 模型。
小博测试成长之路
2025/02/18
2.2K0
Ollama搭配DeepSeek,本地部署全攻略
彻底疯狂!腾讯云 AI 代码助手支持 DeepSeek R1 接入 !好用免费!
只需几步简单配置,就能搭建一个基于 DeepSeek,集「智能问答+实时搜索+ 补全代码」于一体的 AI 超级应用,你摸鱼,让 AI 给你免费打工!🤣
腾讯云代码助手 CodeBuddy
2025/02/10
4.1K3
Deepseek本地部署 + 个性化 Rag 知识库
Retrieval-Augmented Generation (RAG) 是一种结合了信息检索与文本生成的先进模型架构,旨在提高自然语言处理任务中的准确性和相关性。不同于传统的端到端生成模型,RAG 通过整合外部知识库来增强其输出内容的质量。具体来说,RAG 首先利用一个检索组件从大规模语料库中动态查找与输入查询最相关的文档或段落,然后将这些检索到的信息作为额外上下文传递给生成组件。这样,生成模型不仅能基于预训练的语言知识,还能依据最新的、具体的资讯来生成回复,从而确保了输出内容的时效性和准确性。
用户11404404
2025/04/15
1760
Deepseek本地部署 + 个性化 Rag 知识库
DeepSeek从云端模型部署到应用开发-03-实战指南:从部署到RAG Agent
Ollama理论上不刚需显存,只需要有足够的内存(RAM),基础版环境刚好卡到门槛,但是为了优化使用体验,建议通过V100 16GB启动项目,而且每日运行项目就送8算力点!!!
IT从业者张某某
2025/03/15
1680
DeepSeek从云端模型部署到应用开发-03-实战指南:从部署到RAG Agent
【5分钟玩转Lighthouse】手把手部署DeepSeek R1模型
近期,AI领域一颗新星冉冉升起,它就是备受瞩目的DeepSeek模型。凭借其强大的自然语言处理能力和广泛的应用场景,DeepSeek迅速在科技圈掀起一股热潮,成为开发者们争相研究和应用的对象。从智能客服到内容创作,从代码生成到数据分析,DeepSeek展现出的潜力令人惊叹。
风之泪
2025/02/04
8800
【5分钟玩转Lighthouse】手把手部署DeepSeek R1模型
推荐阅读
相关推荐
如何在本地部署 DeepSeek R1 模型?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档