大模型LLM

minimind

作者头像
项目作者jingyaogong

🚀🚀 「大模型」2小时完全从0训练26M的小参数GPT!🌏 Train a 26M-parameter GPT from scratch in just 2h!

minimind 预览图

minimind 介绍

了解项目的详细信息和使用方法

MiniMind 是一个轻量级的开源语言模型,旨在降低大语言模型(LLM)的使用门槛,使个人用户能够在普通设备上快速训练和推理。本文将详细介绍 MiniMind 的训练流程、使用示例、成果展示以及训练条件。

MiniMind 概述

MiniMind 于 2024 年 8 月发布,最小版本仅需 26M 的参数量,约为 GPT-3 的 1/7000。这使得用户可以在仅需 2GB 显存的显卡上进行推理和训练。该模型的设计目标是让用户能够从零开始,最快在 3 小时内完成模型的训练,适合个人设备使用。

特点

  • 轻量化: MiniMind 的体积小,训练速度快,适合个人设备。
  • 高效性: 尽管模型较小,但在对话能力上表现流畅。不同型号的评分从 50 到 60 不等。
  • 兼容性: 支持多种流行框架,如 transformersaccelerate,便于集成和扩展。

训练条件

硬件要求

  • 显卡: 至少需要一块支持 CUDA 的显卡(如 RTX 3090)。
  • 显存: 最低要求为 2GB 显存。

软件要求

  • 操作系统: Ubuntu 20.04
  • Python: 3.9
  • PyTorch: 2.1.2
  • CUDA: 12.2

数据集

  • 预训练数据: 使用 Seq-Monkey 通用文本数据集(约 10B tokens)或 SkyPile-150B 数据集的可公开部分。
  • SFT 数据集: 包含 12M 条数据,其中包括 10M 条中文和 2M 条英文数据。

训练流程

MiniMind 的训练流程分为以下几个主要步骤:

  1. 环境配置:

    • 设置 Python 环境,安装必要的库。
    bash
    1pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
  2. 数据准备:

    • 下载并预处理训练所需的文本数据,将其放置于 ./dataset 目录下。
  3. 模型配置:

    • ./model/LMConfig.py 中调整模型的参数配置,如模型大小和训练参数等。
  4. 模型训练:

    • 使用提供的训练脚本开始训练。根据计算资源,可以调整批量大小和学习率等参数。
    bash
    1python 1-pretrain.py 2python 3-full_sft.py
  5. 模型评估与推理:

    • 在 Ceval 数据集上进行模型测试,以评估其性能表现,并使用推理脚本进行测试。
    bash
    1streamlit run fast_inference.py

使用示例

以下是一个简单的使用示例,展示如何加载 MiniMind 模型并进行推理:

python
1from transformers import AutoModelForCausalLM, AutoTokenizer 2 3# 加载模型和tokenizer 4model_name = "minimind-v1-small" 5tokenizer = AutoTokenizer.from_pretrained(model_name) 6model = AutoModelForCausalLM.from_pretrained(model_name) 7 8# 输入文本 9input_text = "你好,MiniMind!" 10inputs = tokenizer(input_text, return_tensors="pt") 11 12# 推理 13outputs = model.generate(**inputs) 14result = tokenizer.decode(outputs[0], skip_special_tokens=True) 15 16print(result)

成果展示

MiniMind 已经成功训练出多个型号的模型,包括:

模型名称参数量Tokenizer长度推理占用发布日期主观评分(/100)
minimind-v1-small26M64000.5 GB2024.08.2850
minimind-v1-moe4×26M64001.0 GB2024.09.1755
minimind-v1108M64001.0 GB2024.09.0160

尽管模型体积小,但在对话能力上表现流畅,适合用于开发聊天机器人、教育工具等应用场景。MiniMind 不仅是一个开源项目,还提供了完整的训练流程和代码示例,适合初学者和研究者进行定制和扩展。

总结

MiniMind 是一个创新的项目,通过提供一个轻量级的语言模型,使得大语言模型技术变得更加可及。它不仅降低了使用门槛,还为开发者和研究者提供了丰富的资源和支持,推动了 LLM 技术的发展。

Stars
33.7k
Forks
3.9k
Watch
198
版本 MiniMind Docs
Apache License 2.0
更新于 2025年11月15日
artificial-intelligence, large-language-model
免责声明:本站大资源来自网络收集整理,小部分资源来自原创,如有侵权等,请联系处理。

相关项目

探索更多类似的开源项目