模型简介
模型特点
模型能力
使用案例
language:
- 葡萄牙语 license: apache-2.0 library_name: transformers tags:
- 文本生成推理 datasets:
- nicholasKluge/Pt-Corpus-Instruct metrics:
- 困惑度 pipeline_tag: 文本生成 widget:
- text: 'PUCRS是一所大学' example_title: 示例
- text: 很久以前,在一个遥远的星系,生活着一个种族 example_title: 示例
- text: 在丑闻中,议会阵线要求参议员Silva example_title: 示例 inference: parameters: repetition_penalty: 1.2 temperature: 0.1 top_k: 50 top_p: 1.0 max_new_tokens: 150 co2_eq_emissions: emissions: 41100 source: CodeCarbon training_type: 预训练 geographical_location: 德国 hardware_used: NVIDIA A100-SXM4-40GB model-index:
- name: TeenyTinyLlama-460m
results:
- task:
type: 文本生成
name: 文本生成
dataset:
name: ENEM挑战赛(无图像)
type: eduagarcia/enem_challenge
split: 训练集
args:
num_few_shot: 3
metrics:
- type: 准确率 value: 20.15 name: 准确率 source: url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=nicholasKluge/TeenyTinyLlama-460m name: 葡萄牙语开源LLM排行榜
- task:
type: 文本生成
name: 文本生成
dataset:
name: BLUEX(无图像)
type: eduagarcia-temp/BLUEX_without_images
split: 训练集
args:
num_few_shot: 3
metrics:
- type: 准确率 value: 25.73 name: 准确率 source: url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=nicholasKluge/TeenyTinyLlama-460m name: 葡萄牙语开源LLM排行榜
- task:
type: 文本生成
name: 文本生成
dataset:
name: OAB考试
type: eduagarcia/oab_exams
split: 训练集
args:
num_few_shot: 3
metrics:
- type: 准确率 value: 27.02 name: 准确率 source: url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=nicholasKluge/TeenyTinyLlama-460m name: 葡萄牙语开源LLM排行榜
- task:
type: 文本生成
name: 文本生成
dataset:
name: Assin2 RTE
type: assin2
split: 测试集
args:
num_few_shot: 15
metrics:
- type: 宏F1 value: 53.61 name: 宏F1 source: url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=nicholasKluge/TeenyTinyLlama-460m name: 葡萄牙语开源LLM排行榜
- task:
type: 文本生成
name: 文本生成
dataset:
name: Assin2 STS
type: eduagarcia/portuguese_benchmark
split: 测试集
args:
num_few_shot: 15
metrics:
- type: 皮尔逊系数 value: 13.0 name: 皮尔逊系数 source: url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=nicholasKluge/TeenyTinyLlama-460m name: 葡萄牙语开源LLM排行榜
- task:
type: 文本生成
name: 文本生成
dataset:
name: FaQuAD NLI
type: ruanchaves/faquad-nli
split: 测试集
args:
num_few_shot: 15
metrics:
- type: 宏F1 value: 46.41 name: 宏F1 source: url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=nicholasKluge/TeenyTinyLlama-460m name: 葡萄牙语开源LLM排行榜
- task:
type: 文本生成
name: 文本生成
dataset:
name: HateBR二元分类
type: ruanchaves/hatebr
split: 测试集
args:
num_few_shot: 25
metrics:
- type: 宏F1 value: 33.59 name: 宏F1 source: url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=nicholasKluge/TeenyTinyLlama-460m name: 葡萄牙语开源LLM排行榜
- task:
type: 文本生成
name: 文本生成
dataset:
name: 葡萄牙语仇恨言论二元分类
type: hate_speech_portuguese
split: 测试集
args:
num_few_shot: 25
metrics:
- type: 宏F1 value: 22.99 name: 宏F1 source: url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=nicholasKluge/TeenyTinyLlama-460m name: 葡萄牙语开源LLM排行榜
- task:
type: 文本生成
name: 文本生成
dataset:
name: tweetSentBR
type: eduagarcia-temp/tweetsentbr
split: 测试集
args:
num_few_shot: 25
metrics:
- type: 宏F1 value: 17.28 name: 宏F1 source: url: https://huggingface.co/spaces/eduagarcia/open_pt_llm_leaderboard?query=nicholasKluge/TeenyTinyLlama-460m name: 葡萄牙语开源LLM排行榜
- task:
type: 文本生成
name: 文本生成
dataset:
name: ENEM挑战赛(无图像)
type: eduagarcia/enem_challenge
split: 训练集
args:
num_few_shot: 3
metrics:
TeenyTinyLlama-460m

