GPT2-BASIC: 基于BASIC的便携式机器智能

Lobsters Hottest 工具

摘要

GPT2-BASIC 在 FreeBASIC 中为 DOS 系统实现了 GPT 风格的 Transformer 推理引擎,使用定点算术和本地模型工件,在老旧硬件上运行 AI 辅助任务。

<p><a href="https://lobste.rs/s/mhjlia/gpt2_basic_portable_machine">评论</a></p>
查看原文
查看缓存全文

缓存时间: 2026/06/27 15:54

tsotchke/gpt2-basic 来源:https://github.com/tsotchke/gpt2-basic

`` #####################################################################

_____ ___ ______ ___ ___ ___ ____ ____ _____

/ __/ / _ \ / _/ | | / _ ) / _ | / __/ _/ // / ___/

/ (_ / / ___/ / / / __/ / _ | / __ | \ \ / / / /

_/ // // // // ||// // _/

____ ___ ____ __ _____ ____ __ ___ ___ ______

/ / / / ( _ ) / __/ // / __/ / __ \ / |/ / / _ \ / _ | / __/

/_ / / _ | / _ \ // / /_ / // / / |/ / // ___/ / __ | / /

// _/ _/ // _/ _/ // // // ||//

##################################################################### ``

GPT2-BASIC:BASIC 语言实现的便携式机器智能

GPT2-BASIC 是一个基于 BASIC 语言实现的定点变压器及助手运行时环境,专为 DOS 类机器设计。它不是 Web 前端、API 封装器或模拟终端演示。该版本编译于 DOS FreeBASIC 环境,能从磁盘加载本地模型工件,使用整数算术执行 GPT 风格推理,支持热切换辅助包,并利用本地索引知识文件在受限系统上实现快速召回。

该项目的核心主张是:语言模型推理和实用的本地助手行为是可移植的算法。通过适当的量化、存储布局、分词器设计和检索索引,相同的核心思想可以在通常与现代大型语言模型相关联的硬件水平以下运行。

► 功能概述

  • 在 FreeBASIC 中运行 DOS GPT 风格变压器运行时,使用 Q20.12 定点权重和 DOS 可加载的词汇表/模型文件。
  • 提供具有多个本地包的助手外壳,支持聊天、DOS 帮助、办公任务、开发笔记和便携系统指导。
  • 使用热插拔的本地模型/知识资产,无需网络访问。
  • 结合微小模型生成、金标准回复、会话记忆、包检索、二进制 KDB/KB2 记录以及分片 KB2T?.TXT 术语索引。
  • 为发布和验证工作流提供 DOSBox、QEMU、硬件传输和启动工具包。
  • 包括宿主机和 QEMU 门,生成机器可读证据,而非依赖截图或声明。

这仍是一个刻意构建的小型模型,而非压缩到 486 上的前沿大语言模型。其有用行为源于完整的受限系统设计:定点推理、紧凑的本地权重、策划的语言包、索引召回、确定性验证以及在原始生成能力较弱时保持答案有用的运行时回退。

► 项目状态

当前生产路径是已推广的 MODEL_LEXICON_GOLD_V4_S3000 检查点,在 DOS GPT2.EXE 程序中运行。模型在宿主机上训练并导出,复制到 C:\MODEL,由 FreeBASIC 定点变压器运行时执行。助手发布路径还包括五个包目录,包含本地模型元数据、金标准回复、HELP 行、KDB/KB2 知识记录、聚合的 KB2TERM.TXT 术语索引以及用于更快召回的分片 KB2T?.TXT 术语索引。

已验证的生产面:

  • DOS FreeBASIC 构建的 src/main_prod.bas,部署为 C:\GPT2SRC\MAIN.BAS
  • 精简生产可执行文件,旧版/实验室模块单独部署为 LABMAIN.BAS
  • 4096 词元最长匹配词汇表分词器,带可打印字节回退
  • 学习的词元和位置嵌入
  • 因果注意力、前馈块、层归一化和输出头
  • GPT2FX.BIN 中的 Q20.12 定点权重
  • GPT2EXP.BIN 中的定点注意力指数表
  • GPT2TQ4.BIN 中的可选 q4/log 压缩词元嵌入工件
  • GPT2HQ4.BIN 中的可选 q4/log 压缩输出头工件
  • GPT2HSL.BIN 中的可选输出头候选列表工件
  • 用于窗口内生成的 KV 解码缓存
  • 当提示加输出超出导出上下文窗口时,采用滚动固定解码
  • 确定性贪心解码(用于证据运行),以及带温度/top-k/top-p 采样的定点采样(用于交互运行)
  • 机器可读的 DOS 教育跟踪模式,包含提示词元和生成步骤记录
  • DOS 非贪心采样矩阵,提供温度/top-k/top-p 发布证据
  • 可选的 DOS 发射内核阶段计时(--kernel-perf
  • 奇偶校验向量、DOS 质量日志和 DOS 发射的 PERF_* 计时记录

旧版矩阵、块稀疏、综合基准和诊断冒烟测试模块仍作为实验室代码保留在仓库中。发布版本已避免将其编译进 GPT2.EXE;QEMU 部署脚本保留旧版组合驱动器为 LABMAIN.BAS 供实验使用。

q4/log 词汇张量路径不再是纯实验室代码:词元嵌入和输出头已通过宿主机导出、DOS 加载、向量奇偶校验、宿主机质量验证和 QEMU --perf 作为低内存发布模式进行连接。

默认检查点是 2 层、48 维、4 头、192 上下文的模型,包含 463,168 个参数、Q20.12 定点权重和 DOS 可加载的 VOCAB.BIN。宿主机浮点和宿主机定点质量均在完整 10 提示套件上通过 10/10,平均 0.968。同一个检查点的 DOS 证据在 gold-v4 推广后为 10/10,平均 0.969。

物理硬件计时仍需针对特定板的性能声明。精简生产版本当前编译为 309,760 字节的 GPT2.EXE

可选的速度候选版本 assets/gpt2_basic/MODEL_HEADSHORTLIST2048_PROD_PROBE 保持完整的 Q20.12 权重驻留,并添加 GPT2HSL.BIN,一个 2,048 词元的输出头候选列表。它通过宿主机定点质量和 DOS 向量奇偶校验,仅将运行时内存从 2,055,940 字节提高到 2,064,148 字节,在 QEMU 486DX2/66 内核门上测得 3.35 tok/s,而全头基线为 2.41 tok/s。

可选压缩发布候选版本 assets/gpt2_basic/MODEL_TOKHEADQ4_PROD_PROBE 保持相同的 4096 词元词汇表和检查点行为,同时将驻留的词元嵌入和输出头替换为 GPT2TQ4.BINGPT2HQ4.BIN。它通过 DOS 向量奇偶校验和宿主机定点质量,将 DOS 运行时内存从 2,055,940 字节降低到 974,724 字节,在 QEMU 486DX2/66 门上测得 2.12 tok/s,而全驻留默认值为 2.46 tok/s。

更低内存的流式候选版本 assets/gpt2_basic/MODEL_TOKHEADQ4_STREAM_PROD_PROBE 添加 GPT2HQS.ON,使得 DOS 从 GPT2HQ4.BIN 流式传输打包的输出头行,而不是保持 q4 码和解码表驻留。它通过 DOS 向量奇偶校验,将运行时内存降低到 616,324 字节,在 QEMU 486DX2/66 门上测得 0.81 tok/s。这是真正的参数流式路径。它被刻意保留为最大兼容性回退,而非默认速度路径。

发布模式选择:

| 模式 | 模型目录 | 运行时内存 | QEMU 486DX2/66 | 使用场景 | |—|—|—|—:|—:|—| | 全驻留 | assets/gpt2_basic/MODEL | 2,055,940 B | 2.46 tok/s | 最佳质量和最简单的数值路径 | | 头候选列表 | assets/gpt2_basic/MODEL_HEADSHORTLIST2048_PROD_PROBE | 2,064,148 B | 3.35 tok/s | 实测最快的大词汇表路径 | | q4 词元+头 | assets/gpt2_basic/MODEL_TOKHEADQ4_PROD_PROBE | 974,724 B | 2.12 tok/s | 最佳低内存默认配置 | | q4 流式头 | assets/gpt2_basic/MODEL_TOKHEADQ4_STREAM_PROD_PROBE | 616,324 B | 0.81 tok/s | 最大 RAM 兼容性 |

► 关于本项目

本项目证明语言模型推理并非天然绑定于云服务、GPU、Python 或现代操作系统。这里提供的软件将实现贴近机器:BASIC 源代码、整数运算、显式二进制文件、简单文本索引和可重复的 DOS 验证运行。

本仓库面向三类受众:

  1. 受限系统开发者:希望获得在严重内存、存储和 CPU 限制下实现本地 AI 的具体技术。
  2. AI 从业者:希望获得可读、可检查的变压器运行时,而不需要通常的框架和加速器堆栈。
  3. 老旧系统和嵌入式系统构建者:希望获得一个能运行的助手运行时,而不仅仅是一个概念性移植。

重要的结果是:这个小模型并非与现代托管的大语言模型竞争——它确实无法做到。重要的是整个循环是真实的:本地权重、本地分词器、本地推理、本地包切换、本地索引召回、DOS 执行、QEMU 压力测试以及物理机器传输工作流。物理返回的板级日志仍在等待中,因此在捕获到真实系统日志之前,特定硬件的速度声明仍以 QEMU 证据为准。

► 综合文档

有关本项目的详细技术分析,请参阅: GPT2-BASIC:DOS 类系统上的定点语言模型与本地召回

这份详尽的文档包括:

  • 486 时代计算和 90 年代初 AI 的详细历史背景
  • 所有核心创新和优化技术的完整技术讲解
  • 平台特定的实现考量
  • 包含基准测试方法的全面性能分析
  • 针对 DOS 类和嵌入式目标的受限系统设计分析
  • 对现代边缘 AI 发展的教育价值与见解
  • 未来方向与应用
  • 全面的学术参考文献

本文档将技术实现细节与历史背景相结合,展示相同的算法思想如何被降至更小的运行时环境。

公开发布与媒体:

► 系统要求

╔════════════════════════════════════════════════════════════════╗ ║ 最低系统要求(理论值) ║ ║ ║ ║ ■ 处理器:486DX4/100MHz ║ ║ ■ 内存:32MB RAM ║ ║ ■ 存储:10MB 可用磁盘空间 + 交换文件 ║ ║ ■ 操作系统:MS-DOS 6.22 或兼容版本 ║ ║ ■ 显示器:VGA 显示器(文本模式) ║ ║ ║ ║ 推荐系统 ║ ║ ║ ║ ■ 处理器:486DX4/100MHz 或更快;可选奔腾 ║ ║ ■ 内存:64MB RAM ║ ║ ■ 存储:20MB 可用磁盘空间 ║ ║ ■ 操作系统:MS-DOS 6.22 并加载 HIMEM.SYS 和 EMM386.EXE ║ ║ ║ ║ 开发系统 ║ ║ ║ ║ ■ FreeBASIC 编译器或兼容的 BASIC 变体 ║ ║ ■ 用于测试的 DOSBox 或 486 时代硬件 ║ ╚════════════════════════════════════════════════════════════════╝

► 当前 QEMU 486 运行时

QEMU 发布路径现在以精简生产程序为目标,该程序根植于 src/main_prod.bas,部署为 DOS 下的 GPT2SRC\MAIN.BAS,并在 FreeDOS 内部使用 DOS FreeBASIC 编译。旧版组合驱动器部署为 GPT2SRC\LABMAIN.BAS 供实验使用。

在宿主机上训练并导出基线 GPT2-BASIC 检查点:

python3 scripts/train_gpt2_basic.py --profile 486sx-safe

字节级检查点仍受支持以保持兼容性。推广的默认配置使用 DOS 可加载的词汇表分词器。要训练新的词汇表检查点:

python3 scripts/train_gpt2_basic.py --profile 486sx-safe --tokenizer lexicon --vocab-size 4096 --include-docs --corpus-file data/domain_curriculum/gold_curriculum_v2.txt --output assets/gpt2_basic/MODEL_LEXICON_NEW

词汇表和 BPE 导出包含 MODEL/VOCAB.BIN。DOS 运行时从可执行文件目录或 MODEL\ 加载 VOCAB.BIN,验证其词汇表大小与 GPT2CFG.TXT 匹配,然后使用相同的分词器模式进行提示编码和解码输出。

原始内置训练语料库故意很小,不再是生产数据来源。当前最佳默认配置是从经过审核的手工策划金标准课程训练的:

python3 scripts/build_gold_curriculum.py

金标准课程的结果记录在 qemu/evidence/gold_curriculum_v2_report.md 中。项目拥有的生成领域课程文件 data/domain_curriculum/domain_curriculum.txt 被追踪,因为预览包包含了该训练表面。

保守的在线语料库仍可用作热身/来源追踪背景文本:

python3 scripts/fetch_online_training_corpus.py
python3 scripts/train_gpt2_basic.py --profile 486sx-safe --include-docs --corpus-file data/online_corpus/online_training_corpus.txt --corpus-weight 1 --output assets/gpt2_basic/MODEL_ONLINE_PRETRAIN

获取器会写入 data/online_corpus/SOURCE_MANIFEST.jsonqemu/evidence/online_training_data_audit.md。其默认来源是保守的公共领域/政府/开放数据文本。仅当检查点分发计划能够承担所需的署名和 ShareAlike/GFDL 义务时,才使用 --include-sharealike

第一个仅在线候选版本以及后续的领域/词汇表扫描记录在 qemu/evidence/domain_training_strategy_report.md 中。当前默认版本是大词汇量金标准 v2 检查点,因为它在保留测试和全套件质量上均优于旧的字节领域候选版本。

这将写入 assets/gpt2_basic/MODEL/GPT2CFG.TXTGPT2WT.BINGPT2FX.BINGPT2EXP.BINGPT2FX.BIN 包含 Q20.12 定点权重,GPT2EXP.BIN 包含定点注意力指数查找表。DOS 可执行文件从 C:\MODEL 加载它们,并运行自己的分词器和仅解码器变压器前向传递。

训练器具有命名的硬件配置文件:386-min486sx-safe486dx2-usable486dx4-pluspentium-best。这些配置文件是宿主机训练和 DOS 推理的检查点形状;在引用为最终性能声明之前,仍需 QEMU 和真实板卡计时。

在将检查点部署到 QEMU 之前进行验证:

python3 scripts/model_report.py --model-dir assets/gpt2_basic/MODEL --strict

QEMU 帮助程序会自动运行此验证,并拒绝部署格式错误的模型文件。

使用 QEMU 的 486 CPU 模型进行编译:

bash qemu/compile_main_486.sh

虚拟机内成功构建会输出 COMPILE_OK 并生成 C:\GPT2.EXE。编译帮助程序还会将导出的 MODEL 目录复制到 DOS 硬盘映像中。

运行编译后的程序:

bash qemu/run_main_486.sh

运行完整定点质量提示套件:

bash qemu/run_quality_486.sh

运行教育跟踪套件:

bash qemu/run_trace_486.sh

这将启动真实的 DOS 可执行文件 GPT2.EXE --trace,捕获提示分词过程、每个贪心前向/采样步骤、解码后的文本以及最终上下文长度,并输出到 qemu/evidence/trace_486.log。这是已实现的逐步教学表面。

运行 VGA 视觉跟踪套件:

bash qemu/run_visual_trace_486.sh

这将启动 GPT2.EXE --trace,编译可选的实验室 VISUAL.EXE 可视化工具,在有图形可用时将 DOS 进程切换到模式 13h,从 TRACE.LOG 绘制词元/进度条,并将机器可读的 VISUAL_* 记录写入 qemu/evidence/visual_trace_486.log

运行包驱动的助手外壳:

bash qemu/run_assistant_486.sh

这是脚本化证据路径:编译可选的 ASSIST.EXE 工具,加载 PACKS\PACKS.TXT,发现包本地的 PACK.INI 元数据,按包切换活动模型路径,检索包注释,并将结构化的 ASSIST_* 记录输出到 qemu/evidence/assistant_486.log。初始包含的包有 CHATDOSHELPOFFICEDEVPORTABLE

运行 QEMU 上的真实交互式演示:

bash qemu/run_assistant_interactive_486.sh

这将打开一个 QEMU 窗口,而不是脚本化证据运行。DOS 助手 st

相似文章

MiniGPT: 从第一性原理重建GPT

arXiv cs.CL

本文介绍了MiniGPT,这是一个基于PyTorch从头实现的紧凑型GPT风格自回归语言模型,其构建参考了nanoGPT的研究。该模型在Tiny Shakespeare数据集上使用字符级分词进行评估,在10.77M参数配置下达到了1.4780的验证损失。

Image GPT

OpenAI Blog

OpenAI的Image GPT(iGPT)将GPT-2 Transformer应用于像素序列,用于图像生成和分类。它展示了用于语言处理的相同架构能够以无监督的方式学习连贯的视觉特征,并在图像分类基准测试中实现具有竞争力的性能。

GPT-4o mini:推进成本高效的智能模型

OpenAI Blog

OpenAI 发布 GPT-4o mini,一款成本高效的小型模型,每百万输入令牌价格仅为 15 美分,比 GPT-3.5 Turbo 便宜 60%,在 MMLU 上表现强劲(82%),在推理、数学和编码任务上超越 Gemini Flash 和 Claude Haiku 等竞争对手。