Kimi-VL:一款高效的视觉语言模型
项目介绍
Kimi-VL 是一款开源的 Mixture-of-Experts (MoE) 视觉语言模型(VLM),它集成了高级的多模态推理、长上下文理解以及强大的 Agent 能力,同时在语言解码器中仅激活了 2.8B 个参数(Kimi-VL-A3B)。作为一款多功能视觉语言模型,Kimi-VL 在多轮 Agent 交互任务中表现出色,达到了与旗舰级模型相媲美的最先进结果。此外,它在各种具有挑战性的视觉语言任务中,如大学生级别的图像和视频理解、光学字符识别(OCR)、数学推理、多图像理解等,也展现了卓越的能力。
项目技术分析
Kimi-VL 采用了 MoE 语言模型、原生分辨率视觉编码器(MoonViT)和 MLP 投影器。这种架构设计使得模型在处理长上下文和清晰感知方面具有优势。MoonViT 视觉编码器能够处理超高分辨率的视觉输入,而不会增加计算成本,这使得 Kimi-VL 在多种视觉任务中表现出色。
项目技术应用场景
Kimi-VL 适用于多种多样的应用场景,包括但不限于:
- 多模态感知与理解
- 光学字符识别(OCR)
- 长视频和长文档处理
- 视频感知
- Agent 交互任务
对于需要高级文本和视觉推理的任务,如数学问题,Kimi-VL 的变体 Kimi-VL-Thinking 通过长链式推理(CoT)监督微调和强化学习,提供了强大的长距离推理能力。
项目特点
Kimi-VL 具有以下显著特点:
- 高效激活参数:激活参数仅为 2.8B,保持了较低的模型复杂性。
- 长上下文处理:支持 128K 的扩展上下文窗口,能够处理长而多样的输入。
- 超分辨率处理:原生分辨率的视觉编码器使得模型能够处理超高分辨率的视觉输入。
- 强大的推理能力:Kimi-VL-Thinking 变体提供了强大的长距离推理能力,适用于复杂的数学和逻辑推理任务。
在性能方面,Kimi-VL 可以稳健地处理多种任务,如细粒度感知、数学问题、大学生级别问题、OCR、Agent 任务等,适用于各种输入形式,如单张图像、多张图像、视频、长文档等。与现有的 10B 级别密集 VLMs 和 DeepSeek-VL2 相比,Kimi-VL 在性能上具有明显优势。
使用方法
环境设置
conda create -n kimi-vl python=3.10 -y
conda activate kimi-vl
pip install -r requirements.txt
模型下载
模型可以通过以下链接下载:
- Kimi-VL-A3B-Instruct:适用于通用多模态感知和推理任务
- Kimi-VL-A3B-Thinking:适用于高级文本和视觉推理任务,如数学问题
推理示例
以下是一个使用 Hugging Face Transformers 库进行推理的示例:
from PIL import Image
from transformers import AutoModelForCausalLM, AutoProcessor
model_path = "moonshotai/Kimi-VL-A3B-Instruct"
model = AutoModelForCausalLM.from_pretrained(model_path)
processor = AutoProcessor.from_pretrained(model_path)
image_path = "./figures/demo.png"
image = Image.open(image_path)
messages = [
{"role": "user", "content": [{"type": "image", "image": image_path}, {"type": "text", "text": "What is the dome building in the picture? Think step by step."}]}
]
text = processor.apply_chat_template(messages, add_generation_prompt=True)
inputs = processor(images=image, text=text, return_tensors="pt", padding=True, truncation=True)
generated_ids = model.generate(**inputs, max_new_tokens=512)
response = processor.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(response)
通过上述介绍,我们可以看到 Kimi-VL 是一款功能强大、应用广泛的视觉语言模型,无论是在学术研究还是实际应用中,都具有很高的价值和潜力。