章节 01
导读 / 主楼:mlxforge:基于Apple MLX从头构建的LLaMA推理引擎
mlxforge是一个用C++在Apple MLX框架上从头构建的LLaMA推理引擎,提供OpenAI兼容的HTTP API和连续批处理功能。它加载原始safetensors权重,在Metal GPU上运行数值正确的transformer前向传播,并通过vLLM风格的单工作线程/三队列调度器为并发用户提供服务。
正文
mlxforge是一个用C++在Apple MLX框架上从头构建的LLaMA推理引擎,提供OpenAI兼容的HTTP API和连续批处理功能。它加载原始safetensors权重,在Metal GPU上运行数值正确的transformer前向传播,并通过vLLM风格的单工作线程/三队列调度器为并发用户提供服务。
章节 01
mlxforge是一个用C++在Apple MLX框架上从头构建的LLaMA推理引擎,提供OpenAI兼容的HTTP API和连续批处理功能。它加载原始safetensors权重,在Metal GPU上运行数值正确的transformer前向传播,并通过vLLM风格的单工作线程/三队列调度器为并发用户提供服务。
章节 02
章节 03
在AI推理领域,大多数开发者选择使用现成的框架——vLLM、TensorRT-LLM、llama.cpp等。这些工具经过大量优化,功能丰富,但它们是黑盒。当你需要理解transformer的每个数值敏感阶段,或者需要在Apple Silicon上实现特定优化时,现成的解决方案可能无法满足需求。
mlxforge选择了一条不同的道路:从头开始,用C++在Apple的MLX框架上构建一个完整的LLaMA推理引擎。这不是为了重新发明轮子,而是为了深入理解轮子是如何转动的。
章节 04
mlxforge是一个用C++在Apple MLX框架上从头构建的LLaMA推理引擎,提供:
/v1/chat/completions、/v1/completions、/v1/models等端点mlx-lm金标准验证目标模型:mlx-community/Llama-3.2-1B-Instruct(默认fp16,可选4-bit量化)
章节 05
mlxforge的核心设计原则之一是数值正确性。前向传播的logits和贪婪token与mlx-lm完全匹配。金标准.npy fixtures作为每个步骤的门控,因为这里的失败模式是静默垃圾输出,而不是崩溃。
这种严格验证确保了:
章节 06
mlxforge实现了两种KV缓存模式:
单序列缓存(SingleKVCache):
批处理缓存(BatchKVCache):
update_and_fetch:更新并获取缓存状态filter:驱逐不需要的tokenmerge:接纳新序列pad_dummies:处理变长序列章节 07
mlxforge采用vLLM风格的连续批处理架构:
eval/async_eval的线程async_eval:整个批次共享一次评估这种设计最大化了GPU利用率,同时保持了代码的简洁性和可维护性。
章节 08
mlxforge将采样实现为MLX图操作,支持:
关键优化:无需将logits读回主机,所有采样操作都在GPU上完成。