🚀 雪花北極星模型(Snowflake Arctic)
雪花北極星模型(Snowflake Arctic)是由雪花人工智能研究團隊從頭開始預訓練的一種密集混合專家(Dense - MoE)混合變壓器架構。該模型在企業人工智能領域具有高效智能、真正開放的特點,能為研究、原型開發和產品應用提供強大支持。
📚 詳細文檔
模型詳情
北極星(Arctic)是由雪花人工智能研究團隊從零開始預訓練的密集混合專家(Dense - MoE)混合變壓器架構。我們依據Apache - 2.0許可協議發佈了北極星模型的基礎版本和指令調優版本的模型檢查點。這意味著你可以在自己的研究、原型和產品中自由使用它們。
有關北極星的更多信息,以及其他相關資源(如一系列涵蓋訓練自定義MoE模型、如何生成高質量訓練數據等主題的手冊)的鏈接,請參閱我們的博客文章 Snowflake Arctic: The Best LLM for Enterprise AI — Efficiently Intelligent, Truly Open。
有關雪花北極星的最新詳細信息(包括教程等),請參考我們的GitHub倉庫:
- https://github.com/Snowflake - Labs/snowflake - arctic
模型開發者:雪花人工智能研究團隊
許可證:Apache - 2.0
輸入:模型僅接受文本輸入。
輸出:模型僅生成文本和代碼。
模型發佈日期:2024年4月24日。
模型架構
北極星將一個100億參數的密集變壓器模型與一個殘差128x366億參數的混合專家(MoE)多層感知機(MLP)相結合,使用top - 2門控選擇後,總參數達到4800億,活躍參數為170億。有關北極星模型架構、訓練過程、數據等的更多詳細信息,請 [參閱我們的系列手冊](https://www.snowflake.com/en/data - cloud/arctic/cookbook/)。
🚀 快速開始
北極星目前通過利用 [自定義代碼功能](https://huggingface.co/docs/transformers/en/custom_models#using - a - model - with - custom - code) 得到 transformers
庫的支持。要使用此功能,你只需在調用 AutoTokenizer
和 AutoModelForCausalLM
時添加 trust_remote_code=True
。不過,我們建議你使用4.39或更高版本的 transformers
庫:
pip install transformers>=4.39.0
北極星利用了 DeepSpeed 的多項功能,你需要安裝DeepSpeed 0.14.2或更高版本才能獲得所有必需的功能:
pip install deepspeed>=0.14.2
推理示例
由於模型規模較大,我們建議使用你喜歡的雲提供商提供的單個8xH100實例,例如:AWS [p5.48xlarge](https://aws.amazon.com/ec2/instance - types/p5/)、Azure [ND96isr_H100_v5](https://learn.microsoft.com/en - us/azure/virtual - machines/nd - h100 - v5 - series) 等。
在這個示例中,我們在後端使用了DeepSpeed提供的FP8量化,我們也可以通過在 QuantizationConfig
配置中指定 q_bits = 6
來使用FP6量化。在我們能夠讓DeepSpeed的FP量化作為 [HFQuantizer](https://huggingface.co/docs/transformers/main/en/hf_quantizer#build - a - new - hfquantizer - class) 原生支持之前,需要將 max_memory
設置為 "150GiB"
,我們正在積極推進這方面的工作。
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. Solve for 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頁面上有更多關於運行推理的代碼片段和示例:
- 純Hugging Face示例:https://github.com/Snowflake - Labs/snowflake - arctic/blob/main/inference
- 使用vLLM的教程:https://github.com/Snowflake - Labs/snowflake - arctic/tree/main/inference/vllm
📄 許可證
本模型使用Apache - 2.0許可證。