边缘计算场景下的大模型落地:基于 Cherry Studio 的 DeepSeek-R1-0528 本地部署

article/2025/6/20 7:34:42

前言

作为学生,我选择用 Cherry Studio 在本地调用 DeepSeek-R1-0528,完全是被它的实用性和 “性价比” 圈粉。最近在 GitHub 和 AI 社群里,大家都在热议 DeepSeek-R1-0528,尤其是它的数学解题和编程能力。像我在准备数学建模竞赛时,用它推导算法公式,居然能给出比参考答案更简洁的步骤;写 Python 爬虫作业,它甚至能直接帮我优化代码的运行效率,比我自己反复调试快多了。

但我不想把学习数据传到云端,毕竟论文思路、编程作业这些要是泄露,被判定为 “AI 代写” 就麻烦了。Cherry Studio 正好解决了这个痛点,装在我的旧笔记本电脑上都不卡,还能把 DeepSeek-R1-0528 稳稳运行起来。最方便的是,它整合了超多模型,平时写英语作文用翻译模型,期末复习用知识问答模型,切换起来超顺滑。

而且,通过本地部署,我还能把自己整理的错题集、笔记 “喂” 给模型,让它越来越懂我的学习薄弱点。现在它就像我专属的 AI 学习伙伴,既能帮我攻克难题,又不用担心隐私问题,这种安全感和高效学习体验,非常不错。

关于蓝耘api

这里我们调用使用到了蓝耘的api,有的同学就会有疑问了,蓝耘平台是啥,为什么会使用到蓝耘平台呢?我的回答是好用,非常好用。
Cherry Studio 通过集成蓝耘 API,能解锁一些本地部署难以实现的功能

  • 实时更新模型版本:蓝耘会第一时间同步 DeepSeek 官方的模型升级(比如后续可能推出的 R1-06XX 版本),无需我手动下载更新包,随时能用最新功能。
    • 多模型融合调用:除了 DeepSeek-R1-0528,蓝耘 API 还支持其他大模型,如通义千问系列
      image.png
      为助力开发者和用户使用,提供高额免费 token 资源包。如每位用户有 500 万 tokens 免费额度,像图中 DeepSeek - V3 资源包总额 5000000 token ,能在不额外付费情况下,尽情开展各类调用测试、开发应用等 。
      image.png

涵盖文本、图像、音视频等多模态模型。如 DeepSeek 系列文生文模型,以及图像、视频生成相关模型,像用于视频生成的 I2V - 01、T2V - 01 等 ,满足多样化开发需求image.png

获取蓝耘智算平台接入api相关信息

首项我们需要先进行注册
点击链接进行注册
输入正确信息就可以进行登录操作了
image.png
注册好了之后,我们来到模型广场
挑选一款你喜欢的模型,我这里调用的就是最新的DeepSeek-R1-0528
image.png
我们先点击将模型名称进行复制
/maas/deepseek-ai/DeepSeek-R1-0528
image.png
然后去申请api
点击创建API就行了
image.png
将api复制下来,需要获取的信息我们已经都搞定了,下面就是教大家如何使用Cherry Studio进行api链接

Cherry Studio的下载

我们点击Cherry Studio 官方网站 - 全能的AI助手进行本地应用的下载
image.png
登录上应用,一开始是下面这个样子的
image.png
点击左下角的小齿轮进行设置操作,我们就进入到模型服务的界面了,然后我们就进行蓝耘平台的添加操作就行了
点击添加
image.png
填写相关的信息
image.png
然后这里我们需要填写两个信息,一个是api一个是api访问地址
我们直接将刚刚创建的api填写到第一个空里面去
api地址的话我们就直接输入https://maas-api.lanyun.net就行了
image.png
然后点击添加模型 /maas/deepseek-ai/DeepSeek-R1-0528
image.png
image.png
然后这里就可以显示的看到具体的信息了
image.png
我们可以点击检测,看看是否能够成功调用
我这里显示连接成功
image.png
我们这里也是可以将其他的模型都添加进来的
image.png
然后我们回到主页,点击上方模型,选择我们的ai
image.png
我们这里可以先试探性的询问下你是谁
image.png
这里他的反应速度真的快,生成答案加上思考时间比原版本的R1快很多了

我接着询问你帮我生成一份对抗学习的代码
image.png

