oh-my-pi snapcompact 压缩研究:eager 缩放协议提示词(exp08-archive-eager)的设计、解析与两阶段执行

发布时间:2026/9/12 17:15:55

oh-my-pi snapcompact 压缩研究:eager 缩放协议提示词(exp08-archive-eager)的设计、解析与两阶段执行 oh-my-pi snapcompact 压缩研究eager 缩放协议提示词exp08-archive-eager的设计、解析与两阶段执行【免费下载链接】oh-my-pi⌥ Coding agent with the IDE wired in项目地址: https://gitcode.com/GitHub_Trending/oh/oh-my-pi本篇技术指南围绕 oh-my-pi 仓库中 snapcompact 包研究目录下的提示词模板 exp08-archive-eager.md 展开剖析它在foveated 两阶段读取实验exp08中的角色、逐条指令的设计意图以及它与实验代码 exp08_foveate.py 如何通过ZOOM rows A-B协议完成先粗读、再定点放大的两轮问答闭环。读完本文你将掌握这套面向视觉 LLM 的位图文本读取提示词协议的结构、eager/conservative/phrase 三种策略的差异以及如何把放大请求解析、行带合并、重渲染回注对话等机制落地为可复现的实验流程。一、背景为什么需要 foveated 两阶段读取snapcompact 是 oh-my-pi 的位图帧上下文压缩包见 README.md与其让 LLM 总结被丢弃的会话历史它把文本序列化后渲染成密集的像素字体 PNG 帧让视觉模型直接读回。渲染与 PNG 编码全部在本机原生代码oh-my-pi/pi-natives中完成不调用 LLM、无 API 延迟。在此基础上研究目录packages/snapcompact/research开展了一系列如何让视觉模型更可靠地读取位图的消融实验。其中 exp08 的思路是foveated中央凹式两级读取第一轮用比常规更密的像素字体渲染整页归档图让模型能答就答、不能答就申请放大第二轮只把被请求的行带切片重新渲染成大字号图继续问答。为什么要把第一轮压得更密exp08_foveate.py 的模块 docstring 给出了关键数字采用 5x8 像素字体时1568px 方形帧可容纳313 列 × 196 行 61348 字符/页比此前 6x10 字体的最优方案img-6x10-sent基线密度高出约 1.5 倍。密度提升的直接收益是单页能装进更多被压缩的会话文本代价则是字迹更小、更容易误读——这正是放大协议要补偿的部分。二、eager 提示词全文结构与逐条解析exp08-archive-eager.md 全文只有 10 行是一个带模板占位符的系统提示词按功能可拆成四个层次2.1 图像格式声明模板参数注入The attached image contains encyclopedia passages rendered as a bitmap: monospace pixel font, {cols} characters per row, {rows} rows, read left-to-right then top-to-bottom. Rows are numbered 1 (top) to {rows} (bottom). Original paragraph breaks were collapsed to spaces.这一句为模型建立了图像 字符网格的坐标系等宽像素字体、每行{cols}字符、共{rows}行、按从左到右、从上到下的顺序阅读行号自上而下编号。{cols}与{rows}不是写死的——在 run_cell_chunk 中通过load_prompt(prompt_file).format(colscols, rowsrows)由实验代码动态填充cols/rows来自 bdf.py 的 capacity()rows size // pitch // repeat、cols (size - (columns-1)*gutter) // columns // adv。行坐标系与后续的行带寻址ZOOM rows A-B一一对应是整套协议的地基。Original paragraph breaks were collapsed to spaces.提示词还主动告知模型原文换行已被折叠成空格防止模型因为预期中段落应该换行而错位理解网格内容。2.2 怀疑论指令eager 变体的核心IMPORTANT: this font is rendered BELOW the size you can read reliably. Characters that look legible are often misread (digits, names, and dates especially). Be skeptical of your own reading.这是全文最重要的一句话它明确告诉模型——当前字体尺寸低于可靠阅读阈值看似清晰的字符也可能读错尤其是数字、专有名词与日期请对自己的阅读结果保持怀疑。这条自我怀疑指令的作用是引导模型不要把不确定的读取当作确定答案输出而是主动触发放大机制。对比保守版 exp08-archive.md后者只说字体刻意很小多数内容努力可读但某些区域可能读不出而 eager 变体把风险语气加重为几乎必然误读、务必怀疑两者在触发放大的阈值上形成了鲜明的策略差异详见第四节。2.3 三档回答协议Questions follow after the image. Answer them using ONLY text you can read in the image.Give a direct short extractive answer ONLY when you are fully certain of every character in it.For any question where you are not fully certain — wrong-looking digits, a name you might be misreading, a region that is small or smudged — reply exactlyZOOM rows A-Bfor that question (e.g.ZOOM rows 41-47). That row band will be re-rendered for you at a large, comfortable font. Zooming is cheap and encouraged; guessing is penalized.Estimate the row range from the vertical position of the region (row 1 top edge, row {rows} bottom edge). If unsure of the exact rows, give a generous range — a margin around your estimate is included automatically.If you cannot even locate a relevant region, reply exactly UNREADABLE for that question.这一节把每个问题的作答空间收窄为三档且给出了严格的触发条件直接抽取式回答extractive answer仅在对每一个字符都完全确信时输出fully certain of every character。措辞刻意收紧——不是大致看得清而是逐字符确信把模糊读取排除在直接回答之外。放大请求ZOOM rows A-B只要存在任何不确定——疑似读错的数字、可能误读的名字、区域太小或模糊——都必须回复精确格式ZOOM rows A-B如ZOOM rows 41-47。行号按图像垂直位置估算顶边为第 1 行并鼓励给出宽松区间因为代码侧会自动包含余量pad。句末的 Zooming is cheap and encouraged; guessing is penalized 是对模型的激励约束放大成本低且被鼓励猜测会被惩罚——这解释了为什么该变体命名为eager急切放大。UNREADABLE连相关区域都无法定位时的最终兜底。Output a numbered list, one answer per line, no commentary.收尾要求严格的机器可解析输出格式每个问题一行、按问题编号输出、无任何多余评论。这一约定直接对接实验代码的squad.parse_numbered()见 squad.py后者按\d[.):]正则把回答逐行还原为编号数组缺失项补空字符串。三、三种读取策略的对比conservative / eager / phraseexp08_foveate.py 中 PROTO 表把三种协议条件与提示词文件、放大余量pad、寻址方式绑定在一起条件提示词文件pad寻址方式策略语义源码注释原文fovexp08-archive.md2rowsconservative仅在过小时放大行寻址紧余量fov2eagerexp08-archive-eager.md12rowseager除非完全确信否则放大行寻址宽余量fov3exp08-archive-phrase.md12phraseeager 提示 短语寻址模型引用部分辨认出的锚词harness 在 chunk 中模糊定位该行带三点关键差异放大触发阈值conservative 要求区域太小才放大eager 则反过来要求除非完全确信否则放大。二者是同一坐标系下两个极端conservative 省放大轮次但可能硬答错eager 更频繁申请放大但把误读风险转移给放大轮。pad 余量eager/phrase 的pad12行远大于 conservative 的pad2行与提示词中give a generous range的指引呼应——宽余量保证行带切片一定能覆盖目标内容。寻址方式rows 模式让模型直接给出行号区间phrase 模式则让模型引用 3-8 个单词的锚短语见 exp08-archive-phrase.md由 harness 用 locate_phrase() 在 chunk 文本中做大小写归一化后的模糊匹配再把字符跨度换算成行号。四、从ZOOM rows A-B到重渲染harness 的执行闭环eager 提示词只是输入侧的一半另一半在实验代码中。一次完整的两轮执行流程如下对应 run_cell_chunk第一轮归档图问答从 SQuAD 式段落流flow由 squad.build_flow 生成、按 chunk 预算切分中采样问题后把整段 chunk 用 5x8 字体渲染成一张归档 PNGfexp08-arch-{ARCHIVE_FONT}-{variant}-{sha8(...)}.png带内容哈希缓存与原子写入。消息序列为提示词模板已填充 cols/rows 归档图 编号问题列表。模型第一轮回答进入qa1。ZOOM 请求解析对每条回答rows 模式走 parse_zoom()用两个正则解析_ZOOM_RANGE re.compile(r(?i)\bzoom\b[^\d]*(\d)\s*(?:[-\u2013\u2014]|to\b)\s*(\d)) _ZOOM_SINGLE re.compile(r(?i)\bzoom\b[^\d]*(\d))支持ZOOM rows A-B区间与单行两种形式AB时会自动交换保证AB若模型声称 ZOOM 却无法解析出行带该题被置为UNREADABLE。行带合并与切片所有待放大行带经 merge_bands() 处理——先按padeager 为 12向外扩、再裁剪到[1, max_row]相邻或重叠的带合并成一个避免重复渲染。随后 zoom_renders() 按行 r 覆盖字符[(r-1)*cols, r*cols)的映射从 chunk 文本中切出对应切片用 8x13 大字号字体重渲染并从ZOOM_SIZES (520, 784, 1040, 1568)中挑选能容纳该切片的最小方形尺寸超长行带会被拆分到多页。第二轮放大图问答消息流扩展为messages [assistant(qa1), user(exp08-zoom 提示 带标签的放大图 待答问题列表)]。放大轮的提示词由 exp08-zoom.md 提供——它先声明以下是您请求的行带的高分辨率重渲染文本与原文一致只是按新行宽重排再要求模型结合放大图与已读内容、沿用原编号继续作答读不出就回UNREADABLE。合并打分第二轮的answers2覆盖第一轮中所有触发 ZOOM 的问题final[i] answers2[i] or UNREADABLE随后逐条计算 exact match 与 F1见 squad.py 的exact_match/f1并记录zoomed、zoom_band、anchor、abstained等元数据。五、成本核算eager 策略的度量方式放大轮不是免费的实验代码用 aggregate() 与 _phase_cost() 把两轮 usage 合并核算token 汇总in/out/cache_w写入缓存/cache_r读取缓存/reasoning分桶累计qa1与qa2两阶段分开记录usage_rows。定价公式输入按(in 1.25*cache_w 0.1*cache_r) / 1e6 * price_in输出按out / 1e6 * price_out——缓存写入按 1.25 倍、缓存读取按 0.1 倍折算这是按主流 provider 的缓存计费结构建模的。关键派生指标zoom_q触发放大的题数、zoom_rate放大率、no_zoom_pct无需放大即回答的比例、cost_zoom_usd纯放大轮的增量成本用于回答eager 的宽余量放大到底多花多少钱、换来多少 F1。基线对照代码 BASELINE 中记录了img-6x10-sent基线的 f1/标准误/成本例如gpt-5.550 为(0.850, 0.0508, 0.068)输出汇总时给出d_f1与d_cost_usd差值。注意这是实验设计中的对照常量最终三条件的对比结论需要以records.jsonl/summary.json实际运行结果为准。实验入口main()exp08_foveate.py通过命令行参数--models、--lengths、--conditions、--qpc、--size、--workers等配置网格最终把逐题记录写入records.jsonl、聚合结果写入summary.json与matrix.csv。运行方式为从 snapcompact 目录执行uv run exp08_foveate.pydocstring 首行注明。六、结论eager 协议的设计要点exp08-archive-eager.md 虽短却是 foveated 两阶段读取链路中承上启下的关键一环其设计可以提炼为三条可复用原则给模型一个可靠的放弃通道ZOOM rows A-BUNREADABLE双兜底 guessing is penalized的激励把误读风险从模型硬猜转移到harness 定点重渲染这一确定性更高的路径上。用行号坐标系让放大可执行图像被声明为{cols}×{rows}字符网格模型只需估算垂直位置代码即可按[(r-1)*cols, r*cols)精确切片无需模型给出字符级定位。策略参数全部显式化放大阈值eager vs conservative、余量 pad2 vs 12、寻址方式rows vs phrase都被提炼为可配置的 PROTO 参数从而能在一个网格里公平对比不同策略的 F1 与成本曲线。该提示词是 packages/snapcompact/research 实验矩阵的一份子它与 exp08-archive.md、exp08-archive-phrase.md、exp08-zoom.md 共同构成完整的放大协议族研究结论反过来服务于 snapcompact 生产包的形状选择与压缩管线README.md架构总览见 docs/compaction.md。【免费下载链接】oh-my-pi⌥ Coding agent with the IDE wired in项目地址: https://gitcode.com/GitHub_Trending/oh/oh-my-pi创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/12 17:15:55

