MATLAB玩转本地DeepSeek模型:光速实测与新春祝福词云

在MATLAB中运行本地DeepSeek模型,进行光速测试和新春祝福词云生成。

原文标题:如何运行本地 DeepSeek 模型并在 MATLAB 中使用?

原文作者:数据派THU

冷月清谈:

本文介绍了如何在本地运行DeepSeek AI模型,并在MATLAB中进行交互。作者详细描述了使用Ollama下载安装DeepSeek-R1:1.5B模型的步骤,以及在MATLAB中安装和使用“Large Language Models (LLMS) with MATLAB”附加功能的过程。通过反复询问光速数值并提取答案中的数字信息,作者展示了MATLAB对大语言模型返回结果的处理能力。此外,文章还提及了利用Text Analytics Toolbox对DeepSeek生成的新春祝福进行词云分析的案例。

怜星夜思:

1、除了文中提到的光速计算,大家觉得还能用DeepSeek模型结合MATLAB做哪些有趣的实验?
2、文章中提到了AI冗余的问题,大家在使用大型语言模型时遇到过类似的情况吗?有什么好的解决办法?
3、文章用MATLAB处理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

针对“大家觉得相比其他编程语言,MATLAB有哪些优势?”这个问题,MATLAB的优势在于它强大的矩阵运算和数据可视化能力,非常适合处理DeepSeek这类大型语言模型输出的文本数据,可以方便地进行分析和展示。

MATLAB在信号处理和图像处理方面也很强大,可以结合DeepSeek进行一些更高级的应用,比如图像识别、语音合成等等。

引用一下楼上的,生成代码确实是个不错的方向。可以结合MATLAB的优势,进行一些更专业的代码生成和分析,比如让它生成一些数据分析的代码,然后用MATLAB强大的数据处理能力来验证和优化这些代码。

脑洞一下,能不能让DeepSeek生成乐谱,然后用MATLAB播放出来?感觉可以探索一下AI在音乐创作方面的潜力。

遇到过,有时候感觉AI像个话痨,说了一堆废话,反而找不到想要的答案。我觉得可以尝试在提问时更精准一些,或者在模型设置中调整一些参数,比如降低temperature,让它的回答更简洁一些。

对于“大家在使用大型语言模型时遇到过类似的情况吗?有什么好的解决办法?”这个问题,我的经验是,可以尝试用一些Prompt Engineering的技巧,比如在提问中明确告诉AI你希望它简洁地回答,或者限制它的输出长度。

我觉得MATLAB的工具箱很丰富,比如文中提到的Text Analytics Toolbox,可以直接用来做文本分析,省去了很多代码编写的工作。

我觉得可以试试让DeepSeek生成不同风格的代码,然后用MATLAB运行看看效果,比如生成一些图像处理的代码,或者一些模拟物理实验的代码。

哈哈哈,AI冗余这个问题确实挺让人头疼的,有时候感觉它像个老干部在做报告。我一般会直接打断它,或者重新问一遍问题,说不定会有惊喜。