YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
GPT语言模型 - 从零训练
模型简介
这是一个从零开始训练的GPT-2架构语言模型,专门用于因果语言建模(Causal Language Modeling)任务。模型能够根据给定的前文序列预测下一个token,实现文本续写和生成功能。
模型架构
- 模型类型: GPT-2 架构(因果语言模型)
- 层数: 6层 Transformer
- 注意力头数: 8头
- 嵌入维度: 384
- 词汇表大小: 516 tokens
- 任务类型: 因果语言建模(预测下一个token)
- 输出: 词汇表概率分布(516维)
训练特点
- 从零训练: 不使用预训练权重,完全从头开始训练
- 小模型设计: 针对有限计算资源优化
- 因果语言建模: 预测序列中每个位置的下一个token
- 梯度裁剪: 防止梯度爆炸
- 学习率调度: 余弦退火调度器
- 位置掩码: 使用因果注意力掩码,确保模型只能看到前文
训练参数
- 批次大小: 8
- 学习率: 5e-5
- 训练轮数: 20
- 优化器: AdamW
- 损失函数: CrossEntropyLoss(语言建模)
- 数据划分: 80%训练,20%验证
- 序列长度: 最大1024 tokens
- 标签处理: pad位置设为-100(不参与损失计算)
性能表现
经过20轮训练,模型达到了优秀的性能表现:
- 训练损失: 0.0095
- 验证损失: 0.0100
- 训练困惑度 (PPL): 1.01
- 验证困惑度 (PPL): 1.01
- 总改善率: 99.38%
使用方法
加载模型
from transformers import GPT2LMHeadModel, GPT2Tokenizer
# 加载模型和tokenizer
model = GPT2LMHeadModel.from_pretrained("ludandaye/gpt-causal-lm")
tokenizer = GPT2Tokenizer.from_pretrained("ludandaye/gpt-causal-lm")
# 设置为评估模式
model.eval()
文本生成
import torch
# 准备输入
prompt = "1 2 3"
inputs = tokenizer(prompt, return_tensors="pt")
# 生成文本
with torch.no_grad():
outputs = model.generate(
inputs.input_ids,
max_new_tokens=10,
temperature=0.8,
do_sample=True,
pad_token_id=tokenizer.pad_token_id,
eos_token_id=tokenizer.eos_token_id
)
# 解码结果
generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
print(generated_text)
Next-token预测
import torch
# 准备输入
prompt = "1 2 3"
inputs = tokenizer(prompt, return_tensors="pt")
# 预测下一个token
with torch.no_grad():
outputs = model(inputs.input_ids)
logits = outputs.logits
next_token_logits = logits[0, -1, :]
probs = torch.softmax(next_token_logits, dim=-1)
# 获取top-k tokens
top_k = 5
top_probs, top_indices = torch.topk(probs, top_k)
for prob, idx in zip(top_probs, top_indices):
token = tokenizer.decode([idx])
print(f"Token: {token}, Probability: {prob.item():.4f}")
训练数据
模型训练使用了自定义生成的数字序列数据,包含:
- 516个独特token
- 训练数据格式:JSONL文件
- 词汇表:JSON格式
模型文件
config.json: 模型配置文件pytorch_model.bin: 模型权重文件tokenizer_config.json: Tokenizer配置vocab.json: 词汇表merges.txt: BPE合并规则special_tokens_map.json: 特殊token映射
许可证
本项目仅供学习和研究使用。
作者
引用
如果您使用了这个模型,请引用:
@misc{gpt-causal-lm-2024,
author = {ludandaye},
title = {GPT Causal Language Model - From Scratch Training},
year = {2024},
publisher = {Hugging Face},
url = {https://huggingface.co/ludandaye/gpt-causal-lm}
}
- Downloads last month
- 6
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support