成熟编程语言受益于海量训练数据和完善的工具链(如类型检查器、代码检查工具等),这些工具能有效为大语言模型(LLM)提供“基础支撑”,因此新语言面临着极高的准入门槛。为了在人工智能驱动的生态系统中保持活力,新兴语言(特别是领域特定语言,即 DSL)必须优先考虑开发者体验和人工智能代理的兼容性。 新语言的成功现在取决于三大支柱: 1. **AI 上下文:** 提供结构化、机器可读的文档(例如 `AGENTS.md` 文件),使大语言模型能够轻松学习语言的语法和语义。 2. **交互式引导:** 利用 WebAssembly(WASM)在落地页提供基于浏览器的交互式编辑器,可显著缩短新用户的价值实现时间。 3. **集成化工具:** 开发者必须提供“一站式”的诊断方案。创建一个既能作为运行时又能作为语言服务器的单一二进制文件,可确保在命令行和基于浏览器的编辑器中获得一致的反馈。 通过自动化并简化这些基础性要求,开发者能够打破当前偏向传统语言的“反馈循环”,为迎接专为智能体编程时代打造的各类专业化新语言的爆发铺平道路。
该项目通过将分词(tokenization)建模为整数线性规划(ILP)问题,探索了大型语言模型(LLM)最优分词器的计算方法。虽然从理论上讲,寻找最优分词是难以处理的,但作者证明了该问题可以在实践中通过“割平面法”(一种借鉴自旅行商问题求解器的策略)来解决。
通过在连续线性规划中迭代添加有效的约束条件,作者成功为特定数据集(如《傲慢与偏见》)实现了可证明的最优分词器。借助 Codex 辅助的自动化方法,作者确定了“循环约束”是收紧边界并达到最优解的高效手段。
尽管在技术上取得了成功,但作者指出了三个实际局限性:
1. 现有方法(如字节对编码)已达到最优水平的 99% 以内。
2. 训练数据的最优性并不能保证在测试数据上具有更好的泛化能力。
3. 低效问题只需通过增加词汇表大小即可缓解。
总之,虽然这些研究结果在学术上很有趣,并展示了人工智能辅助研究的潜力,但该方法在计算上仍然非常昂贵。未来的进展取决于能否克服求解速度缓慢的问题,并将该方法扩展到预分词(词级约束)之外的领域。
作者分享了他们从零开始构建一个“复古大模型”(Vintage LLM)的历程。该模型拥有 3.4 亿参数,采用 Llama 架构,且仅使用 1900 年前出版的英文文本进行训练。出于好奇心,该项目涉及创建自定义数据流水线、设计专用分词器,以及在 Vast.ai 等云平台上进行高算力需求模型训练。
这一过程凸显了数据质量的关键性;作者开发了严格的过滤技术,包括 ZLIB 压缩比、香农熵和自定义字符评分,以剔除低质量的 OCR 伪影。尽管付出了巨大努力,作者指出该模型仅是一个“业余”项目,目前的功能类似于一个随机文本生成器。虽然它能写出维多利亚风格的散文,但缺乏深层的对话连贯性,在基础算术方面也存在困难,这说明了在没有海量高质量指令数据集的情况下训练小型模型所固有的难度。
作者强调,该项目主要是一次学习实践,证明了通过亲手构建大模型可以深入理解其内部机理。代码和模型已在 GitHub 和 HuggingFace 上开源。作者计划通过进一步微调来提升模型的对话能力,并将此项目视为一次对人工智能底层机制充满趣味且极具挑战的探索。