gni-compression 已在 npm 上 — 我在构建领域自适应 LLM 压缩器的一个月中学到的东西

发布: (2026年5月3日 GMT+8 03:15)
2 分钟阅读
原文: Dev.to

Source: Dev.to

两个函数

const { compress, decompress } = require('gni-compression')
const compressed = await compress(Buffer.from(longContext))

没有热身。没有会话状态。领域知识已经烘焙进预训练字典(gcdict.bin),随包一起提供——在真实的 LLM 对话语料上训练。

数据

语料库GN 比率节省 (brotli‑6)
Ubuntu IRC8.4×1.2×

Ubuntu IRC 是意外之选。消息平均 67 字节——对 Brotli 来说太短,提升有限(1.2×)。GN 能达到 8.4× 是因为 IRC 词汇极其一致。短而重复的消息是领域字典最能发挥作用的地方。

为什么会出现这些数字

当我扫描最小短语长度时发现词汇分布并不平滑——它呈现两个簇并有间隙:

  • minLen 4→5:令牌数量下降 68 %(短填充令牌)

这意味着压缩会优先去除填充。这大概解释了在将压缩后的上下文重新喂给模型时,我们会看到一个小而稳定的下游质量提升——信噪比得到改善。

我为何构建它

我在构建 NN Dash,一个持久化的 AI 代理框架,能够在 Claude、GPT 和本地 Ollama 之间路由。目标是让长期的 AI 关系基本免费。GN 使得数千条消息的上下文会话成为可能,而不会因 token 费用而崩溃。

使用方法

npm install gni-compression
const { compress, decompress } = require('gni-compression')

来源: (MIT)

欢迎对数字、方法论或使用案例提供反馈。

0 浏览
Back to Blog

相关文章

阅读更多 »