Bielik-7B-v0.1 是一款拥有 70 亿参数的生成式文本模型,它以 Mistral-7B-v0.1 为基础,通过处理超过 700 亿个标记精心优化而成。上述模型是开源科学项目 SpeakLeash 与高性能计算(HPC)中心 ACK Cyfronet AGH 独特合作的成果。该模型基于波兰语文本语料库开发和训练,这些语料库由 SpeakLeash 团队精心挑选和处理。此项目利用了波兰的大规模计算基础设施,特别是 PLGrid 环境,更具体地说,是 HPC 中心 ACK Cyfronet AGH。Bielik-7B-v0.1 的创建和训练得到了编号为 PLG/2024/016951 的计算资助支持,在 Athena 和 Helios 超级计算机上进行,这使得大规模机器学习过程所需的尖端技术和计算资源得以应用。因此,该模型展现出卓越的波兰语理解和处理能力,能够提供准确的响应,并高精度地执行各种语言任务。
⚠️ 这是一个基础模型,适用于大多数场景下的进一步微调。如果您正在寻找开箱即可用于聊天或遵循指令的模型,请使用 Bielik-7B-Instruct-v0.1。
🎥 演示:https://huggingface.co/spaces/speakleash/Bielik-7B-Instruct-v0.1
🗣️ 聊天竞技场*:https://arena.speakleash.org.pl/
*聊天竞技场是一个用于测试和比较不同 AI 语言模型的平台,允许用户评估它们的性能和质量。
Bielik-7B-v0.1 的训练使用了名为 ALLaMo 的原创开源框架,该框架由 Krzysztof Ociepa 实现。此框架允许用户以快速高效的方式训练架构类似于 LLaMA 和 Mistral 的语言模型。
模型训练在 ACK Cyfronet AGH 的 Helios 超级计算机上进行,使用了 256 张 NVidia GH200 显卡,吞吐量超过 9200 tokens/gpu/second。
训练数据集由通过 SpeakLeash 项目收集并提供的波兰语文本组成。我们使用了超过 360 亿个标记进行了两轮训练。
为评估波兰语母语文本的质量,我们准备并创建了一个XGBoost分类模型。该模型基于93个特征,例如未登录词与总词数的比率(OOVs)、名词数量、动词数量、平均句子长度等。模型会输出给定文档的类别(HIGH、MEDIUM或LOW)以及相应的概率。这种方法支持实施专用的文档选择流程,我们从中选用了质量指数为HIGH且概率超过90%的文本条目。
这种文本过滤和精心筛选过程,为训练提供了一个精炼且高质量的波兰语文本数据库。
| 超参数 | 数值 |
|---|---|
| 上下文长度 | 4096 |
| 微批次大小 | 4 |
| 批次大小 | 4194304 |
| 学习率(余弦) | 3e-05 -> 2e-05 |
| 预热迭代次数 | 2000 |
| 总迭代次数 | 17350 |
| 优化器 | AdamW |
| β1, β2 | 0.9, 0.95 |
| Adam_eps | 1e−8 |
| 权重衰减 | 0.1 |
| 梯度裁剪 | 1.0 |
| 精度 | bfloat16(混合) |
from openmind import AutoTokenizer, AutoModelForCausalLM, is_torch_npu_available
from openmind_hub import snapshot_download
import torch.nn.functional as F
from torch import Tensor
import argparse
import time
def parse_args():
parser = argparse.ArgumentParser()
parser.add_argument(
"--model_name_or_path",
type=str,
help="Path to model",
default="jeffding/Bielik-7B-v0.1-openmind",
)
args = parser.parse_args()
return args
def main():
args = parse_args()
model_path = args.model_name_or_path
if is_torch_npu_available():
device = "npu:0"
else:
device = "cpu"
tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(model_path, trust_remote_code=True)
model = model.to(device)
start_time = time.time()
prompt = "Give me a short introduction to large language model."
inputs = tokenizer(prompt, return_tensors="pt", return_token_type_ids=False).to(device)
out = model.generate(**inputs, max_new_tokens=80).ravel()
out = tokenizer.decode(out)
print(out)
end_time = time.time()
print(f"硬件环境:{device},推理执行时间:{end_time - start_time}秒")
if __name__ == "__main__":
main()可使用 AutoModelForCausalLM 功能轻松加载此模型。
from transformers import AutoTokenizer, AutoModelForCausalLM
model_name = "speakleash/Bielik-7B-v0.1"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)为了降低内存占用,您可以使用更低的精度(bfloat16)。
import torch
model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype=torch.bfloat16)然后您可以使用 Hugging Face Pipelines 来生成文本:
import transformers
text = "Najważniejszym celem człowieka na ziemi jest"
pipeline = transformers.pipeline("text-generation", model=model, tokenizer=tokenizer)
sequences = pipeline(max_new_tokens=100, do_sample=True, top_k=50, eos_token_id=tokenizer.eos_token_id, text_inputs=text)
for seq in sequences:
print(f"Result: {seq['generated_text']}")生成输出:
人类在地球上最重要的目标是生活在和平、和谐与爱之中。对我们每个人来说,身边有所爱的人是非常重要的。
模型已在 Open PL LLM Leaderboard 上进行了5-shot评估。该基准测试评估模型在NLP任务中的表现,如情感分析、分类、文本分类,但不测试聊天技能。以下为呈现内容:
截至2024年4月3日,下表展示了根据Open PL LLM Leaderboard在5-shot设置下评估的预训练和持续预训练模型的当前分数:
| 平均值 | RAG 重排序 | RAG 阅读器 | 困惑度 | |
|---|---|---|---|---|
| 70亿参数模型: | ||||
| 基线(多数类) | 0.00 | 53.36 | - | - |
| OPI-PG/Qra-7b | 11.13 | 54.40 | 75.25 | 203.36 |
| meta-llama/Llama-2-7b-hf | 12.73 | 54.02 | 77.92 | 850.45 |
| internlm/internlm2-base-7b | 20.68 | 52.39 | 69.85 | 3110.92 |
| Bielik-7B-v0.1 | 29.38 | 62.13 | 88.39 | 123.31 |
| mistralai/Mistral-7B-v0.1 | 30.67 | 60.35 | 85.39 | 857.32 |
| internlm/internlm2-7b | 33.03 | 69.39 | 73.63 | 5498.23 |
| alpindale/Mistral-7B-v0.2-hf | 33.05 | 60.23 | 85.21 | 932.60 |
| speakleash/mistral-apt3-7B/spi-e0_hf (experimental) | 35.50 | 62.14 | 87.48 | 132.78 |
| 不同规模模型: | ||||
| sdadas/polish-gpt2-xl (1.7B) | -23.22 | 48.07 | 3.04 | 160.95 |
| Azurro/APT3-1B-Base (1B) | -8.23 | 51.49 | 18.94 | 249.90 |
| OPI-PG/Qra-1b (1B) | -5.44 | 47.65 | 38.51 | 398.96 |
| internlm/internlm2-1_8b (1.8B) | -2.78 | 49.37 | 31.88 | 60296.30 |
| OPI-PG/Qra-13b (13B) | 29.03 | 53.28 | 83.03 | 168.66 |
| upstage/SOLAR-10.7B-v1.0 (10.7B) | 38.12 | 75.81 | 86.39 | 641.05 |
| 波兰语指令微调模型: | ||||
| szymonrucinski/Curie-7B-v1 | 26.72 | 55.58 | 85.19 | 389.17 |
| Voicelab/trurl-2-7b | 18.85 | 60.67 | 77.19 | 1098.88 |
| Bielik-7B-Instruct-v0.1 | 39.28 | 61.89 | 86.00 | 277.92 |
如您所见,Bielik-7B-v0.1并非拥有最佳的平均得分,但它具有一些明显的优势,例如在RAG阅读器任务中获得了最佳分数。
上述表格中的结果是在未对指令模型使用指令模板的情况下获得的,而是将它们视为基础模型。这种方法可能会使结果产生偏差,因为指令模型是针对特定指令进行优化的。
Bielik-7B-v0.1 不建议在未经微调的情况下部署。若未设置进一步的安全防护措施且未获得用户同意,不应将其用于面向人类的交互。
Bielik-7B-v0.1 可能会产生与事实不符的输出,因此不应依赖它来生成事实准确的数据。Bielik-7B-v0.1 是在各种公开数据集上训练的。尽管已尽最大努力清理训练数据,但该模型仍有可能生成低俗、虚假、带有偏见或其他冒犯性的内容。
本模型采用 Apache 2.0 许可证授权,允许商业用途。
请使用以下格式引用本模型:
@misc{Bielik7Bv01,
title = {Introducing Bielik-7B-v0.1: Polish Language Model},
author = {Ociepa, Krzysztof and Flis, Łukasz and Wróbel, Krzysztof and Gwoździej, Adrian and {SpeakLeash Team} and {Cyfronet Team}},
year = {2024},
url = {https://huggingface.co/speakleash/Bielik-7B-v0.1},
note = {Accessed: 2024-04-01}, % change this date
urldate = {2024-04-01} % change this date
}
@misc{ociepa2024bielik7bv01polish,
title={Bielik 7B v0.1: A Polish Language Model -- Development, Insights, and Evaluation},
author={Krzysztof Ociepa and Łukasz Flis and Krzysztof Wróbel and Adrian Gwoździej and Remigiusz Kinas},
year={2024},
eprint={2410.18565},
archivePrefix={arXiv},
primaryClass={cs.CL},
url={https://arxiv.org/abs/2410.18565},
}本模型的成功构建离不开整个SpeakLeash团队的投入与付出,他们的贡献无可估量。正是凭借众多人员的辛勤努力,才得以收集到大量波兰语内容,并促成了开放科学项目SpeakLeash与高性能计算中心ACK Cyfronet AGH之间的合作。通过投身于开放科学SpeakLeash项目,为模型创建做出贡献的人员包括: Sebastian Kondracki、 Maria Filipkowska、 Grzegorz Urbanowicz、 Szymon Baczyński、 Paweł Kiszczak、 Igor Ciuciura、 Paweł Cyrta、 Jacek Chwiła、 Jan Maria Kowalski、 Karol Jezierski、 Kamil Nonckiewicz、 Izabela Babis、 Nina Babis、 Waldemar Boszko、 Remigiusz Kinas、 Piotr Rybak 以及其他众多优秀的研究人员和人工智能领域的爱好者。
ACK Cyfronet AGH团队中提供宝贵支持和专业知识的成员: Szymon Mazurek。
如果您有任何问题或建议,请使用讨论选项卡。如果您想直接联系我们,请加入我们的 Discord SpeakLeash。