项目简介:KAN-GPT
KAN-GPT 是一个基于 Python Pytorch 实现的生成式预训练变换器(GPT),采用 Kolmogorov-Arnold 网络(KAN)进行语言建模。该项目旨在探索和改进使用 KAN 模式的 GPT 模型,以实现更优的语言理解和生成能力。
安装方法
用户可以通过 Python 的软件包管理工具 PyPI 进行安装:
pip install kan_gpt
参考文献引用
如果该项目对您有帮助,欢迎引用:
@misc{GANESH2024KANGPT,
author = {Aditya Nalgunda Ganesh},
title = {KAN-GPT: The PyTorch implementation of Generative Pre-trained Transformers (GPTs) using Kolmogorov-Arnold Networks (KANs) for language modeling},
year = {2024},
month = {May},
note = {Release 1.0.0, 9th May 2024},
url = {https://github.com/AdityaNG/kan-gpt/}
}
使用指南
开发者提供了一些使用示例,用户可以参考 KAN_GPT.ipynb
和 kan_gpt/prompt.py
文件。基本使用方式如下:
from kan_gpt.model import GPT
from transformers import GPT2Tokenizer
model_config = GPT.get_default_config()
model_config.model_type = "gpt2"
model_config.vocab_size = 50257
model_config.block_size = 1024
model = GPT(model_config)
tokenizer = GPT2Tokenizer.from_pretrained('gpt2')
prompt = "Bangalore is often described as the "
prompt_encoded = tokenizer.encode(text=prompt, add_special_tokens=False)
x = torch.tensor(prompt_encoded).unsqueeze(0)
model.eval()
y = model.generate(x, 50) # 采样50个标记
result = tokenizer.decode(y[0])
print(result)
开发环境设置
为了进行项目开发,用户需要按照以下步骤设置开发环境:
git clone https://github.com/AdityaNG/kan-gpt
cd kan-gpt
git pull
python3 -m kan_gpt.download_dataset --dataset tinyshakespeare
python3 -m kan_gpt.download_dataset --dataset mnist
python3 -m kan_gpt.download_dataset --dataset webtext
pip install -r requirements.txt
pip install -e .
训练模型
用户可以通过以下命令脚本验证项目环境是否正常:
WANDB_MODE=offline CUDA_VISIBLE_DEVICE="" python3 -m kan_gpt.train --architecture MLP --batch_size 1 --dummy_dataset --device cpu --max_iters 200
WANDB_MODE=offline CUDA_VISIBLE_DEVICE="" python3 -m kan_gpt.train --architecture KAN --batch_size 1 --dummy_dataset --device cpu --max_iters 200
完整训练脚本使用如下:
python -m kan_gpt.train
生成提示文本
用户可以通过以下命令生成提示文本:
python -m kan_gpt.prompt --prompt "Bangalore is often described as the " --model_path (checkpoint)
实验结果
项目比较了在 Tiny Shakespeare 数据集上训练的 KAN-GPT 与 MLP-GPT 模型,结果表明 KAN-GPT 模型略优于 MLP-GPT 模型。团队正在进行进一步实验以更深入的探索。
指标 | ||
---|---|---|
任务展望
- 集成 minGPT 和 pykan
- 数据集下载脚本和解析
- mini训练 POC 和基准训练
- 自动保存检查点和超参数调优
- 文档和测试案例开发
开发指南
有关详细的贡献和开发指南,可以查看 CONTRIBUTING.md。
参考资料
KAN-GPT 项目旨在通过引入创新性的 KAN 方法优化 GPT 模型的性能,是有望在语言生成领域带来突破的一个前沿项目。