モデル概要
モデル特徴
モデル能力
使用事例
🚀 PLLuM:ポーランドの大規模言語モデルファミリー
PLLuM は、ポーランド語や他のスラブ語・バルト語に特化した一連の大規模言語モデル(LLM)です。同時に、より広範な汎化能力を実現するために英語のデータも取り入れています。このモデルは、多数のデータプロバイダーと広く協力して開発され、高品質なテキストコーパスに基づいており、命令微調整、嗜好学習、高度なアライメント技術によって最適化されています。これらのモデルは、文脈的に首尾一貫したテキストを生成し、質問応答や要約などの様々なタスクを支援し、特定分野のアプリケーション(特定分野のインテリジェントアシスタントなど)の基盤を築くことを目的としています。
🚀 クイックスタート
各 PLLuM モデルは、Hugging Face Transformers ライブラリ(または互換性のあるフレームワーク)を使用してロードできます。RAG(Retrieval Augmented Generation)ベースのシナリオでは、モデルを関連するベクトルストレージまたはドキュメント検索システムと組み合わせて使用する必要があります。以下は推奨される手順とコードスニペットです。
1. インストール
最新バージョンの transformers
と torch
(または他の互換性のあるディープラーニングフレームワーク)をインストールしてください。
pip install transformers accelerate torch
2. モデルのロード
以下の例を使用して、PLLuM モデルの 1 つをロードします。
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(ポーランド大規模言語モデル)の責任ある開発」。



