相信很多使用 Mac 计算机的人都由于没有 Nvidia 显卡而无法体验到 Meta 最新的 Llama-3.3-70B-Instruct 而困扰。多数还在安装 ollama 和 llama.cpp 通过 gguf 来体验 Llama-3.3-70B-Instruct 的神奇。现在 mlx 社区开源了 Llama-3.3-70B-Instruct-4bit ,这是通过 mlx-llm 的方式来运行的。
什么是mlx?
MLX 是 Apple Machine Learning Research 为 Apple silicon 提供的模型训练和服务框架,它包含多种示例:
- 使用 MLX-LM 生成文本,使用 MLX-LM 为 GGUF 格式的模型生成文本;
- 使用 LLaMA 生成大规模文本;使用 LoRA 进行微调;
- 使用 Stable Diffusion 生成图像;
- 使用 OpenAI 的 Whisper 进行语音识别。
使用
pip install mlx-lm
from mlx_lm import load, generate
model, tokenizer = load("mlx-community/Llama-3.3-70B-Instruct-4bit")
prompt="hello"
if hasattr(tokenizer, "apply_chat_template") and tokenizer.chat_template is not None:
messages = [{"role": "user", "content": prompt}]
prompt = tokenizer.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)
response = generate(model, tokenizer, prompt=prompt, verbose=True)
mlx 使用 python 语言在内存回收上会比 llama.cpp 和 ollama 要稳定,但是速度就不会比C++的快。个人觉得 Python 易于开发的特性也非常适合初学者,也不用纠结于 gguf 的量化格式。