🚀 polka-1.1b
polka-1.1b
基于 TinyLlama-1.1B 模型,通过在额外的 57 亿个波兰语标记 上继续预训练对其进行了增强,这些标记主要来自 MADLAD-400 数据集。使用 DSIR 以 10:1 的比例在波兰语和英语分片之间对标记进行采样。此外,Polka 将 TinyLlama 分词器的词汇量扩展到 43882 个标记,提高了其生成波兰语文本的效率。

🚀 快速开始
本模型的基础信息如下:
属性 |
详情 |
许可证 |
Apache-2.0 |
基础模型 |
eryk-mazus/tinyllama-with-custom-tokenizer |
训练数据集 |
allenai/MADLAD-400、eryk-mazus/polka-pretrain-en-pl-v1 |
支持语言 |
波兰语、英语 |
任务类型 |
文本生成 |
示例输出
- 输入:"Wiedźmin 3 to fabularna gra akcji wyprodukowana"
输出:" przez studio CD Projekt RED. Akcja rozgrywa się w świecie fantasy, a jej bohaterem jest Geralt z Rivii,"
- 输入:"Gdy już będziecie w Warszawie, miejscem, które koniecznie musicie odwiedzić jest"
输出:" Muzeum Powstania Warszawskiego. To jedyne tego typu muzeum w Europie"
✨ 主要特性
- 增强预训练:在额外的 57 亿个波兰语标记上继续预训练,提升了模型对波兰语的处理能力。
- 词汇扩展:将分词器的词汇量扩展到 43882 个标记,提高生成波兰语文本的效率。
- 上下文长度:支持 2048 个标记的上下文长度。
📦 安装指南
此部分未提供具体安装命令,暂不展示安装指南。
💻 使用示例
基础用法
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "eryk-mazus/polka-1.1b"
tokenizer = AutoTokenizer.from_pretrained(model_name, padding_side="left")
tokenizer.pad_token = tokenizer.eos_token
model = AutoModelForCausalLM.from_pretrained(model_name, device_map="auto", load_in_8bit=True)
prompt = """Przykładowe zapytanie do modelu"""
model_inputs = tokenizer([prompt], return_tensors="pt").to("cuda")
with torch.no_grad():
generated_ids = model.generate(
**model_inputs,
max_new_tokens=512,
do_sample=True,
penalty_alpha=0.6,
top_k=5
)
output = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(output)
高级用法
此部分原文档未提供高级用法示例,暂不展示。
📚 详细文档
注意事项
- 此基础模型最初是作为指令微调的基础开发的,最终得到了 polka-1.1b-chat。不过,由于其相对良好的性能和高效的双语分词器的结合具有潜在价值,所以将其分享给社区。
- 该模型能够生成连贯的波兰语文本,但由于其规模较小,可能会出现幻觉问题。
评估
由 OPI-PG(Qra 模型的作者)进行评估。
PolEval-2018 评估结果
模型 |
困惑度 |
英文模型 |
|
meta-llama/Llama-2-7b-hf |
24.3 |
meta-llama/Llama-2-13b-hf |
21.4 |
mistralai/Mistral-7B-v0.1 |
21.4 |
TinyLlama/TinyLlama-1.1B |
40.4 |
波兰语模型 |
|
sdadas/polish-gpt2-small |
134.4 |
sdadas/polish-gpt2-medium |
100.8 |
sdadas/polish-gpt2-large |
93.2 |
sdadas/polish-gpt2-xl |
94.1 |
Azurro/APT3-275M-Base |
129.8 |
Azurro/APT3-500M-Base |
153.1 |
Azurro/APT3-1B-Base |
106.8 |
eryk-mazus/polka-1.1b |
18.1 |
szymonrucinski/Curie-7B-v1 |
13.5 |
OPI-PG/Qra-1b |
14.7 |
长文档(2024)评估结果
目前,大语言模型支持数千个标记的上下文。其实际应用通常也涉及处理长文档。因此,在基于句子的数据集(如 PolEval-2018)上评估困惑度可能没有意义。此外,PolEval 语料库在过去几年中已在互联网上公开,这增加了某些模型的训练集被此数据污染的可能性。为此,准备了一个新的语料库,其中包含仅在 2024 年发布的长论文,这将使我们能够更可靠地测试模型对训练时无法获取的新知识的困惑度。该语料库由 5000 篇文档组成,标记数从几百到约 20000 个不等。其中一半是 2024 年 2 月波兰新闻门户网站的新闻文本,另一半是自 2024 年 1 月以来发表的科学文章。大多数文档超过了评估模型的上下文长度。为了计算这些文档的困惑度,我们按照 此示例 将它们分割成大小等于模型上下文长度的块,步长为 512 个标记。
模型 |
上下文长度 |
困惑度 |
英文模型 |
|
|
meta-llama/Llama-2-7b-hf |
4096 |
5.9 |
meta-llama/Llama-2-13b-hf |
4096 |
5.3 |
mistralai/Mistral-7B-v0.1 |
4096 |
4.9 |
TinyLlama/TinyLlama-1.1B |
2048 |
9.6 |
波兰语模型 |
|
|
sdadas/polish-gpt2-small |
2048 |
27.3 |
sdadas/polish-gpt2-medium |
2048 |
20.3 |
sdadas/polish-gpt2-large |
1536 |
18.0 |
sdadas/polish-gpt2-xl |
1536 |
16.6 |
Azurro/APT3-275M-Base |
2048 |
77.0 |
Azurro/APT3-500M-Base |
2048 |
50.5 |
Azurro/APT3-1B-Base |
2048 |
19.1 |
eryk-mazus/polka-1.1b |
2048 |
6.9 |
szymonrucinski/Curie-7B-v1 |
4096 |
4.8 |
OPI-PG/Qra-1b |
4096 |
6.1 |
🔧 技术细节
- 训练资源:在一台配备 8 块 RTX 4090 GPU 的机器上使用 DeepSpeed ZeRO-2 进行训练,耗时 680 GPU 小时。
- 标记采样:使用 DSIR 以 10:1 的比例在波兰语和英语分片之间对标记进行采样。
📄 许可证
本项目采用 Apache-2.0 许可证。