🚀 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
等,以獲得更好的結果。