TinyLlama-1.1B项目介绍
TinyLlama-1.1B是一个旨在预训练1.1B参数的Llama模型的项目,并计划使用约3万亿个词元进行训练。通过适当的优化,该项目将在使用16台A100-40G GPU的情况下,于约90天内完成训练。项目的训练已于2023年9月1日启动。
项目背景与目标
TinyLlama项目的目标是创建一个轻量级但功能强大的模型,即1.1B参数的Llama,以便能够轻松应用在每个对计算和内存利用有较高要求的应用中。该模型采用与Llama 2完全相同的架构和分词器,这意味着TinyLlama可以在许多基于Llama构建的开源项目中即插即用。
模型详情
当前发布的中间阶段检查点包含50,000步训练,使用了1050亿个词元。这是这些训练步骤中的一部分成果,提供了一种看清模型发展的方式。
版本发布计划
TinyLlama项目将在以下日期发布中间检查点,并提供一些基线模型以便进行比较:
日期 | HF Checkpoint | 词元数量 | 步数 | HellaSwag标准化准确率 |
---|---|---|---|---|
基线 | StableLM-Alpha-3B | 8000亿 | -- | 38.31 |
基线 | Pythia-1B-中间步骤-50k-105b | 1050亿 | 50k | 42.04 |
基线 | Pythia-1B | 3000亿 | 143k | 47.16 |
2023-09-04 | TinyLlama-1.1B-中间步骤-50k-105b | 1050亿 | 50k | 43.50 |
2023-09-16 | -- | 5000亿 | -- | -- |
2023-10-01 | -- | 1万亿 | -- | -- |
2023-10-16 | -- | 1.5万亿 | -- | -- |
2023-10-31 | -- | 2万亿 | -- | -- |
2023-11-15 | -- | 2.5万亿 | -- | -- |
2023-12-01 | -- | 3万亿 | -- | -- |
如何使用TinyLlama
要使用TinyLlama,用户需安装transformers库4.31及以上版本,详细指引请参阅TinyLlama的GitHub页面。以下是一段简单的Python示例代码,展示了如何使用TinyLlama进行文本生成:
from transformers import AutoTokenizer
import transformers
import torch
model = "PY007/TinyLlama-1.1B-step-50K-105b"
tokenizer = AutoTokenizer.from_pretrained(model)
pipeline = transformers.pipeline(
"text-generation",
model=model,
torch_dtype=torch.float16,
device_map="auto",
)
sequences = pipeline(
'The TinyLlama project aims to pretrain a 1.1B Llama model on 3 trillion tokens. With some proper optimization, we can achieve this within a span of "just" 90 days using 16 A100-40G GPUs 🚀🚀. The training has started on 2023-09-01.',
do_sample=True,
top_k=10,
num_return_sequences=1,
repetition_penalty=1.5,
eos_token_id=tokenizer.eos_token_id,
max_length=500,
)
for seq in sequences:
print(f"Result: {seq['generated_text']}")
希望这段代码可以帮助使用者更好地理解并使用TinyLlama进行各种自然语言处理任务。