许可证:Apache-2.0
标签:
模型详情
Arctic是由雪花AI研究团队从头开始预训练的密集混合专家(MoE)混合架构Transformer模型。我们以Apache-2.0许可证发布了Arctic的基础版本和指令调优版本的模型检查点,这意味着您可以在自己的研究、原型和产品中自由使用它们。更多关于Arctic的信息及其他相关资源(如涵盖训练自定义MoE模型、生成高质量训练数据等主题的系列手册),请参阅我们的博客《Snowflake Arctic:企业AI的最佳大语言模型——高效智能,真正开放》。
关于Snowflake Arctic的最新详情(包括教程等),请参考我们的GitHub仓库:
- https://github.com/Snowflake-Labs/snowflake-arctic
通过我们的Streamlit应用体验实时演示。
模型开发者 雪花AI研究团队
许可证 Apache-2.0
输入 模型仅接受文本输入。
输出 模型仅生成文本和代码。
模型发布日期 2024年4月24日。
模型架构
Arctic结合了100亿参数的密集Transformer模型与残差式128×36.6亿参数的MoE多层感知机(MLP),总计4800亿参数,通过Top-2门控机制激活其中170亿参数。有关Arctic模型架构、训练过程、数据等更多细节,请参阅我们的系列手册。
使用方法
当前可通过transformers
库(需启用自定义代码功能)使用Arctic模型。使用时只需在AutoTokenizer
和AutoModelForCausalLM
调用中添加trust_remote_code=True
参数。建议使用4.39.0及以上版本的transformers
:
pip install transformers>=4.39.0
Arctic利用了DeepSpeed的多个特性,需安装0.14.2或更高版本:
pip install deepspeed>=0.14.2
推理示例
鉴于模型规模,建议使用配备8块H100显卡的云实例(如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]))
Arctic的GitHub页面提供了更多推理代码示例:
- 纯HuggingFace示例:https://github.com/Snowflake-Labs/snowflake-arctic/blob/main/inference
- vLLM教程:https://github.com/Snowflake-Labs/snowflake-arctic/tree/main/inference/vllm