# GPT **Repository Path**: bxnd/gpt ## Basic Information - **Project Name**: GPT - **Description**: 自己做的在4060显卡和小数据集训练的对话AI - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-08-27 - **Last Updated**: 2026-08-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # MiniMind - 轻量级中文大语言模型 基于 [MiniMind2](https://github.com/jingyaogong/minimind) 架构重新设计,完美适配 **RTX 4060 8GB 显存**。 ## 特性 - **超轻量级**: 26M (Small) / 104M (Base) 参数 - **现代架构**: RMSNorm + SwiGLU + RoPE + GQA - **中文优化**: 6400 词表,针对中文压缩优化 - **低显存占用**: 训练仅需 ~2GB,推理仅需 ~500MB - **完整流程**: 支持 Pretrain → SFT → Chat ## 硬件要求 | 模型 | 参数 | 训练显存 | 推理显存 | |------|------|----------|----------| | MiniMind2-Small | 26M | ~2 GB | ~500 MB | | MiniMind2-Base | 104M | ~4 GB | ~1 GB | **推荐配置**: RTX 4060 (8GB) 或更高 ## 快速开始 ### 1. 安装依赖 ```bash pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 pip install modelscope datasets ``` ### 2. 下载数据集 ```bash # 下载所有数据集 (预训练 + SFT + 代码) python download_datasets.py --output_dir ./data # 只下载特定类型 python download_datasets.py --type pretrain # 预训练数据 python download_datasets.py --type sft # SFT 对话数据 ``` ### 3. 预训练 ```bash # 26M 模型 (推荐,2小时可完成) python train_pretrain.py \ --model_size small \ --data_path ./data/processed/pretrain_*.jsonl \ --batch_size 4 \ --epochs 1 \ --output_dir ./output/pretrain # 104M 模型 python train_pretrain.py \ --model_size base \ --data_path ./data/processed/pretrain_*.jsonl \ --batch_size 2 \ --epochs 1 \ --output_dir ./output/pretrain ``` ### 4. 监督微调 (SFT) ```bash python train_sft.py \ --model_size small \ --pretrain_path ./output/pretrain/pretrain_512_final.pth \ --data_path ./data/processed/sft_*.jsonl \ --batch_size 4 \ --epochs 2 \ --output_dir ./output/sft ``` ### 5. 聊天测试 ```bash # 交互模式 python chat.py --model_path ./output/sft/sft_512_final.pth # 单次提问 python chat.py \ --model_path ./output/sft/sft_512_final.pth \ --prompt "你好,请介绍一下自己" ``` ## 模型架构 ``` MiniMind2-Small (26M) ├── Vocab: 6400 ├── Dim: 512 ├── Layers: 8 ├── Heads: 8 (Query) / 2 (KV) - GQA ├── FFN: SwiGLU (1408 hidden) └── Position: RoPE (θ=10000) MiniMind2-Base (104M) ├── Vocab: 6400 ├── Dim: 768 ├── Layers: 16 ├── Heads: 8 (Query) / 2 (KV) - GQA ├── FFN: SwiGLU (2048 hidden) └── Position: RoPE (θ=10000) ``` ## 数据集 ### 预训练数据 | 数据集 | 大小 | 描述 | |--------|------|------| | chinese-poetry | ~50MB | 中文古诗词 | | chinese-classical | ~100MB | 中国古典文学 | | wikipedia-zh-sample | ~200MB | 维基百科中文(样本) | | news-commentary-zh | ~100MB | 新闻评论语料 | ### SFT 数据 | 数据集 | 大小 | 描述 | |--------|------|------| | alpaca-cleaned | ~50MB | Alpaca 清洗版 | | dolly-15k | ~20MB | Dolly 指令数据 | | belle-chat | ~500MB | BELLE 对话数据(子集) | | sharegpt-chinese | ~100MB | ShareGPT 中文对话 | | firefly-train | ~800MB | Firefly 指令数据(子集) | ### 代码数据 | 数据集 | 大小 | 描述 | |--------|------|------| | code-search-net-python | ~500MB | Python 代码语料 | | tiny-code | ~100MB | 小型代码数据集 | ## 训练参数推荐 ### RTX 4060 8GB ```bash # 26M 模型 - 快速训练 (2小时) python train_pretrain.py \ --model_size small \ --batch_size 4 \ --learning_rate 5e-4 \ --max_length 512 # 104M 模型 - 标准训练 (6小时) python train_pretrain.py \ --model_size base \ --batch_size 2 \ --learning_rate 5e-4 \ --max_length 512 \ --use_amp ``` ## 项目结构 ``` . ├── model/ │ ├── __init__.py │ ├── minimind.py # 模型架构 │ └── tokenizer.py # 分词器 ├── train_pretrain.py # 预训练脚本 ├── train_sft.py # SFT 脚本 ├── chat.py # 聊天推理 ├── download_datasets.py # 数据集下载 ├── data/ # 数据集目录 │ ├── raw/ # 原始数据 │ └── processed/ # 处理后数据 └── output/ # 模型输出 ├── pretrain/ # 预训练模型 └── sft/ # SFT 模型 ``` ## 训练流程 ``` ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │ 下载数据集 │ ──▶ │ 预训练 │ ──▶ │ SFT微调 │ │ │ │ (学知识) │ │ (学对话) │ └─────────────┘ └─────────────┘ └─────────────┘ │ ▼ ┌─────────────┐ │ 聊天测试 │ └─────────────┘ ``` ## 性能对比 | 模型 | 参数量 | 训练成本 | 推理速度 | |------|--------|----------|----------| | GPT-3 | 175B | $4.6M | - | | LLaMA2-7B | 7B | $200K | 10 tok/s | | TinyLlama-1.1B | 1.1B | $50K | 50 tok/s | | **MiniMind2-Small** | **26M** | **$3** | **500 tok/s** | | **MiniMind2-Base** | **104M** | **$10** | **300 tok/s** | *基于 RTX 4060 测试* ## 许可证 Apache-2.0 ## 致谢 - [MiniMind](https://github.com/jingyaogong/minimind) - 原始项目 - [LLaMA](https://github.com/facebookresearch/llama) - 架构参考 - [Transformers](https://github.com/huggingface/transformers) - 工具支持