杨培文

Yang Peiwen

DeepSeek R1 厉害在哪

我觉得最主要的点在于,它具备思维的能力,是一个有智商的模型。

不同于 ChatGPT 的 gpt-3.5、gpt-4、gpt-4o 等模型,根据你的问题输出结果,即使说错了,也在错误的道路上狂奔。

R1 是能够思考,能够提出猜想,验证猜想,逐渐思考出正确答案的一个 LLM。这使得它的逻辑思维能力达到了一个新的高度。它的能力类似于 OpenAI 的 o1 模型,但是 o1 没有输出思维链,R1 会输出它的思维链,也就是思考的过程,所以我认为 R1 是目前开源的最强模型。

为什么要自己部署

一般来说,大家部署 LLM 都有这些目的:

  • 探索,希望能够亲手试试最前沿的科技
  • 折腾,希望挑战自己,探索没做过的事情
  • 隐私,不希望自己的问答被发布到互联网上,成为 LLM 的燃料
  • 商业,公司不希望任何核心代码发布到互联网上,担心商业泄密
  • 稳定,目前 DeepSeek 的服务很不稳定,需要给自己留条后路

对我来说,每一点都是我的原因。

接下来让我们开始部署模型。

部署模型推理服务 Ollama

首先安装 Ollama

https://ollama.com/

Windows、Linux、Mac 都支持,M 系列的芯片、英伟达系列的显卡的支持也都很到位,直接下载下来安装即可。

然后下载模型

参考链接:https://ollama.com/library/deepseek-r1:32b

使用下面的命令下载模型:

1
2
3
ollama pull deepseek-r1:32b

# ollama pull deepseek-r1:70b

显存超过 40GB,可以考虑 部署 70b 的模型,否则建议使用 32b 的模型。

显存多少 GB 就部署大概多少 b 的模型,比如 24GB 部署 32b,16GB 部署 14b,8GB 部署 7b。如果出现 OOM,也就是爆显存了,就部署小一档的模型。

如果有大佬想部署 671b 的原版模型,建议配置是八卡 H200,能达到 3872 token/s,显存是141GB * 8 = 1128GB。参考链接:https://blogs.nvidia.com/blog/deepseek-r1-nim-microservice/

验证模型

1
2
3
4
ollama run deepseek-r1:32b

# 问它
1+1=多少

输出 1+1=2 就说明模型下载好了。

部署前端服务 Open WebUI

建议使用 Docker 部署,不需要配置环境,避免环境冲突的影响。

若希望使用 Python 部署,参考官方文档:https://docs.openwebui.com/#manual-installation

安装 Docker

直接在官网下载:

https://www.docker.com/

你可能需要配置

你可能需要配置这个:https://docs.docker.com/engine/cli/proxy/

使用 docker-compose 部署

首先将下面的文字保存为 docker-compose.yaml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
version: '3.8'

services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
ports:
- "3000:8080"
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
- ./data:/app/backend/data
environment:
- ENABLE_OPENAI_API=False
- ENABLE_RAG_WEB_SEARCH=True
- RAG_WEB_SEARCH_ENGINE="duckduckgo"
- RAG_WEB_SEARCH_RESULT_COUNT=3
- RAG_WEB_SEARCH_CONCURRENT_REQUESTS=10
restart: unless-stopped

在同级文件夹创建 data 目录,然后使用下面的命令启动:

1
docker-compose up

第一次启动需要较长时间,大概 2 分钟。启动成功之后是这样显示的:

其他常见命令:

1
2
3
docker pull ghcr.io/open-webui/open-webui:main  # 手动下载镜像
docker-compose up -d # 后台启动服务
docker rm -f open-webui # 删除正在运行的 open-webui

配置 Open WebUI

进入页面:http://localhost:3000/

第一次启动可以看到这个提示:

根据提示创建管理员账号:

然后就可以开始使用了:

网络搜索

首先我们主要在管理员面板开启联网搜索,选择 duckduckgo 搜索引擎:http://localhost:3000/admin/settings

然后记得点保存。参考文档:https://docs.openwebui.com/tutorials/web_search

最后我们在聊天框中打开联网搜索的功能:

即可看到结合了搜索结果的回答:

性能分析

如果你用的是 Mac 推理,可以使用 asitopiStat Menus 查看性能:

如果你使用的是 Windows 或者 Linux,用英伟达显卡推理,可以使用 nvitop 查看性能:

ChatGPT:全方位评测,揭示真实实力

过去的两天里,我一直在使用 ChatGPT。我对它的能力感到非常震撼,它能够快速理解人类语言并回应,让我们有机会体验到真正的人工智能会话。我不禁想知道,它能否取代程序员?

本文大纲如下:

  • 介绍 ChatGPT 的基本情况
  • 描述最近使用 ChatGPT 的经历,并展示完成的一些任务
    • Python
    • OpenCV
    • 深度学习
    • 工程能力
    • 人类思维
    • 绕过道德限制
  • 分析 ChatGPT 的不足之处
    • 人为修正的回答
    • 无法准确计算数学问题
  • 大家最关心的问题-超强人工智能对人类的威胁
  • 总结文章,对 ChatGPT 的未来发展提出展望
