首页 > 其他分享 >【MATLAB+AI+Ollama】MATLAB+ChatGPT=MatGPT!

【MATLAB+AI+Ollama】MATLAB+ChatGPT=MatGPT!

时间:2025-02-04 23:27:01浏览次数:3  
标签:AI ollama 模型 %% MATLAB ChatGPT Ollama

一、前言

        随着人工智能技术的不断发展,越来越多的企业和开发者开始重视本地大模型的部署与应用。相比云端服务,本地模型在数据隐私、响应速度以及自定义方面具有独特优势。本文将从理论到实战,详细解析如何利用 MATLAB 这一强大计算工具结合 Ollama 构建和部署本地 AI 大模型,带你走进智能应用新时代。

二、核心技术概述

        1. MATLAB 的优势

        MATLAB 作为工程计算和算法开发的利器,具备高效的数据处理、可视化以及丰富的工具箱,特别适用于 AI 算法建模、数据仿真和结果分析。无论是传统的机器学习还是深度学习模型,MATLAB 都能提供一站式的开发环境。

        2. AI 大模型的发展趋势

        AI 大模型(Large Language Models、视觉模型等)在自然语言处理、图像识别等领域取得了突破性进展。对于需要自定义算法和模型调优的场景,本地部署不仅可以降低延迟,更能确保数据安全。

        3. Ollama:本地 AI 模型运行平台

        Ollama 是一款致力于本地部署 AI 模型的工具平台,支持多种大模型的快速加载与调用。包括DeepSeekR1等大模型。

三、软件下载与环境配置

        1. 软硬件要求

        (1)MATLAB:需要 MATLAB R2024a 或更高版本,配置LLMs with MATLAB库。

        (2)Ollama:安装 Ollama 平台,确保本地环境中能顺利运行大模型。

        (3)硬件配置:建议使用具备较高 GPU 性能的电脑。

        2. 软件下载

        2.1. Ollama下载

        官网链接:https://ollama.com/ 。点击Download下载,点击Models可见所有模型,点击某个模型连接,比如qwen2,可以看到模型详细的介绍。(下载需魔法,百度网盘资源关注公众号回复关键词''MatGPT''可免费领取)。

        下载完成后,双击安装文件,点击「Install」开始安装,会默认安装到C盘,路径如下:C:\Users%username%\AppData\Local\Programs\Ollama,并不会让用户自定义选择安装路径。

        2.2. 配置环境变量(必须)

        默认存放Ollama模型目录为C:/Users//.ollama/models。可通过以下命令更改模型安装时的存放目录,从而减少C盘负担。

# 只设置当前用户(需要先创建D:\ollama_models目录)setx OLLAMA_MODELS "D:\ollama_models" # 为所有用户设置(需要先创建D:\ollama_models目录)setx OLLAMA_MODELS "D:\ollama_models" /M

        或者可以本地部署环境变量,通常可选择这个:

变量名(N):OLLAMA_MODELS变量值(V):D:\Work\ollama\models

        2.3. 配置端口(可选)

        Ollama API 默认绑定在本机地址 http://localhost:11434,只能在安装了 Ollama 的系统上直接调用;如果需要在网络中提供服务,则必须通过修改系统环境变量来更改 API 的监听地址和端口。

变量名(N):OLLAMA_HOST变量值(V): :8000

        2.4. 允许浏览器跨域请求(可选)

        Ollama 默认只允许来自127.0.0.1和0.0.0.0的跨域请求,如果你计划在其它前端面板中调用 Ollama API。        

变量名(N):OLLAMA_ORIGINS变量值(V): *

        2.5. LLMs with MATLAB库

        在系统命令提示符下,运行下述命令将LLMs with MATLAB库克隆至本地工作路径。(需要魔法,百度网盘资源关注公众号回复关键词可免费领取)。

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

        使用addpath将目录添加到 MATLAB 路径或者将其添加为matlab toolbox,或者可在matlab内部设置路径。