import torch
import torch.nn as nn
import torch.optim as optim
import torchvision
import torchvision.transforms as transforms
import matplotlib.pyplot as plt# 设置随机种子保证可复现性
torch.manual_seed(42)
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")# 数据加载与预处理
transform = transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.5,), (0.5,))
])train_set = torchvision.datasets.MNIST(root='./data', train=True, download=True, transform=transform)
train_loader = torch.utils.data.DataLoader(train_set, batch_size=128, shuffle=True)test_set = torchvision.datasets.MNIST(root='./data', train=False, download=True, transform=transform)
test_loader = torch.utils.data.DataLoader(test_set, batch_size=256, shuffle=False)# 定义简单CNN模型
class CNN(nn.Module):def __init__(self):super(CNN, self).__init__()self.conv1 = nn.Conv2d(1, 32, 3, padding=1)self.conv2 = nn.Conv2d(32, 64, 3, padding=1)self.pool = nn.MaxPool2d(2, 2)self.fc1 = nn.Linear(64 * 7 * 7, 128)self.fc2 = nn.Linear(128, 10)def forward(self, x):x = self.pool(torch.relu(self.conv1(x)))x = self.pool(torch.relu(self.conv2(x)))x = x.view(-1, 64 * 7 * 7)x = torch.relu(self.fc1(x))x = self.fc2(x)return xmodel = CNN().to(device)
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)# FGSM攻击函数
def fgsm_attack(image, epsilon, data_grad):sign_data_grad = data_grad.sign()perturbed_image = image + epsilon * sign_data_gradperturbed_image = torch.clamp(perturbed_image, -1, 1)  # 保持像素值在[-1,1]范围内return perturbed_image# 对抗训练函数
def adversarial_train(model, device, train_loader, optimizer, epoch, epsilon=0.3):model.train()total_loss = 0correct = 0for data, target in train_loader:data, target = data.to(device), target.to(device)data.requires_grad = True# 前向传播output = model(data)loss = criterion(output, target)# 反向传播获取梯度optimizer.zero_grad()loss.backward()data_grad = data.grad.data# 生成对抗样本perturbed_data = fgsm_attack(data, epsilon, data_grad)# 使用对抗样本重新训练optimizer.zero_grad()output_adv = model(perturbed_data)loss_adv = criterion(output_adv, target)loss_adv.backward()optimizer.step()total_loss += loss_adv.item()pred = output_adv.argmax(dim=1, keepdim=True)correct += pred.eq(target.view_as(pred)).sum().item()# 计算平均损失和准确率avg_loss = total_loss / len(train_loader.dataset)accuracy = 100. * correct / len(train_loader.dataset)print(f'Epoch: {epoch} | Train Loss: {avg_loss:.4f} | Accuracy: {accuracy:.2f}%')return avg_loss, accuracy# 测试函数(包含对抗样本测试)
def test(model, device, test_loader, epsilon=0.3):model.eval()test_loss = 0correct = 0adv_correct = 0for data, target in test_loader:data, target = data.to(device), target.to(device)# 正常测试output = model(data)test_loss += criterion(output, target).item()pred = output.argmax(dim=1, keepdim=True)correct += pred.eq(target.view_as(pred)).sum().item()# 生成对抗样本测试data.requires_grad = Trueoutput = model(data)loss = criterion(output, target)model.zero_grad()loss.backward()data_grad = data.grad.dataperturbed_data = fgsm_attack(data, epsilon, data_grad)# 在对抗样本上测试output_adv = model(perturbed_data)pred_adv = output_adv.argmax(dim=1, keepdim=True)adv_correct += pred_adv.eq(target.view_as(pred_adv)).sum().item()# 计算指标test_loss /= len(test_loader.dataset)accuracy = 100. * correct / len(test_loader.dataset)adv_accuracy = 100. * adv_correct / len(test_loader.dataset)print(f'Test set: Average loss: {test_loss:.4f}')print(f'Normal Accuracy: {correct}/{len(test_loader.dataset)} ({accuracy:.2f}%)')print(f'Adversarial Accuracy: {adv_correct}/{len(test_loader.dataset)} ({adv_accuracy:.2f}%)')return accuracy, adv_accuracy# 训练与测试
epochs = 10
train_losses = []
normal_accs = []
adv_accs = []for epoch in range(1, epochs + 1):print(f"\n--- Epoch {epoch} ---")loss, acc = adversarial_train(model, device, train_loader, optimizer, epoch)normal_acc, adv_acc = test(model, device, test_loader)train_losses.append(loss)normal_accs.append(normal_acc)adv_accs.append(adv_acc)# 绘制结果
plt.figure(figsize=(10, 5))
plt.subplot(1, 2, 1)
plt.plot(train_losses, label='Training Loss')
plt.title('Training Loss')
plt.xlabel('Epochs')
plt.legend()plt.subplot(1, 2, 2)
plt.plot(normal_accs, label='Normal Accuracy')
plt.plot(adv_accs, label='Adversarial Accuracy')
plt.title('Test Accuracy')
plt.xlabel('Epochs')
plt.legend()
plt.tight_layout()
plt.savefig('results.png')
plt.show()

