纯Node.js实现的微型语言模型:无魔术实现
一位开发者使用纯JavaScript在Node.js中创建了一个微型因果语言模型,未使用任何机器学习库如TensorFlow或PyTorch。该模型实现了分词、嵌入、因果Transformer、语言模型头、softmax、损失函数以及基于标量自动微分的反向传播。训练过程包括预训练、监督微调以及带排练的自适应微调以防止灾难性遗忘,整个过程约运行四分钟。
该项目使用纯 Node.js(版本 >=18.19)从零实现了一个微型因果语言模型,不依赖任何机器学习库。它采用词级分词(共 24 个词元)、两个因果 Transformer 模块、多头自注意力机制、包含两个隐藏层的前馈网络(Feed-Forward Network,简称 FFN),以及 Adam 优化器。训练流程包括:在陈述性事实上进行预训练,在 42 组问答对上进行监督微调(Supervised Fine-Tuning,简称 SFT),以及带复习机制的自适应 SFT,以便在学习新事实的同时避免灾难性遗忘。该模型共有 2160 个参数。训练过程会生成一份详细的 ASCII 格式日志,记录矩阵和增量变化。全部代码已发布在 GitHub 上。
来源: Habr — хаб ML —
原文
