模型概述
模型特點
模型能力
使用案例
🚀 GEITje 7B ultra
GEITje 7B ultra 是一個面向荷蘭語的對話模型,通過人工智能反饋進行對齊優化。它以合成數據為基礎進行訓練,能在一定程度上處理系統消息,為荷蘭語對話場景提供支持。
🚀 快速開始
GEITje 7B ultra 是 BramVanroy/GEITje-7B-ultra-sft 的微調版本,在大約 5600 萬個標記的合成 DPO 數據集上進行訓練,該數據集使用 gpt - 4 - turbo 和 Rijgersberg/GEITje-7B-chat 為荷蘭語生成。
⚠️ 重要提示
雖然該模型已與具有強大內容過濾功能的 gpt - 4 - turbo 輸出對齊,但仍可能生成錯誤、誤導性甚至冒犯性的內容,請自行承擔使用風險。
由於該模型是基於使用 OpenAI/Azure 服務創建的合成數據進行訓練的,因此不能用於商業目的。
💡 使用建議
若您正在尋找快速的 GGUF 版本,可以在 此處 找到它以及如何使用
ollama
的方法。
✨ 主要特性
- 基於 Mistral 架構,專為荷蘭語設計的對話模型。
- 通過 DPO 方法與 AI 反饋對齊,優化對話性能。
- 支持系統消息,能在一定程度上處理複雜對話場景。
📦 安裝指南
文檔未提及安裝步驟,故跳過此章節。
💻 使用示例
基礎用法
from transformers import pipeline, Conversation
# load_in_8bit: 低精度但節省大量 GPU 內存
# device_map=auto: 在多個 GPU 上加載模型
chatbot = pipeline("conversational", model="BramVanroy/GEITje-7B-ultra", model_kwargs={"load_in_8bit": True}, device_map="auto")
start_messages = [
{"role": "system", "content": "Je bent een grappige chatbot die Bert heet. Je maakt vaak mopjes."},
{"role": "user", "content": "Hallo, ik ben Bram. Ik wil vanavond graag een film kijken. Heb je enkele suggesties?"}
]
conversation = Conversation(start_messages)
conversation = chatbot(conversation)
response = conversation.messages[-1]["content"]
print(response)
高級用法
from transformers import pipeline, Conversation
# load_in_8bit: 低精度但節省大量內存
# device_map=auto: 在多個 GPU 上加載模型
# attn_implementation: 使用 flash 注意力(如果設備支持,否則移除該參數)
chatbot = pipeline("conversational", model="BramVanroy/GEITje-7B-ultra", model_kwargs={"load_in_8bit": True, "attn_implementation": "flash_attention_2"}, device_map="auto")
while (system_message := input("System message ('q' to quit): ")) != "q":
start_messages = [
{"role": "system", "content": system_message},
]
conversation = Conversation(start_messages)
while (user_input := input("User ('r' to reset): ")) != "r":
conversation.add_user_input(user_input)
conversation = chatbot(conversation)
response = conversation.messages[-1]["content"]
print("Assistant:", response)
📚 詳細文檔
模型描述
這是一個最終基於 Mistral 的荷蘭語指令/聊天模型,通過 DPO 與 AI 反饋對齊。它是 BramVanroy/GEITje-7B-ultra-sft 的 DPO 延續版本,而後者又基於 Rijgersberg/GEITje-7B,並在荷蘭語數據上進一步預訓練。在 基準測試 中,它平均優於所有原始 GEITje 模型(但優勢微弱)。不過,這些基準測試應謹慎看待(請參閱該頁面基準測試下方的免責聲明)。最佳評估方式是親自嘗試這些模型。
預期用途與限制
儘管該模型已與 gpt - 4 - turbo 輸出對齊,但仍可能生成錯誤、誤導性甚至冒犯性的內容,請自行承擔使用風險。由於該模型是基於使用 OpenAI/Azure 服務創建的合成數據進行訓練的,因此不能用於商業目的。
訓練和評估數據
訓練數據由基於 UltraFeedback binarized 創建的合成數據集組成,使用 gpt - 4 - turbo 和 geitje - chat 生成。將從原始數據集翻譯而來的給定提示提供給兩個模型,然後它們各自生成答案。接著,gpt - 4 - turbo 生成的答案總是被選為最佳答案,DPO 將對此進行優化。雖然這並不完全公平,但由於預算限制,無法讓 gpt - 4 對兩個回覆進行評分。此外,在測試中發現,儘管 GEITje chat 是一個令人印象深刻的模型,但仍落後於 gpt - 4 - turbo。
數據集總共包含 56,137,090 個標記(提示 + 拒絕 + 選擇的組合),測試集包含 6,178,969 個標記(佔比 11.00%)。
訓練過程
訓練使用了優秀的 對齊手冊,並使用自定義的 slurm 腳本以與集群兼容。模型進行了全量訓練,未使用 LoRA 或其他適配器。
模型在兩個節點(每個節點有四個 80GB 的 A100 GPU)上以 bfloat16 精度和 flash 注意力 2 進行了約 11 小時的訓練。感謝 佛蘭芒超級計算機 提供的計算資源。
對於對話使用,模型依賴於 Zephyr 聊天模板,該模板與系統消息兼容。*-sft 數據的一小部分包含系統消息,因此假設模型至少能在一定程度上處理系統消息。
在早期迭代中發現,使用對齊手冊的默認參數(beta = 0.01)會導致較差的結果(隨機標記的幻覺)。經過調查,發現如此低的 beta 值在該數據集上效果不佳,因為它給模型留出了過多偏離其初始基礎模型的空間。經過 超參數搜索 和對結果指標的手動分析,選擇了當前的模型,其 beta 值為 0.1。
訓練超參數
訓練過程中使用了以下超參數:
屬性 | 詳情 |
---|---|
學習率 | 5e - 07 |
訓練批次大小 | 4 |
評估批次大小 | 4 |
隨機種子 | 42 |
分佈式類型 | 多 GPU |
設備數量 | 8 |
梯度累積步數 | 4 |
總訓練批次大小 | 128 |
總評估批次大小 | 32 |
優化器 | Adam(beta1 = 0.9,beta2 = 0.999,epsilon = 1e - 08) |
學習率調度器類型 | 餘弦 |
學習率調度器預熱比例 | 0.1 |
訓練輪數 | 1.0 |
訓練結果
訓練損失 | 輪數 | 步數 | 驗證損失 | 獎勵/選擇 | 獎勵/拒絕 | 獎勵/準確率 | 獎勵/差距 | 對數概率/拒絕 | 對數概率/選擇 | 對數幾率/拒絕 | 對數幾率/選擇 |
---|---|---|---|---|---|---|---|---|---|---|---|
0.03 | 0.22 | 100 | 0.0260 | -0.9740 | -9.8635 | 0.9913 | 8.8895 | -524.8940 | -508.1891 | -3.0753 | -3.0315 |
0.0184 | 0.44 | 200 | 0.0164 | -1.7162 | -12.4772 | 0.9926 | 10.7610 | -551.0317 | -515.6115 | -3.0349 | -2.9873 |
0.0121 | 0.66 | 300 | 0.0142 | -2.0575 | -13.6818 | 0.9938 | 11.6244 | -563.0778 | -519.0242 | -3.0325 | -2.9835 |
0.0198 | 0.88 | 400 | 0.0139 | -2.1431 | -13.8857 | 0.9950 | 11.7426 | -565.1163 | -519.8801 | -3.0293 | -2.9801 |
框架版本
- Transformers 4.36.2
- Pytorch 2.1.2 + cu121
- Datasets 2.14.6
- Tokenizers 0.15.0
英文開放大語言模型排行榜評估結果
英文開放大語言模型排行榜的評估結果。如需荷蘭語的特定結果,請查看 ScandEval。詳細結果可在 此處 查看。
指標 | 值 |
---|---|
平均值 | 10.91 |
IFEval(零樣本) | 37.23 |
BBH(3 樣本) | 12.88 |
MATH 等級 5(4 樣本) | 0.91 |
GPQA(零樣本) | 1.68 |
MuSR(零樣本) | 1.52 |
MMLU - PRO(5 樣本) | 11.24 |
🔧 技術細節
訓練使用了 對齊手冊,並結合自定義 slurm 腳本。模型以 bfloat16 精度和 flash 注意力 2 在特定集群上進行訓練。通過超參數搜索確定了最佳的 beta 值為 0.1,以優化模型性能。
📄 許可證
本模型採用 CC - BY - NC - 4.0 許可證。
引用
如果您使用 GEITje 7B Ultra (SFT) 或其任何派生版本或量化版本,請引用以下論文:
@misc{vanroy2024geitje7bultraconversational,
title={GEITje 7B Ultra: A Conversational Model for Dutch},
author={Bram Vanroy},
year={2024},
eprint={2412.04092},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2412.04092},
}