我们可以调用其他的模型让其他的模型分析下这个代码的专业性
我们这里就使用到了通义千问了
image.png
他这里也会进行思考操作image.png
image.png
这个总结也是可以的。到这里我们的实验就结束了,你如果也想体验下deepseek的最新模型,你不妨去试试呢,确实挺不错的。

总结

在速度上,Cherry Studio 具备轻量级特性,运行流畅,搭配蓝耘 API 优化的底层架构、强劲算力及深度算法,能快速响应指令。无论是处理复杂文本生成,还是进行大规模数据推理,都能高效完成,大幅缩短等待时间。
如果你也感兴趣的话,不妨来试试呢下方链接注册就ok了

https://cloud.lanyun.net/#/registerPage?promoterCode=5663b8b127

http://www.hkcw.cn/article/eETgsuVllJ.shtml

相关文章

Tomcat的整体架构及其设计精髓

1.Tomcat介绍 官方文档:https://tomcat.apache.org/tomcat-9.0-doc/index.html 1.1 Tomcat概念 Tomcat是Apache Software Foundation(Apache软件基金会)开发的一款开源的Java Servlet 容器。它是一种Web服务器,用于在服务器端运行…

使用 Let‘s Encrypt 和 Certbot 为 Cloudflare 托管的域名申请 SSL 证书

一、准备工作 1. 确保域名解析在 Cloudflare 确保你的域名 jessi53.com 和 www.jessi53.com 的 DNS 记录已经正确配置在 Cloudflare 中,并且状态为 Active。 2. 安装 Certbot 在你的服务器上安装 Certbot 和 Cloudflare 插件。以下是基于 Debian/Ubuntu 和 Cent…

JAVA最新版本详细安装教程(附安装包)

目录 文章自述 一、JAVA下载 二、JAVA安装 1.首先在D盘创建【java/jdk-23】文件夹 2.把下载的压缩包移动到【jdk-23】文件夹内,右键点击【解压到当前文件夹】 3.如图解压会有【jdk-23.0.1】文件 4.右键桌面此电脑,点击【属性】 5.下滑滚动条&…

【算法】插入排序

算法系列五:插入排序 一、直接插入排序 1.原理 2.实现 3.性质 3.1时间复杂度 3.2空间复杂度 3.3稳定性 二、希尔排序 1.原理 1.1优化方向 1.2优化原理 2.设计 2.1比较无序时 2.2比较有序时 3.实现 4.性质 4.1时间复杂度 4.2空间复杂度 4.3稳定性…

【javaSE】String类(1)

❤️❤️前言~🥳🎉🎉🎉 hellohello~,大家好💕💕,这里是E绵绵呀✋✋ ,如果觉得这篇文章还不错的话还请点赞❤️❤️收藏💞 💞 关注💥💥,如果发现这篇文章有问题的话,欢迎各位评论留言指正,大家一起加油!一起chin up!👍👍 💥个人主页:E绵绵…

使用 Java 实现一个简单且高效的任务调度框架

目录 一、任务调度系统概述 (一)任务调度的目标 (二)任务调度框架的关键组成 二、任务状态设计 (一)任务状态流转设计 (二)任务表设计(SQL) 三、单机任务调度实现 (一)获取待处理任务 (二)执行任务 代码实现(单线程版本) (三)多线程提高吞吐量 四…

【算法题】别再为 Java 算法题犯难,码蹄杯上这些新手题库帮你打好基础

我的个人主页 我的专栏: 人工智能领域、java-数据结构、Javase、C语言,MySQL,希望能帮助到大家!!! 点赞👍收藏❤ 前言: 码蹄杯作为编程学习中经典的逻辑训练题型,是提升算…

