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

发布时间:2026/11/12 4:24:36

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/11/12 4:30:54

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

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

2026/11/9 21:28:57

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

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

2026/11/9 21:35:38

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

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

2026/11/12 4:29:20

工地电工作业证复审流程全解析 电工上岗必须这个证你知道吗

工地电工作业证复审流程全解析 电工上岗必须这个证你知道吗 你还在为找不到工作发愁?工地电工作业证复审没过,直接影响你能不能上岗。现在全国范围内,施工单位对电工证的要求越来越严格,尤其是高压电工、低压电工这类特种作业岗位,必须持证上岗。别等被…

2026/11/12 4:29:20

低压电工作业安全技术培训PPT保姆级教程:别被中介坑了,这招超实用

低压电工作业安全技术培训PPT保姆级教程:别被中介坑了,这招超实用 你是不是也遇到过这种情况?想考低压电工证,到处打听报名点,结果被中介坑了钱还考不过?别急,这篇保姆级教程就是为你准备的。不管你是开封公路工程从业者,还是准备跨省转介办理,这…

2026/11/12 4:29:19

龙江哪里有学电工证 官方回应证书过期怎么处理最靠谱

龙江哪里有学电工证 官方回应证书过期怎么处理最靠谱 证书过期了不知道怎么复审延期?在龙江地区,越来越多的电工从业者发现,手里那本特种作业操作证并不是终身有效的,一旦超过规定时间不进行复审,就会面临证件失效、无法上岗甚至面临处罚等现实问题。尤…

2026/11/12 4:24:19

考电工证用处,学历不高怕报不上名?良心建议来了

考电工证用处,学历不高怕报不上名?良心建议来了 学历不高怕报不上名?别急,考电工证用处其实比你想象的更大。特别是像你这种没有太多学历背景的朋友,电工证不仅是一张通行证,更是你改变现状的关键钥匙。别被“门槛高”吓到, 良心建议…

2026/11/11 12:42:59

电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。…

2026/11/12 0:04:01

工地太忙根本没时间复习考试?学习电工证到哪里学通过率揭秘

工地太忙根本没时间复习考试?学习电工证到哪里学通过率揭秘 工地太忙根本没时间复习考试?你不是一个人。作为一名在南阳卧龙区干了七八年市政公用工程的电工,我深知这个问题的现实性。电工证不仅是工作的“入场券”,更是职业发展的“通行证”,但备考过程…

2026/11/12 0:04:01

双流电工证考别怕挂科!郑州报考避坑指南全攻略

双流电工证考别怕挂科!郑州报考避坑指南全攻略 实操考试心里没底怕挂科?双流电工证考在郑州报名,很多人因为不了解流程、准备不充分,白白浪费时间和金钱。作为三门峡应届工程类毕业生,我也曾经历过这样的焦虑。今天就从零开始,手把手教你如何避开郑州报…

2026/11/12 0:04:01

之前考的证在外省能不能转过来 怎么报名考电工证培训价格多少

之前考的证在外省能不能转过来 怎么报名考电工证培训价格多少 之前考的证在外省能不能转过来?这个问题确实让不少准备换城市工作的朋友犯了难,尤其像电工证这种实操性很强的证书,很多人担心跨省后证书能不能继续用。其实,只要符合相关流程,是可以顺利转…

2026/11/11 20:27:01

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/10 10:29:37

SSM电子书店源码全解析:结构、原理、部署与排错实战

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

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

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

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