モデル概要
モデル特徴
モデル能力
使用事例
🚀 DBRX Base
- DBRX Baseは、Databricksによってゼロから訓練されたエキスパート混合(Mixture-of-Experts, MoE)の大規模言語モデルです。
- 事前学習されたベースモデルであるDBRX Baseと、少数ターンの対話用に微調整されたバージョンであるDBRX Instructの両方を、オープンライセンスの下で公開しています。
- これはDBRX Baseのリポジトリです。DBRX Instructはこちらで見つけることができます。
- DBRXモデルの詳細については、技術ブログ記事をご覧ください。
🚀 クイックスタート
注意: これはDBRX Baseであり、命令による微調整が行われていません。対話型チャット用に訓練されておらず、単なる完了モデルです。 微調整されたモデルをお探しの場合は、DBRX Instructを使用してください。
transformers
ライブラリを使用すると、DBRXモデルの使用を簡単に始めることができます。このモデルには約264GBのRAMと以下のパッケージが必要です。
pip install "transformers>=4.40.0"
ダウンロード時間を短縮したい場合は、Huggingfaceがこちらで説明しているhf_transfer
パッケージを使用できます。
pip install hf_transfer
export HF_HUB_ENABLE_HF_TRANSFER=1
モデルをダウンロードするには、このリポジトリへのアクセスを要求する必要があります。許可が与えられたら、
アクセストークンを取得し、read
権限を持つトークンを以下に指定してください。
複数のGPUでモデルを実行する:
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
tokenizer = AutoTokenizer.from_pretrained("databricks/dbrx-base", token="hf_YOUR_TOKEN")
model = AutoModelForCausalLM.from_pretrained("databricks/dbrx-base", device_map="auto", torch_dtype=torch.bfloat16, token="hf_YOUR_TOKEN")
input_text = "Databricks was founded in "
input_ids = tokenizer(input_text, return_tensors="pt").to("cuda")
outputs = model.generate(**input_ids, max_new_tokens=100)
print(tokenizer.decode(outputs[0]))
GPUシステムがFlashAttention2をサポートしている場合は、AutoModelForCausalLM.from_pretrained()
にattn_implementation=”flash_attention_2”
をキーワードとして追加することで、より高速な推論を実現できます。
✨ 主な機能
- DBRX Baseは、Databricksによってゼロから訓練されたエキスパート混合(MoE)の大規模言語モデルです。
- DBRX BaseとDBRX Instructの両方がオープンライセンスの下で公開されています。
- DBRXは、次のトークン予測を使用して訓練された、トランスフォーマーベースのデコーダー専用の大規模言語モデル(LLM)です。
- 細粒度のエキスパート混合(MoE)アーキテクチャを使用し、合計1320億のパラメータのうち、任意の入力で360億のパラメータがアクティブになります。
- 12兆トークンのテキストとコードデータで事前学習されています。
- 他のオープンMoEモデル(Mixtral-8x7BやGrok-1など)と比較して、DBRXは細粒度であり、より多くの小さなエキスパートを使用します。DBRXは16個のエキスパートを持ち、4個を選択しますが、Mixtral-8x7BやGrok-1は8個のエキスパートを持ち、2個を選択します。これにより、エキスパートの可能な組み合わせが65倍以上になり、モデルの品質が向上することがわかりました。
- ロータリー位置符号化(RoPE)、ゲート付き線形ユニット(GLU)、およびグループ化クエリアテンション(GQA)を使用しています。
- tiktokenリポジトリで定義されているGPT - 4トークナイザーの変換バージョンを使用しています。
📦 インストール
pip install "transformers>=4.40.0"
ダウンロード時間を短縮する場合:
pip install hf_transfer
export HF_HUB_ENABLE_HF_TRANSFER=1
💻 使用例
基本的な使用法
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
tokenizer = AutoTokenizer.from_pretrained("databricks/dbrx-base", token="hf_YOUR_TOKEN")
model = AutoModelForCausalLM.from_pretrained("databricks/dbrx-base", device_map="auto", torch_dtype=torch.bfloat16, token="hf_YOUR_TOKEN")
input_text = "Databricks was founded in "
input_ids = tokenizer(input_text, return_tensors="pt").to("cuda")
outputs = model.generate(**input_ids, max_new_tokens=100)
print(tokenizer.decode(outputs[0]))
高度な使用法
GPUシステムがFlashAttention2をサポートしている場合、より高速な推論を実現する例:
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
tokenizer = AutoTokenizer.from_pretrained("databricks/dbrx-base", token="hf_YOUR_TOKEN")
model = AutoModelForCausalLM.from_pretrained("databricks/dbrx-base", device_map="auto", torch_dtype=torch.bfloat16, token="hf_YOUR_TOKEN", attn_implementation="flash_attention_2")
input_text = "Databricks was founded in "
input_ids = tokenizer(input_text, return_tensors="pt").to("cuda")
outputs = model.generate(**input_ids, max_new_tokens=100)
print(tokenizer.decode(outputs[0]))
📚 ドキュメント
モデル概要
DBRXは、次のトークン予測を使用して訓練された、トランスフォーマーベースのデコーダー専用の大規模言語モデル(LLM)です。 細粒度のエキスパート混合(MoE)アーキテクチャを使用し、合計1320億のパラメータのうち、任意の入力で360億のパラメータがアクティブになります。 12兆トークンのテキストとコードデータで事前学習されています。
他のオープンMoEモデル(Mixtral-8x7BやGrok-1など)と比較して、DBRXは細粒度であり、より多くの小さなエキスパートを使用します。DBRXは16個のエキスパートを持ち、4個を選択しますが、Mixtral-8x7BやGrok-1は8個のエキスパートを持ち、2個を選択します。これにより、エキスパートの可能な組み合わせが65倍以上になり、モデルの品質が向上することがわかりました。
DBRXは、ロータリー位置符号化(RoPE)、ゲート付き線形ユニット(GLU)、およびグループ化クエリアテンション(GQA)を使用しています。 tiktokenリポジトリで定義されているGPT - 4トークナイザーの変換バージョンを使用しています。
DBRXは、12兆トークンの精心に選り分けられたデータと最大32Kトークンのコンテキスト長で事前学習されています。 このデータは、MPTファミリーのモデルを事前学習するために使用したデータよりも、トークン単位で少なくとも2倍良いと推定されています。 この新しいデータセットは、Databricksのツール一式(Apache Spark™やDatabricksノートブックを使用したデータ処理、およびUnity Catalogを使用したデータ管理とガバナンス)を使用して開発されました。 事前学習にはカリキュラム学習を使用し、訓練中にデータの混合を変更することで、モデルの品質が大幅に向上することがわかりました。
- 入力: DBRXはテキストベースの入力のみを受け付け、最大32768トークンのコンテキスト長を受け付けます。
- 出力: DBRXはテキストベースの出力のみを生成します。
- モデルアーキテクチャ: DBRX InstructとDBRX Baseの詳細情報は、技術ブログ記事を参照してください。
- ライセンス: Databricks Open Model License
- 許容使用ポリシー: Databricks Open Model Acceptable Use Policy
- バージョン: 1.0
- 所有者: Databricks, Inc.
使用方法
DBRXモデルを使用する一般的な方法はいくつかあります:
- DBRX BaseとDBRX Instructは、HuggingFaceでダウンロード可能です(以下のクイックスタートガイドを参照)。これはDBRX BaseのHFリポジトリです。DBRX Instructはこちらで見つけることができます。
- DBRXモデルのリポジトリは、GitHubのこちらにあります。
- DBRX BaseとDBRX Instructは、Databricks Foundation Model APIsを介して、Pay - per - tokenとProvisioned Throughputの両方のエンドポイントで利用可能です。これらはエンタープライズ対応のデプロイです。
- LLM - Foundryを使用して微調整する方法の詳細については、LLMの事前学習と微調整のドキュメントを参照してください。
制限事項と倫理的考慮事項
訓練データセットの制限
DBRXモデルは、2023年12月を知識のカットオフ日とする、12兆トークンのテキストで訓練されています。
DBRXに使用される訓練データの混合には、自然言語とコードの例の両方が含まれています。訓練データの大部分は英語です。非英語の能力についてはDBRXをテストしていません。したがって、DBRXは英語でのテキストベースの使用のための汎用モデルと見なされるべきです。
DBRXはマルチモーダル機能を持っていません。
関連するリスクと推奨事項
すべての基盤モデルは、さまざまなリスクを伴う新しい技術であり、不正確、不完全、偏った、または不快な情報を出力する可能性があります。 ユーザーは、判断を行使し、そのような出力を使用または共有する前に、目的のユースケースに対する正確性と適切性を評価する必要があります。 Databricksは、正確性と忠実度が重要なシナリオでは、検索拡張生成(RAG)の使用を推奨しています。 また、DBRX BaseまたはDBRX Instructを使用または微調整する人は、特定のアプリケーションとドメインのコンテキストで安全性に関する追加のテストを実行することを推奨します。
想定される用途
想定されるユースケース
DBRXモデルは、商用および研究用途の両方を目的とし、ライセンスされたオープンな汎用LLMです。 さまざまなドメイン固有の自然言語およびコーディングタスクに対してさらに微調整することができます。 DBRX Baseは、一般的な英語のテキスト完了およびコーディングタスクのオフザシェルフモデルとして使用できます。
DBRX Baseとその派生モデルの許容使用に関する詳細情報については、上記の関連するリスクのセクション、ならびにDatabricks Open Model LicenseおよびDatabricks Open Model Acceptable Use Policyを確認してください。
想定外のユースケース
DBRXモデルは、非英語でそのまま使用することを想定しておらず、ネイティブコード実行や他の形式の関数呼び出しをサポートしていません。 DBRXモデルは、適用される法律や規制に違反する方法、またはDatabricks Open Model LicenseおよびDatabricks Open Model Acceptable Use Policyによって禁止されている他の方法で使用してはなりません。
訓練スタック
MoEモデルの訓練は複雑であり、DBRX BaseとDBRX Instructの訓練は、Databricksのデータ処理および大規模LLM訓練のインフラストラクチャ(例えば、Composer、Streaming、Megablocks、およびLLM Foundry)によって大きくサポートされています。
Composerは、大規模訓練のためのコアライブラリです。 最適化された訓練ループ、簡単なチェックポイントとロギング、 FSDPベースのモデルシャーディング、 便利な抽象化、コールバックによる極限のカスタマイズ性などを提供します。
Streamingは、クラウドストレージからの大規模データセットに対する高速、低コスト、かつスケーラブルな訓練を可能にします。ノード数が変化する際の決定論的な再開、デバイス間の冗長なダウンロードの回避、大規模での高品質なシャッフル、サンプルレベルのランダムアクセス、および速度に関するさまざまな課題を処理します。
Megablocksは、MoE訓練のための軽量ライブラリです。重要なことに、「ドロップレスMoE」をサポートしており、非効率なパディングを回避し、バッチ内の他のシーケンスが何であっても、与えられたシーケンスに対して決定論的な出力を提供することを目的としています。
LLM Foundryは、これらのすべてのライブラリを結びつけて、簡単なLLMの事前学習、微調整、および推論のエクスペリエンスを実現します。
DBRXは、上記のオープンソースライブラリの独自の最適化バージョンと、LLM訓練プラットフォームを使用して訓練されています。
評価
DBRXは、Databricks Model Gauntlet、Hugging Face Open LLM Leaderboard、およびHumanEvalで、確立されたオープンソースおよびオープンウェイトのベースモデルを上回る性能を示しています。 Databricks Model Gauntletは、世界知識、常識推論、言語理解、読解力、記号問題解決、およびプログラミングの6つのカテゴリの30以上のタスクでの性能を測定します。 Hugging Face Open LLM Leaderboardは、ARC - Challenge、HellaSwag、MMLU、TruthfulQA、Winogrande、およびGSM8kの平均を測定します。 HumanEvalはコーディング能力を測定します。
完全な評価の詳細は、技術ブログ記事で確認できます。
謝辞
DBRXモデルは、オープンソースコミュニティ、特に以下のものに大きく感謝しています。
- MegaBlocksライブラリは、MoEの実装の基礎を築いています。
- PyTorch FSDPは、分散訓練のために構築されています。
🔧 技術詳細
モデルアーキテクチャ
DBRXは、次のトークン予測を使用して訓練された、トランスフォーマーベースのデコーダー専用の大規模言語モデル(LLM)です。 細粒度のエキスパート混合(MoE)アーキテクチャを使用し、合計1320億のパラメータのうち、任意の入力で360億のパラメータがアクティブになります。 12兆トークンのテキストとコードデータで事前学習されています。
他のオープンMoEモデル(Mixtral-8x7BやGrok-1など)と比較して、DBRXは細粒度であり、より多くの小さなエキスパートを使用します。DBRXは16個のエキスパートを持ち、4個を選択しますが、Mixtral-8x7BやGrok-1は8個のエキスパートを持ち、2個を選択します。これにより、エキスパートの可能な組み合わせが65倍以上になり、モデルの品質が向上することがわかりました。
DBRXは、ロータリー位置符号化(RoPE)、ゲート付き線形ユニット(GLU)、およびグループ化クエリアテンション(GQA)を使用しています。 tiktokenリポジトリで定義されているGPT - 4トークナイザーの変換バージョンを使用しています。
訓練データ
DBRXは、12兆トークンの精心に選り分けられたデータと最大32Kトークンのコンテキスト長で事前学習されています。 このデータは、MPTファミリーのモデルを事前学習するために使用したデータよりも、トークン単位で少なくとも2倍良いと推定されています。 この新しいデータセットは、Databricksのツール一式(Apache Spark™やDatabricksノートブックを使用したデータ処理、およびUnity Catalogを使用したデータ管理とガバナンス)を使用して開発されました。 事前学習にはカリキュラム学習を使用し、訓練中にデータの混合を変更することで、モデルの品質が大幅に向上することがわかりました。
訓練スタック
MoEモデルの訓練は複雑であり、DBRX BaseとDBRX Instructの訓練は、Databricksのデータ処理および大規模LLM訓練のインフラストラクチャ(例えば、Composer、Streaming、Megablocks、およびLLM Foundry)によって大きくサポートされています。
評価
DBRXは、Databricks Model Gauntlet、Hugging Face Open LLM Leaderboard、およびHumanEvalで、確立されたオープンソースおよびオープンウェイトのベースモデルを上回る性能を示しています。
📄 ライセンス
DBRX Baseは、Databricks Open Model Licenseの下で公開されています。



