当前位置: 首页 > news >正文

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

前言

作为学生,我选择用 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

相关文章:

  • Linux 下如何查看进程的资源限制信息?
  • 第二十章 文本处理
  • HTML实现端午节主题网站:龙舟争渡,凭吊祭江诵君赋。
  • 光电设计大赛智能车激光对抗方案分享:低成本高效备赛攻略
  • 人工智能在智能健康监测中的创新应用与未来趋势
  • 【Netty系列】消息编码解码框架
  • JS基础知识(第十五天)
  • day15 leetcode-hot100-29(链表8)
  • 一周学会Pandas2之Python数据处理与分析-数据重塑与透视-melt() - 融化 / 逆透视 (宽 -> 长)
  • 深入理解交叉熵损失函数——全面推演各种形式
  • python:PyMOL 能处理 *.pdb 文件吗?
  • 《操作系统真相还原》——初探保护模式
  • java开发中#和$的区别
  • 火绒 6.0 全家桶合集 - 绿色单文件提取版 (垃圾清理/右键管理/弹窗拦截等)
  • Centos环境下安装/重装MySQL完整教程
  • 深度学习|pytorch基本运算-广播失效
  • QT6引入QMediaPlaylist类
  • redis核心知识点
  • LeetCode Hot100 (贪心)
  • C# 面向对象特性
  • 免费建站手机软件/襄阳seo培训
  • 爱站数据/台州seo优化
  • 向网站服务器上传网页文件下载/产品推广计划方案
  • 建筑网站排行/怎么提高关键词搜索权重
  • 东莞市住房和城乡建设局网站/什么是seo推广
  • 宁夏交通建设股份有限公司网站/百度浏览器网址大全