模型概述
大型语言模型(LLMs)显著推动了自然语言处理的发展,但其进步在不同语言间尚未均衡。虽然大多数LLMs针对英语等高资源语言进行训练,但多语言模型通常表现不如单语模型。此外,其多语言基础的一些方面有时会限制其产出,如计算需求和许可制度。因此,我们开发了_TeenyTinyLlama_对:两个针对巴西葡萄牙语文本生成的紧凑模型。
阅读我们的文章此处。
详细信息
- 架构: 基于Transformer的因果语言建模预训练模型
- 规模: 468,239,360参数
- 上下文长度: 2048个标记
- 数据集: Pt-Corpus Instruct(62亿标记)
- 语言: 葡萄牙语
- 训练步数: 1,200,000
- GPU: 1块NVIDIA A100-SXM4-40GB
- 训练时间: ~280小时
- 碳排放: 41.1千克CO2(德国)
- 总能耗: 115.69千瓦时
此仓库包含训练该模型的源代码。主要使用的库包括:
预期用途
TeenyTinyLlama的主要预期用途是研究开发低资源语言模型的挑战。训练过程中保存的检查点旨在为进行科学实验提供受控环境。您也可以根据Apache 2.0许可证进一步微调和适配TeenyTinyLlama进行部署。如果您决定使用预训练的TeenyTinyLlama作为微调模型的基础,请自行进行风险和偏见评估。
非预期用途
TeenyTinyLlama不适用于部署。它不是产品,不应用于面向人类的交互。
TeenyTinyLlama模型仅适用于巴西葡萄牙语,不适合翻译或生成其他语言的文本。
TeenyTinyLlama尚未针对语言模型常见部署的下游场景进行微调。
基本用法
使用pipeline
:
from transformers import pipeline
generator = pipeline("text-generation", model="nicholasKluge/TeenyTinyLlama-460m")
completions = generator("天文学是科学", num_return_sequences=2, max_new_tokens=100)
for comp in completions:
print(f"🤖 {comp['generated_text']}")
使用AutoTokenizer
和AutoModelForCausalLM
:
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
# 加载模型和分词器
tokenizer = AutoTokenizer.from_pretrained("nicholasKluge/TeenyTinyLlama-460m", revision='main')
model = AutoModelForCausalLM.from_pretrained("nicholasKluge/TeenyTinyLlama-460m", revision='main')
# 将模型移至设备
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.eval()
model.to(device)
# 分词输入并移至设备
inputs = tokenizer("天文学是科学", return_tensors="pt").to(device)
# 生成文本
completions = model.generate(**inputs, num_return_sequences=2, max_new_tokens=100)
# 打印生成文本
for i, completion in enumerate(completions):
print(f'🤖 {tokenizer.decode(completion)}')
局限性
与几乎所有从网络抓取的大型文本数据集训练的语言模型一样,TTL对表现出一些行为,使其不能直接作为许多现实世界应用的解决方案,特别是那些需要真实、可靠、无毒文本生成的应用。我们的模型都存在以下问题:
-
幻觉: 该模型可能生成看似真实但实际上具有误导性或完全虚假的内容,即幻觉。
-
偏见和毒性: 该模型继承了训练数据中的社会和历史刻板印象。鉴于这些偏见,模型可能生成有毒内容,即对个人、群体或社区有害、冒犯或不利的内容。
-
不可靠代码: 模型可能生成错误的代码片段和语句。这些代码生成不应被视为建议或准确解决方案。
-
语言限制: 该模型主要设计用于理解标准巴西葡萄牙语。其他语言可能会挑战其理解能力,导致潜在的误解或响应错误。
-
重复和冗长: 模型可能陷入重复循环(特别是在生成时重复惩罚设置过低时)或生成与提示无关的冗长响应。
因此,尽管我们的模型以宽松许可证发布,我们敦促用户在实际应用中使用这些模型时进行风险分析,并在与受众交互的应用中由人类审核这些模型的输出,确保用户始终意识到他们正在与语言模型交互。
评估
在我们的训练过程中,两个模型都表现出一致的收敛性。在任何时候,我们的评估曲线都没有显示出过拟合或饱和的迹象。对于我们的460m参数模型,我们有意在最佳点之后继续训练约75,000步以评估是否有饱和迹象,但我们的评估始终给出更好的结果。我们假设我们的模型训练不足,但如果进一步训练超过Chinchilla最优范围,可能会有所改善。
处理标记数 | 困惑度 | 能耗(千瓦时) | 排放(千克CO2当量) |
---|---|---|---|
8.1M | 20.49 | 9.40 | 3.34 |
1.6B | 16.90 | 18.82 | 6.70 |
2.4B | 15.43 | 28.59 | 10.16 |
3.2B | 14.64 | 38.20 | 13.57 |
4.0B | 14.08 | 48.04 | 17.07 |
4.9B | 13.61 | 57.74 | 20.52 |
5.7B | 13.25 | 67.32 | 23.92 |
6.5B | 12.87 | 76.84 | 27.30 |
7.3B | 12.57 | 86.40 | 30.70 |
8.1B | 12.27 | 96.19 | 34.18 |
9.0B | 11.96 | 106.06 | 37.70 |
9.8B | 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 |
多语言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考试 | 平均 | |
---|---|---|---|---|---|---|---|---|
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 |
微调比较
为了进一步评估我们模型的下游能力,我们决定在Poeta基准测试的子集上对我们的TTL对应用基本微调程序。出于比较目的,我们对BERTimbau模型也应用相同的程序,因为它们也是针对巴西葡萄牙语从头训练的LLM,并且与我们的模型规模相似。我们使用这些比较来评估我们的预训练是否产生了能够在下游应用中产生良好结果("良好"在这里意味着"接近BERTimbau")的LLM。
模型 | 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 |
所有显示的结果是在各自任务测试集上微调模型后达到的最高准确率分数。所有微调运行使用相同的超参数,代码实现可以在我们微调模型的模型卡片中找到。
引用 🤗
@misc{correa24ttllama,
title = {TeenyTinyLlama: 巴西葡萄牙语训练的开源微型语言模型},
author = {Corr{\^e}a, Nicholas Kluge and Falk, Sophia and Fatimah, Shiza and Sen, Aniket and De Oliveira, Nythamar},
journal={arXiv预印本 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: 巴西葡萄牙语训练的开源微型语言模型},
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)支持。
许可证
TeenyTinyLlama-460m根据Apache License, Version 2.0授权。详见LICENSE文件。


