🚀 MPT-30B-Chat
MPT-30B-Chatは、対話生成用のチャットボット風モデルです。MPT-30B を、ShareGPT-Vicuna、Camel-AI、GPTeacher、Guanaco、Baize およびいくつかの生成データセットでファインチューニングすることで構築されました。
- ライセンス: CC-By-NC-SA-4.0 (非商用利用のみ)
このモデルは MosaicML によって訓練され、修正されたデコーダー専用のトランスフォーマーアーキテクチャに従っています。
🚀 クイックスタート
モデルの基本情報
- モデル日付: 2023年6月22日
- モデルライセンス: CC-By-NC-SA-4.0 (非商用利用のみ)
ドキュメント
ダイアログの例
ksreenivasan:
この記事の要約に基づいてツイートを考えてほしい。
私たちは、新しい商用ライセンスのオープンソースモデルであるMPT-30BをMosaicML Foundation Seriesに追加することを嬉しく思っています。このモデルは、大幅に強力で、元のGPT-3を上回ります。さらに、MPT-30Bをベースに構築された2つのファインチューニング済みモデル、MPT-30B-InstructとMPT-30B-Chatをリリースします。これらのモデルは、それぞれ短い命令に従う能力とマルチターンの会話能力に優れています。
すべてのMPT-30Bモデルには、他のLLMとは異なる特別な機能が備わっています。これには、8kトークンのコンテキストウィンドウ(ファインチューニングによってさらに拡張可能;MPT-7B-StoryWriterを参照)、ALiBiによるコンテキスト長の外挿サポート、およびFlashAttentionによる効率的な推論と訓練パフォーマンスが含まれます。また、事前学習データの混合により、強力なコーディング能力も備えています。
MPT-30B-Chat:
"MosaicMLの最新の追加機能であるMPT-30Bで、AIの能力を革命的に向上させましょう!GPT-3を上回るこのオープンソースモデルは大幅に強力で、優れた命令追従能力とマルチターン会話能力を備えたファインチューニング済みモデルが付属しています。8kトークンのコンテキストウィンドウ、ALiBiサポート、およびFlashAttentionの可能性を解き放ちましょう。MosaicMLでAIの未来を体験してください! #AI #ML #innovation"
ksreenivasan:
この素晴らしいニュースについて、MosaicMLに何か言いたいことはありますか?
MPT-30B-Chat:
AIマーケティングアシスタントとして、これはAIコミュニティにとって本当に素晴らしいニュースだと思います!MosaicMLの最新の追加機能であるMPT-30Bは、強力なオープンソース機能と、命令追従とマルチターン会話用のファインチューニング済みモデルにより、業界を革命化する勢いです。
8kトークンのコンテキストウィンドウ、ALiBiサポート、およびFlashAttentionなどの特別な機能は、確かにMosaicMLのMPT-30Bを他のLLMと差別化するでしょう。
MosaicMLチームのこの素晴らしい成果にお祝い申し上げます!
📦 インストール
このモデルは、訓練とファインチューニングにはMosaicMLの llm-foundry リポジトリ を使用するのが最適です。
import transformers
model = transformers.AutoModelForCausalLM.from_pretrained(
'mosaicml/mpt-30b-chat',
trust_remote_code=True
)
⚠️ 重要提示
このモデルでは、from_pretrained
メソッドに trust_remote_code=True
を渡す必要があります。これは、まだHugging Faceの transformers
パッケージに含まれていないカスタム MPT
モデルアーキテクチャを使用しているためです。MPT
には、FlashAttention、ALiBi、QK LayerNorm などの多くの訓練効率機能が含まれています。
FlashAttentionの最適化された実装を使用する場合
import torch
import transformers
name = 'mosaicml/mpt-30b-chat'
config = transformers.AutoConfig.from_pretrained(name, trust_remote_code=True)
config.attn_config['attn_impl'] = 'triton'
config.init_device = 'cuda:0'
model = transformers.AutoModelForCausalLM.from_pretrained(
name,
config=config,
torch_dtype=torch.bfloat16,
trust_remote_code=True
)
最大シーケンス長を増やす場合
import transformers
name = 'mosaicml/mpt-30b-chat'
config = transformers.AutoConfig.from_pretrained(name, trust_remote_code=True)
config.max_seq_len = 16384
model = transformers.AutoModelForCausalLM.from_pretrained(
name,
config=config,
trust_remote_code=True
)
トークナイザーの使用
このモデルは、EleutherAI/gpt-neox-20b トークナイザーをベースにしたMPT-30Bトークナイザーで訓練されており、追加のパディングとeosトークンが含まれています。
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained('mosaicml/mpt-30b')
テキスト生成パイプラインでの使用
from transformers import pipeline
with torch.autocast('cuda', dtype=torch.bfloat16):
inputs = tokenizer('Here is a recipe for vegan banana bread:\n', return_tensors="pt").to('cuda')
outputs = model.generate(**inputs, max_new_tokens=100)
print(tokenizer.batch_decode(outputs, skip_special_tokens=True))
pipe = pipeline('text-generation', model=model, tokenizer=tokenizer, device='cuda:0')
with torch.autocast('cuda', dtype=torch.bfloat16):
print(
pipe('Here is a recipe for vegan banana bread:\n',
max_new_tokens=100,
do_sample=True,
use_cache=True))
🔧 技術詳細
モデルアーキテクチャ
このアーキテクチャは、標準的なデコーダー専用のトランスフォーマーを修正したものです。
モデルは、以下の点で標準的なトランスフォーマーから変更されています。
ハイパーパラメータ
ハイパーパラメータ |
値 |
n_parameters |
29.95B |
n_layers |
48 |
n_heads |
64 |
d_model |
7168 |
語彙サイズ |
50432 |
シーケンス長 |
8192 |
データミックス
このモデルは、以下のデータミックスで訓練されました。
データソース |
ソース内のトークン数 |
割合 |
Airoboros/GPT4-1.2 |
26.4M |
1.71% |
Baize |
55.0M |
3.57% |
Camel |
301M |
19.54% |
GPTeacher |
7.56M |
0.49% |
Guanaco |
15.6M |
1.02% |
LongConversations |
18.4M |
1.19% |
ShareGPT |
821M |
53.24% |
WizardLM |
297M |
19.23% |
"LongConversations" はGPT3.5/4で生成されたデータセットで、詳細は後日公開される予定です。
訓練設定
このモデルは、MosaicML Platform を使用して、64台のH100で約7.6時間訓練されました。
モデルは、FSDP を使用したシャード化されたデータ並列で訓練され、AdamWオプティマイザーを使用しました。
📄 ライセンス
このモデルのライセンスは CC-By-NC-SA-4.0 で、非商用利用のみが許可されています。
⚠️ 制限事項とバイアス
以下の文章は EleutherAI's GPT-NeoX-20B から改変されています
MPT-30B-Chatは事実に誤りのある出力を生成する可能性があり、事実に基づく正確な情報を生成することに依存してはいけません。
MPT-30B-Chatは、さまざまな公開データセットで訓練されています。
事前学習データのクリーニングには多大な努力が払われていますが、このモデルが猥褻、偏見、またはその他の不快な出力を生成する可能性があります。
👏 謝辞
このモデルは、Sam HavensとMosaicMLのNLPチームによってファインチューニングされました。
📖 引用
このモデルを引用する場合は、以下の形式を使用してください。
@online{MosaicML2023Introducing,
author = {MosaicML NLP Team},
title = {Introducing MPT-30B: Raising the bar
for open-source foundation models},
year = {2023},
url = {www.mosaicml.com/blog/mpt-30b},
note = {Accessed: 2023-06-22},
urldate = {2023-06-22}
}