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

最懂AI算法的软件,MATLAB实战深度学习大模型带给我不少惊喜!

2023年以ChatGPT为代表的大语言模型火爆工业界和学术圈,国内各大互联网公司都在布局LLM风口,如百度文心一言、华为盘古、腾讯混元、阿里通义千问等。大语言模型(LLM,Large Language Model)是一种基于深度学习的自然语言处理模型,旨在通过大规模的预训练来学习语言模式和知识,从而实现文本生成、语言理解等自然语言处理任务,借助深度学习的强大计算能力和学习能力,实现了自然语言处理领域的重大突破。

LLM有着广泛应用,特别是在搜索引擎领域,结合大语言模型通过搜索增强技术(RAG),能够获取实时的互联网信息和企业知识库,从而提供更加精准和个性化的搜索结果。这种结合不仅提升了模型性能,还使得大模型能够更精准地理解用户意图,并在海量文档中找到与用户意图最相关的知识。


MATLAB在深度学习、大语言模型、机器学习领域有着广泛的应用。

在深度学习领域,MATLAB提供了丰富的深度学习工具箱Deep Learning Toolbox,这是一个功能强大的工具箱,它提供了简单的命令来创建和互连深度神经网络的各个层。包括神经网络设计、训练、调优等功能,可以帮助用户快速构建和训练深度学习模型。

在机器学习领域,MATLAB提供了工具箱Statistics and Machine Learning Toolbox,为用户提供了丰富的功能和工具,支持用户在数据分析、统计建模、机器学习和深度学习等领域进行各种任务。通过该工具箱,用户可以快速构建、训练和评估各种机器学习模型,从而实现数据驱动的决策和预测。

在大语言模型领域,MATLAB提供了工具箱Text Analytics Toolbox,该工具箱里的

Large Language Models (LLMs)库可以将 MATLAB 连接OpenAI Chat Completions API,支持在MATLAB调用ChatGPT;连接到OpenAI Images API,支持调用DALL·E。本地化这块,该库支持调用 Ollama部署的本地大模型模型,帮助研究人员和开发者更好地理解和开发大语言模型应用。

接下来我们将基于MATLAB最新的R2024a版本,使用专业的深度学习、大模型工具箱进行算法实战。

1.MATLAB R2024a下载与安装

先注册,然后通过下方链接下载最新版本的MATLAB:

https://MATLAB.mathworks.com/

点击运行本地下载exe文件,安装时选择需要对应工具箱和平台:

基础平台: MATLAB®、Simulink®

专业工具箱:Deep Learning Toolbox, Statistics and Machine Learning Toolbox等。

然后一直点击下一步,直到完成安装:

2.深度学习LLM文本生成实战

安装完MATLAB之后,先进行深度学习实战,这里我选择LLM领域核心基础任务序列生成。在MATLAB进行文本序列生成,训练深度学习长短期记忆 (LSTM) 网络以生成文本,需要用到Deep Learning Toolbox和Statistics and Machine Learning Toolbox两个工具箱,同时需要Simulink进行代码编写和测试。基于自己数据,可以参考官MATLAB实例:https://ww2.mathworks.cn/help/deeplearning/ug/generate-text-using-deep-learning.html#GenerateTextUsingDeepLearningExample-1

2.1 数据集选择:CNN/ Daily Mail数据集(英文)

CNN/Daily Mail(简称CNN/DM)作为单文本摘要语料库,每篇摘要包含多个摘要句,是NLP领域机器阅读理解非常经典的开源数据集。数据集最初是从美国有限新闻网(CNN)和每日邮报网(Daily Mail)收集的约100万条新闻数据作为机器阅读理解语料库,我们从中随机抽取了10000条数据作为数据集。

数据集获取地址:https://cs.nyu.edu/~kcho/DMQA/

2.2 数据处理

数据存在从本地文件training.txt,从中读取数据并进行简单数据预处理。

查看前10行数据。

将文本数据转换为预测变量的向量序列和响应向量的分类序列,加入特殊的标记处理数据,创建词表并逐行遍历数据,将文本序列转化为token序列。详细的解释可以看代码注解。

2.3 创建及训练LSTM网络

定义 LSTM 架构,指定一个“序列到序列”的 LSTM 分类网络,其中包含 200 个隐含单元。采用Adam优化器进行训练,指定对应的训练选项,采用交叉熵损失函数,调用triannnet函数训练神经网络。

训练启动后,会弹出训练实时监控,显示当前训练loss和准确率数据,直到训练结束。从下方视频可以看到模型loss逐步下降,训练准确率逐步上升:

2.4 文本生成

创建generateText函数逐字符生成文本,从文本开始字符开始,并使用特殊字符重新构造文本。该函数使用输出预测分数对每个字符进行采样,当网络预测到文本结束字符或生成的文本长度为 500 个字符时,该函数停止预测。

执行generateText就可以随机生成一个语言序列,类似大语言模型自然语言生成。数据量太少,训练次数太少,生成的结果并不是还有进一步优化空间。

整个模型的实际运行流程如下方视频。

03:23

3.大模型开发库打造私人专属聊天AGENT

