【小红书拥抱开源】小红书开源大规模混合专家模型——dots.llm1

发布于:2025-06-08 ⋅ 阅读:(20) ⋅ 点赞:(0)

在这里插入图片描述

dots.llm1模型是一个大规模混合专家模型(MoE),在总计1420亿参数中激活140亿参数,其性能与最先进模型相当。通过我们精心设计的高效数据处理流程,dots.llm1在预训练11.2万亿高质量token(未使用合成数据)后,性能已可比拟Qwen2.5-72B。为促进进一步研究,我们每训练1万亿token就会开源中间检查点,为大型语言模型的学习动态研究提供宝贵洞见。

在这里插入图片描述

模型概要

该仓库包含基础版和指令微调版的dots.llm1模型,具有以下特性:

  • 类型:采用混合专家(MoE)架构的模型,激活参数140亿,总参数量1420亿,训练数据量11.2万亿token
  • 训练阶段:预训练与监督微调(SFT)
  • 架构:注意力层采用多头注意力机制与QK标准化,细粒度MoE结构从128个路由专家中动态选择前6个,另含2个共享专家
  • 层数:62
  • 注意力头数:32
  • 支持语言:英语、中文
  • 上下文长度:32,768个token
  • 许可协议:MIT

dots.llm1的核心亮点包括:

  • 增强的数据处理框架:我们提出可扩展且细粒度的三阶段数据处理框架,专门用于生成大规模、高质量且多样化的预训练数据。
  • 预训练阶段零合成数据:基础模型预训练使用了11.2万亿个真实场景产生的高质量文本标记(token)。
  • 性能与成本效率:该开源模型推理时仅激活140亿参数,兼具全面能力与高效计算特性。
  • 基础设施创新:基于交错式1F1B流水线调度技术,我们研发了创新的混合专家全互联通信与计算重叠方案,配合高效分组GEMM实现显著提升计算效率。
  • 模型动态开放研究:每训练1万亿标记即发布中间模型检查点,为大型语言模型学习机制研究提供宝贵资源。

Example Usage

模型下载

模型 参数总量 激活参数量 上下文长度 下载链接
dots.llm1.base 142B 14B 32K 🤗 Hugging Face
dots.llm1.inst 142B 14B 32K 🤗 Hugging Face

Docker (推荐)

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
    }'

使用HuggingFace进行推理

我们正在努力将其合并到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.bfloat16)

text = "An attention function can be described as mapping a query and a set of key-value pairs to an output, where the query, keys, values, and output are all vectors. The output is"
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.bfloat16)

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 是一个面向大语言模型的高吞吐量且内存高效的推理与服务引擎。PR #18254 中提供了对该功能的官方支持。

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

OpenAI兼容API将提供在http://localhost:8000/v1.

使用sglang进行推理

SGLang 是一个用于大型语言模型和视觉语言模型的快速服务框架。SGLang可用于启动具有OpenAI兼容API服务的服务器。该功能的官方支持包含在PR #6471中。

只需运行以下命令即可开始使用:

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

A一个OpenAI兼容的API将在 http://localhost:8000/v1.


网站公告

今日签到

点亮在社区的每一天
去签到