🚀 StarChat2 15B
StarChatは、役立つコーディングアシスタントとして機能するように訓練された一連の言語モデルです。StarChat2はこのシリーズの最新モデルで、SFTとDPOを使用して合成データセットの混合で訓練されたStarCoder2のファインチューニング版です。
🚀 クイックスタート
このモデルは、チャット、コード、数学、推論のデータセットの混合でファインチューニングされています。そのため、チャットに使用でき、コーディング機能をテストするにはデモを試してみてください。
以下は、🤗 Transformersのpipeline()
関数を使用してモデルを実行する方法です。
import torch
from transformers import pipeline
pipe = pipeline(
"text-generation",
model="HuggingFaceH4/starchat2-15b-v0.1",
device_map="auto",
torch_dtype=torch.bfloat16,
)
messages = [
{
"role": "system",
"content": "You are StarChat2, an expert programming assistant",
},
{"role": "user", "content": "Write a simple website in HTML. When a user clicks the button, it shows a random Chuck Norris joke."},
]
outputs = pipe(
messages,
max_new_tokens=512,
do_sample=True,
temperature=0.7,
top_k=50,
top_p=0.95,
stop_sequence="<|im_end|>",
)
print(outputs[0]["generated_text"][-1]["content"])
✨ 主な機能
- StarChatは、役立つコーディングアシスタントとして機能するように訓練された言語モデルシリーズです。
- StarChat2は、SFTとDPOを使用して合成データセットの混合で訓練されたStarCoder2のファインチューニング版です。
- チャットとプログラミングの機能をバランスよく備えており、MT BenchやIFEvalなどのチャットベンチマーク、およびPythonコード補完の標準的なHumanEvalベンチマークで高い性能を発揮します。
📚 ドキュメント
モデルの詳細
モデルの説明
- モデルの種類:公開されている合成データセットの混合でファインチューニングされた160億パラメータのGPTライクなモデル。
- 言語 (NLP):主に英語と600以上のプログラミング言語。
- ライセンス:BigCode Open RAIL-M v1
- ファインチューニング元のモデル:bigcode/starcoder2-15b
モデルのソース
- リポジトリ:https://github.com/huggingface/alignment-handbook
- デモ:https://huggingface.co/spaces/HuggingFaceH4/starchat2-playground
性能
StarChat2 15Bは、チャットとプログラミングの機能をバランスよく備えるように訓練されています。MT BenchやIFEvalなどのチャットベンチマーク、およびPythonコード補完の標準的なHumanEvalベンチマークで高い性能を発揮します。以下のスコアは、LightEval評価スイート(コミット 988959cb905df4baa050f82b4d499d46e8b537f2
)を使用して取得され、各プロンプトは実際の使用をシミュレートするためにモデルの対応するチャットテンプレートでフォーマットされています。このため、一部のスコアは技術レポートやOpen LLM Leaderboardで報告されているものと異なる場合があります。
バイアス、リスク、および制限
StarChat2 15Bは、RLHFのような手法で人間の嗜好にアライメントされておらず、ChatGPTのように応答のループ内フィルタリングを行って展開されていないため、問題のある出力を生成する可能性があります(特にそのように促された場合)。
主にコードデータで訓練されたモデルは、GitHubコミュニティの人口統計に応じて、より歪んだ人口統計的バイアスを持つことになります。詳細については、StarCoder2データセットを参照してください。
ベースモデルは大量のコードコーパスで事前学習されているため、構文的には有効であるが意味的には誤ったコードスニペットを生成する可能性があります。
たとえば、コンパイルできないコードや誤った結果を生成するコードを生成することがあります。
また、セキュリティ上の脆弱性のあるコードを生成することもあります。
このモデルは誤ったURLを生成する傾向があり、クリックする前に注意深く確認する必要があります。
StarChat2 15Bは、ベースモデルのStarCoder2からファインチューニングされています。関連情報については、そのモデルカードの制限事項セクションを参照してください。特に、このモデルは性別バイアスのいくつかのカテゴリ、毒性の傾向、および既知のセキュリティ上の欠陥を持つコード補完を提案するリスクについて評価されており、これらの評価は技術レポートに報告されています。
訓練の詳細
このモデルは、starchat2-15b-sft-v0.1をHuggingFaceH4/ultrafeedback_binarizedおよびHuggingFaceH4/orca_dpo_pairsデータセットでファインチューニングしたものです。詳細については、Alignment Handbookのレシピを参照してください。
評価セットでは、以下の結果を達成しています。
- 損失: 0.4347
- 報酬/選択: -0.9461
- 報酬/拒否: -2.7745
- 報酬/正確性: 0.7658
- 報酬/マージン: 1.8284
- 対数尤度/拒否: -322.1934
- 対数尤度/選択: -316.1898
- ロジット/拒否: -2.3817
- ロジット/選択: -2.3005
訓練手順
訓練ハイパーパラメータ
訓練中に使用されたハイパーパラメータは以下の通りです。
- 学習率: 5e-07
- 訓練バッチサイズ: 2
- 評価バッチサイズ: 4
- シード: 42
- 分散タイプ: マルチGPU
- デバイス数: 8
- 勾配累積ステップ数: 8
- 総訓練バッチサイズ: 128
- 総評価バッチサイズ: 32
- オプティマイザ: Adam(ベータ=(0.9,0.999)、イプシロン=1e-08)
- 学習率スケジューラの種類: コサイン
- 学習率スケジューラのウォームアップ比率: 0.1
- エポック数: 2
訓練結果
訓練損失 |
エポック |
ステップ |
検証損失 |
報酬/選択 |
報酬/拒否 |
報酬/正確性 |
報酬/マージン |
対数尤度/拒否 |
対数尤度/選択 |
ロジット/拒否 |
ロジット/選択 |
0.717 |
0.17 |
100 |
0.6006 |
-0.0924 |
-0.2899 |
0.6329 |
0.1975 |
-272.5022 |
-299.1165 |
-2.5313 |
-2.4191 |
0.6273 |
0.35 |
200 |
0.5160 |
-0.3994 |
-0.9461 |
0.6930 |
0.5467 |
-285.6261 |
-305.2568 |
-2.5281 |
-2.4278 |
0.5538 |
0.52 |
300 |
0.4781 |
-0.6589 |
-1.5892 |
0.7247 |
0.9302 |
-298.4870 |
-310.4470 |
-2.4996 |
-2.4110 |
0.5056 |
0.7 |
400 |
0.4594 |
-0.8283 |
-2.1332 |
0.7437 |
1.3050 |
-309.3687 |
-313.8344 |
-2.4472 |
-2.3644 |
0.4983 |
0.87 |
500 |
0.4512 |
-0.7758 |
-2.2806 |
0.7468 |
1.5049 |
-312.3167 |
-312.7843 |
-2.4223 |
-2.3404 |
0.4662 |
1.04 |
600 |
0.4431 |
-0.7839 |
-2.4016 |
0.7658 |
1.6177 |
-314.7355 |
-312.9465 |
-2.4049 |
-2.3215 |
0.4411 |
1.22 |
700 |
0.4415 |
-1.0090 |
-2.7582 |
0.7690 |
1.7492 |
-321.8679 |
-317.4481 |
-2.3840 |
-2.3016 |
0.471 |
1.39 |
800 |
0.4368 |
-0.9617 |
-2.7445 |
0.7690 |
1.7828 |
-321.5930 |
-316.5019 |
-2.3809 |
-2.2991 |
0.4485 |
1.57 |
900 |
0.4351 |
-0.9490 |
-2.7594 |
0.7722 |
1.8103 |
-321.8916 |
-316.2497 |
-2.3815 |
-2.3004 |
0.4411 |
1.74 |
1000 |
0.4348 |
-0.9293 |
-2.7469 |
0.7658 |
1.8176 |
-321.6409 |
-315.8547 |
-2.3823 |
-2.3011 |
0.4499 |
1.92 |
1100 |
0.4348 |
-0.9482 |
-2.7767 |
0.7658 |
1.8285 |
-322.2369 |
-316.2320 |
-2.3828 |
-2.3012 |
フレームワークバージョン
- Transformers 4.39.0.dev0
- Pytorch 2.1.2+cu121
- Datasets 2.16.1
- Tokenizers 0.15.1
📄 ライセンス
このモデルは、BigCode Open RAIL-M v1ライセンスの下で提供されています。