Text Analytics Toolbox 工具箱里的LLMs库(链接:https://ww2.mathworks.cn/matlabcentral/fileexchange/163796-large-language-models-llms-with-matlab?s_tid=srchtitle_support_results_5_LLM ?s_eid=PEP_31824)支持通过MATLAB通过API调用OpenAI的ChatGPT和DALL·E;也支持本地和非本地Ollama模型调用。

下面为方便测试,我们将使用使用Ollama在本机部署最新Qwen 7B大模型,然后通过LLMs库在MATLAB调用部署本地大模型,打造一个简单的本地聊天AI-AGENT。

3.1 Ollama本地部署Qwen 7B大模型

Ollama是一个开源框架,专门设计用于在本地运行大型语言模型。它的主要特点是将模型权重、配置和数据捆绑到一个包中,从而优化了设置和配置细节,包括GPU使用情况,简化了在本地运行大型模型的过程。

Ollama一开始仅支持macOS和Linux操作系统,近期也推出了支持Windows系统的预览版。官网下载安装Ollama:https://ollama.com/download

下载之后点击安装,并安装qwen2系列大模型,最多支持最新72B大模型,根据机器ram选择,这里我选择最新7b模型。

模型安装完,运行大模型即可:

3.2 安装MATLAB LLMs库

要将LLMs with MATLAB库与本地安装的 MATLAB 一起使用,首先要克隆该存储库。

在系统命令提示符下,运行下述命令将LLMs with MATLAB库克隆至本地工作路径。

git clone https://github.com/MATLAB-deep-learning/llms-with-MATLAB.git

打开 MATLAB 并导航到克隆存储库的目录。

命令行窗口通过addpath将目录添加到 MATLAB 路径即可。

如果不方便git clone,也可以直接下载解压到本地。

3.3 本地调用Ollama

在下载并配置完成LLMs with MATLAB库后,可以调用ollamaChat类创建与本地ollama的连接。

通过下面的命令创建一个基于本地模型的聊天,这里以Qwen2为例:
chat = ollamaChat("qwen2")

通过chat对象的generate方法,就可以与模型进行对话,比如:

实际运行流程如下方视频:

00:40

3.4 通过MATLAB/ Simulink构建私人聊天Agent

要实现连续对话就需要建立聊天循环就可以实现简单的私人聊天Agent,这里直接给出了一个我们实现的案例:

具体解释见代码注释,点击运行该脚本即可在命令行窗口实现连续对话:

通过MATLAB大语言模型工具箱调用本地大语言模型,实现简单Agent可以和它聊天,它可以通过大语言模型RAG系统,回答各种专业的问题,可以作诗,给出建议、解决问题、生成文本,功能非常的强大。整个运行流程如下方视频:

4.展望

我们基于最新的MATLAB 2024a版本,使用提供的Deep Learning Toolbox和Statistics and Machine Learning Toolbox两个工具箱,基于Simulink编码构建了一个简单的LSTM的序列生成模型,通过简单模型训练得到了一个LLM语言生成模型。 使用Text Analytics Toolbox 工具箱中Large Language Models 库通过MATLAB Simulink代码调用部署在本地的大预言模型,打造了一个私人专属聊天Agent。整体使用下来,感觉MATLAB在大语言模型开发和部署非常方便,主要有以下几个优势:
1. 提供专门的工具箱:工具箱包含了丰富的功能和算法,能够帮助用户快速构建和训练复杂的大语言模型。
2. Simulink代码加速模型开发和部署:通过Simulink,用户可以直观地设计模型、进行训练和优化,并将模型部署到实际应用中。
3. 多样性和灵活性:MATLAB支持多种深度学习和统计机器学习算法,用户可以根据自己的需求选择合适的算法来构建大语言模型。
总之,MATLAB在大语言模型开发和部署方面具有丰富的功能和工具支持,能够帮助用户快速构建、训练和部署复杂的大语言模型,确实提供便捷高效的开发体验。


http://www.mrgr.cn/news/74898.html

相关文章:

  • nginx 配置lua执行shell脚本
  • Python 爬虫 (1)基础 | 目标网站
  • svn 崩溃、 cleanup失败 怎么办
  • ThreadLocal 父子线程、线程池、数据传递
  • 【Python】30个Python爬虫的实战项目!!!(附源码)
  • Unreal和Unity哪个更适合独立游戏开发者?
  • JacksonObjectMapper的作用
  • 【深度学习】神经网络优化方法 正则化方法 价格分类案例
  • Android Studio 中三方库依赖无法找到的解决方案
  • 后台管理系统的通用权限解决方案(十五)基于注解和切面实现操作日志记录
  • 【Linux】 shell 学习汇总[转载]
  • Spark读MySQL数据rdd分区数受什么影响,读parquet、hdfs、hive、Doris、Kafka呢?
  • 接口自动化环境搭建
  • 连接数据库导出数据库信息支持excel pdf html markdown
  • 03 P1314 [NOIP2011 提高组] 聪明的质监员
  • 群控系统服务端开发模式-应用开发-前端角色功能开发
  • AI界盛会来袭!高录用EI会议(IS-AII 2025)你绝不能错过!
  • 【B+树特点】
  • Aippyy如何写论文?ai人工智能写作哪家好?
  • java项目-jenkins任务的创建和执行
  • DasViewer可以批量加载osgb格式文件吗?
  • C++初阶:类和对象(上)
  • Fiddler安装配置+抓包手机
  • Javascript 判断数据类型
  • IDEA中创建多模块项目步骤
  • 【2025国考|考公资料】轻松备考:你的公职考试全攻略,快速提升通过率!