🚀 LiteLlama:缩减规模的Llama
LiteLlama是对Meta AI的LLaMa 2进行的开源复刻。不过,它的模型规模大幅缩减,例如LiteLlama - 460M - 1T仅具有4.6亿个参数,并使用1万亿个标记进行训练。
🚀 快速开始
使用HuggingFace Transformers
实验性的模型检查点可以直接通过Transformers库加载。以下代码片段展示了如何加载我们的实验模型并使用它生成文本:
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
model_path = 'ahxt/LiteLlama-460M-1T'
model = AutoModelForCausalLM.from_pretrained(model_path)
tokenizer = AutoTokenizer.from_pretrained(model_path)
model.eval()
prompt = 'Q: What is the largest bird?\nA:'
input_ids = tokenizer(prompt, return_tensors="pt").input_ids
tokens = model.generate(input_ids, max_length=20)
print( tokenizer.decode(tokens[0].tolist(), skip_special_tokens=True) )
✨ 主要特性
- 对Meta AI的LLaMa 2进行开源复刻。
- 大幅缩减模型规模,减少资源占用。
📦 安装指南
文档未提及安装步骤,故跳过此章节。
💻 使用示例
基础用法
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
model_path = 'ahxt/LiteLlama-460M-1T'
model = AutoModelForCausalLM.from_pretrained(model_path)
tokenizer = AutoTokenizer.from_pretrained(model_path)
model.eval()
prompt = 'Q: What is the largest bird?\nA:'
input_ids = tokenizer(prompt, return_tensors="pt").input_ids
tokens = model.generate(input_ids, max_length=20)
print( tokenizer.decode(tokens[0].tolist(), skip_special_tokens=True) )
高级用法
文档未提及高级用法代码示例,故跳过此部分。
📚 详细文档
数据集和分词
我们在RedPajama数据集的部分数据上训练模型。使用GPT2Tokenizer对文本进行分词。
训练详情
模型使用约1万亿个标记(0.98万亿)进行训练。标记数量 = 步数 * 长度 * 批量大小 = 499679 * 1024 * 192 = 98240888832 ≈ 0.98万亿。
训练曲线可在这个WandB项目中查看。
评估
我们在MMLU任务上评估模型。
模型 |
参数数量 |
零样本 |
5样本 |
llama |
70亿 |
28.46 |
35.05 |
openllama |
30亿 |
24.90 |
26.71 |
TinyLlama - 1.1B - step - 50K - 105b |
11亿 |
19.00 |
26.53 |
LiteLlama - 460M - 1T |
4.6亿 |
21.13 |
26.39 |
详细结果可在此处查看。
指标 |
值 |
平均值 |
26.65 |
ARC (25样本) |
24.91 |
HellaSwag (10样本) |
38.47 |
MMLU (5样本) |
26.17 |
TruthfulQA (零样本) |
41.59 |
Winogrande (5样本) |
49.88 |
GSM8K (5样本) |
0.0 |
DROP (3样本) |
5.51 |
🔧 技术细节
文档未提供足够的技术实现细节(未超过50字),故跳过此章节。
📄 许可证
此模型由来自德克萨斯农工大学DATA实验室的Xiaotian Han在Xia "Ben" Hu教授的指导下开发,并遵循MIT许可证发布。
属性 |
详情 |
模型类型 |
LiteLlama |
训练数据 |
RedPajama数据集的部分数据 |
⚠️ 重要提示
代码示例中的模型路径和相关配置需根据实际情况进行调整。
💡 使用建议
在使用模型进行推理时,可以根据具体任务调整generate
方法的参数,如max_length
等,以获得更好的结果。