模型概述
模型特點
模型能力
使用案例
🚀 巧可駝鹿(ChocoLlama)
巧可駝鹿(ChocoLlama)是一系列基於Llama-2/3的荷蘭語語言模型家族,為荷蘭語自然語言處理提供了強大的支持,推動了荷蘭語大語言模型在其權重類別中的技術發展。
🚀 快速開始
我們在此介紹 巧可駝鹿2-7B指令模型(ChocoLlama-2-7B-instruct),它是基於巧可駝鹿3-8B基礎模型(Llama-3-ChocoLlama-8B-base)進行指令微調的版本。該模型在一系列荷蘭語指令微調數據集上進行了微調,採用了監督微調(SFT)和直接偏好優化(DPO)技術。其基礎模型 巧可駝鹿3-8B基礎模型 是Meta的Llama-2-7b的語言適配版本,使用LoRA在320億個荷蘭語Llama-2標記(104GB)上進行了微調。
使用以下代碼開始使用該模型:
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained('ChocoLlama/Llama-3-ChocoLlama-8B-instruct')
model = AutoModelForCausalLM.from_pretrained('ChocoLlama/Llama-3-ChocoLlama-8B-instruct', device_map="auto")
messages = [
{"role": "system", "content": "Je bent een artificiële intelligentie-assistent en geeft behulpzame, gedetailleerde en beleefde antwoorden op de vragen van de gebruiker."},
{"role": "user", "content": "Jacques brel, Willem Elsschot en Jan Jambon zitten op café. Waar zouden ze over babbelen?"},
]
input_ids = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
return_tensors="pt"
).to(model.device)
new_terminators = [
tokenizer.eos_token_id,
tokenizer.convert_tokens_to_ids("<|eot_id|>")
]
outputs = model.generate(
input_ids,
max_new_tokens=512,
eos_token_id=new_terminators,
do_sample=True,
temperature=0.8,
top_p=0.95,
)
response = outputs[0][input_ids.shape[-1]:]
print(tokenizer.decode(response, skip_special_tokens=True))
請注意,用於指令微調的數據集是使用GPT-3.5/4進行翻譯的,這意味著這個經過指令微調的模型不能用於商業目的。因此,對於任何商業應用,我們建議在您自己的荷蘭語數據上對基礎模型進行微調。
✨ 主要特性
- 語言適配:基於Meta的Llama-2/3模型,針對荷蘭語進行了專門的語言適配和微調,能夠更好地處理荷蘭語任務。
- 多種變體:提供了6種不同的模型變體,包括基礎模型和指令微調模型,滿足不同場景的需求。
- 先進的微調技術:採用監督微調(SFT)和直接偏好優化(DPO)技術,提高了模型的性能和響應質量。
📚 詳細文檔
模型詳情
巧可駝鹿(ChocoLlama)是一系列專門為荷蘭語適配的開源大語言模型家族,在其權重類別中推動了荷蘭語開源大語言模型的技術發展。
我們提供了6種變體(其中3種基礎模型和3種指令微調模型):
- 巧可駝鹿2-7B基礎模型(ChocoLlama-2-7B-base) (鏈接):Meta的Llama-2-7b的語言適配版本,使用LoRA在320億個荷蘭語Llama-2標記(104GB)上進行了微調。
- 巧可駝鹿2-7B指令模型(ChocoLlama-2-7B-instruct) (鏈接):基於巧可駝鹿2-7B基礎模型的指令微調版本,在一系列荷蘭語指令微調數據集上進行了微調,採用了監督微調(SFT)和直接偏好優化(DPO)技術。
- 巧可駝鹿2-7B標記轉換基礎模型(ChocoLlama-2-7B-tokentrans-base) (鏈接):Meta的Llama-2-7b的語言適配版本,使用基於荷蘭語RoBERTa的標記器。該模型的標記嵌入使用 Remy等人 提出的標記翻譯算法進行了重新初始化。隨後,該模型在與巧可駝鹿2-7B基礎模型相同的荷蘭語數據集上使用LoRA進行了微調。
- 巧可駝鹿2-7B標記轉換指令模型(ChocoLlama-2-7B-tokentrans-instruct) (鏈接):基於巧可駝鹿2-7B標記轉換基礎模型的指令微調版本,在與巧可駝鹿2-7B指令模型相同的數據集上進行了微調,採用了監督微調(SFT)和直接偏好優化(DPO)技術。
- 巧可駝鹿3-8B基礎模型(Llama-3-ChocoLlama-8B-base) (鏈接):Meta的Llama-8-8B的語言適配版本,在與巧可駝鹿2-7B基礎模型相同的荷蘭語數據集上使用LoRA進行了微調。
- 巧可駝鹿3-8B指令模型(Llama-3-ChocoLlama-instruct) (鏈接):基於巧可駝鹿3-8B基礎模型的指令微調版本,在與巧可駝鹿2-7B指令模型相同的數據集上進行了微調,採用了監督微調(SFT)和直接偏好優化(DPO)技術。
有關所有模型的基準測試結果,包括與它們的基礎模型和其他荷蘭語大語言模型的比較,請參考我們的論文 此處。
模型描述
屬性 | 詳情 |
---|---|
開發者 | Matthieu Meeus、Anthony Rathé |
資助方 | 佛蘭芒超級計算機中心(Vlaams Supercomputer Centrum),通過約40,000個GPU小時(NVIDIA A100-80GB)的資助 |
支持語言 | 荷蘭語 |
許可證 | cc-by-nc-4.0 |
微調基礎模型 | 巧可駝鹿3-8B指令模型 |
模型來源
使用場景
直接使用
這是一個經過指令微調(SFT + DPO)的荷蘭語模型,針對對話場景中的荷蘭語生成進行了優化。為了獲得最佳性能,建議僅使用正確的聊天模板(見上述Python代碼),並可以結合系統提示使用。
非適用場景
需要理解或生成除荷蘭語以外語言文本的用例:該模型微調所使用的數據集不包含除荷蘭語以外的語言數據,因此我們預計該模型對於英語(Llama-2最初訓練的語言)會出現嚴重的災難性遺忘。
偏差、風險和侷限性
我們在數據集中僅包含了廣泛使用且高質量的數據,其中一些數據已經由原始創建者進行了過濾。然而,我們沒有針對有偏差或其他有害內容對該數據集進行明確的額外過濾。
訓練詳情
我們採用了與將GEITje-7B對齊到 GEITje-7B-ultra 相同的策略。首先,我們進行了監督微調(SFT),利用了 Vanroy 提供的數據:
- BramVanroy/ultrachat_200k_dutch
- BramVanroy/no_robots_dutch
- BramVanroy/stackoverflow-chat-dutch
- BramVanroy/alpaca-cleaned-dutch
- BramVanroy/dolly-15k-dutch
接下來,我們對所有預訓練模型的SFT版本應用了直接偏好優化(DPO),現在使用了用於訓練Zephyr-7B-β的數據的荷蘭語版本 BramVanroy/ultra_feedback_dutch。
在SFT和DPO階段,我們更新了所有模型權重,並對所有模型應用了與GEITje-7B-ultra相同的超參數集:
- 學習率:5e-07
- 訓練批次大小:4
- 評估批次大小:4
- 隨機種子:42
- 分佈式類型:多GPU
- 設備數量:4
- 梯度累積步數:4
- 總訓練批次大小:64
- 總評估批次大小:16
- 優化器:Adam(β1=0.9,β2=0.999,ε=1e-08)
- 學習率調度器類型:餘弦
- 學習率調度器熱身比例:0.1
- 訓練輪數:1
此外,我們利用了公開可用的 對齊手冊,並在兩個階段都使用了4個NVIDIA A100(80 GB)GPU。
評估
定量評估
我們在幾個行業標準的荷蘭語基準測試上對我們的模型進行了評估,這些基準測試是從其原始版本翻譯而來的。結果如下表所示,同時還列出了其他幾個著名的荷蘭語模型的結果。
模型 | ARC | HellaSwag | MMLU | TruthfulQA | 平均 |
---|---|---|---|---|---|
巧可駝鹿3-8B指令模型(Llama-3-ChocoLlama-instruct) | 0.48 | 0.66 | 0.49 | 0.49 | 0.53 |
llama-3-8B-rebatch | 0.44 | 0.64 | 0.46 | 0.48 | 0.51 |
llama-3-8B-instruct | 0.47 | 0.59 | 0.47 | 0.52 | 0.51 |
llama-3-8B | 0.44 | 0.64 | 0.47 | 0.45 | 0.5 |
Reynaerde-7B-Chat | 0.44 | 0.62 | 0.39 | 0.52 | 0.49 |
巧可駝鹿3-8B基礎模型(Llama-3-ChocoLlama-base) | 0.45 | 0.64 | 0.44 | 0.44 | 0.49 |
zephyr-7b-beta | 0.43 | 0.58 | 0.43 | 0.53 | 0.49 |
geitje-7b-ultra | 0.40 | 0.66 | 0.36 | 0.49 | 0.48 |
巧可駝鹿2-7B標記轉換指令模型(ChocoLlama-2-7B-tokentrans-instruct) | 0.45 | 0.62 | 0.34 | 0.42 | 0.46 |
mistral-7b-v0.1 | 0.43 | 0.58 | 0.37 | 0.45 | 0.46 |
巧可駝鹿2-7B標記轉換基礎模型(ChocoLlama-2-7B-tokentrans-base) | 0.42 | 0.61 | 0.32 | 0.43 | 0.45 |
巧可駝鹿2-7B指令模型(ChocoLlama-2-7B-instruct) | 0.36 | 0.57 | 0.33 | 0.45 | 0.43 |
巧可駝鹿2-7B基礎模型(ChocoLlama-2-7B-base) | 0.35 | 0.56 | 0.31 | 0.43 | 0.41 |
llama-2-7b-chat-hf | 0.36 | 0.49 | 0.33 | 0.44 | 0.41 |
llama-2-7b-hf | 0.36 | 0.51 | 0.32 | 0.41 | 0.40 |
平均而言,巧可駝鹿3-8B指令模型在這些基準測試中超過了之前的最優模型。
定性評估
在我們的論文中,我們還對所有模型進行了額外的定性評估,我們通過經驗發現這種評估更可靠。有關詳細信息,請參考論文和我們的基準測試 巧可駝鹿基準(ChocoLlama-Bench)。
計算基礎設施
所有巧可駝鹿模型都在 佛蘭芒超級計算機中心(VSC) 提供的計算集群上進行了訓練。我們使用了8到16個具有80 GB顯存的NVIDIA A100 GPU。
引用
如果您認為本項目對您的工作有幫助,請引用我們的論文:
@article{meeus2024chocollama,
title={ChocoLlama: Lessons Learned From Teaching Llamas Dutch},
author={Meeus, Matthieu and Rath{\'e}, Anthony and Remy, Fran{\c{c}}ois and Delobelle, Pieter and Decorte, Jens-Joris and Demeester, Thomas},
journal={arXiv preprint arXiv:2412.07633},
year={2024}
}
📄 許可證
本項目採用 cc-by-nc-4.0 許可證。