addpath('路径/llms-with-matlab-main');

四、本地调用Ollama

        4.1. AI 模型管理

        以下是模型交互命令,如果本地没有该模型,则会先下载模型再运行,首次运行启动可能略慢。

ollama list:显示模型列表。ollama show:显示模型的信息ollama pull:拉取模型ollama push:推送模型ollama cp:拷贝一个模型ollama rm:删除一个模型ollama run:运行一个模型

        可以通过按下 Win+R 快捷键,在弹出的“运行”窗口中输入 cmd,打开命令提示符,从而部署本地AI模型。(此时默认下载到C盘)

        或"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe",打开该软件进行模型交互命令。(此时下载到上述环境变量地址)执行命令,

        4.2. ollama终端交互示例

        利用下述命令创建本地模型,并进行终端交互。

ollama pull llama3.2

五、matlab+Ollama

        5.1. 简单示例

        在下载并配置完成LLMs with MATLAB库后,可以调用ollamaChat类创建与本地ollama的连接,这里以llama3.2为例:

chat=ollamaChat('llama3.2'); 
chat.generate('你是谁')

            5.2. 设置循环聊天

        官方案例:

%% 设置聊天循环
%%配置模型
%设置每次聊天会话允许的最大字数,并定义关键字,当用户输入该关键字时,该关键字将结束聊天会话。
wordLimit = 2000;
stopWord = "end";

%创建一个实例ollamaChat来执行聊天,创建一个实例messageHistory来存储会话历史记录。
chat = ollamaChat("llama3.2"); % qwen2:7b
messages = messageHistory;

%% 聊天循环
% 开始聊天并保持聊天,直到出现stopWord设置的语句出现
totalWords = 0;
messagesSizes = [];
%% 
% 主循环会无限地继续下去,直到输入设置好的stopWord或按下Ctrl+ c 
while true
    query = input("User: ", "s");
    query = string(query);
    %dispWrapped("User", query)
%% 
% 如果您输入了stopWord,则显示消息并退出循环。

    if query == stopWord
        disp("AI: Closing the chat. Have a great day!")
        break;
    end

    numWordsQuery = countNumWords(query);
%% 
% 如果查询超过字数限制,则显示错误消息并停止执行。

    if numWordsQuery>wordLimit
        error("Your query should have fewer than " + wordLimit + " words. You query had " + numWordsQuery + " words.")
    end
%% 
% 跟踪每条消息的大小和到目前为止使用的总字数。

    messagesSizes = [messagesSizes; numWordsQuery]; %#ok
    totalWords = totalWords + numWordsQuery;
%% 
% 如果总字数超过限制,则从会话开始时删除消息,直到不再使用为止。

    while totalWords > wordLimit
        totalWords = totalWords - messagesSizes(1);
        messages = removeMessage(messages, 1);
        messagesSizes(1) = [];
    end
%% 
% 将新消息添加到会话并生成新的响应。

    messages = addUserMessage(messages, query);
    [text, response] = generate(chat, messages);

    dispWrapped("AI", text)
%% 
% 计算回复中的字数并更新总字数。

    numWordsResponse = countNumWords(text);
    messagesSizes = [messagesSizes; numWordsResponse]; %#ok
    totalWords = totalWords + numWordsResponse;
%% 
% 向会话添加响应。

    messages = addResponseMessage(messages, response);
end
%% |Helper Functions|
% 该函数用于计算文本字符串中的单词数

function numWords = countNumWords(text)
    numWords = doclength(tokenizedDocument(text));
end
%% 
% 该函数显示从前缀挂起缩进的换行文本

function dispWrapped(prefix, text)
    indent = [newline, repmat(' ',1,strlength(prefix)+2)];
    text = strtrim(text);
    disp(prefix + ": " + join(textwrap(text, 70),indent))
end
%% 

标签:AI,ollama,模型,%%,MATLAB,ChatGPT,Ollama
From: https://blog.csdn.net/2303_77200324/article/details/145443781

相关文章