1.5-Pints 是由 Pints.AI 开发的一个紧凑型大语言模型项目,旨在通过公开模型架构、训练脚本和实用工具,促进开源社区对模型的复现、实验和进一步开发。该仓库包含 1.5-Pints 和 0.12-Pint 两个模型的代码库。
用途
该项目主要用于大语言模型的预训练、微调和评估,特别关注在有限时间内使用高质量数据训练紧凑型模型。资料显示,1.5-Pints 是一个在 9 天内完成预训练的紧凑型 LLM。
主要能力
- 提供模型架构和训练脚本,支持用户复现训练过程。
- 包含数据准备脚本,用于处理预训练数据集(pints-ai Expository Prose pretrain dataset)。
- 支持模型训练、微调、权重转换、直接偏好优化(DPO)和评估。
- 支持将模型转换为 HuggingFace 格式(PyTorch 和 safetensors),并推荐使用 safetensors 文件。
- 提供测试代码,便于用户在修改后验证代码稳定性。
使用方式
环境要求:推荐 Ubuntu 22.04 LTS x86-64,Debian 12 也已测试可用。不支持 arm64/aarch64,因为 xformers 不支持 ARM64 处理器。不建议使用 apt 安装系统级 CUDA,建议在 conda 环境中安装 CUDA 工具包。
步骤概要:
- 克隆仓库。
- 创建 conda 环境,使用 Python 3.10(3.12 会导致许多问题,3.11 未测试)。
- 安装 CUDA 工具包。
- 安装依赖(注意 dropout_layer_norm 的 pip 安装可能需要约 30 分钟)。
- 安装 git-lfs 并下载预训练数据集。
- 使用 prepare_dataset 文件夹中的脚本准备数据集。
- 训练模型:通过 --model_name 选择架构配置(需在 lit_gpt/config.py 中定义),调整 --devices 和 --gpus(必须相同),设置 micro_batch_size 以优化 GPU 内存,修改 TRAIN_DATA_CONFIG 以选择训练数据集。
- 微调模型:首先转换预训练权重,然后进行微调。
- 运行直接偏好优化(DPO)。
- 评估模型。
- 将 lit 模型转换为 HuggingFace 模型(PyTorch 和 safetensors)。
- 使用 HuggingFace 进行推理。
适用场景
适用于研究人员和开发者进行大语言模型的训练、微调实验,以及开源社区对紧凑型 LLM 的复现和改进。
限制
- 不支持 ARM64 架构。
- 需要特定的环境配置(Ubuntu 22.04 或 Debian 12,Python 3.10,conda 环境)。
- 训练和微调需要一定的硬件资源(GPU)。
- 资料中未提供具体的模型性能指标、收费信息或价格。
- 资料中未提供详细的模型使用案例或应用场景。