Python mlx-lm 入门指南

1 mlx-lm 简介

mlx-lm 是一个功能强大的 Python 库,专为在 Apple 芯片上运行和微调大型语言模型(LLM)而设计。 它构建于 Apple 的 MLX 框架之上,该框架专为在 Apple 硬件上实现高性能机器学习而优化。 mlx-lm 可以让您轻松下载、运行和自定义各种大型语言模型。

本指南将引导您完成环境设置、必要软件包安装以及运行预训练模型的过程。

2 环境设置

我们将使用 uv 来创建虚拟环境并管理我们的依赖项。

Code
# 初始化一个新的虚拟环境
uv init
Code
# 安装所需的软件包
uv add mlx-lm nbclient nbformat

让我们验证一下我们正在使用的 Python 版本。

Code
import sys
print(sys.version)

3 运行预训练模型

现在我们的环境已经设置好,我们可以下载并运行一个预训练的 LLM。

3.1 加载模型和分词器

我们将使用 mlx_lm 中的 load 函数来下载并加载模型及其对应的分词器。在本例中,我们使用的是来自 mlx-community Hugging Face 组织的 Mistral-7B-Instruct-v0.3 模型的 4 位量化版本。

Code
from mlx_lm import load, generate

# 加载预训练模型和分词器
model, tokenizer = load("mlx-community/Mistral-7B-Instruct-v0.3-4bit")

3.2 生成文本

模型和分词器加载后,我们可以使用 generate 函数根据提示生成文本。

Code
# 定义提示
prompt = "写一个关于爱因斯坦的故事"

# 使用聊天模板格式化提示
messages = [{"role": "user", "content": prompt}]
formatted_prompt = tokenizer.apply_chat_template(
    messages, add_generation_prompt=True
)

# 生成文本
text = generate(model, tokenizer, prompt=formatted_prompt, verbose=True)
text

4 结论

mlx-lm 提供了一种在 Apple 芯片上使用大型语言模型的简单高效的方法。 它与 MLX 框架的集成确保了最佳性能,使其成为希望在 Apple 设备上利用 LLM 强大功能的开发人员和研究人员的绝佳选择。

5 参考资料