如何运行本地 DeepSeek 模型并在 MATLAB 中使用?

图片

来源:MATLAB
本文约1100字,建议阅读5分钟
本文手把手教你如何运行本地 DeepSeek 模型并在 MATLAB 中使用。

在DeepSeek-R1(https://github.com/deepseek-ai/DeepSeek-R1) AI 模型横空出世后,人们几乎就立马开始询问如何在 MATLAB 中使用这些模型。近期,MathWorks 的软件测试工程师 Vasileios Papanastasiou 在 LinkedIn 上发了指南帖,我第一次在自己的机子上根据他的指导尝试了下。

在本地运行 deepseek-r1:1.5b

我将使用附加功能 “Large Language Models (LLMS) with MATLAB” 以及 ollama,在我的本地机子上运行一个较小的 DeepSeek 模型,并在 MATLAB 中与之交互。按照 Vasileios 的指导,我做的第一件事是:

下载并安装 Ollama: https://ollama.com/download

我在 Windows 上进行了此操作。安装完成后,我打开操作系统的命令行并运行了该命令:

ollama run deepseek-r1:1.5b

这将安装一个 15 亿参数的模型,虽然模型很小,但希望这意味着我不需要担心计算资源的限制。以后我还可以尝试更大的模型。

图片

现在来看看 MATLAB。Vasileios 建议我们从 GitHub(https://github.com/matlab-deep-learning/llms-with-matlab) 获取附加功能 “Large Language Models (LLMS) with MATLAB”,但我采取了不同的方法。我点击了 MATLAB R2024b 的“环境”中的“附加功能”。

图片

我在附加功能资源浏览器中搜索 “Large Language Models”,找到后点击 “添加”。这样就完成了下载和安装。

图片

安装就这样完成了。现在让我们在 MATLAB 中开始使用它!

首先,创建一个 ollamaChat 对象

chat = ollamaChat("deepseek-r1:1.5b")

图片

终于,我们可以尝试与 AI 对话

txt = generate(chat,"What is the speed of light?")

图片

我觉得像这样的 LLM 模型有趣的一点是,你可以反复问同一个问题,每次都会得到不同的答案,这反映了它们的随机性。有时结果只是略有不同。

txt = generate(chat,"What is the speed of light?")

图片

而有时回复确实会非常冗长,包含很多“思考”的内容。

txt = generate(chat,"What is the speed of light?")

图片

哇太多字了!

我想这是许多人所说的 AI 冗余(https://en.wikipedia.org/wiki/AI_slop)的一个例子。不过,不管它还说了什么,这个模型似乎相当确定光速是299,792,458米每秒,根据维基百科,这是正确的。这是 DeepSeek 模型的一个非常小的版本,但它仍然可以做一些有用的事情,而且是了解基于 LLM 的 AI 技术优缺点的一种有趣且有意义的方式。

您也不妨试试看,然后告诉我们你的想法!

技术小哥本地测评

在本地部署 DeepSeek,并用 MATLAB 调用,是非常容易的,我并未遇到太多困难就成功了,全过程可以总结为以下步骤:

图片

MATLAB 调用大语言模型的优势之一是,容易对大预言模型的返回结果进行处理。

这里给出两个玩法:

1. 利用字符处理能力,对大语言模型结果的关键信息进行提取。这里我问 DeepSeek 光速是多少 m/s,并反复提问 10 次,对回答结果中的数字进行提取,从而获得更为可靠的结果,代码如下:

chat = ollamaChat("deepseek-r1:32b");
raws = {};
for i=1:10    raws{i} = generate(chat,"光速是多少m/s");
end%对 DeepSeek 询问10次processed=[];
for i=1:10    temp=char(raws{i}); 
 [a,b] = regexp(temp,'</think>');
temp=temp(b:end);   
[a,b] = regexp(temp,'[0123456789,(?s)]{2,}'); 
temp=temp([a(1):b(1)]); 
temp=replace(temp,',','');  
processed(i)=str2num(temp);
end%对每次回答中的数字进行提取median(processed)%求取中位数

2. 基于 Text Analytics Toolbox 工具箱的文字处理能力,对 DeepSeek 的回答进行进一步分析,例如我让 DeepSeek 写一些新春祝福,然后对回答进行词云处理,获得了这样的结果: 

图片

编辑:于腾凯

校对:林亦霖

关于我们

数据派THU作为数据科学类公众号,背靠清华大学大数据研究中心,分享前沿数据科学与大数据技术创新研究动态、持续传播数据科学知识,努力建设数据人才聚集平台、打造中国大数据最强集团军。

图片

新浪微博:@数据派THU

微信视频号:数据派THU

今日头条:数据派THU

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值