MiniMax-01 项目使用说明

MiniMax-01 项目使用说明

【免费下载链接】MiniMax-01 The official repo of MiniMax-Text-01 and MiniMax-VL-01, large-language-model & vision-language-model based on Linear Attention 【免费下载链接】MiniMax-01 项目地址: https://gitcode.com/gh_mirrors/mi/MiniMax-01

🚀 项目概述

MiniMax-01 是 MiniMax 公司推出的两款革命性大模型:MiniMax-Text-01(456B参数语言模型)和 MiniMax-VL-01(多模态视觉语言模型)。这两个模型基于创新的 Lightning Attention(闪电注意力)架构,支持超长上下文处理(最高400万token),在多项学术基准测试中达到顶尖水平。

📊 核心特性对比

特性维度MiniMax-Text-01MiniMax-VL-01
模型类型纯文本语言模型多模态视觉语言模型
总参数量456B456B + 303M ViT
激活参数45.9B/token45.9B/token
上下文长度训练1M,推理4M支持动态分辨率
注意力机制混合注意力架构ViT-MLP-LLM框架
专家系统32专家,Top-2路由32专家,Top-2路由

🛠️ 环境准备

硬件要求

  • GPU: 推荐8×H800或8×H20 GPU
  • 内存: 根据模型大小配置充足显存
  • 存储: 预留足够的磁盘空间存放模型权重

软件依赖

# 基础依赖
pip install transformers==4.47.1
pip install accelerate==1.2.1
pip install torch

# 量化支持
pip install optimum-quanto==0.2.1
pip install quanto==0.2.0

# Flash Attention 加速(可选)
pip install -U flash-attn --no-build-isolation

📥 模型获取

从 HuggingFace 下载

# 下载 MiniMax-Text-01
pip install -U huggingface-hub
huggingface-cli download MiniMaxAI/MiniMax-Text-01

# 下载 MiniMax-VL-01  
huggingface-cli download MiniMaxAI/MiniMax-VL-01

# 国内网络优化
export HF_ENDPOINT=https://hf-mirror.com

Git LFS 下载

# 安装 Git LFS
git lfs install

# 克隆模型仓库
git clone https://huggingface.co/MiniMaxAI/MiniMax-Text-01
git clone https://huggingface.co/MiniMaxAI/MiniMax-VL-01

🚀 快速开始

MiniMax-Text-01 基础使用

from transformers import AutoModelForCausalLM, AutoTokenizer, AutoConfig, QuantoConfig, GenerationConfig

# 配置量化参数
hf_config = AutoConfig.from_pretrained("MiniMaxAI/MiniMax-Text-01", trust_remote_code=True)
quantization_config = QuantoConfig(
    weights="int8",
    modules_to_not_convert=[
        "lm_head", "embed_tokens",
        *[f"model.layers.{i}.coefficient" for i in range(hf_config.num_hidden_layers)],
        *[f"model.layers.{i}.block_sparse_moe.gate" for i in range(hf_config.num_hidden_layers)]
    ]
)

# 设备映射配置(8 GPU)
device_map = {
    'model.embed_tokens': 'cuda:0',
    'model.norm': 'cuda:7', 
    'lm_head': 'cuda:7'
}
for i in range(8):
    for j in range(10):  # 80层/8GPU=10层每GPU
        device_map[f'model.layers.{i*10+j}'] = f'cuda:{i}'

# 加载模型和分词器
tokenizer = AutoTokenizer.from_pretrained("MiniMaxAI/MiniMax-Text-01")
model = AutoModelForCausalLM.from_pretrained(
    "MiniMaxAI/MiniMax-Text-01",
    torch_dtype="bfloat16",
    device_map=device_map,
    quantization_config=quantization_config,
    trust_remote_code=True,
    offload_buffers=True,
)

# 构建对话提示
messages = [
    {"role": "system", "content": [{"type": "text", "text": "你是基于MiniMax-Text-01模型的智能助手。"}]},
    {"role": "user", "content": [{"type": "text", "text": "你好!"}]},
]
text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)

# 生成响应
model_inputs = tokenizer(text, return_tensors="pt").to("cuda")
generation_config = GenerationConfig(
    max_new_tokens=100,
    eos_token_id=200020,
    use_cache=True,
)
generated_ids = model.generate(**model_inputs, generation_config=generation_config)
response = tokenizer.decode(generated_ids[0][len(model_inputs.input_ids[0]):], skip_special_tokens=True)
print(response)

MiniMax-VL-01 多模态使用

from transformers import AutoModelForCausalLM, AutoProcessor, AutoConfig, QuantoConfig, GenerationConfig
from PIL import Image
import json
import os

# 加载处理器
processor = AutoProcessor.from_pretrained("MiniMaxAI/MiniMax-VL-01", trust_remote_code=True)

