🚀 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 許可證。