一个跨平台的本地大语言模型推理系统,支持 Apple Silicon (MPS)、CUDA 和 CPU,可以在个人电脑上轻松运行各种开源大模型。
- 🚀 多平台支持: 自动检测并使用最优加速方案
- Apple Silicon (M1/M2/M3) - MLX 原生优化
- NVIDIA GPU - CUDA 加速
- CPU - 通用兼容
- 💬 多轮对话: 支持上下文记忆的对话功能
- 🎯 模型切换: 轻松切换不同的开源模型
- 📦 开箱即用: 自动下载和配置模型
- ⚡ 流式输出: 实时显示生成内容,体验更流畅
- 📝 日志记录: 完整的系统运行日志,方便调试和问题追踪
- 💾 对话历史: 自动保存用户与 AI 的对话记录
- 🔒 离线运行: 支持完全离线使用已下载的模型
- Qwen2.5 系列 (1.5B / 7B / 14B)
- Llama 3.2 系列
- Gemma 2 系列
- 其他 Hugging Face 兼容模型
- Python 3.9+
- macOS 12.3+ (使用 MLX) 或其他操作系统
- 至少 8GB RAM (推荐 16GB+)
- 克隆项目
git clone https://github.com/Dajucoder/LLM-Local.git
cd LLM-Local- 创建虚拟环境
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate- 安装依赖
对于 Apple Silicon (M1/M2/M3):
pip install -r requirements-mlx.txt对于 NVIDIA GPU (CUDA):
pip install -r requirements-cuda.txt对于通用 CPU:
pip install -r requirements.txt./run.sh脚本会自动创建虚拟环境、安装依赖并启动程序。
python main.py程序会自动检测你的硬件并选择最优的推理引擎。
使用 MLX (Apple Silicon):
python main.py --backend mlx使用 PyTorch (CUDA/CPU):
python main.py --backend pytorchMLX 版本:
python src/inference/mlx_inference.pyPyTorch 版本:
python src/inference/pytorch_inference.py编辑 config/config.yaml 文件来自定义配置:
model:
default_model: "Qwen/Qwen2.5-1.5B-Instruct"
torch_dtype: "float16"
max_new_tokens: 512
temperature: 0.7
top_p: 0.9
system:
device_preference: "auto" # auto / mps / cuda / cpu
logging:
log_dir: "./logs" # 日志目录
console_output: true # 控制台输出
file_output: true # 文件输出
advanced:
cache_dir: "./models" # 模型存储位置
log_level: "INFO" # 日志级别系统提供完整的日志记录功能:
# 列出所有日志文件
python view_logs.py list
# 查看最新日志
python view_logs.py view
# 查看指定日志文件
python view_logs.py view logs/llm-local_20251127.log
# 只查看错误日志
python view_logs.py view --level ERROR
# 搜索关键词
python view_logs.py view --search "模型加载"
# 查看最后 100 行
python view_logs.py view -n 100# 分析最新日志
python view_logs.py analyze
# 分析指定日志
python view_logs.py analyze logs/llm-local_20251127.log# 预览要删除的文件(7天前)
python view_logs.py clean --days 7
# 实际删除
python view_logs.py clean --days 7 --execute# 启用详细日志
python main.py --debugLLM-Local/
├── src/
│ ├── inference/ # 推理引擎
│ │ ├── pytorch_inference.py # PyTorch 实现(CUDA/CPU)
│ │ └── mlx_inference.py # MLX 实现(Apple Silicon)
│ ├── utils/ # 工具模块
│ │ ├── device_manager.py # 设备检测和管理
│ │ ├── config_manager.py # 配置管理
│ │ └── logger.py # 日志管理(含对话日志)
│ └── models/ # 模型相关
├── models/ # 模型存储目录
│ └── hub/ # HuggingFace 模型缓存
├── logs/ # 日志目录
│ ├── llm-local_*.log # 系统运行日志
│ └── chat_history_*.log # 对话历史日志
├── config/
│ └── config.yaml # 配置文件
├── docs/ # 文档
├── examples/ # 示例代码
├── tests/ # 测试
├── main.py # 主入口
├── requirements.txt # 基础依赖
├── requirements-mlx.txt # MLX 依赖
├── requirements-cuda.txt # CUDA 依赖
├── setup.py # 安装配置
└── README.md # 说明文档
from src.inference.pytorch_inference import PyTorchInference
# 创建推理实例
inference = PyTorchInference(model_id="Qwen/Qwen2.5-1.5B-Instruct")
# 单轮对话
response = inference.generate("你好,介绍一下你自己")
print(response)
# 多轮对话
messages = [
{"role": "system", "content": "你是一个有帮助的AI助手"},
{"role": "user", "content": "什么是机器学习?"}
]
response = inference.chat(messages)
print(response)模型默认下载到项目根目录的 models 文件夹中。你可以在 config/config.yaml 中修改:
advanced:
cache_dir: "./models" # 模型存储位置设置 HuggingFace 镜像:
export HF_ENDPOINT=https://hf-mirror.com尝试使用更小的模型或量化版本:
- Qwen2.5-1.5B-Instruct (推荐入门)
- 使用 4-bit 量化版本
确保使用 MLX 版本以获得最佳性能。
欢迎提交 Issue 和 Pull Request!
MIT License - 详见 LICENSE
- 作者: Dajucoder
- 项目主页: https://github.com/Dajucoder/LLM-Local
- 问题反馈: https://github.com/Dajucoder/LLM-Local/issues
- 邮件:atriciaf8025@gmail.com
⭐ 如果这个项目对你有帮助,请给个 Star!