# 构建多模态对话
messages = [
    {"role": "system", "content": [{"type": "text", "text": "你是基于MiniMax-VL-01模型的多模态助手。"}]},
    {"role": "user", "content": [
        {"type": "image", "image": "placeholder"},
        {"type": "text", "text": "描述这张图片。"}
    ]},
]

# 处理图像和文本
raw_image = Image.open("example.jpg")
prompt = processor.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
model_inputs = processor(images=[raw_image], text=prompt, return_tensors='pt').to('cuda').to(torch.bfloat16)

# 生成图像描述
generated_ids = model.generate(**model_inputs, max_new_tokens=100)
response = processor.tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(response)

⚡ 性能优化配置

Flash Attention 加速

model = AutoModelForCausalLM.from_pretrained(
    "MiniMaxAI/MiniMax-Text-01",
    trust_remote_code=True,
    torch_dtype=torch.float16,
    attn_implementation="flash_attention_2",
    device_map="auto"
)

量化配置选项

mermaid

🐳 Docker 部署方案

vLLM 服务部署

# 拉取官方镜像
docker pull vllm/vllm-openai:v0.8.3

# 运行MiniMax-Text-01服务
docker run -it --gpus all \
  -v /path/to/models:/models \
  vllm/vllm-openai:v0.8.3 \
  python3 -m vllm.entrypoints.api_server \
  --model /models/MiniMax-Text-01 \
  --tensor-parallel-size 8 \
  --trust-remote-code \
  --quantization experts_int8 \
  --max_model_len 4096 \
  --dtype bfloat16

📋 部署配置参数表

参数说明推荐值
--tensor-parallel-size张量并行大小8
--quantization量化方式experts_int8
--max_model_len最大模型长度4096
--dtype数据类型bfloat16
--gpu-memory-utilizationGPU内存利用率0.8
--max_num_seqs最大序列数8
--enable-chunked-prefill启用分块预填充true

🔧 常见问题解决

1. 模块加载错误

# 解决方案:从源码编译vLLM
git clone https://github.com/vllm-project/vllm.git
cd vllm && pip install -e .

2. 内存不足问题

  • 减少--max_model_len参数
  • 降低--gpu-memory-utilization
  • 使用更激进的量化策略

3. 性能优化建议

mermaid

🎯 最佳实践指南

1. 设备映射策略

# 均衡分配模型层到多个GPU
layers_per_device = config.num_hidden_layers // world_size
for i in range(world_size):
    for j in range(layers_per_device):
        device_map[f'model.layers.{i*layers_per_device+j}'] = f'cuda:{i}'

2. 内存优化配置

# 使用offload_buffers减少内存占用
model = AutoModelForCausalLM.from_pretrained(
    model_path,
    offload_buffers=True,  # 卸载缓冲区到CPU
    device_map="auto",
    torch_dtype="bfloat16"
)

3. 批量处理优化

# 使用vLLM进行批量推理
from vllm import LLM, SamplingParams

llm = LLM(model="MiniMaxAI/MiniMax-Text-01")
sampling_params = SamplingParams(temperature=0.8, top_p=0.95)
outputs = llm.generate(["Hello!", "How are you?"], sampling_params)

📊 性能基准测试

根据官方测试数据,MiniMax-01系列模型在以下基准中表现优异:

文本理解能力(MMLU)

模型得分
GPT-4o85.7
Claude-3.5-Sonnet88.3
MiniMax-Text-0188.5

长上下文处理(Ruler基准)

mermaid

🚨 注意事项

  1. 许可证要求: 使用前请阅读并同意 MODEL LICENSECODE LICENSE
  2. 硬件需求: 确保有足够的GPU内存,推荐使用8张H800或H20 GPU
  3. 版本兼容性:
    • MiniMax-Text-01 需要 vLLM ≥ 0.8.3
    • MiniMax-VL-01 需要 vLLM ≥ 0.8.6
  4. 量化策略: INT8量化需要至少8个GPU,否则可能性能下降

📞 技术支持

如果在使用过程中遇到问题,可以通过以下方式获取支持:

  • 📧 官方邮箱: model@minimax.io
  • 📖 查看详细文档: 项目README文件
  • 🐛 提交Issue: 项目GitHub仓库

提示: 本文档基于MiniMax-01项目最新版本编写,具体使用时请以官方最新文档为准。建议定期检查项目更新以获取最新的功能优化和性能改进。

【免费下载链接】MiniMax-01 The official repo of MiniMax-Text-01 and MiniMax-VL-01, large-language-model & vision-language-model based on Linear Attention 【免费下载链接】MiniMax-01 项目地址: https://gitcode.com/gh_mirrors/mi/MiniMax-01

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值