MacMind:用HyperTalk实现Transformer,揭示AI训练与FFT运算的相同数学原理!

张开发
2026/6/28 15:43:30 15 分钟阅读
MacMind:用HyperTalk实现Transformer,揭示AI训练与FFT运算的相同数学原理!
导航菜单可切换导航提供以下选项空白链接[ ](/)登录[ 登录 ](/login?return_tohttps%3A%2F%2Fgithub.com%2FSeanFDZ%2Fmacmind)还有外观设置选项。平台涵盖多个方面的功能AI代码创作[GitHub Copilot借助AI编写更优质代码](https://github.com/features/copilot)[GitHub Spark构建并部署智能应用](https://github.com/features/spark)[GitHub Models管理并比较提示词](https://github.com/features/models)[MCP Registry新功能集成外部工具](https://github.com/mcp)开发者工作流[Actions自动化任何工作流](https://github.com/features/actions)[Codespaces即时开发环境](https://github.com/features/codespaces)[Issues规划并跟踪工作](https://github.com/features/issues)[Code Review管理代码变更](https://github.com/features/code-review)应用程序安全[GitHub Advanced Security发现并修复漏洞](https://github.com/security/advanced-security)[代码安全在构建过程中保障代码安全](https://github.com/security/advanced-security/code-security)[密钥保护防患于未然阻止信息泄露](https://github.com/security/advanced-security/secret-protection)探索[选择GitHub的理由](https://github.com/why-github)[文档](https://docs.github.com)[博客](https://github.blog)[更新日志](https://github.blog/changelog)[市场](https://github.com/marketplace)[查看所有功能](https://github.com/features)解决方案从不同维度提供解决方案按公司规模划分[企业版](https://github.com/enterprise)[中小型团队版](https://github.com/team)[初创企业版](https://github.com/enterprise/startups)[非营利组织版](https://github.com/solutions/industry/nonprofits)按用例划分[应用现代化](https://github.com/solutions/use-case/app-modernization)[DevSecOps](https://github.com/solutions/use-case/devsecops)[DevOps](https://github.com/solutions/use-case/devops)[CI/CD](https://github.com/solutions/use-case/ci-cd)[查看所有用例](https://github.com/solutions/use-case)按行业划分[医疗保健](https://github.com/solutions/industry/healthcare)[金融服务](https://github.com/solutions/industry/financial-services)[制造业](https://github.com/solutions/industry/manufacturing)[政府机构](https://github.com/solutions/industry/government)[查看所有行业](https://github.com/solutions/industry)[查看所有解决方案](https://github.com/solutions)资源提供多种资源探索途径按主题探索[AI](https://github.com/resources/articles?topicai)[软件开发](https://github.com/resources/articles?topicsoftware-development)[DevOps](https://github.com/resources/articles?topicdevops)[安全](https://github.com/resources/articles?topicsecurity)[查看所有主题](https://github.com/resources/articles)按类型探索[客户案例](https://github.com/customer-stories)[活动与网络研讨会](https://github.com/resources/events)[电子书与报告](https://github.com/resources/whitepapers)[商业洞察](https://github.com/solutions/executive-insights)[GitHub Skills](https://skills.github.com)支持与服务[文档](https://docs.github.com)[客户支持](https://support.github.com)[社区论坛](https://github.com/orgs/community/discussions)[信任中心](https://github.com/trust-center)[合作伙伴](https://github.com/partners)[查看所有资源](https://github.com/resources)开源包含社区、项目和仓库相关内容社区[GitHub Sponsors资助开源开发者](https://github.com/sponsors)项目[Security Lab](https://securitylab.github.com)[Maintainer Community](https://maintainers.github.com)[Accelerator](https://github.com/accelerator)[GitHub Stars](https://stars.github.com)[Archive Program](https://archiveprogram.github.com)仓库[主题](https://github.com/topics)[热门趋势](https://github.com/trending)[集合](https://github.com/collections)企业版包含企业解决方案和可用附加组件企业解决方案[企业平台由AI驱动的开发者平台](https://github.com/enterprise)可用附加组件[GitHub Advanced Security企业级安全功能](https://github.com/security/advanced-security)[Copilot for Business企业级AI功能](https://github.com/features/copilot/copilot-business)[高级支持企业级24/7支持](https://github.com/premium-support)[定价](https://github.com/pricing)搜索或跳转至相关内容可进行代码、仓库、用户、问题、拉取请求等搜索搜索时可清除内容还提供[搜索语法提示](https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax)。提供反馈会阅读每一条反馈并认真对待意见。可选择包含电子邮件地址以便取得联系有取消和提交反馈按钮。保存的搜索使用保存的搜索可更快地筛选结果有名称和查询两列。要查看所有可用的限定符可参阅[文档](https://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax)有取消和创建保存的搜索选项。同时提供登录和注册选项还有外观设置、重置焦点等相关提示。若在其他标签页或窗口有登录、注销、切换账户等情况会提示[重新加载]()以刷新会话。[ SeanFDZ ](/SeanFDZ) /[macmind](/SeanFDZ/macmind)公开有通知需登录更改设置、复刻3次、标星38次等操作还有代码、问题、拉取请求、操作、项目、安全与质量、洞察等导航选项。其他导航选项包括代码、问题、拉取请求、操作、项目、安全与质量、洞察等选项。SeanFDZ/macmind主分支有分支和标签相关链接可转到文件查看代码还可打开更多操作菜单。文件夹和文件有名称、最后提交消息、最后提交日期等信息。最新提交有历史记录共[18次提交](/SeanFDZ/macmind/commits/main/)。展示了images、LICENSE、README.md、validate.py等文件夹和文件的链接。仓库文件导航包括README和MIT许可证。MacMindMacMind是一个完全用HyperTalk实现的完整的Transformer神经网络在Macintosh SE/30上进行训练。它是一个具有1216个参数的单层单头Transformer能从随机示例中学习位反转排列快速傅里叶变换的起始步骤。其每一行代码都用HyperTalk编写HyperTalk是一种1987年设计的脚本语言主要用于制作交互式卡片堆栈而非矩阵数学运算。它具备词元嵌入、位置编码、带缩放点积分数的自注意力机制、交叉熵损失、完整的反向传播以及随机梯度下降等功能无需编译代码无需外部库没有黑箱操作。按住Option键点击任意按钮即可查看实际的数学运算还展示了[MacMind在Macintosh SE/30上训练到第1000步的图片](/SeanFDZ/macmind/raw/main/images/hero-trained-step1000.jpeg)。项目存在的意义训练MacMind的基本过程前向传播、损失计算、反向传播、权重更新循环往复与当今训练所有大型语言模型的过程相同区别仅在于规模而非本质。MacMind有1216个参数而GPT - 4大约有一万亿个参数但数学原理是一样的。如今AI几乎影响着每个人但几乎没人真正了解它的工作原理。MacMind证明了这个过程是可以被理解的——反向传播和注意力机制并非魔法而是数学运算且这些数学运算不在乎是在TPU集群上运行还是在1987年的68000处理器上运行。一切都可检查一切都可修改可在HyperCard的脚本编辑器中更改学习率、更换训练任务、调整模型大小就像打开引擎盖看到内部构造一样。学习内容位反转排列是通过反转每个位置索引的二进制表示来重新排列序列。对于一个8元素的序列位置: 0 1 2 3 4 5 6 7二进制: 000 001 010 011 100 101 110 111反转后: 000 100 010 110 001 101 011 111映射到: 0 4 2 6 1 5 3 7因此输入 [3, 7, 1, 9, 5, 2, 8, 4] 会变成 [3, 5, 1, 8, 7, 2, 9, 4]。这种排列是快速傅里叶变换计算领域最重要的算法之一的第一步。模型从未被告知这个规则而是通过自注意力机制和梯度下降纯粹地发现位置模式——这个过程在放大后也是大型模型学习理解语言的方式。训练后卡片4上的注意力图揭示了快速傅里叶变换的蝶形路由模式该模型独立发现了与1965年库利Cooley和图基Tukey发表的相同数学结构。卡片堆栈MacMind是一个包含5张卡片的HyperCard堆栈卡片用途1 - 标题项目名称和致谢2 - 训练训练模型并实时观察学习过程3 - 推理在任何8位输入上测试训练好的模型4 - 注意力图可视化8x8注意力权重矩阵5 - 关于对模型工作原理的纯文本解释训练卡片2点击训练10步可进行10次训练步骤或点击训练至100%直到模型在样本上获得完美分数。若要进行更深入的训练可反复点击训练10步或再次点击训练至100%模型会从上一次停止的地方继续训练。若要进行更长时间的训练可打开消息框Cmd - M并输入 trainN 1000 以连续训练1000步。每一步都会生成一个随机的8位序列执行完整的前向传播计算交叉熵损失通过每一层反向传播梯度并更新所有1216个权重。进度条、每个位置的准确率和训练日志会实时更新。注意训练日志字段有30000个字符的限制HyperCard的限制。大约900步后日志会填满HyperCard会显示错误。若要清除日志并继续训练可打开消息框Cmd - M并输入put into card field trainingLog然后使用 trainN 500或想要的步数继续训练还展示了[卡片2 - 准备训练的空白堆栈图片](/SeanFDZ/macmind/raw/main/images/card2-blank.jpeg)。推理卡片3训练完成后点击新随机生成一个测试输入然后点击排列运行训练好的模型。输出行显示模型的预测结果置信度行显示模型对每个位置的确定程度。若要验证结果可手动应用位反转排列。输出应按以下顺序重新排列输入位置输出[0] 输入[0] 输出[4] 输入[1]输出[1] 输入[4] 输出[5] 输入[5]输出[2] 输入[2] 输出[6] 输入[3]输出[3] 输入[6] 输出[7] 输入[7]例如输入 [3, 7, 1, 9, 5, 2, 8, 4] 应产生 [3, 5, 1, 8, 7, 2, 9, 4]。如果模型训练良好每个位置的准确率应高于90%还展示了[卡片3 - 具有正确预测和置信度分数的推理图片](/SeanFDZ/macmind/raw/main/images/card3-inference.jpeg)。注意力图卡片48x8网格可视化了模型在生成每个输出位置时关注的输入位置。训练后会看到蝶形模式位置0、2、5、7关注自身排列的不动点而位置1和4相互关注位置3和6相互关注交换对。这与1965年库利和图基为快速傅里叶变换发现的路由结构相同还展示了[FFT蝶形图](https://camo.githubusercontent.com/fe6bb3114eb62b3d95d62aab61979de6a44defef1a17438ce42f169816e29d11/68747470733a2f2f7)

更多文章