模型简介
模型特点
模型能力
使用案例
🚀 PLLuM:波兰大型语言模型家族
PLLuM 是一系列专注于波兰语及其他斯拉夫/波罗的海语言的大型语言模型(LLM),同时融入了英语数据以实现更广泛的泛化能力。该模型通过与众多数据提供商广泛合作开发而成,基于高质量文本语料库,并通过指令微调、偏好学习和先进的对齐技术进行优化。这些模型旨在生成上下文连贯的文本,为各种任务(如问答、摘要)提供帮助,并为特定领域的应用(如特定领域的智能助手)奠定基础。
🚀 快速开始
每个 PLLuM 模型都可以通过 Hugging Face Transformers 库(或兼容框架)加载。对于基于 RAG 的场景,需将模型与相关的向量存储或文档检索系统配合使用。以下是一些推荐步骤和代码片段:
1. 安装
确保你安装了最新版本的 transformers
和 torch
(或其他兼容的深度学习框架):
pip install transformers accelerate torch
2. 加载模型
使用以下示例加载其中一个 PLLuM 模型:
from transformers import AutoTokenizer, AutoModelForCausalLM
model_name = "CYFRAGOVPL/PLLuM-12B-chat" # 替换为你选择的 PLLuM 模型名称
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
3. 使用 bfloat16(BF16)
如果你的硬件(如较新的 GPU)支持 bfloat16,你可以减少内存使用并可能加快推理速度:
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
model_name = "CYFRAGOVPL/PLLuM-12B-chat"
tokenizer = AutoTokenizer.from_pretrained(model_name)
# 以 bfloat16 精度加载模型
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.bfloat16,
device_map="auto" # 自动将模型层放置在可用设备上
)
4. 生成示例文本
prompt = "Napisz krótki wiersz o wiośnie." # 英文:"Write a short poem about spring."
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(
**inputs,
max_new_tokens=50,
do_sample=True,
top_k=50,
top_p=0.9,
temperature=0.7
)
generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(generated_text)
5. 预期输出
以下是上述提示的示例(假设)输出:
Przykładowy wiersz o tematyce wiosennej:
Wiosna, wiosna, wiosna, ach to ty!
Kwiecień plecień wciąż przeplata,
trochę zimy, trochę lata.
A ja nie mogę się już doczekać,
kiedy w kalendarzu ujrzę maj.
Wtedy wszystko wkoło rozkwita,
a ptaki tak pięknie śpiewają.
Wiosno, wiosno, czekam z utęsknieniem,
zrób mi tę przyjemność i przyjdź wreszcie, proszę!
你的结果可能会因模型参数(如温度、top_k、top_p)、硬件和其他设置而有所不同。
6. 检索增强生成(RAG)
我们的 Llama - PLLuM 模型(聊天和指令版本)还经过额外训练,可在检索增强生成(RAG)设置中表现出色。提示采用 .jinja 格式,其中 docs 是文档文本列表,question 是应根据提供的文档回答的查询。如果提供的文档中没有答案,模型将生成 "Nie udało mi się odnaleźć odpowiedzi na pytanie"。
提示:
Numerowana lista dokumentów jest poniżej:
---------------------
<results>{% for doc in docs %}
Dokument: {{ loop.index0 }}
{{ doc }}
{% endfor %}</results>
---------------------
Odpowiedz na pytanie użytkownika wykorzystując tylko informacje znajdujące się w dokumentach, a nie wcześniejszą wiedzę.
Udziel wysokiej jakości, poprawnej gramatycznie odpowiedzi w języku polskim. Odpowiedź powinna zawierać cytowania do dokumentów, z których pochodzą informacje. Zacytuj dokument za pomocą symbolu [nr_dokumentu] powołując się na fragment np. [0] dla fragmentu z dokumentu 0. Jeżeli w dokumentach nie ma informacji potrzebnych do odpowiedzi na pytanie, zamiast odpowiedzi zwróć tekst: "Nie udało mi się odnaleźć odpowiedzi na pytanie".
Pytanie: {{ question }}
✨ 主要特性
关键亮点
-
广泛的数据收集
我们收集了大规模、高质量的波兰语文本数据(清理和去重后约 1500 亿个标记),以及斯拉夫语、波罗的海语和英语的额外文本。其中部分标记(280 亿)可用于完全开源的模型,包括商业用途(需遵守相关法律法规)。 -
有机指令数据集
我们精心策划了最大的波兰语手动创建的 “有机指令” 集合(约 40000 个提示 - 响应对,包括约 3500 个多轮对话)。这个人编写的指令集基于广泛的人机交互类型学,涵盖了监督微调(SFT)中自动化方法可能忽略的一系列细微方面(包括对 “强大大语言模型” 的大规模蒸馏)。它还旨在减轻预训练阶段使用的非波兰语文本数据带来的负面语言迁移。 -
波兰语偏好语料库
我们创建了第一个波兰语偏好语料库,其中包含由具有不同人口统计学特征的注释团队手动评估的提示和多个模型响应。这个数据集不仅教会模型正确性(事实和语言方面),还教会其平衡性和安全性 —— 特别是对于潜在的争议性或对抗性话题。 -
评估基准
我们开发了自定义基准,用于评估我们的模型在与波兰公共管理相关的任务上的表现,PLLuM 在所有测试模型中取得了最高分。在更广泛的波兰语任务中,PLLuM 模型也达到了最先进的水平。
📦 安装指南
确保你安装了最新版本的 transformers
和 torch
(或其他兼容的深度学习框架):
pip install transformers accelerate torch
💻 使用示例
基础用法
from transformers import AutoTokenizer, AutoModelForCausalLM
model_name = "CYFRAGOVPL/PLLuM-12B-chat" # 替换为你选择的 PLLuM 模型名称
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
高级用法
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
model_name = "CYFRAGOVPL/PLLuM-12B-chat"
tokenizer = AutoTokenizer.from_pretrained(model_name)
# 以 bfloat16 精度加载模型
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.bfloat16,
device_map="auto" # 自动将模型层放置在可用设备上
)
prompt = "Napisz krótki wiersz o wiośnie." # 英文:"Write a short poem about spring."
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
outputs = model.generate(
**inputs,
max_new_tokens=50,
do_sample=True,
top_k=50,
top_p=0.9,
temperature=0.7
)
generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(generated_text)
📚 详细文档
模型描述
以下是主要 PLLuM 模型的摘要,包括其许可证、基础模型和参数大小。所有模型名称均链接到特定的 Hugging Face 资源,基础模型和许可证链接到各自的来源或许可证参考。请注意,所有 -nc- 模型仅供非商业使用。
属性 | 详情 |
---|---|
模型类型 | 包括 Llama - PLLuM - 8B - base、PLLuM - 12B - base 等多种不同参数和用途的模型 |
训练数据 | 约 1500 亿个来自波兰语和多语言来源的标记,其中约 280 亿个标记可用于完全开源的商业用途 |
模型名称 | 参数 | 许可证 | 基础模型 |
---|---|---|---|
[Llama - PLLuM - 8B - base](https://huggingface.co/CYFRAGOVPL/Llama - PLLuM - 8B - base) | 8B | [Llama 3.1](https://huggingface.co/meta - llama/Llama - 3.1 - 8B/blob/main/LICENSE) | [Llama3.1 - 8B](https://huggingface.co/meta - llama/Llama - 3.1 - 8B) |
[Llama - PLLuM - 8B - instruct](https://huggingface.co/CYFRAGOVPL/Llama - PLLuM - 8B - instruct) | 8B | [Llama 3.1](https://huggingface.co/meta - llama/Llama - 3.1 - 8B/blob/main/LICENSE) | [Llama3.1 - 8B](https://huggingface.co/meta - llama/Llama - 3.1 - 8B) |
[Llama - PLLuM - 8B - chat](https://huggingface.co/CYFRAGOVPL/Llama - PLLuM - 8B - chat) | 8B | [Llama 3.1](https://huggingface.co/meta - llama/Llama - 3.1 - 8B/blob/main/LICENSE) | [Llama3.1 - 8B](https://huggingface.co/meta - llama/Llama - 3.1 - 8B) |
[PLLuM - 12B - base](https://huggingface.co/CYFRAGOVPL/PLLuM - 12B - base) | 12B | [Apache 2.0](https://www.apache.org/licenses/LICENSE - 2.0.txt) | [Mistral - Nemo - Base - 2407](https://huggingface.co/mistralai/Mistral - Nemo - Base - 2407) |
[PLLuM - 12B - instruct](https://huggingface.co/CYFRAGOVPL/PLLuM - 12B - instruct) | 12B | [Apache 2.0](https://www.apache.org/licenses/LICENSE - 2.0.txt) | [Mistral - Nemo - Base - 2407](https://huggingface.co/mistralai/Mistral - Nemo - Base - 2407) |
[PLLuM - 12B - chat](https://huggingface.co/CYFRAGOVPL/PLLuM - 12B - chat) | 12B | [Apache 2.0](https://www.apache.org/licenses/LICENSE - 2.0.txt) | [Mistral - Nemo - Base - 2407](https://huggingface.co/mistralai/Mistral - Nemo - Base - 2407) |
[PLLuM - 12B - nc - base](https://huggingface.co/CYFRAGOVPL/PLLuM - 12B - nc - base) | 12B | [CC - BY - NC - 4.0](https://creativecommons.org/licenses/by - nc/4.0/legalcode.txt) | [Mistral - Nemo - Base - 2407](https://huggingface.co/mistralai/Mistral - Nemo - Base - 2407) |
[PLLuM - 12B - nc - instruct](https://huggingface.co/CYFRAGOVPL/PLLuM - 12B - nc - instruct) | 12B | [CC - BY - NC - 4.0](https://creativecommons.org/licenses/by - nc/4.0/legalcode.txt) | [Mistral - Nemo - Base - 2407](https://huggingface.co/mistralai/Mistral - Nemo - Base - 2407) |
[PLLuM - 12B - nc - chat](https://huggingface.co/CYFRAGOVPL/PLLuM - 12B - nc - chat) | 12B | [CC - BY - NC - 4.0](https://creativecommons.org/licenses/by - nc/4.0/legalcode.txt) | [Mistral - Nemo - Base - 2407](https://huggingface.co/mistralai/Mistral - Nemo - Base - 2407) |
[PLLuM - 8x7B - base](https://huggingface.co/CYFRAGOVPL/PLLuM - 8x7B - base) | 8×7B | [Apache 2.0](https://www.apache.org/licenses/LICENSE - 2.0.txt) | [Mixtral - 8x7B - v0.1](https://huggingface.co/mistralai/Mixtral - 8x7B - v0.1) |
[PLLuM - 8x7B - instruct](https://huggingface.co/CYFRAGOVPL/PLLuM - 8x7B - instruct) | 8×7B | [Apache 2.0](https://www.apache.org/licenses/LICENSE - 2.0.txt) | [Mixtral - 8x7B - v0.1](https://huggingface.co/mistralai/Mixtral - 8x7B - v0.1) |
[PLLuM - 8x7B - chat](https://huggingface.co/CYFRAGOVPL/PLLuM - 8x7B - chat) | 8×7B | [Apache 2.0](https://www.apache.org/licenses/LICENSE - 2.0.txt) | [Mixtral - 8x7B - v0.1](https://huggingface.co/mistralai/Mixtral - 8x7B - v0.1) |
[PLLuM - 8x7B - nc - base](https://huggingface.co/CYFRAGOVPL/PLLuM - 8x7B - nc - base) | 8×7B | [CC - BY - NC - 4.0](https://creativecommons.org/licenses/by - nc/4.0/legalcode.txt) | [Mixtral - 8x7B - v0.1](https://huggingface.co/mistralai/Mixtral - 8x7B - v0.1) |
[PLLuM - 8x7B - nc - instruct](https://huggingface.co/CYFRAGOVPL/PLLuM - 8x7B - nc - instruct) | 8×7B | [CC - BY - NC - 4.0](https://creativecommons.org/licenses/by - nc/4.0/legalcode.txt) | [Mixtral - 8x7B - v0.1](https://huggingface.co/mistralai/Mixtral - 8x7B - v0.1) |
[PLLuM - 8x7B - nc - chat](https://huggingface.co/CYFRAGOVPL/PLLuM - 8x7B - nc - chat) | 8×7B | [CC - BY - NC - 4.0](https://creativecommons.org/licenses/by - nc/4.0/legalcode.txt) | [Mixtral - 8x7B - v0.1](https://huggingface.co/mistralai/Mixtral - 8x7B - v0.1) |
[Llama - PLLuM - 70B - base](https://huggingface.co/CYFRAGOVPL/Llama - PLLuM - 70B - base) | 70B | [Llama 3.1](https://huggingface.co/meta - llama/Llama - 3.1 - 70B/blob/main/LICENSE) | [Llama - 3.1 - 70B](https://huggingface.co/meta - llama/Llama - 3.1 - 70B) |
[Llama - PLLuM - 70B - instruct](https://huggingface.co/CYFRAGOVPL/Llama - PLLuM - 70B - instruct) | 70B | [Llama 3.1](https://huggingface.co/meta - llama/Llama - 3.1 - 70B/blob/main/LICENSE) | [Llama - 3.1 - 70B](https://huggingface.co/meta - llama/Llama - 3.1 - 70B) |
[Llama - PLLuM - 70B - chat](https://huggingface.co/CYFRAGOVPL/Llama - PLLuM - 70B - chat) | 70B | [Llama 3.1](https://huggingface.co/meta - llama/Llama - 3.1 - 70B/blob/main/LICENSE) | [Llama - 3.1 - 70B](https://huggingface.co/meta - llama/Llama - 3.1 - 70B) |
模型开发
- 预训练:所有模型都在大规模波兰语语料库(最多 1500 亿个标记)以及一系列额外的斯拉夫/波罗的海和英语文本上进行了预训练或继续预训练。
- 指令微调:我们在手动策划的波兰语 “有机指令”(约 40000 条)、来自优质波兰语语料库的转换指令(约 50000 条)和强大大语言模型生成的合成指令(约 10000 条)上对模型进行了优化。
- 对齐和偏好学习:手动注释的偏好数据教会模型产生更安全、平衡且上下文合适的响应,即使在对抗性或敏感情况下也是如此。
- 特定领域适应:为公共管理等任务开发了基于 RAG(检索增强生成)的专业模型,在复杂信息检索和问答方面表现出色。
🔧 技术细节
训练过程
- 数据集:约 1500 亿个来自波兰语和多语言来源的标记,其中约 280 亿个标记可用于完全开源的商业用途。
- 超参数:根据模型大小而异,通常包括 Adam 或 AdamW 优化器、一系列批量大小和经过精心调整的学习率。
- 硬件与时长:使用 [Bem2](https://man.e - science.pl/pl/kdm/bem2) 高性能计算(最多 300 个 H100 GPU)进行训练。每个模型的训练时间取决于参数大小和硬件配置(对于 8B - 70B 大小的模型,在多 GPU 集群上约为 8 到 25 天)。
评估和基准
- 公共管理:PLLuM 模型在与政府服务相关的专业任务中表现出色。
- 波兰语任务:在各种内部基准和标准语料库中,PLLuM 在准确性、连贯性和安全性指标上始终优于其他模型。
- 自定义测试:独特的偏好语料库和对齐测试确保了模型响应的稳健性、安全性和上下文准确性。
📄 许可证
PLLuM 家族中的不同模型根据不同的许可证发布(Apache 2.0、CC - BY - NC - 4.0 或 Llama 3.1 许可证)。请查看上表中每个模型的条目以获取详细信息。
预期使用场景
- 通用语言任务:文本生成、摘要、问答等。
- 特定领域助手:特别适用于波兰公共管理以及需要特定领域检索的法律或官僚主题。
- 研发:在学术或工业环境中,对于需要精通波兰语的下游人工智能应用,PLLuM 可作为基础构建模块。
局限性和偏差
- 潜在幻觉:与其他大语言模型一样,PLLuM 偶尔可能会产生事实错误或虚构的内容。
- 敏感性与偏差:尽管进行了广泛的偏好学习,但在有争议或主观的话题上仍可能出现偏差。
- 上下文长度:由于内存限制,某些模型在处理非常长的上下文任务时可能会面临挑战。
伦理考量
PLLuM 模型旨在进行建设性和负责任的使用。用户在生产环境中部署这些模型时应谨慎行事,特别是在敏感或受监管的领域。尽管已尽力减少有害输出,但始终存在生成冒犯性、有偏差或不适当文本的风险。建议进行人工监督和尽职调查。
引用
如果您在研究或部署中使用了 PLLuM 模型或本存储库的任何部分,请按以下方式引用(BibTeX):
@unpublished{pllum2025,
title={PLLuM: A Family of Polish Large Language Models},
author={PLLuM Consortium},
year={2025}
}
创建者与联盟
PLLuM 项目是波兰领先的科研机构与各领域专家之间的独特合作,共同致力于创建具有开创性的波兰语模型。这种研究合作汇聚了多样化的能力和热情,为波兰人工智能的发展奠定了坚实基础。
机构名称 | 机构链接 |
---|---|
华沙工业大学(Politechnika Wrocławska) | https://pwr.edu.pl/ |
波兰网络信息中心(NASK PIB) | https://www.nask.pl/ |
波兰科学院计算机科学基础研究所(Instytut Podstaw Informatyki PAN) | https://www.ipipan.waw.pl/ |
信息处理中心(Ośrodek Przetwarzania Informacji PIB) | https://opi.org.pl/ |
罗兹大学(Uniwersytet Łódzki) | https://www.uni.lodz.pl/ |
波兰科学院斯拉夫研究研究所(Instytut Slawistyki PAN) | https://ispan.waw.pl/default/ |
联系与支持
如有疑问或想要做出贡献,请通过 <pllum@e - science.pl> 联系我们。我们欢迎反馈、合作以及对 PLLuM 模型的进一步探索!
致谢
本项目由数字事务部长根据第 1/WI/DBiI/2023 号定向补贴资助:“负责任地开发开放大型语言模型 PLLuM(波兰大型语言模型)以支持突破性技术”。



