主题内容简介

🌟【从零构建本地AI工作流:打造属于你的智能助手生态】

本次分享将带你探索本地化AI部署的完整技术链路,构建一个安全可控、功能强大的个人智能助手系统:

1️⃣ 基础筑基:从本地部署开源大模型出发,本地简单运行大模型
2️⃣ 多模态扩展:接入Stable Diffusion等文生图模型,实现文生图功能
3️⃣ 交互优化:基于LM-Studio构建个人知识助手,实现智能对话与记忆存储
4️⃣ 知识增强:通过LangFlow搭建RAG应用,连接本地知识库与网络资源,打造定制化AI助手
5️⃣ 定制进化:运用MLX框架进行领域适配微调,让通用模型拥有专属风格
6️⃣ 系统融合:借力Open Interpreter打通操作系统API,实现文件管理、数据分析等自动化办公场景

 

💡本地部署优势:

  • 全链路隐私保护:数据不出本地

  • 低成本定制方案:mac M系列芯片即可运行

  • 可扩展架构:模块化设计自由组合

 

适合追求数据安全、需要定制化AI能力的技术探索者,开启属于你的智能生产力革命!🚀

 

环境搭建

虚拟环境准备

  • 使用Python 3内置的模块venv来创建一个虚拟环境(也可以使用conda),使用source命令激活虚拟环境。

python3 -m venv testsource test/bin/activate

 

虚拟环境可以为不同的项目维护独立的依赖关系和版本,避免库之间的冲突

下载依赖库文件

  • 下载Langflow、MLX等相关库

pip install langflow  
pip install mlx-lmpip install transformers  
pip install torchpip install numpy 
pip install modelscope

 

🖥️首先,我们可以使用Ollama、stable-diffusion-webui等工具直接运行大模型,进行简单对话或图片生成

 

ollama 本地部署运行大模型

