模型概述
模型特點
模型能力
使用案例
🚀 TeenyTinyLlama-460m
TeenyTinyLlama-460m是一對用於巴西葡萄牙語文本生成的緊湊型模型,旨在研究低資源語言模型開發的挑戰,為相關研究提供支持。
🚀 快速開始
你可以使用如下代碼示例快速體驗模型的文本生成功能:
基礎用法
from transformers import pipeline
generator = pipeline("text-generation", model="nicholasKluge/TeenyTinyLlama-460m")
completions = generator("Astronomia é a ciência", num_return_sequences=2, max_new_tokens=100)
for comp in completions:
print(f"🤖 {comp['generated_text']}")
高級用法
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
# Load model and the tokenizer
tokenizer = AutoTokenizer.from_pretrained("nicholasKluge/TeenyTinyLlama-460m", revision='main')
model = AutoModelForCausalLM.from_pretrained("nicholasKluge/TeenyTinyLlama-460m", revision='main')
# Pass the model to your device
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.eval()
model.to(device)
# Tokenize the inputs and pass them to the device
inputs = tokenizer("Astronomia é a ciência", return_tensors="pt").to(device)
# Generate some text
completions = model.generate(**inputs, num_return_sequences=2, max_new_tokens=100)
# Print the generated text
for i, completion in enumerate(completions):
print(f'🤖 {tokenizer.decode(completion)}')
✨ 主要特性
- 專注低資源語言:針對巴西葡萄牙語進行優化,彌補低資源語言在大語言模型方面的不足。
- 模型規模緊湊:具有4.68億參數,在資源受限的情況下也能高效運行。
- 訓練數據豐富:基於62億標記的Pt-Corpus Instruct數據集進行預訓練。
- 上下文長度適中:支持2048個標記的上下文長度,能處理較複雜的文本輸入。
📦 安裝指南
文檔未提及具體安裝步驟,可參考相關庫的官方文檔進行安裝,主要使用的庫包括:
📚 詳細文檔
模型詳情
- 架構:基於Transformer的模型,通過因果語言建模進行預訓練。
- 規模:468,239,360個參數。
- 上下文長度:2048個標記。
- 數據集:Pt-Corpus Instruct(62億標記)。
- 語言:葡萄牙語。
- 訓練步數:1,200,000步。
- GPU:1塊NVIDIA A100-SXM4-40GB。
- 訓練時間:約280小時。
- 碳排放:41.1 KgCO2(德國)。
- 總能耗:115.69 kWh。
本倉庫包含用於訓練該模型的源代碼。
預期用途
TeenyTinyLlama主要用於研究開發低資源語言模型相關的挑戰。訓練期間保存的檢查點旨在為進行科學實驗提供可控環境。只要使用符合Apache 2.0許可證,也可以對TeenyTinyLlama進行進一步微調並部署。如果你決定使用預訓練的TeenyTinyLlama作為微調模型的基礎,請自行進行風險和偏差評估。
非預期用途
- 不適合部署:它不是產品,不適合用於面向人類的交互。
- 語言侷限性:僅適用於巴西葡萄牙語,不適合翻譯或生成其他語言的文本。
- 未針對下游場景微調:未針對語言模型常見的下游上下文進行微調。
侷限性
- 幻覺問題:可能生成看似真實但實際上具有誤導性或完全錯誤的內容。
- 偏見和毒性:繼承了訓練數據中的社會和歷史刻板印象,可能生成有害、冒犯性或對個人、群體或社區有害的內容。
- 代碼不可靠:可能生成不正確的代碼片段和語句,不應將其視為建議或準確的解決方案。
- 語言限制:主要設計用於理解標準巴西葡萄牙語,對其他語言的理解可能存在挑戰,導致潛在的誤解或錯誤響應。
- 重複和冗長:可能陷入重複循環(尤其是在生成時重複懲罰設置較低時)或生成與給定提示無關的冗長響應。
因此,儘管我們的模型以寬鬆的許可證發佈,但我們敦促用戶在將其用於實際應用時對這些模型進行風險分析,並在模型與受眾交互的應用中安排人工審核輸出,確保用戶始終意識到他們正在與語言模型交互。
評估結果
在訓練過程中,兩個模型都顯示出一致的收斂性。評估曲線從未顯示過擬合或飽和的跡象。對於4.6億參數的模型,我們有意在最佳點之後繼續訓練了約75,000步,以評估是否有飽和跡象,但評估結果始終更好。我們假設我們的模型訓練不足,但如果進一步訓練以超過Chinchilla最佳範圍,可能會有所改進。
處理的標記數 | 困惑度 | 能耗 (kWh) | 碳排放 (KgCO2eq) |
---|---|---|---|
810萬 | 20.49 | 9.40 | 3.34 |
16億 | 16.90 | 18.82 | 6.70 |
24億 | 15.43 | 28.59 | 10.16 |
32億 | 14.64 | 38.20 | 13.57 |
40億 | 14.08 | 48.04 | 17.07 |
49億 | 13.61 | 57.74 | 20.52 |
57億 | 13.25 | 67.32 | 23.92 |
65億 | 12.87 | 76.84 | 27.30 |
73億 | 12.57 | 86.40 | 30.70 |
81億 | 12.27 | 96.19 | 34.18 |
90億 | 11.96 | 106.06 | 37.70 |
98億 | 11.77 | 115.69 | 41.31 |
基準測試
使用Language Model Evaluation Harness(由EleutherAI開發)對模型進行評估。使用Laiviet翻譯了我們使用的LM-Evaluation-Harness中的任務。標有“*”的模型結果取自Open LLM Leaderboard。
模型 | ARC | HellaSwag | MMLU | TruthfulQA | 平均 |
---|---|---|---|---|---|
Pythia-410m | 24.83* | 41.29* | 25.99* | 40.95* | 33.26 |
TTL-460m | 29.40 | 33.00 | 28.55 | 41.10 | 33.01 |
Bloom-560m | 24.74* | 37.15* | 24.22* | 42.44* | 32.13 |
Xglm-564M | 25.56 | 34.64* | 25.18* | 42.53 | 31.97 |
OPT-350m | 23.55* | 36.73* | 26.02* | 40.83* | 31.78 |
TTL-160m | 26.15 | 29.29 | 28.11 | 41.12 | 31.16 |
Pythia-160m | 24.06* | 31.39* | 24.86* | 44.34* | 31.16 |
OPT-125m | 22.87* | 31.47* | 26.02* | 42.87* | 30.80 |
GPorTuguese-2 | 22.48 | 29.62 | 27.36 | 41.44 | 30.22 |
Gpt2-small | 21.48* | 31.60* | 25.79* | 40.65* | 29.97 |
Multilingual GPT | 23.81 | 26.37* | 25.17* | 39.62 | 28.73 |
使用葡萄牙語版的EleutherAI LM Evaluation Harness(由Eduardo Garcia創建)對巴西葡萄牙語基準進行評估。
模型 | ASSIN2 RTE | ASSIN2 STS | BLUEX | ENEM | FAQUAD NLI | HateBR | OAB Exams | 平均 |
---|---|---|---|---|---|---|---|---|
Qwen-1.8B | 64.83 | 19.53 | 26.15 | 30.23 | 43.97 | 33.33 | 27.20 | 35.03 |
TinyLlama-1.1B | 58.93 | 13.57 | 22.81 | 22.25 | 43.97 | 36.92 | 23.64 | 31.72 |
TTL-460m | 53.93 | 12.66 | 22.81 | 19.87 | 49.01 | 33.59 | 27.06 | 31.27 |
XGLM-564m | 49.61 | 22.91 | 19.61 | 19.38 | 43.97 | 33.99 | 23.42 | 30.41 |
Bloom-1b7 | 53.60 | 4.81 | 21.42 | 18.96 | 43.97 | 34.89 | 23.05 | 28.67 |
TTL-160m | 53.36 | 2.58 | 21.84 | 18.75 | 43.97 | 36.88 | 22.60 | 28.56 |
OPT-125m | 39.77 | 2.00 | 21.84 | 17.42 | 43.97 | 47.04 | 22.78 | 27.83 |
Pythia-160 | 33.33 | 12.81 | 16.13 | 16.66 | 50.36 | 41.09 | 22.82 | 27.60 |
OLMo-1b | 34.12 | 9.28 | 18.92 | 20.29 | 43.97 | 41.33 | 22.96 | 27.26 |
Bloom-560m | 33.33 | 8.48 | 18.92 | 19.03 | 43.97 | 37.07 | 23.05 | 26.26 |
Pythia-410m | 33.33 | 4.80 | 19.47 | 19.45 | 43.97 | 33.33 | 23.01 | 25.33 |
OPT-350m | 33.33 | 3.65 | 20.72 | 17.35 | 44.71 | 33.33 | 23.01 | 25.15 |
GPT-2 small | 33.26 | 0.00 | 10.43 | 11.20 | 43.52 | 33.68 | 13.12 | 20.74 |
GPorTuguese | 33.33 | 3.85 | 14.74 | 3.01 | 28.81 | 33.33 | 21.23 | 19.75 |
Samba-1.1B | 33.33 | 1.30 | 8.07 | 10.22 | 17.72 | 35.79 | 15.03 | 17.35 |
微調比較
為了進一步評估我們模型的下游能力,我們決定對TTL模型在Poeta基準的部分任務子集上進行基本的微調。為了進行比較,我們對BERTimbau模型也應用了相同的微調過程,因為它們也是在巴西葡萄牙語上從頭開始訓練的大語言模型,並且與我們的模型規模相近。我們使用這些比較來評估我們的預訓練是否產生了在下游應用中能夠取得良好結果(這裡的“良好”指“接近BERTimbau”)的大語言模型。
模型 | IMDB | FaQuAD-NLI | HateBr | Assin2 | AgNews | 平均 |
---|---|---|---|---|---|---|
BERTimbau-large | 93.58 | 92.26 | 91.57 | 88.97 | 94.11 | 92.10 |
BERTimbau-small | 92.22 | 93.07 | 91.28 | 87.45 | 94.19 | 91.64 |
TTL-460m | 91.64 | 91.18 | 92.28 | 86.43 | 94.42 | 91.19 |
TTL-160m | 91.14 | 90.00 | 90.71 | 85.78 | 94.05 | 90.34 |
所有顯示的結果都是在訓練集上對模型進行微調後,在相應任務測試集上獲得的最高準確率分數。所有微調運行都使用了相同的超參數,代碼實現可以在我們微調模型的模型卡片中找到。
🔧 技術細節
模型架構
基於Transformer架構,通過因果語言建模進行預訓練。
訓練過程
使用1塊NVIDIA A100-SXM4-40GB GPU進行訓練,訓練步數為1,200,000步,訓練時間約280小時。
碳排放和能耗
訓練過程中的碳排放為41.1 KgCO2(德國),總能耗為115.69 kWh。
📄 許可證
TeenyTinyLlama-460m採用Apache License 2.0許可。有關詳細信息,請參閱LICENSE文件。
📖 引用方式
@misc{correa24ttllama,
title = {TeenyTinyLlama: open-source tiny language models trained in Brazilian Portuguese},
author = {Corr{\^e}a, Nicholas Kluge and Falk, Sophia and Fatimah, Shiza and Sen, Aniket and De Oliveira, Nythamar},
journal={arXiv preprint arXiv:2401.16640},
year={2024}
}
@misc{correa24ttllama,
doi = {10.1016/j.mlwa.2024.100558},
url = {https://www.sciencedirect.com/science/article/pii/S2666827024000343},
title = {TeenyTinyLlama: open-source tiny language models trained in Brazilian Portuguese},
author = {Corr{\^e}a, Nicholas Kluge and Falk, Sophia and Fatimah, Shiza and Sen, Aniket and De Oliveira, Nythamar},
journal={Machine Learning With Applications},
publisher = {Springer},
year={2024}
}
💸 資金支持
本倉庫是RAIES (Rede de Inteligência Artificial Ética e Segura)計劃的一部分,該項目由巴西FAPERGS - (Fundação de Amparo à Pesquisa do Estado do Rio Grande do Sul)支持。
⚠️ 重要提示
儘管模型以寬鬆的許可證發佈,但使用時需自行進行風險分析,特別是在實際應用中,並安排人工審核輸出。
💡 使用建議
若將模型用於下游應用,可參考文檔中的微調比較部分,對模型進行微調以獲得更好的效果。同時,注意設置合理的重複懲罰參數,避免生成重複或冗長的內容。



