Aria 项目使用与启动教程
1. 项目介绍
Aria 是一个多模态原生 MoE 模型,它具备以下特点:
- 在各种多模态和语言任务上具有最先进的性能,尤其在视频和文档理解方面表现卓越;
- 拥有长达 64K 令牌的多模态上下文窗口;
- 每个 token 激活 3.9B 参数,可以实现快速的推理速度和低成本的微调。
2. 项目快速启动
首先,确保你已经安装了必要的依赖项。以下是安装 Aria 的基本步骤:
# 安装 Aria
pip install -e .
# 如果你想要为项目贡献代码,可以安装开发依赖
pip install -e .[dev]
# 安装其他依赖
pip install grouped_gemm
pip install flash-attn --no-build-isolation
接下来,是一个使用 Hugging Face Transformers 的 Aria 推理代码示例:
import requests
import torch
from PIL import Image
from transformers import AutoModelForCausalLM, AutoProcessor
# 模型路径
model_id_or_path = "rhymes-ai/Aria"
# 加载模型和处理器
model = AutoModelForCausalLM.from_pretrained(model_id_or_path, device_map="auto", torch_dtype=torch.bfloat16, trust_remote_code=True)
processor = AutoProcessor.from_pretrained(model_id_or_path, trust_remote_code=True)
# 加载图片
image_path = "path/to/your/image.png" # 替换为你的图片路径
image = Image.open(requests.get(image_path, stream=True).raw)
# 创建消息模板
messages = [
{
"role": "user",
"content": [
{"text": None, "type": "image"},
{"text": "这是什么图片?", "type": "text"},
],
}
]
# 应用聊天模板
text = processor.apply_chat_template(messages, add_generation_prompt=True)
# 处理输入
inputs = processor(text=text, images=image, return_tensors="pt")
inputs["pixel_values"] = inputs["pixel_values"].to(model.dtype)
inputs = {k: v.to(model.device) for k, v in inputs.items()}
# 推理
with torch.inference_mode(), torch.cuda.amp.autocast(dtype=torch.bfloat16):
output = model.generate(**inputs, max_new_tokens=500, stop_strings=["<|im_end|>"], tokenizer=processor.tokenizer, do_sample=True, temperature=0.9)
# 解码输出
output_ids = output[0][inputs["input_ids"].shape[1]:]
result = processor.decode(output_ids, skip_special_tokens=True)
print(result)
确保替换 image_path
变量中的路径为你的图片路径。
3. 应用案例和最佳实践
Aria 可以应用于多种场景,例如图表理解、PDF 阅读和视频理解等。以下是一些推理示例,展示了如何在不同应用中使用 Aria:
- 图表理解:分析图表并生成对应的描述性文本。
- PDF 阅读:提取 PDF 文件中的信息并回答相关问题。
- 视频理解:识别视频内容并生成摘要或注释。
具体的示例代码和最佳实践可以在项目的 recipes
目录中找到。
4. 典型生态项目
Aria 的生态项目包括但不限于以下几种:
- PaddleMIX:Aria 在 PaddleMIX 中得到支持。
- Aria-Chat:优化用于开放式和多方对话的模型。
- Aria-Base:提供不同规模的基模型,如 Aria-Base-8K 和 Aria-Base-64K,兼容此代码库的推理和微调。
通过这些生态项目,可以进一步扩展 Aria 的应用范围和功能。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考