当前位置: 首页 > ai >正文

LLM论文笔记 28: Universal length generalization with Turing Programs

  • Arxiv日期:2024.10.4
  • 机构:Harvard University

关键词

  • 图灵机

  • CoT

  • 长度泛化

核心结论

  • Turing Programs 的提出

    • 提出 Turing Programs,一种基于图灵机计算步骤的通用 CoT 策略。通过将算法任务分解为逐步的“磁带更新”(类似图灵机的读写操作),允许模型通过简单的文本复制与局部修改完成复杂计算

    • 通用性:适用于任何算法任务(加法、乘法、SGD),不依赖任务特定的数据格式优化

  • 长度泛化的实验突破

    • 加法:50位数训练可泛化至 100 位数加法(准确率 98%),优于传统 scratchpad 方法

    • 乘法首次展示对 n×1 和 n×3位数乘法的长度泛化(50→100 位,准确率 97%)

    • SGD 算法:在 50 个训练样本上训练的模型可泛化至 80 个样本(准确率 95%)

    • 随机图灵机模拟:模型在未见过的更长输入(50→100+ token)上能预测图灵机的下一步状态,表明其对任意算法任务的泛化潜力

  • 位置编码的关键作用

    • Hard-ALiBi 位置编码(结合局部硬注意力与全局无位置头)显著提升长度泛化能力,优于 ALiBi、RoPE 等传统编码

    • 实验表明,位置编码与数据格式的协同设计是成功的关键

  • 指出传统 scratchpad 方法在长度泛化上的局限性,强调迭代式局部修改的重要性(而非单纯分步输出)

主要方法

主要方法:Turing Programs 提出,将CoT过程拟合为图灵机的操作

  • 磁带(Tape):模拟图灵机的存储结构,每一步的中间状态以文本形式表示。例如,在加法任务中,磁带可能包含当前处理的数字位、进位值等信息。

  • 局部修改:每一步仅对磁带的局部内容进行修改(如更新某一位的数字或进位),而非完全重写。例如,图2中的加法步骤通过逐步移除操作数的最后一位并更新中间结果。

  • 显式状态标记:使用特殊符号(如 ^ 表示当前处理位置,a, b, c 表示中间变量)标记状态,确保模型明确跟踪计算进展。

仍然具有以下问题:

  • 当前方法依赖冗长的 CoT 数据,可能限制实际应用效率。

  • 部分任务的泛化鲁棒性不足(如超长序列的误差累积问题)。

  • 需进一步探索更高效、通用的训练框架,以支持复杂现实任务的长度泛化。

注:本系列不包括基础的知识点讲解,为笔记/大纲性质而非教程,用于论文知识点和思想和快速记忆和回顾,更多细节建议阅读论文原文

http://www.xdnf.cn/news/3750.html

相关文章:

  • RabbitMQ入门基础
  • 250504_VsCode使用
  • 14.Excel:排序和筛选
  • 【PINN】DeepXDE学习训练营(13)——operator-antiderivative_aligned.py
  • 汇编常用语法
  • node核心学习
  • IBM DB2 两地三中心方案与配置
  • shell编程补充内容(Linux课程实验3)
  • 【SpringAI+阿里云百炼】AI对话4个Demo
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】3.3 异常值识别(Z-score法/IQR法/业务规则法)
  • 力扣每日一题1007、行相等的最少多米诺旋转
  • 爬虫管理平台-最新版本发布
  • 李沐《动手学深度学习》 | Softmax回归 - 分类问题
  • 【AI面试准备】从0-1搭建人工智能模型自动化评估理论与测试,掌握测试数据集建立与优化,熟练数据处理和模型评测工作
  • RV1126单目摄像头取流,实现双路输出(一路H.264编码推流,一路给算法)
  • 【React】 Hooks useTransition 解析与性能优化实践
  • 套接字+Socket连接
  • Y1模拟一 补题报告
  • function包装器的意义
  • Milvus(13):自定义分析器、过滤器
  • Dubbo(94)如何在金融系统中应用Dubbo?
  • validator - Go 结构体验证库
  • 每天五分钟深度学习框架PyTorch:基于Dataset封装自定义数据集
  • 深入理解Java垃圾回收机制
  • NV228NV254固态美光颗粒NV255NV263
  • 2025年01月03日美蜥(杭州普瑞兼职)一面
  • 【C++ Qt】输入类控件(上) LineEdit、QTextEdit
  • 升级 CUDA Toolkit 12.9 与 cuDNN 9.9.0 后验证指南:功能与虚拟环境检测
  • 黑马点评day01(基于Redis)
  • C++学习:六个月从基础到就业——C++11/14:右值引用与移动语义