dots.llm1 模型详解

一、引言

dots.llm1 模型是由小红书 rednote 团队开发的大型 MoE(专家混合)模型。该模型在 142B 总参数中激活 14B 参数,通过精心设计的数据处理流程,在 11.2T 高质量非合成数据预训练后,性能媲美 Qwen2.5-72B 等先进模型。为推动研究发展,团队开源了每万亿 token 的中间训练检查点,为大型语言模型的学习动态研究提供了宝贵资料。

二、模型概述

(一)模型规格

  • 类型 :MoE 模型,142B 总参数,推理时激活 14B 参数。

  • 训练阶段 :包括预训练和监督微调(SFT)。

  • 架构 :采用多头注意力机制,注意力层使用 QK-Norm;细粒度 MoE 实现从 128 个路由专家中选取前 6 个加上 2 个共享专家。

  • 层数 :共 62 层。

  • 注意力头数 :32 个。

  • 支持语言 :英语、中文。

  • 上下文长度 :32,768 token。

  • 许可协议 :MIT 协议。

(二)模型亮点

  • 增强数据处理 :提出可扩展的三阶段数据处理框架,为预训练生成大规模、高质量且多样化的数据。

  • 预训练无合成数据 :基础模型预训练使用了 11.2 万亿高质量非合成 token。

  • 性能与成本效率 :开源模型推理时仅激活 14B 参数,兼具全面能力和高计算效率。

  • 创新基础设施 :引入基于交错 1F1B 管道调度和高效分组 GEMM 实现的 MoE 全局通信与计算重叠方案,提升计算效率。

  • 开放模型动态访问 :发布每 1T token 训练的中间模型检查点,助力大型语言模型学习动态的未来研究。

三、使用示例

(一)模型下载

提供 dots.llm1.base 和 dots.llm1.inst 两种模型的下载链接,均托管于 Hugging Face 平台,总参数为 142B,激活参数为 14B,上下文长度均为 32K。

(二)Docker 部署(推荐)

基于 Docker Hub 官方镜像,通过 vllm 启动服务器,命令如下:

docker run --gpus all \
    -v ~/.cache/huggingface:/root/.cache/huggingface \
    -p 8000:8000 \
    --ipc=host \
    rednotehilab/dots1:vllm-openai-v0.9.0.1 \
    --model rednote-hilab/dots.llm1.inst \
    --tensor-parallel-size 8 \
    --trust-remote-code \
    --served-model-name dots1

验证模型运行成功的示例:

curl http://localhost:8000/v1/chat/completions \
    -H "Content-Type: application/json" \
    -d '{
        "model": "dots1",
        "messages": [
            {"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Who won the world series in 2020?"}

"max_tokens": 32,

"temperature": 0

(三)Hugging Face 推理

正在推进将模型整合到 Transformers 中(PR #38143)。文本补全和聊天补全的代码示例如下:

文本补全
import torch

from transformers import AutoTokenizer, AutoModelForCausalLM, GenerationConfig

model_name = "rednote-hilab/dots.llm1.base"
tokenizer = AutoTokenizer.from_pretrained(model_name)

model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto", torch_dtype=torch.float16)

text = "An attention function can be described as mapping a query and a set of key-value "
inputs = tokenizer(text, return_tensors="pt")
outputs = model.generate(**inputs.to(model.device), max_new_tokens=100)
result = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(result)
聊天补全
import torch

from transformers import AutoTokenizer, AutoModelForCausalLM, GenerationConfig

model_name = "rednote-hilab/dots.llm1.inst"
tokenizer = AutoTokenizer.from_pretrained(model_name)

model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto", torch_dtype=torch.float16)

messages = [
    {"role": "user", "content": "Write a piece of quicksort code in C++"}
]

input_tensor = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt")

outputs = model.generate(input_tensor.to(model.device), max_new_tokens=200)

result = tokenizer.decode(outputs[0][input_tensor.shape[1]:], skip_special_tokens=True)
print(result)

(四)vLLM 推理

vLLM 是高吞吐量、内存高效的 LLM 推理和 serving 引擎。官方支持该功能的 PR 为 #18254。启动命令如下:

vllm serve dots.llm1.inst --port 8000 --tensor-parallel-size 8

OpenAI 兼容 API 可在http://localhost:8000/v1访问。

(五)SGLang 推理

SGLang 是大型语言模型和视觉语言模型的快速 serving 框架。官方支持该功能的 PR 为 #6471。启动服务器命令如下:

python -m sglang.launch_server --model-path dots.llm1.inst --tp 8 --host 0.0.0.0 --port 80

OpenAI 兼容 API 可在http://localhost:8000/v1访问。

四、评估结果

详细的评估结果报告在 论文链接 中有详细说明。

五、核心技术汇总

在这里插入图片描述

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