【Java开发日记】6个Java 工具,轻松分析定位 JVM 问题 !

目录 使用 JDK 自带工具查看 JVM 情况 jps jinfo jvisualvm jcm 使用 JDK 自带工具查看 JVM 情况 JDK 自带了很多命令行甚至是图形界面工具,帮助查看 JVM 的一些信息。比如,在机器上运行 ls 命令,可以看到 JDK 8 提供了非常多的工具或程…

Java 大视界 -- 基于 Java 的大数据分布式文件系统在数字图书馆海量文献存储与管理中的应用优化(219)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也期待你毫无保留地分享独特见解,愿我们于此携手成长,共赴新程!💖 全网…

寒假学习笔记【匠心制作,图文并茂】——1.20拓扑、强连通分量、缩点

文章目录 前言拓扑排序拓扑排序是怎么运作的拓扑排序的好处 强连通分量强连通是什么强连通分量是什么如何求 SCC 缩点 前言 更新的稍微有点晚…… 因为强连通分量这一块难学且知识点多,学习时间久了亿点,所以直到现在才更新。 拓扑排序 OI-Wiki 是这…

git下载和安装(完整版)

目录 一,官网下载 二, 安装步骤 1 双击直接安装【版本为64位系统的】 2 点击Next 3 点击Finish完成安装,验证安装,找一个桌面空白处,右键出现下列窗口 4 检验是否成功 一,官网下载 git官网地址:Gi…

系统思考:化繁为简的艺术

系统思考,其实是一门化繁为简的艺术。当我们能够把复杂的问题拆解成清晰的核心以及更加简单,从而提升团队的思考品质和行动品质,发挥最大的合力。 每个公司都想在某方面成为最优秀的,但是实际上具有穿透性的洞察力和摆脱虚荣心的清…

【Kotlin】简介变量类接口

【Kotlin】简介&变量&类&接口 【Kotlin】数字&字符串&数组&集合 文章目录 Kotlin_简介&变量&类&接口Kotlin的特性Kotlin优势创建Kotlin项目变量变量保存了指向对象的引用优先使用val来避免副作用 编译期常量后端变量Backing Fields后端属性…

8086 处理器 Flags 标志位全解析:CPU 的 “晴雨表” 与 “遥控器”总结:

引入: 你是否好奇,当 CPU 执行一条加法指令时,如何自动判断结果是否超出范围?当程序跳转时,如何快速决定走哪条分支?甚至在调试程序时,为何能让 CPU “一步一停”?这一切的答案&…

uniapp uni-id Error: Invalid password secret

common文件夹下uni-config-center文件夹下新建uni-id,新建config.json文件 复制粘贴以下代码,不要自己改,格式容易错 {"passwordSecret": [{"type": "hmac-sha256","version": 1}], "passwordStrength&qu…

从0到1上手Trae:开启AI编程新时代

摘要:字节跳动 2025 年 1 月 19 日发布的 Trae 是一款 AI 原生集成开发环境工具,3 月 3 日国内版推出。它具备 AI 问答、代码自动补全、基于 Agent 编程等功能,能自动化开发任务,实现端到端开发。核心功能包括智能代码生成与补全、…

云计算和服务器

一、云计算概述 ICT是世界电信协会在2001年的全球性会议上提出的综合性概念,ICT分为IT和CT,IT(information technology)信息技术,负责对数据生命周期的管理;CT(communication technology),负责数据的传输管理。 CT技术…

云计算与分布式系统:从零开始构建!

🏆本文收录于「编程与技术实战」专栏,此专栏涵盖了C/C++编程、人工智能、数据结构、机器学习等技术领域的内容,助你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 本文目录: 前言云计算概念与架构什么是云计算?…

零基础入门haproxy七层代理

文章目录 haproxy的安装和服务信息global配置proxies配置defaults配置frontend配置backed配置listen配置 socat工具 haproxy算法静态算法动态算法其他算法 高级功能及配置案例基于cookie会话保持HAProxy状态页IP透传四层IP透传七层IP透传 ACL匹配规范基于HTTP请求头部的匹配精确…

清华大学杨诚最新Nature子刊

研究背景 电致变色(Electrochromic, EC)器件作为一种新兴的节能和调光技术,展示了动态调节光和热透射率的能力,是未来智能建筑、智能汽车天窗以及智能可穿戴设备的重要技术组成。然而,传统的EC器件的商业化面临着诸如…