🚀 StarChat-β
StarChatは、役立つコーディングアシスタントとして機能するように学習された一連の言語モデルです。StarChat-βは、このシリーズの2番目のモデルで、StarCoderPlusを微調整したもので、openassistant-guanaco
データセットの"無制限"バリアントで学習されています。OpenAssistantデータセットの組み込みアラインメントを削除することで、Open LLM Leaderboardでのパフォーマンスが向上し、コーディングタスクでの役立ちが増したことがわかりました。ただし、これはモデルが要求された場合に問題のあるテキストを生成する可能性があり、教育および研究目的でのみ使用すべきであることを意味します。
🚀 クイックスタート
このモデルは、OpenAssistant/oasst1
データセットのバリアントで微調整されており、35以上の言語の多様な対話が含まれています。そのため、チャットに使用でき、コーディング機能をテストするには、デモを参照できます。
以下は、🤗 Transformersのpipeline()
関数を使用してモデルを実行する方法です。
import torch
from transformers import pipeline
pipe = pipeline("text-generation", model="HuggingFaceH4/starchat-beta", torch_dtype=torch.bfloat16, device_map="auto")
prompt_template = "<|system|>\n<|end|>\n<|user|>\n{query}<|end|>\n<|assistant|>"
prompt = prompt_template.format(query="How do I sort a list in Python?")
outputs = pipe(prompt, max_new_tokens=256, do_sample=True, temperature=0.2, top_k=50, top_p=0.95, eos_token_id=49155)
✨ 主な機能
StarChat-βは、コーディングアシスタントとして機能するように学習された言語モデルです。主に英語と80以上のプログラミング言語に対応しており、コーディングタスクでの役立ちが高いです。
📚 ドキュメント
モデルの詳細
モデルの説明
モデルのソース
- リポジトリ: https://github.com/bigcode-project/starcoder
- デモ: https://huggingface.co/spaces/HuggingFaceH4/starchat-playground
バイアス、リスク、および制限
StarChat-βは、RLHFのような手法で人間の好みにアラインメントされておらず、ChatGPTのように応答のループ内フィルタリングを行っていないため、問題のある出力を生成する可能性があります(特にそのように促された場合)。
主にコードデータで学習されたモデルは、GitHubコミュニティの人口統計に応じて、より歪んだ人口統計的バイアスを持つことになります。詳細については、The Stackから派生したStarCoderデータセットを参照してください。
ベースモデルは大量のコードコーパスで事前学習されているため、構文的には有効だが意味的には誤ったコードスニペットを生成する可能性があります。
たとえば、コンパイルできないコードや誤った結果を生成するコードを生成する可能性があります。
また、セキュリティ上の脆弱性のあるコードを生成する可能性もあります。
モデルはまた、誤ったURLを生成する傾向があり、クリックする前に注意深く検査する必要があります。
StarChat-βは、ベースモデルのStarCoderPlusから微調整されています。関連情報については、そのモデルカードの制限事項セクションを参照してください。
特に、モデルは性別バイアスのいくつかのカテゴリ、毒性の傾向、および既知のセキュリティ欠陥を持つコード補完を提案するリスクについて評価されており、これらの評価は技術レポートに報告されています。
学習と評価データ
StarChat-βは、openassistant-guanaco
データセットの"無制限"バリアントで学習されています。WizardLMの背後にあるShareGPTデータセットをフィルタリングするために使用される同じレシピを適用しています。
学習手順
学習ハイパーパラメータ
学習中に以下のハイパーパラメータが使用されました。
- 学習率: 2e-05
- 学習バッチサイズ: 4
- 評価バッチサイズ: 4
- シード: 42
- 分散タイプ: マルチGPU
- デバイス数: 8
- 勾配累積ステップ: 8
- 総学習バッチサイズ: 256
- 総評価バッチサイズ: 32
- オプティマイザ: Adam(ベータ=(0.9,0.999)、イプシロン=1e-08)
- 学習率スケジューラタイプ: コサイン
- 学習率スケジューラウォームアップ比率: 0.03
- エポック数: 6
学習結果
学習損失 |
エポック |
ステップ |
検証損失 |
1.5321 |
0.98 |
15 |
1.2856 |
1.2071 |
1.97 |
30 |
1.2620 |
1.0162 |
2.95 |
45 |
1.2853 |
0.8484 |
4.0 |
61 |
1.3274 |
0.6981 |
4.98 |
76 |
1.3994 |
0.5668 |
5.9 |
90 |
1.4720 |
フレームワークバージョン
- Transformers 4.28.1
- Pytorch 2.0.1+cu118
- Datasets 2.12.0
- Tokenizers 0.13.3
引用
StarChat-βに関連するブログ記事や論文はありませんが、以前のバージョンの詳細は以下のブログ記事で見つけることができます。
BibTeX:
@article{Tunstall2023starchat-alpha,
author = {Tunstall, Lewis and Lambert, Nathan and Rajani, Nazneen and Beeching, Edward and Le Scao, Teven and von Werra, Leandro and Han, Sheon and Schmid, Philipp and Rush, Alexander},
title = {Creating a Coding Assistant with StarCoder},
journal = {Hugging Face Blog},
year = {2023},
note = {https://huggingface.co/blog/starchat},
}
⚠️ 重要提示
StarChat-βは教育および研究目的でのみ使用すべきです。また、モデルが生成するコードは、セキュリティ上の脆弱性や誤った結果を生成する可能性があります。使用する前に注意深く検査する必要があります。
💡 使用建议
モデルが生成するURLは、誤ったものである可能性があります。クリックする前に注意深く検査することをお勧めします。