许可证:Apache-2.0
标签:
模型详情
北极(Arctic)是由雪花AI研究团队从头预训练的密集混合专家(MoE)混合架构Transformer模型。我们以Apache-2.0许可证发布了北极的基础版本和指令调优版本的模型检查点,这意味着您可以在自己的研究、原型和产品中自由使用它们。更多关于北极的信息及其他相关资源(如涵盖训练自定义MoE模型、生成高质量训练数据等主题的系列手册),请参阅我们的博客:雪花北极:企业AI的最佳大语言模型——高效智能,真正开放。
关于雪花北极的最新详情(包括教程等),请参考我们的GitHub仓库:
- https://github.com/Snowflake-Labs/snowflake-arctic
模型开发者 雪花AI研究团队
许可证 Apache-2.0
输入 模型仅接受文本输入。
输出 模型仅生成文本和代码。
模型发布日期 2024年4月24日。
模型架构
北极结合了100亿参数的密集Transformer模型和残差结构的128x3.66B MoE多层感知机(MLP),总参数量达4800亿,其中通过Top-2门控机制激活的参数量为170亿。有关北极模型架构、训练过程、数据等更多细节,请参阅我们的系列手册。
使用方法
北极目前通过transformers
库支持,需利用自定义代码功能。使用时只需在AutoTokenizer
和AutoModelForCausalLM
调用中添加trust_remote_code=True
参数。建议使用4.39.0或更高版本的transformers
:
pip install transformers>=4.39.0
北极利用了DeepSpeed的多个特性,需安装0.14.2或更高版本的DeepSpeed:
pip install deepspeed>=0.14.2
推理示例
由于模型规模较大,建议使用云服务商的8xH100实例,例如:AWS的p5.48xlarge、Azure的ND96isr_H100_v5等。
以下示例使用DeepSpeed后端提供的FP8量化(也可通过QuantizationConfig
中的q_bits=6
指定FP6量化)。max_memory
需设置为"150GiB"
,直至DeepSpeed的FP量化被原生支持为HFQuantizer(我们正在积极开发此功能)。
import os
os.environ["HF_HUB_ENABLE_HF_TRANSFER"] = "1"
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from deepspeed.linear.config import QuantizationConfig
tokenizer = AutoTokenizer.from_pretrained(
"Snowflake/snowflake-arctic-instruct",
trust_remote_code=True
)
quant_config = QuantizationConfig(q_bits=8)
model = AutoModelForCausalLM.from_pretrained(
"Snowflake/snowflake-arctic-instruct",
trust_remote_code=True,
low_cpu_mem_usage=True,
device_map="auto",
ds_quantization_config=quant_config,
max_memory={i: "150GiB" for i in range(8)},
torch_dtype=torch.bfloat16)
content = "5x + 35 = 7x - 60 + 10. 求解x"
messages = [{"role": "user", "content": content}]
input_ids = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt").to("cuda")
outputs = model.generate(input_ids=input_ids, max_new_tokens=256)
print(tokenizer.decode(outputs[0]))
北极的GitHub页面提供了更多推理代码片段和示例:
- 纯HuggingFace示例:链接
- 使用vLLM的教程:链接