探讨紧凑型1.1B参数模型的高效预训练
TinyLlama项目目标是在3万亿标记上预训练一个具备1.1B参数的Llama模型。通过优化技术,该项目可在90天内使用16个A100-40G GPU完成训练。采用与Llama 2相同的架构和分词器,确保与其他开源项目的兼容性。TinyLlama的紧凑设计适合计算和内存受限的应用。该项目于2023年9月1日启动,计划在2023年12月1日前完成,并会逐步发布中间检查点。详细信息请查看TinyLlama GitHub页面。
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 页面的说明。