TinyLlama-1.1B 项目介绍
TinyLlama-1.1B 是一个旨在预训练规模达 1.1B 的 Llama 模型的项目,该模型将在 3 万亿个标记上进行训练。通过适当的优化,该项目有望在仅需 90 天内实现目标,并且使用 16 台 A100-40G GPU 进行训练。项目已于 2023 年 9 月 1 日启动。
项目背景
TinyLlama 项目选择了与 Llama 2 相同的架构和分词器,这意味着 TinyLlama 可以无缝集成到许多以 Llama 为基础的开源项目中。1.1B 参数的规模使得该模型显得精简,因此在需要严格控制计算和内存占用的应用中,TinyLlama 将是一个理想的选择。
当前模型状态
TinyLlama 项目已经实现了一个中间检查点,其包括 995K 步和 2003B 的标记数量。
发布计划
项目会在特定日期推出中间检查点,同时发布一些基准模型供对比。以下是详细发布计划:
日期 | Checkpoint | 标记数量 | 步数 | HellaSwag 标准化准确率 |
---|---|---|---|---|
基准模型 | StableLM-Alpha-3B | 800B | -- | 38.31 |
基准模型 | Pythia-1B-intermediate-step-50k-105b | 105B | 50k | 42.04 |
基准模型 | Pythia-1B | 300B | 143k | 47.16 |
2023-09-04 | TinyLlama-1.1B-intermediate-step-50k-105b | 105B | 50k | 43.50 |
2023-09-16 | -- | 500B | -- | -- |
2023-10-01 | -- | 1T | -- | -- |
2023-10-16 | -- | 1.5T | -- | -- |
2023-10-31 | -- | 2T | -- | -- |
2023-11-15 | -- | 2.5T | -- | -- |
2023-12-01 | -- | 3T | -- | -- |
如何使用
要使用该模型,需确保 transformers 版本不低于 4.31。详细信息请访问TinyLlama 项目页。以下是一个如何使用该模型生成文本的示例代码:
from transformers import AutoTokenizer
import transformers
import torch
model = "TinyLlama/TinyLlama-1.1B-intermediate-step-955k-token-2T"
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']}")
以上代码展示了如何通过该模型进行文本生成任务,更多信息请参考 GitHub 页面的说明。