🚀 スノーフレイク・アークティックモデル
スノーフレイクAI研究チームによって開発された、最先端の言語モデルです。Apache-2.0ライセンスの下で公開されており、自由に利用できます。
🚀 クイックスタート
Arcticは、Snowflake AI研究チームによってゼロから事前学習された密なMoEハイブリッドトランスフォーマーアーキテクチャです。我々は、Arcticのベースバージョンと命令調整済みバージョンの両方のモデルチェックポイントをApache-2.0ライセンスの下で公開しています。これは、あなたが独自の研究、プロトタイプ、および製品で自由に使用できることを意味します。Arcticに関する詳細情報や、独自のカスタムMoEモデルのトレーニング、高品質のトレーニングデータの作成方法などのトピックをカバーする一連のクックブックへのリンクなど、他の関連リソースへのリンクについては、ブログ記事 Snowflake Arctic: The Best LLM for Enterprise AI — Efficiently Intelligent, Truly Open を参照してください。
Snowflake Arcticの最新の詳細(チュートリアルなど)については、GitHubリポジトリを参照してください。
- https://github.com/Snowflake-Labs/snowflake-arctic
Streamlitアプリ でライブデモを試すことができます。
✨ 主な機能
- モデル開発者: Snowflake AI研究チーム
- ライセンス: Apache-2.0
- 入力: モデルはテキストのみを入力とします。
- 出力: モデルはテキストとコードのみを生成します。
- モデルリリース日: 2024年4月24日
プロパティ |
詳細 |
モデルタイプ |
密なMoEハイブリッドトランスフォーマーアーキテクチャ |
トレーニングデータ |
詳細は クックブック を参照 |
📦 インストール
Arcticは現在、transformers
で カスタムコード機能 を利用してサポートされています。これを使用するには、AutoTokenizer
と AutoModelForCausalLM
の呼び出しに trust_remote_code=True
を追加するだけです。ただし、transformers
のバージョン4.39以上を使用することをお勧めします。
pip install transformers>=4.39.0
Arcticは DeepSpeed のいくつかの機能を利用しているため、すべての必要な機能を取得するには、DeepSpeed 0.14.2以上をインストールする必要があります。
pip install deepspeed>=0.14.2
💻 使用例
基本的な使用法
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]))
高度な使用法
モデルサイズのため、お気に入りのクラウドプロバイダーから単一の8xH100インスタンスを使用することをお勧めします。例えば、AWS p5.48xlarge、Azure ND96isr_H100_v5 などです。
この例では、DeepSpeedによって提供されるFP8量子化をバックエンドで使用しています。QuantizationConfig
構成で q_bits=6
を指定することで、FP6量子化も使用できます。max_memory
の "150GiB"
設定は、DeepSpeedのFP量子化が HFQuantizer としてネイティブにサポートされるまで必要です。これについては現在積極的に取り組んでいます。
ArcticのGitHubページには、推論を実行するための追加のコードスニペットと例があります。
- 純粋なHFを使用した例: https://github.com/Snowflake-Labs/snowflake-arctic/blob/main/inference
- vLLMを使用したチュートリアル: https://github.com/Snowflake-Labs/snowflake-arctic/tree/main/inference/vllm
🔧 技術詳細
Arcticは、10Bの密なトランスフォーマーモデルと、残差128x3.66B MoE MLPを組み合わせており、合計480B、トップ2ゲーティングを使用して選択された17Bのアクティブパラメータがあります。Arcticのモデルアーキテクチャ、トレーニングプロセス、データなどの詳細については、クックブックシリーズ を参照してください。
📄 ライセンス
このモデルはApache-2.0ライセンスの下で提供されています。