🚀 StarChat2 15B 模型卡片
StarChat 是一系列經過訓練的語言模型,旨在作為實用的編碼助手。StarChat2 是該系列的最新模型,它是 StarCoder2 的微調版本,通過 SFT 和 DPO 在合成數據集的混合數據上進行訓練。
🚀 快速開始
StarChat2 15B 模型可用於聊天和編程場景。你可以通過以下鏈接查看演示,測試其編碼能力:演示鏈接。
以下是使用 🤗 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"])
✨ 主要特性
- 多能力平衡:經過訓練,在聊天和編程能力之間取得了良好的平衡。
- 多語言支持:主要支持英語和 600 多種編程語言。
📦 安裝指南
運行上述代碼示例前,你需要安裝以下依賴:
pip install 'transformers @ git+https://github.com/huggingface/transformers.git@831bc25d8fdb85768402f772cf65cc3d7872b211'
pip install accelerate
📚 詳細文檔
模型詳情
模型描述
屬性 |
詳情 |
模型類型 |
一個具有 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 排行榜中的報告不同。
預期用途與侷限性
該模型在聊天、代碼、數學和推理數據集的混合數據上進行了微調。因此,它可用於聊天,你可以通過 演示 測試其編碼能力。
偏差、風險和侷限性
StarChat2 15B 未使用 RLHF 等技術進行人類偏好對齊,也未像 ChatGPT 那樣在響應中進行即時過濾,因此該模型可能會產生有問題的輸出(尤其是在特定提示下)。
主要基於代碼數據訓練的模型也會存在與 GitHub 社區人口統計特徵相關的更明顯的人口統計偏差,更多信息請參閱 StarCoder2 數據集。
由於基礎模型在大量代碼語料庫上進行了預訓練,它可能會生成語法正確但語義錯誤的代碼片段。例如,它可能會生成無法編譯或產生錯誤結果的代碼,也可能會生成存在安全漏洞的代碼。此外,我們還發現該模型有生成虛假 URL 的傾向,點擊前應仔細檢查。
StarChat2 15B 是在基礎模型 StarCoder2 上進行微調的,請參考其模型卡片的 侷限性部分 獲取相關信息。特別是,該模型在一些性別偏差類別、毒性傾向以及建議存在已知安全漏洞的代碼補全風險方面進行了評估,這些評估結果在其 技術報告 中有所報告。
訓練詳情
該模型是 starchat2-15b-sft-v0.1 在 HuggingFaceH4/ultrafeedback_binarized 和 HuggingFaceH4/orca_dpo_pairs 數據集上的微調版本。更多詳細信息請查看 對齊手冊 中的配方。
它在評估集上取得了以下結果:
- 損失: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(β1 = 0.9,β2 = 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
⚠️ 重要提示
該模型可能會產生有問題的輸出,尤其是在特定提示下。生成的代碼可能存在語法正確但語義錯誤、無法編譯、產生錯誤結果或存在安全漏洞等問題。此外,模型生成的 URL 可能是虛假的,點擊前請仔細檢查。
💡 使用建議
在使用模型生成代碼時,建議對代碼進行仔細審查和測試,以確保其正確性和安全性。對於模型生成的 URL,務必謹慎點擊。