意见直达小程序,打造一站式服务评价管理平台

好消息!意见直达小程序正式上线!针对企业、物业、园区、企事业单位反馈渠道分散、问题处置不及时、服务无评价、管理无闭环等痛点,全新打造集好评记录、意见建议、投诉反馈、在线回复、服务评价、自定义配置于一体的轻量化管理小程序。无需复…

2026/9/12 17:10:54

团子翻译器字体渲染性能:速度与美观的平衡

团子翻译器字体渲染性能:速度与美观的平衡 引言:你还在忍受翻译器界面卡顿吗? 当你在使用翻译工具时,是否遇到过这样的情况:选择了漂亮的艺术字体却导致界面响应迟缓,或者为了追求速度而被迫使用单调的系统…

2026/9/12 17:10:54

告别翻译限制!团子翻译器有道API密钥配置全攻略

告别翻译限制!团子翻译器有道API密钥配置全攻略 你是否还在为公共翻译接口频繁抽风而烦恼?是否因翻译额度不足错过重要内容?本文将带你5分钟完成有道私人API的无缝对接,彻底解决翻译稳定性问题。读完本文你将获得:私人…

2026/9/12 18:10:57

STM32学习(五)—— 时钟体系

一、什么是晶振晶振的全称叫做晶体振荡器,是晶体(石英)和电子元件组成,晶振有一个非常重要的特性:机电效应(压电效应),一般晶振会提供高度稳定的频率(振荡频率是固定的&a…

2026/9/12 18:10:57

ABAQUS随机颗粒生成器:Python脚本实现二维非重叠颗粒建模

简介:这是一套基于ABAQUS的二维随机颗粒生成插件,面向从事颗粒材料有限元模拟的工程师与科研人员。核心功能通过Python脚本调用ABAQUS内建函数,自动完成颗粒尺寸、形状、材料属性及分布区域的参数化设置,并借助随机数算法生成位置…

2026/9/12 18:10:57

SpringBoot+JSP网络订餐系统:工程构建与并发事务处理

简介:这是一份基于 Spring Boot 与 JSP 技术栈的 Java 网络订餐系统设计源码,面向 Java Web 开发者、毕业设计及课程设计人群,能够帮助读者快速掌握 Spring Boot 框架与 JSP 动态页面、数据库集成的完整项目开发流程。压缩包共 169 个文件、约…

2026/9/12 18:10:57

国资:高管退休潮背后的深层逻辑与组织进化

《央企换帅,看名单的人都看错了》 ——升迁只改座位,退休才改规则一天之内,十七家中央企业、二十三名高管变动,其中十六人的结局是同一个词:退休。名单一出,大家下意识找“谁上去了”。可这份公告真正完成的…

2026/9/12 18:10:57

Python属性装饰器:数据封装与访问控制实战

1. 为什么需要属性装饰器:从数据失控到优雅封装在Python面向对象编程中,我们经常遇到一个经典矛盾:直接暴露实例属性虽然简单方便,但无法对赋值进行有效控制。想象你正在开发学生成绩管理系统,如果允许直接修改score属…

2026/9/12 18:05:57

牡丹芍药春季养护:抹芽疏蕾技巧与时机把握

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/12 2:05:33

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/12 3:55:12

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/12 10:09:03

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/12 0:04:17

MATLAB仿生优化框架:长鼻浣熊算法多策略融合实现

简介:本资源是一份面向智能优化算法研究者与MATLAB初学者的仿生智能算法实践代码包,聚焦于长鼻浣熊优化算法(COA)的多策略改进与性能验证。针对传统COA易陷局部最优、收敛精度不足等问题,作者融合Circle映射初始化提升…

2026/9/12 0:04:17

【JAVA毕设源码分享】基于 JavaWeb 的校园一卡通管理系统的设计与实现 基于 JavaWeb 的校园卡业务管理系统(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/9/12 0:04:17

【JAVA毕设源码分享】基于 Java 的图书馆借阅管理平台的搭建与实现 基于 Java 的图书馆综合管理系统(程序+文档+代码讲解+一条龙定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/9/12 6:29:36

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/12 14:32:17

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/12 6:37:43

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码