阅读全文 »

如何配置一台深度学习工作站?

这篇文章主要介绍的是家用的深度学习工作站,典型的配置有两种,分别是一个 GPU 的机器和 四个 GPU的机器。如果需要更多的 GPU 可以考虑配置两台四个 GPU 的机器。如果希望一台机器同时具备 6~8 个 GPU 需要联系专门的供应商进行配置,并且有专业的机房存放,放在家里噪声很大并且容易跳闸。

阅读全文 »

风格迁移是一个很有意思的任务,通过风格迁移可以使一张图片保持本身内容大致不变的情况下呈现出另外一张图片的风格。本文会介绍以下三种风格迁移方式以及对应的代码实现:

本文所使用的环境是 pytorch 0.4.0,如果你使用了其他的版本,稍作修改即可正确运行。

阅读全文 »

吐槽

因为没有在首发的时候抢到 iPhone X,又想早点拿到 iPhone X,等3~4周是不可能的,所以就只能从官网预约到 Apple Store 购买。而官网11月3日没有开放预约,于是就只能在11月4号预约。

一大早八点钟起来预约 iPhone X,懒得起床就在手机上直接预约。iPhone X 的火爆程度不出我的意料,八点整还能刷出来有货,预约的时候经过手机短信、身份证、选店铺等繁琐的流程以后,iPhone X 果然没货了。然而在去年就抢过 iPhone 7 Plus 的我知道,苹果店每小时都会放出来一批货,于是我就顺手写了个脚本。

阅读全文 »

本文会通过 Keras 搭建一个深度卷积神经网络来识别一张图片是猫还是狗,在验证集上的准确率可以达到99.6%,建议使用显卡来运行该项目。本项目使用的 Keras 版本是1.2.2。

猫狗大战

数据集来自 kaggle 上的一个竞赛:Dogs vs. Cats,训练集有25000张,猫狗各占一半。测试集12500张,没有标定是猫还是狗。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
➜  猫狗大战 ls train | head
cat.0.jpg
cat.1.jpg
cat.10.jpg
cat.100.jpg
cat.1000.jpg
cat.10000.jpg
cat.10001.jpg
cat.10002.jpg
cat.10003.jpg
cat.10004.jpg
➜ 猫狗大战 ls test | head
1.jpg
10.jpg
100.jpg
1000.jpg
10000.jpg
10001.jpg
10002.jpg
10003.jpg
10004.jpg
10005.jpg

下面是训练集的一部分例子:

阅读全文 »

本文会通过 Keras 搭建一个深度卷积神经网络来识别 captcha 验证码,建议使用显卡来运行该项目。

下面的可视化代码都是在 jupyter notebook 中完成的,如果你希望写成 python 脚本,稍加修改即可正常运行,当然也可以去掉这些可视化代码。Keras 版本:1.2.2。

captcha

captcha 是用 python 写的生成验证码的库,它支持图片验证码和语音验证码,我们使用的是它生成图片验证码的功能。

首先我们设置我们的验证码格式为数字加大写字母,生成一串验证码试试看:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from captcha.image import ImageCaptcha
import matplotlib.pyplot as plt
import numpy as np
import random

%matplotlib inline
%config InlineBackend.figure_format = 'retina'

import string
characters = string.digits + string.ascii_uppercase
print(characters)

width, height, n_len, n_class = 170, 80, 4, len(characters)

generator = ImageCaptcha(width=width, height=height)
random_str = ''.join([random.choice(characters) for j in range(4)])
img = generator.generate_image(random_str)

plt.imshow(img)
plt.title(random_str)

阅读全文 »

网格搜索算法K折交叉验证法是机器学习入门的时候遇到的重要的概念。

网格搜索算法是一种通过遍历给定的参数组合来优化模型表现的方法。

决策树为例,当我们确定了要使用决策树算法的时候,为了能够更好地拟合和预测,我们需要调整它的参数。在决策树算法中,我们通常选择的参数是决策树的最大深度

于是我们会给出一系列的最大深度的值,比如 {'max_depth': [1,2,3,4,5]},我们会尽可能包含最优最大深度。

不过,我们如何知道哪一个最大深度的模型是最好的呢?我们需要一种可靠的评分方法,对每个最大深度的决策树模型都进行评分,这其中非常经典的一种方法就是交叉验证,下面我们就以K折交叉验证为例,详细介绍它的算法过程。

首先我们先看一下数据集是如何分割的。我们拿到的原始数据集首先会按照一定的比例划分成训练集和测试集。比如下图,以8:2分割的数据集:

阅读全文 »

为什么做这个

其实很简单,我本科学自动化的,毕业设计选题的时候正好看到了这个题目,觉得很简单,对于生活在帝都的我也很实用,于是就想做个这个室内空气质量检测仪

阅读全文 »
0%