下载ollama工具

  • 点击ollama官网一键下载 本地镜像包(https://modelscope.oss-cn-beijing.aliyuncs.com/releases/Ollama-darwin.zip)。下载后自动启用,或输入以下命令:

ollama serve

 

如果运行ollama serve后出现类似下面的提示,说明已经可以正常使用:

Error: listen tcp 127.0.0.1:11434: bind: address already in use

 

选择模型

  • 在魔搭社区的模型库中选择合适的GGUF模型:(网站链接:)

 

开始运行

  • 复制模型路径(如:Qwen/Qwen2.5-0.5B-Instruct-GGUF),替换下面命令中的{model path},然后进行运行:

ollama run modelscope.cn/{model path}
例如:ollama run modelscope.cn/Qwen/Qwen2.5-0.5B-Instruct-GGUF

 

运行后,就可以直接使用大模型进行对话啦

  • 可以通过ollama list命令看到已经有的模型:

ollama list

 

stable-diffusion-webui框架本地运行文生图模型

环境准备

  • 克隆stable-diffusion-webui库

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git

运行及配置

  • 运行stable-diffusion-webui

cd stable-diffusion-webui  
./webui.sh

 

可能的报错:

OSError: Can't load tokenizer for 'openai/clip-vit-large-patch14'. If you were trying to load it from 'https://huggingface.co/models', make sure you don't have a local directory with the same name. Otherwise, make sure 'openai/clip-vit-large-patch14' is the correct path to a directory containing all relevant files for a CLIPTokenizer tokenizer.

 

如果出现以上报错信息,说明当前网络无法从huggingface上下载文件,可以从魔搭上下载所需的模型,命令:

modelscope download --model AI-ModelScope/clip-vit-large-patch14

 

打开调用这个模型的代码位置,将路径换成刚才下载的文件路径:

此时运行./webui.sh ,就不会出现报错,自动打开本地网页界面

 

下载模型并使用

  • 打开魔搭社区diffusion模型库:,选择合适的模型,在模型文件中下载模型权重(ckpt或safetensors格式)

 

  • 将下载好的模型保存在:stable-diffusion-webui/models/Stable-diffusion路径下

 

  • 此时在左上角刷新后就会显示可以使用的模型:

 

  • 接下来就可以使用各种功能进行图片生成啦:

 

 

ComfyUI使用工作流形式灵活搭建生图功能

下载ComfyUI代码框架并运行

git clone https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI
pip install -r requirements.txt
python main.py

 

下载生图模型

使用命令行下载stable-diffusion-v1-5:(将path/to换成你本地的路径)

或者直接在魔搭社区https://www.modelscope.cn/models?name=stable%20diffusion&page=1进行下载

 

将模型下载到ComfyUI/models/checkpoints目录下

modelscope download --model AI-ModelScope/stable-diffusion-v1-5 v1-5-pruned-emaonly.safetensors --local_dir path/to/ComfyUI/models/checkpoints

同样下载lora模型到ComfyUI/models/loras目录下

 

具体演示

使用模版工作流,在checkpoint组建中选择下载好的stable-diffusion-v1-5模型,点击执行即可生成图片

 

在clip文本编辑中可以修改提示词以及反向提示词;在k采样器中可以修改迭代步数等一些参数

https://live.csdn.net/v/468909

添加lora模型后,可以生成更有风格化的图片(可以在模型强度中修改lora模型的风格程度)

https://live.csdn.net/v/468910

🖥️想要更美观的交互界面?试试LM-studio

 

LM-studio本地大模型个人助手

下载LM-studio及大模型

  • 点击LM-studio官网一键下载(本地镜像:https://modelscope.oss-cn-beijing.aliyuncs.com/releases/LM-Studio-0.3.10-6-arm64.dmg)

 

  • 下载后自动启用,并下载模型存入指定目录,下载命令:

modelscope download --model Qwen/Qwen2.5-0.5B-Instruct-GGUF --local_dir /Users/mingjiangao/lmstudio/models/Publisher/Repository/qwen2.5-0.5b

 

存入的local_dir目录与LM-studio中的模型路径相同即可,注意需要Publisher/Repository/两层目录

 

开始使用

  • 在Chat界面选择下载好的模型

 

  • 开始聊天吧!

如果想要使用工作流的形式搭建功能更强大的大模型应用,可以使用Langflow工具

 

langflow搭建RAG应用

准备模型

  • 使用ollama pull命令下载一个一个文本嵌入模型,用来构建RAG知识库:

ollama pull modelscope.cn/Embedding-GGUF/nomic-embed-text-v1.5-GGUF:latest

 

本地运行langflow

  • 运行langflow:

pip install langflowpython -m langflow run
  • 运行成功后,会出现以下的提示及本地网址:

 

搭建工作流

  • 打开给出的本地网址http://127.0.0.1:7861,点击New Flow,创建一个空的工作流:

 

  • 添加最简单的输入输出逻辑,分别添加Chat Input、Chat output以及ollama模型块,在ollama模型块中选择已经上传的qwen模型,将输入输出块与模型块相连,点击右上角的playground即可运行

https://live.csdn.net/v/468911

  • 添加提示词,个性化AI服务:添加prompt块,在内容中加入需要的提示词,并添加question接口,将我们的输入添加在提示词后

https://live.csdn.net/v/468912

 

  • 添加本地知识库,获得更加专业的回答:创建一个数据库,将知识库的文件/链接等输入到数据库中,连接准备好的embedding模型和查询输入,将数据库检索的结果转换为text格式。在提示词中添加知识库接口,将检索结果输入到这个接口上。

https://live.csdn.net/v/468913

然后,我们就可以开始进行对话啦,可以看到此时大模型的知识库已经包含我们所上传的内容:

 

🖥️对已有的模型不满意,想要更个性化专业化的模型?试试MLX框架进行大模型微调吧

 

MLX框架本地大模型微调

下载模型

  • 调用ModelScope平台提供的下载工具的命令,从ModelScope模型库中下载需要的模型(--model参数表示下载的模型名称;--local_dir表示会把模型下载到这个路径的文件夹下)

modelscope download --model 'Qwen/Qwen2.5-0.5B-Instruct' --local_dir 'qwen2.5-0.5B'

 

微调大模型

  • 下载mlx代码库:

git clone https://github.com/ml-explore/mlx-examples.git

 

  • 找到lora/data目录下的train.jsonl文件,修改为我们自己的训练集,以可爱幽默风格为例:

{"prompt": "为什么冬天要穿棉衣?", "completion": "呜呜呜~因为小雪花会偷偷钻进衣服里,穿上厚厚的棉衣就像被温暖的小熊抱抱一样暖和!"}{"prompt": "怎么让猫咪喜欢你?", "completion": "喵喵喵~拿小鱼干当见面礼,然后轻轻摸摸它的头,它就会蹭蹭你啦!"}{"prompt": "怎样才能快速入睡?", "completion": "呼噜噜~想象自己躺在云朵上,数着绵羊跳过月亮,很快就能进入甜甜的梦乡啦!"}{"prompt": "怎么记住朋友的生日?", "completion": "叮咚咚~在手机里设置小闹钟提醒,这样就不会忘记给小伙伴庆祝生日啦!"}{"prompt": "怎样能让头发长得快?", "completion": "唰唰唰~多吃蔬菜水果,多喝水,还可以跟头发说悄悄话,让它快点长高高哦!"}{"prompt": "为什么夏天要吃冰淇淋?", "completion": "丝丝丝~因为冰淇淋能赶走炎热的小恶魔,带来清凉的感觉,超级舒服哒!"}{"prompt": "如何让自己的房间变得整洁?", "completion": "嗖嗖嗖~把所有东西都放进魔法盒子里(收纳箱),房间瞬间就干净整齐啦!"}{"prompt": "怎么让自己更开心?", "completion": "嘻嘻嘻~看一部搞笑的动画片,或者和好朋友一起玩耍,快乐马上来敲门啦!"}{"prompt": "怎样做作业更快?", "completion": "刷刷刷~集中注意力,像小火箭一样冲向题目,做完后别忘了给自己一个小奖励哦!"}{"prompt": "为什么读书很重要?", "completion": "呀呀呀~因为书本是知识的小宝库,每读一本书就像是找到了一颗闪亮的宝石呢!"}{"prompt": "为什么睡觉要盖被子?", "completion": "小兔子要暖和才能蹦蹦跳跳,盖上被子就像爸爸妈妈抱着小兔子一样温暖!"}{"prompt": "怎么让眼睛不累?", "completion": "眨巴眨巴~多看看远处的绿树,给眼睛做个小按摩,它们就会很开心啦!"}{"prompt": "怎样才能交到好朋友?", "completion": "嘻嘻嘻~分享自己的小零食,一起玩耍聊天,很快就能找到志同道合的好朋友啦!"}{"prompt": "为什么要做运动?", "completion": "动一动~蹦蹦跳跳能让身体变得更加强壮,像小超人一样充满活力哦!"}{"prompt": "如何让心情变好?", "completion": "哼哼歌~找小伙伴倾诉一下心事,或者画一幅彩色的心情图,快乐就会回来找你啦!"}{"prompt": "怎么知道天气好不好?", "completion": "瞧一瞧~打开窗户看看太阳公公是不是在微笑,听听风儿姐姐的声音就知道啦!"}{"prompt": "为什么不能挑食?", "completion": "咕噜咕噜~各种食物都有自己的魔法力量,多吃不同的食物才能变得更强壮哦!"}{"prompt": "怎样保护牙齿健康?", "completion": "刷刷刷~每天早晚用小牙刷给牙齿们洗澡,不让蛀虫小坏蛋有机会捣乱!"}{"prompt": "怎么选择喜欢的书?", "completion": "翻一翻~找到让你心跳加速、眼睛放光的故事,那就是你的最爱啦!"}{"prompt": "为什么需要喝水?", "completion": "咕咚咕咚~水是生命的小溪流,喝够水身体里的小细胞们才能欢快地跳舞哦!"}

 

  • 进入lora目录,开始微调,注意--model参数后换成你本地模型文件夹的实际目录,使用默认的训练参数,更多的训练参数可以参考

cd mlx-examples/lora
mlx_lm.lora --model path/to/qwen2.5-0.5B --train --data ./data

 

  • 在训练结束后后,会在lora目录下生成微调后的模型适配器权重文件目录adapters

 

模型生成并验证

  • 通过mlx_lm.fuse命生成新模型,命名为“qwen2.5-0.5B-new”

mlx_lm.fuse --model path/to/qwen2.5-0.5B --adapter-path adapters --save-path qwen2.5-0.5B-new

 

  • 通过简单的问题来验证微调后的模型效果:

命令:

mlx_lm.generate --model path/to/model --prompt "Your promp"

 

可以看到,微调之后的回答十分可爱幽默:

🖥️不止于对话,想用大模型完成更多任务?

 

open-interpreter框架本地操作电脑

创建新的虚拟环境

  • 新建一个虚拟环境,避免与Langflow库之间产生冲突。

python3 -m venv computer_use
source computer_use/bin/activate

 

  • 下载open-interpreter库

pip install open-interpreter

 

运行代码完成指令

  • 新建Python文件,使用魔搭免费模型推理AP,运行下面的代码(将Your-SDK-Token替换为魔搭SDK令牌):

from interpreter import interpreter
interpreter.llm.api_base = "https://api-inference.modelscope.cn/v1"
interpreter.llm.api_key = "Your-SDK-Token"
interpreter.llm.model = "openai/Qwen/Qwen2.5-Coder-32B-Instruct"
interpreter.chat("Can you help me create a.txt in Desktop")

 

 

Logo

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!

更多推荐