self-llm 的 MLX-LM 环境如何配置并首次运行 Gradio 模型下载与对话应用
【免费下载链接】self-llm《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调(全参数/Lora)、部署国内外开源大模型(LLM)/多模态大模型(MLLM)教程项目地址: https://gitcode.com/GitHub_Trending/se/self-llm
如果你有一台搭载 Apple M 系列芯片的 Mac,想用 Apple 原生的 MLX 框架在本地跑大模型推理,self-llm 仓库的models_mlx/目录提供了一条完整路径:配置好 Python 环境后,启动一个集「模型下载」与「模型对话」于一体的 Gradio Web 应用,从 HuggingFace 拉取量化模型到本地,再直接和模型对话。本文基于仓库内 models_mlx/README.md、requirements.txt、run_app_gradio.py 与 modules/download_model.py 的实际内容,给出配置环境、启动应用、下载模型并完成首次对话的操作步骤和成功判断方式。
准备条件
- 一台搭载 Apple M 系列芯片的 Mac。该目录的教程定位是「充分利用 Apple M 系列芯片的性能进行本地推理」(MLX-LM 走 Metal 后端,面向单用户本地场景,这一点在 docs/MLX-LM_Intro.md 的对比表中有所说明)。
- 已安装 Conda,用于创建独立的虚拟环境。
- 已获取 self-llm 仓库,后续命令均需要在
models_mlx/目录下执行(README 中的pip install -r requirements.txt依赖当前目录就是models_mlx/)。
models_mlx/的关键文件如下,理解它们的职责有助于后续操作:
models_mlx/ ├── run_app_gradio.py # Gradio 交互式应用(模型下载 + 对话) ├── requirements.txt # Python 依赖 ├── configs/ # 模型配置(JSON 格式,支持热加载) │ └── model_info/ │ ├── mlx.json # MLX 量化模型列表 │ └── original.json # 原始 HuggingFace 模型列表 ├── modules/ # 功能模块 │ └── download_model.py # 模型下载模块(可独立运行) ├── models/ # 下载的模型存放目录 └── notebooks/ # Jupyter Notebook 教程配置 Conda 环境与安装依赖
在models_mlx/目录外先创建并激活环境,再回到models_mlx/安装依赖:
# 创建 Conda 虚拟环境 conda create -n mlx-lm python=3.11 conda activate mlx-lm cd models_mlx # 安装依赖 pip install -r requirements.txtrequirements.txt 固定了四个依赖版本,安装后环境即满足应用运行要求:
mlx-lm==0.31.1 transformers==4.57.5 gradio==6.9.0 socksio==1.0.0了解模型来源与配置
Gradio 应用和命令行下载工具都从configs/model_info/下的 JSON 文件读取模型列表,两个来源含义不同:
mlx.json(来源选mlx):mlx-community 提供的已量化 MLX 格式模型,界面上标注为「已量化的 MLX 格式(推荐 Mac)」。original.json(来源选original):原始 HuggingFace 模型。
例如 mlx.json 中配置了 Alibaba(QwQ、Qwen1.5、Qwen2、Qwen2.5、Qwen2.5-Coder、Qwen3 等)、DeepSeek、Google(Gemma-2 / Gemma-3)、Meta(Llama-3.1 / Llama-3.2 / Llama-4)、Microsoft、Mistral 等公司的模型;original.json 配置了Qwen/Qwen3-8B、meta-llama/Llama-3.2-3B-Instruct等 HF 仓库名。应用运行时实际以下拉框中出现的选项为准,因为页面加载时会重新读取这两个 JSON(支持热加载)。
如果你需要增加新的模型,编辑configs/model_info/mlx.json或configs/model_info/original.json后,刷新页面或点击界面上的「🔄 刷新」按钮即可生效,无需改动代码。
启动 Gradio 应用
在已激活mlx-lm环境的前提下,于models_mlx/目录执行:
python run_app_gradio.py启动后浏览器会打开 Gradio 页面,标题为「LLM on Mac - 本地大模型交互平台」,包含两个 Tab:📥 模型下载与💬 模型对话。首次使用时先完成下载 Tab 的操作,再切到对话 Tab。
在 Gradio 页面下载第一个模型
- 在「模型来源」单选框中选择
mlx(Mac 上推荐)或original。切换来源后,「公司/组织」「模型系列」「选择模型」三级下拉框会联动刷新。 - 依次选定公司、系列和模型,例如 Alibaba → Qwen3 →
Qwen3-0.6B-4bit。选定模型后,右侧「下载状态」框会给出该模型的 Repo ID 和本地保存路径:mlx来源的 Repo ID 按mlx-community/{模型名}拼接(如mlx-community/Qwen3-0.6B-4bit);original来源的 Repo ID 就是配置中的 HF 仓库名。
- 查看状态提示再决定是否下载:
- 提示「✅ 模型已存在本地,无需下载」且按钮变为「已存在,无需下载」:跳过,直接去对话 Tab;
- 提示「⚠️ 本地未检测到该模型,点击『确认下载』开始下载」:点击「确认下载」开始下载。
- 下载是长任务,状态框会先显示「⏳ 开始下载…」,完成后显示「✅ 下载完成!」并列出 Repo ID、本地路径和耗时(耗时为当次实际测量值,文档未给出固定预期)。
本地检测的依据是模型目录中是否存在config.json:模型按models/{source}/{company}/{series}/{模型名}的目录结构存放(见 modules/download_model.py 中get_local_path与model_exists的实现),因此「已存在」判断实际就是检查该目录下有无config.json。
可选:用终端交互下载模型
不启动 Gradio 也可以在models_mlx/目录直接用命令行完成同样的下载:
python -m modules.download_model它会依次让你选择来源(1 为 mlx,2 为 original,默认 1)、公司、系列和模型编号,已下载的模型会在列表中显示「✅ 已下载」;确认输入y后才开始下载,其余输入会取消。注意该命令会向models/目录写入模型文件,下载前请确认磁盘空间与网络可用。
首次加载模型并对话
切到「💬 模型对话」Tab,操作链路如下:
按「模型来源 → 公司/组织 → 模型系列 → 选择模型」四个下拉框选择刚才下载的模型。这四个框只扫描
models/目录下已有config.json的本地模型,所以新下载的模型如果没出现,先点击「🔄 刷新模型」。选择「推理框架」:
mlx:MLX 后端,支持流式输出;transformers:HuggingFace Transformers 后端,用于original来源的模型。
可选框架会按 JSON 中该系列的
FrameworkInference配置生成,点击「🔄 刷新配置」可重新读取。点击「加载模型」,「加载状态」框返回如下内容即表示成功(耗时为当次实际测量值):
✅ 模型加载成功! 📋 模型: Qwen3-0.6B-4bit 📂 路径: models/mlx/Alibaba/Qwen3/Qwen3-0.6B-4bit 🔧 框架: mlx ⏱️ 耗时: X.XX 秒 现在可以开始对话了 👇在「对话参数」区按需调整参数,界面默认值为:Temperature 0.7(范围 0.0–1.5)、Top-p 0.8(范围 0.0–1.0)、Max Tokens 512(范围 64–2048),「启用思考模式」默认关闭。
在输入框输入问题(例如界面示例按钮中的「请用一句话解释什么是人工智能?」)并回车或点击「发送」。MLX 框架下回复是逐段流式呈现的;输入
⚠️ 请先在上方加载模型之类的提示则说明模型未加载成功,回到第 3 步检查。对话过程中可随时点「🗑️ 清空对话」重置上下文。
结果验证与已知边界
- 下载成功的判断:状态框显示「✅ 下载完成!」,且
models/{source}/{company}/{series}/{模型名}/config.json已生成;之后再选中该模型会显示「✅ 模型已存在本地,无需下载」。 - 加载成功的判断:加载状态框显示「✅ 模型加载成功!」;失败时会显示「❌ 加载失败: 异常信息」,且模型路径不存在时显示「❌ 模型路径不存在」。
- 下载失败的判断:状态框显示「❌ 下载失败: 异常信息」,可据异常内容检查网络或 HF 仓库访问情况。
- 边界说明:
mlx与original两类来源是两条独立的模型链路,下载 Tab 与对话 Tab 的下拉框各自独立刷新,不要把在线下载和本地加载混在同一步里排查;本目录的 Notebook 教程(如 Qwen3_MLX_部署与交互.ipynb)面向不通过 Gradio 直接调用 MLX / Transformers 的场景,首次使用 Gradio 应用时无需执行。
完成以上步骤后,你就在 Apple Silicon 机器上拥有了一个可重复使用的本地模型入口:之后新增模型只需编辑configs/model_info/下的 JSON 并刷新页面,然后走同样的「下载 → 加载 → 对话」流程即可。
【免费下载链接】self-llm《开源大模型食用指南》针对中国宝宝量身打造的基于Linux环境快速微调(全参数/Lora)、部署国内外开源大模型(LLM)/多模态大模型(MLLM)教程项目地址: https://gitcode.com/GitHub_Trending/se/self-llm
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考