项目介绍:MLX-VLM
MLX-VLM 是一个专为 Mac 用户开发的工具包,旨在进行视觉语言模型(Vision Language Models,简称 VLMs)的推理和微调。它依托于 MLX 技术,支持用户通过命令行接口、图形用户界面和 Python 脚本与模型进行互动。
安装指南
安装 MLX-VLM 最简单的方法是利用 pip 命令:
pip install mlx-vlm
使用方式
MLX-VLM 提供了多种使用方式,满足用户不同的需求和习惯。
命令行接口(CLI)
用户可以通过命令行生成模型输出。例如,可以使用以下命令生成一张图片的描述:
python -m mlx_vlm.generate --model mlx-community/Qwen2-VL-2B-Instruct-4bit --max-tokens 100 --temp 0.0 --image http://images.cocodataset.org/val2017/000000039769.jpg
Gradio 聊天界面
使用 Gradio 启动聊天界面,与模型进行互动:
python -m mlx_vlm.chat_ui --model mlx-community/Qwen2-VL-2B-Instruct-4bit
Python 脚本
在 Python 中,用户可以通过脚本进行更精细的控制和操作。下面是一个简单的例子:
import mlx.core as mx
from mlx_vlm import load, generate
from mlx_vlm.prompt_utils import apply_chat_template
from mlx_vlm.utils import load_config
# 加载模型
model_path = "mlx-community/Qwen2-VL-2B-Instruct-4bit"
model, processor = load(model_path)
config = load_config(model_path)
# 准备输入
image = ["http://images.cocodataset.org/val2017/000000039769.jpg"]
prompt = "Describe this image."
# 应用聊天模板
formatted_prompt = apply_chat_template(
processor, config, prompt, num_images=len(image)
)
# 生成输出
output = generate(model, processor, image, formatted_prompt, verbose=False)
print(output)
多图聊天支持
MLX-VLM 可以同时分析多张图片,使得在同一对话中进行更复杂的视觉推理任务和综合分析成为可能。
支持的模型
以下模型支持多图聊天功能:
- Idefics 2
- LLaVA (交错)
- Qwen2-VL
- Phi3-Vision
- Pixtral
使用示例
Python 脚本
用户可以通过以下 Python 脚本进行多图分析:
from mlx_vlm import load, generate
from mlx_vlm.prompt_utils import apply_chat_template
from mlx_vlm.utils import load_config
model_path = "mlx-community/Qwen2-VL-2B-Instruct-4bit"
model, processor = load(model_path)
config = load_config(model_path)
images = ["path/to/image1.jpg", "path/to/image2.jpg"]
prompt = "Compare these two images."
formatted_prompt = apply_chat_template(
processor, config, prompt, num_images=len(images)
)
output = generate(model, processor, images, formatted_prompt, verbose=False)
print(output)
命令行
用户也可以通过命令行进行多图比较:
python -m mlx_vlm.generate --model mlx-community/Qwen2-VL-2B-Instruct-4bit --max-tokens 100 --prompt "Compare these images" --image path/to/image1.jpg path/to/image2.jpg
这些示例展示了如何利用 MLX-VLM 的多图支持功能来进行更复杂的视觉推理任务。
模型微调
MLX-VLM 支持通过 LoRA 和 QLoRA 对模型进行微调,使用户能够根据具体需求优化模型性能。
LoRA & QLoRA
关于 LoRA 的更多信息,请查阅 LoRA.md 文件。