在MATLAB中运行本地DeepSeek模型,进行光速测试和新春祝福词云生成。
原文标题:如何运行本地 DeepSeek 模型并在 MATLAB 中使用?
原文作者:数据派THU
冷月清谈:
怜星夜思:
2、文章中提到了AI冗余的问题,大家在使用大型语言模型时遇到过类似的情况吗?有什么好的解决办法?
3、文章用MATLAB处理DeepSeek的结果,大家觉得相比其他编程语言,MATLAB有哪些优势?
原文内容
来源:MATLAB本文约1100字,建议阅读5分钟
本文手把手教你如何运行本地 DeepSeek 模型并在 MATLAB 中使用。
在本地运行 deepseek-r1:1.5b
我将使用附加功能 “Large Language Models (LLMS) with MATLAB” 以及 ollama,在我的本地机子上运行一个较小的 DeepSeek 模型,并在 MATLAB 中与之交互。按照 Vasileios 的指导,我做的第一件事是:
我在 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 写一些新春祝福,然后对回答进行词云处理,获得了这样的结果: