模型概述
模型特點
模型能力
使用案例
🚀 芬蘭語版GPT - 2
這是一個基於因果語言建模(CLM)目標,在芬蘭語數據上預訓練的GPT - 2模型。它能學習芬蘭語的內在表示,可用於文本生成等下游任務。
🚀 快速開始
你可以使用此模型直接進行文本生成,也可以將其微調用於下游任務。若想尋找針對特定任務微調後的版本,可查看模型中心。
✨ 主要特性
- 自監督學習:在大量芬蘭語數據上以自監督方式進行預訓練,僅使用原始文本,無需人工標註。
- 文本生成能力:擅長根據提示生成文本,能學習到芬蘭語的內在表示,可用於提取對下游任務有用的特徵。
📦 安裝指南
文檔未提及安裝步驟,暫不提供相關內容。
💻 使用示例
基礎用法
你可以使用管道直接進行文本生成:
>>> from transformers import pipeline
>>> generator = pipeline('text-generation', model='Finnish-NLP/gpt2-finnish')
>>> generator("Teksti√§ tuottava teko√§ly on", max_length=30, num_return_sequences=5)
[{'generated_text': 'Tekstiä tuottava tekoäly on kuin onkin hyvin pieni. Sitä voi käyttää myös hyvin nopeasti ja myös täysin automatisoituna, eikä sitä tarvitse käydä läpi. Se'},
{'generated_text': 'Teksti√§ tuottava teko√§ly on saanut jalansijaa, mutta Suomessa se on jo ehtinyt hajota k√§siin, koska sen avulla ei pystyt√§ tuottamaan t√§ysin ajantasaisia'},
{'generated_text': 'Tekstiä tuottava tekoäly on tehnyt työtä kymmenien vuosien ajan ja ottanut käyttöön jo yli kahden vuosikymmenen ajan tekoälyn ratkaisuja. Tekoäly on jo pitkään tehnyt työtä'},
{'generated_text': 'Tekstiä tuottava tekoäly on tekoälyn sovellus, jota käytetään esimerkiksi liiketoiminnan ja päätöksenteon tukena. Työhön liittyy data-analyysin ohella tekoälyn avulla esimerkiksi tekoäl'},
{'generated_text': 'Tekstiä tuottava tekoäly on juuri nyt erityisen hyödyllinen, koska se tunnistaa käyttäjän tietokoneen ruudulla olevat ilmoitukset, kuten näytän värin ja osoittimet ilman välkyn'}]
高級用法
以下是在PyTorch中使用該模型獲取給定文本特徵的方法:
from transformers import GPT2Tokenizer, GPT2Model
tokenizer = GPT2Tokenizer.from_pretrained('Finnish-NLP/gpt2-finnish')
model = GPT2Model.from_pretrained('Finnish-NLP/gpt2-finnish')
text = "Replace me by any text you'd like."
encoded_input = tokenizer(text, return_tensors='pt')
output = model(**encoded_input)
在TensorFlow中的使用方法:
from transformers import GPT2Tokenizer, TFGPT2Model
tokenizer = GPT2Tokenizer.from_pretrained('Finnish-NLP/gpt2-finnish')
model = TFGPT2Model.from_pretrained('Finnish-NLP/gpt2-finnish', from_pt=True)
text = "Replace me by any text you'd like."
encoded_input = tokenizer(text, return_tensors='tf')
output = model(encoded_input)
📚 詳細文檔
模型描述
芬蘭語版GPT - 2是一個基於Transformer架構的模型,以自監督方式在大量芬蘭語數據上進行預訓練。這意味著它僅在原始文本上進行預訓練,無需人工進行任何標註(因此可以使用大量公開可用的數據),並通過自動流程從這些文本中生成輸入和標籤。更確切地說,它被訓練用於預測句子中的下一個單詞。
具體而言,輸入是一定長度的連續文本序列,目標是相同的序列,但向右移動一個標記(單詞或單詞片段)。模型內部使用掩碼機制,確保對標記 i
的預測僅使用從 1
到 i
的輸入,而不使用未來的標記。
通過這種方式,模型學習到芬蘭語的內在表示,可用於提取對下游任務有用的特徵。不過,該模型最擅長的還是其預訓練的任務,即根據提示生成文本。
預期用途與限制
你可以使用原始模型進行文本生成,或對其進行微調以用於下游任務。查看模型中心,尋找針對你感興趣的任務進行微調後的版本。
限制和偏差
該模型的訓練數據包含大量來自互聯網的未經過濾的內容,這些內容遠非中立。因此,模型的預測可能存在偏差。這種偏差也會影響該模型的所有微調版本。
與所有語言模型一樣,很難提前預測芬蘭語版GPT - 2對特定提示的響應,並且可能會在沒有警告的情況下出現冒犯性內容。我們建議在發佈輸出之前,由人工進行審核或過濾,以審查不良內容並提高結果的質量。
訓練數據
這個芬蘭語版GPT - 2模型在六個數據集的組合上進行了預訓練:
- mc4_fi_cleaned:mC4數據集是Common Crawl網絡爬取語料庫的多語言、經過清理的版本。我們使用了mC4數據集中的芬蘭語子集,並使用我們自己的文本數據清理代碼對其進行了進一步清理(查看數據集倉庫)。
- wikipedia:我們使用了維基百科(2021年8月)數據集中的芬蘭語子集。
- Yle Finnish News Archive 2011 - 2018
- Yle Finnish News Archive 2019 - 2020
- Finnish News Agency Archive (STT)
- The Suomi24 Sentences Corpus
原始數據集經過清理,以過濾掉質量不佳和非芬蘭語的示例。這些清理後的數據集總共約有84GB的文本。
訓練過程
預處理
文本使用字節級的字節對編碼(BPE)(用於Unicode字符)進行分詞,詞彙表大小為50,257。輸入是由512個連續標記組成的序列。
預訓練
該模型在由Google TPU Research Cloud慷慨提供計算資源的TPUv3 - 8虛擬機上進行了300k步的訓練(略超過2個epoch,批量大小為256)。使用的優化器是一種稱為Distributed Shampoo的二階優化方法,學習率為1e - 4,學習率在4000步內進行預熱,之後學習率呈餘弦衰減。
起初,嘗試使用常用的Adam優化器,但即使嘗試了多種不同的學習率,模型收斂仍存在顯著問題。因此,將Adam優化器替換為Distributed Shampoo,效果要好得多。
評估結果
使用mc4_fi_cleaned數據集的驗證分割,以困惑度(分數越小越好)作為評估指標進行評估。從下表可以看出,該模型(表格第一行)的表現不如我們更大的模型變體。
模型名稱 | 困惑度 |
---|---|
Finnish - NLP/gpt2 - finnish | 44.19 |
Finnish - NLP/gpt2 - medium - finnish | 34.08 |
Finnish - NLP/gpt2 - large - finnish | 30.74 |
🔧 技術細節
該模型基於GPT - 2架構,在芬蘭語數據上進行預訓練。使用字節級的BPE分詞方法,詞彙表大小為50,257。輸入序列長度為512個標記。在TPUv3 - 8虛擬機上進行訓練,使用Distributed Shampoo優化器,學習率為1e - 4,學習率在4000步內進行預熱,之後呈餘弦衰減。
📄 許可證
本項目採用Apache - 2.0許可證。
致謝
如果沒有Google通過TPU Research Cloud慷慨提供的計算資源,這個項目是不可能完成的。
團隊成員
- Aapo Tanskanen,Hugging Face個人資料,領英個人資料
- Rasmus Toivanen,Hugging Face個人資料,領英個人資料
如有更多細節問題,請隨時與我們聯繫。



