Files
datawhalechina--self-llm/models_mlx/README.md
T
2026-07-13 12:59:13 +08:00

102 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
本教程旨在帮助用户基于苹果原生框架[MLX-LM](https://github.com/ml-explore/mlx-lm) 部署和使用大模型,以便于充分利用 Apple M 系列芯片的性能进行本地推理。
## 🔧 环境配置
```bash
# 创建 Conda 虚拟环境
conda create -n mlx-lm python=3.11
conda activate mlx-lm
# 安装依赖
pip install -r requirements.txt
```
## 📁 项目结构
```
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 教程
│ ├── Qwen3_MLX_部署与交互.ipynb
│ └── Qwen3_Transformers_部署与交互.ipynb
└── docs/ # 文档
└── MLX-LM_Intro.md # MLX 框架简介
```
## 📖 教程内容
### 理论部分
<table align="center">
<tr>
<td valign="top" width="25%">
• <a href="./docs/MLX-LM_Intro.md">MLX框架简介</a><br>
</td>
</tr>
</table>
### Notebook 教程
| Notebook | 说明 |
|----------|------|
| [Qwen3_MLX_部署与交互](./notebooks/Qwen3_MLX_部署与交互.ipynb) | 使用 MLX 框架部署 Qwen3Apple Silicon 推荐) |
| [Qwen3_Transformers_部署与交互](./notebooks/Qwen3_Transformers_部署与交互.ipynb) | 使用 Transformers 框架部署 Qwen3(通用兼容) |
### Gradio 交互应用
集模型下载与对话为一体的 Web 界面,支持:
- **模型下载**:按 公司 → 系列 → 模型 三级选择,自动检测本地是否已下载
- **模型对话**:支持 MLX / Transformers 双框架,MLX 支持流式输出
- **参数调节**Temperature、Top-p、Max Tokens、思考模式
- **热加载**:修改 `configs/` 下的 JSON 配置后,刷新页面或点击刷新按钮即可生效
```bash
python run_app_gradio.py
```
### 命令行下载模型
也可以通过命令行交互式下载模型(无需启动 Gradio):
```bash
python -m modules.download_model
```
## 🚀 支持模型
模型列表通过 `configs/` 目录下的 JSON 文件配置。
| 公司 | 系列 | 模型列表 |
|------|------|-------------------|
| Alibaba | QwQ | `QwQ-0.5B-4bit` |
| Alibaba | Qwen1.5 | `Qwen1.5-0.5B-Chat-4bit`<br>`Qwen1.5-1.8B-Chat-4bit`<br>`Qwen1.5-MoE-A2.7B-4bit`<br>`Qwen1.5-MoE-A2.7B-Chat-4bit` |
| Alibaba | Qwen2 | `Qwen2-0.5B-Instruct-4bit`<br>`Qwen2-1.5B-4bit`<br>`Qwen2-1.5B-Instruct-4bit` |
| Alibaba | Qwen2-Math | `Qwen2-Math-1.5B-Instruct-4bit` |
| Alibaba | Qwen2.5 | `Qwen2.5-0.5B-4bit`<br>`Qwen2.5-0.5B-Instruct-4bit`<br>`Qwen2.5-1.5B-4bit`<br>`Qwen2.5-1.5B-Instruct-4bit`<br>`Qwen2.5-3B-4bit`<br>`Qwen2.5-3B-Instruct-4bit` |
| Alibaba | Qwen2.5-Coder | `Qwen2.5-Coder-0.5B-4bit`<br>`Qwen2.5-Coder-0.5B-Instruct-4bit`<br>`Qwen2.5-Coder-1.5B-4bit`<br>`Qwen2.5-Coder-1.5B-Instruct-4bit`<br>`Qwen2.5-Coder-3B-4bit`<br>`Qwen2.5-Coder-3B-Instruct-4bit` |
| Alibaba | Qwen2.5-Math | `Qwen2.5-Math-1.5B-4bit`<br>`Qwen2.5-Math-1.5B-Instruct-4bit` |
| Alibaba | Qwen3 | `Qwen3-0.6B-4bit`<br>`Qwen3-0.6B-Base-4bit`<br>`Qwen3-1.7B-4bit` |
| Alibaba | Qwen3.5 | `Qwen3.5-0.8B-4bit`<br>`Qwen3.5-2B-4bit` |
| DeepSeek | DeepSeek-R1 | `DeepSeek-R1-Distill-Qwen-1.5B-4bit` |
| DeepSeek | DeepSeek-V3 | - |
| Google | Gemma-2 | `gemma-2-2b-4bit`<br>`gemma-2-2b-it-4bit`<br>`gemma-2-2b-jpn-it-4bit`<br>`gemma-2-baku-2b-it-4bit` |
| Google | Gemma-3 | `gemma-3-1b-it-4bit`<br>`gemma-3-1b-pt-4bit`<br>`gemma-3-270m-4bit`<br>`gemma-3-270m-it-4bit` |
| Meta | Llama-3.1 | - |
| Meta | Llama-3.2 | `Llama-3.2-1B-Instruct-4bit`<br>`Llama-3.2-3B-Instruct-4bit` |
| Meta | Llama-4 | - |
| Microsoft | Phi-2 | `phi-2-super-4bit` |
| Microsoft | Phi-4 | - |
| Mistral | Mistral | `Ministral-3-3B-Instruct-2512-4bit`<br>`Ministral-3-3B-Reasoning-2512-4bit` |
| Moonshot | Kimi | - |
如需添加新模型,编辑 `configs/model_info/mlx.json``configs/model_info/original.json` 即可。