模型简介
模型特点
模型能力
使用案例
🚀 巧克力羊驼(ChocoLlama)
基于Llama-2/3的荷兰语语言模型家族,为荷兰语自然语言处理带来新的可能
巧克力羊驼(ChocoLlama)
基于Llama-2/3的荷兰语语言模型家族🚀 快速开始
巧克力羊驼2代7B基础版(ChocoLlama-2-7B-base):入门指南
我们在此推出 巧克力羊驼2代7B基础版(ChocoLlama-2-7B-base),这是Meta公司Llama-2-7b的语言适配版本,使用LoRa在320亿个荷兰语Llama-2标记(104GB)上进行了微调。请注意,这是一个基础模型,未针对对话行为进行优化。如果您的用例需要对话功能,我们建议您在自己的荷兰语数据上对该模型进行微调,或者使用该模型的指令微调版本 巧克力羊驼2代7B指令版(ChocoLlama-2-7B-instruct)。
使用以下代码开始使用该模型:
from transformers import AutoModelForCausalLM, AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained('ChocoLlama/ChocoLlama-2-7B-base')
model = AutoModelForCausalLM.from_pretrained('ChocoLlama/ChocoLlama-2-7B-base')
✨ 主要特性
巧克力羊驼(ChocoLlama)是一系列专门为荷兰语适配的开源大语言模型(LLM),在其权重级别上推动了荷兰语开源大语言模型的发展。
我们提供了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代巧克力羊驼指令版(Llama-3-ChocoLlama-instruct) (链接):羊驼3代巧克力羊驼8B基础版的指令微调版本,在与巧克力羊驼2代7B指令版相同的数据集上进行了微调,同样使用了监督微调(SFT)和直接偏好优化(DPO)。
有关所有模型的基准测试结果,包括与它们的基础模型和其他荷兰语大语言模型的比较,请参考我们的论文此处。
模型描述
属性 | 详情 |
---|---|
开发者 | Matthieu Meeus、Anthony Rathé |
资助方 | 佛兰芒超级计算机中心(Vlaams Supercomputer Centrum),通过约40000个GPU小时(NVIDIA A100 - 80GB)的资助 |
语言 | 荷兰语 |
许可证 | Llama - 2社区许可证 |
微调基础模型 | [Llama - 2 - 7b - hf](https://huggingface.co/meta - llama/Llama - 2 - 7b - hf) |
模型来源
📚 详细文档
直接使用
由于这是一个基础模型,我们不建议直接将其用于您的用例。我们建议您:
- 针对您的特定用例对该模型进行微调。
- 使用该模型的指令微调版本。
下游使用
由于该模型是一个基础模型,它可以轻松适应需要荷兰语理解和生成的特定用例。我们预计该模型在我们的数据集中明确涵盖的领域的用例中特别有用,例如荷兰语职位描述、公司文件和立法的分析和/或生成。
超出适用范围的使用
- 需要聊天式界面的用例:由于这是一个基础模型,它不能可靠地用于基于回合的聊天交互。请使用该模型的指令微调版本。
- 需要理解或生成非荷兰语文本的用例:该模型微调所使用的数据集不包含非荷兰语数据,因此我们预计对于Llama - 2最初训练的英语会出现严重的灾难性遗忘。
偏差、风险和局限性
我们已尽力在数据集中仅包含广泛使用的高质量数据。其中一些数据已由原始创建者进行了过滤。然而,我们没有针对有偏差或其他有害内容对该数据集进行明确的额外过滤。
建议
我们建议您在经过精心策划的数据上对该模型进行微调,以最大程度地避免产生不良输出。
🔧 技术细节
训练数据
我们收集了多样化的荷兰语自然语言数据:
- OSCAR数据集:我们的大部分数据来自[OSCAR](https://oscar - corpus.com)的荷兰语部分(2023年1月版本,基于Common Crawl)。该数据集包含 93GB 文本(约286亿个标记)。
- Open Subtitles数据集:我们从电影字幕中收集了荷兰语文本,重点是荷兰语电影或带有荷兰语字幕的独特电影。该数据集包含来自 21.4万个样本 的 5GB 文本(约15.4亿个标记)。
- 古腾堡计划(Project Gutenberg)数据集:我们使用公共爬虫从古腾堡计划下载了 970本完整的荷兰语书籍。该数据集包含 0.3GB 文本(约9200万个标记),可在[Hugging Face](https://huggingface.co/datasets/ChocoLlama/gutenberg - dutch)上获取。
- 维基百科(Wikipedia)数据集:使用2023年3月的维基百科转储,我们包含了 2.5GB 文本(约7.69亿个标记)。尽管与OSCAR数据集有一些重复,但维基百科的高质量使其值得包含。
- 职位描述(TechWolf)数据集:由TechWolf提供的从公共网站收集的五年内的 75万个荷兰语职位描述样本。该数据集包含 1.5GB 文本(约4.62亿个标记)。
- 国家公报(Staatsblad,Bizzy)数据集:来自比利时国家公报的 8万个法律文件样本。文件经过OCR处理,并排除了个人数据。该数据集包含 1.4GB 文本(约4.31亿个标记),在Bizzy的帮助下收集。
- 佛兰芒立法(ML6)数据集:通过[开放数据API](https://www.vlaanderen.be/vlaams - parlement/de - vlaamse - codex)获取的 1.5万个佛兰芒立法文件。该数据集包含 0.2GB 文本(约6200万个标记),在ML6的支持下收集。
训练过程
该模型使用低秩(LoRa)自适应和可训练嵌入进行了微调,总共有5.44亿个可训练参数。
训练超参数
- 训练模式:bf16非混合精度
- 训练轮数:1
- LoRa参数:
- R:8
- Alpha:32
- 可训练模块:q_proj、v_proj、k_proj、o_proj、gate_proj、up_proj、down_proj、embed_tokens、lm_head
- LoRa丢弃率:0.05
- 学习率:
- 调度器:StepLR
- 步长:6212
- 学习率:0.0003
- Gamma:0.85
- 其他参数:
- 小批量大小:16
- 梯度累积步数:8
- 并行化因子:8
- 权重衰减:0
评估
定量评估
我们在几个行业标准的荷兰语基准测试上对我们的模型进行了评估,这些基准测试是从其原始版本翻译而来的。结果如下表所示,同时还列出了其他几个著名的荷兰语模型的结果。
模型 | ARC | HellaSwag | MMLU | TruthfulQA | 平均 |
---|---|---|---|---|---|
羊驼3代巧克力羊驼指令版(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代巧克力羊驼基础版(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代巧克力羊驼指令版在这些基准测试中超越了之前的最优水平。
定性评估
在我们的论文中,我们还对所有模型进行了额外的定性评估 - 我们通过经验发现这种评估更可靠。有关详细信息,请参考论文和我们的基准测试[巧克力羊驼基准测试(ChocoLlama - Bench)](https://huggingface.co/datasets/ChocoLlama/ChocoLlama - Bench)。
计算基础设施
所有巧克力羊驼模型都在佛兰芒超级计算机中心(VSC)提供的计算集群上进行了训练。我们使用了8到16个具有80GB显存的NVIDIA A100 GPU。
📄 许可证
本模型使用 Llama - 2社区许可证。
引用
如果您认为本项目对您的工作有帮助,请引用我们的论文:
@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}
}



