尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Supermemory 本地 embedding 如何调节 worker 参数提升大批量摄取吞吐

Supermemory 本地 embedding 如何调节 worker 参数提升大批量摄取吞吐 Supermemory 本地 embedding 如何调节 worker 参数提升大批量摄取吞吐【免费下载链接】supermemoryMemory and context engine app that is extremely fast, scalable, and can be run fully locally. The Memory API for the AI era.项目地址: https://gitcode.com/GitHub_Trending/su/supermemory当 self-hosted 的 Supermemory 使用默认配置时本地 embedding 在启动阶段用保守默认值预热1 个 worker、最小 CPU 占用。官方文档明确写道如果你正在大量摄取内容、并且更愿意用 headroom 换吞吐就把这组 local worker 参数调高Turn these up if youre ingesting heavily and prefer throughput over headroom。本文给出这组参数的完整清单、与大批量导入配套的摄取内存/并发参数以及用终端摄取状态行核对进度的方法。适用前提文档依据self-hosted 部署embedding provider 为默认的local模型Xenova/bge-base-en-v1.5768 维无需 embedding API key。使用 OpenAI、Gemini 或 Ollama 等远程 provider 时这组参数被忽略——文档说明远程 provider no local worker pool to tune。先理解默认摄取行为再决定调什么配置 worker 参数前先确认文档描述的默认摄取模型来自 Self-Hosting ConfigurationPOST /v3/documents毫秒级返回queued状态extraction、embedding、indexing 在后台按受控节奏执行。搜索永远立即服务不会排在摄取队列后面等待不管队列里堆了多少。摄取最多允许在启动基线之上再占用SUPERMEMORY_EMBEDDING_RAM_LIMIT默认1 GB内存超过后新文档只是在队列中等待不会被丢弃摄取变慢而已。也就是说大批量灌数据时你观察到的瓶颈有两个位置单 worker 的本地 embedding 算力以及摄取内存上限触发的暂停等待。下面分别对应两组参数。调节 embedding worker 参数以下 5 个变量在 Embeddings (self-hosted) 中被标注为 Local worker tuning (throughput only — does not change model or dimensions)即只影响吞吐不改变模型与向量维度变量作用默认值SUPERMEMORY_LOCAL_EMBEDDING_POOL_SIZENumber of embedding workers1SUPERMEMORY_LOCAL_EMBEDDING_WASM_THREADSCompute threads per worker1SUPERMEMORY_LOCAL_EMBEDDING_BATCH_SIZETexts per worker dispatch8SUPERMEMORY_LOCAL_EMBEDDING_IDLE_TIMEOUT_MSIdle time before workers shut down120000SUPERMEMORY_SKIP_EMBEDDING_PREWARMSkip startup prewarm, load on first useunset文档没有给出这些变量的固定推荐值具体数值需要按机器的 CPU 与内存自行确定。设置方式与 self-hosting 文档中其他变量一致在 shell 或进程管理器中设置installer 写入的~/.supermemory/env也会在每次启动时加载# 尖括号内的值按你的机器规格自行确定文档未提供推荐值 SUPERMEMORY_LOCAL_EMBEDDING_POOL_SIZEembedding worker 数量 \ SUPERMEMORY_LOCAL_EMBEDDING_WASM_THREADS每个 worker 的计算线程数 \ SUPERMEMORY_LOCAL_EMBEDDING_BATCH_SIZE每次派发给 worker 的文本条数 \ supermemory-server其中supermemory-server是 Quickstart 中的启动命令。SUPERMEMORY_LOCAL_EMBEDDING_IDLE_TIMEOUT_MS决定 worker 空闲多久后关闭对持续摄取的大批量场景影响有限SUPERMEMORY_SKIP_EMBEDDING_PREWARM是跳过启动预热的开关属于启动行为选项不属于吞吐调节项。配套调节摄取内存上限与并发worker 参数解决的是 embedding 算力队列侧还有两个变量直接决定大批量导入的速度同样来自 Self-Hosting Configuration变量作用默认值SUPERMEMORY_EMBEDDING_RAM_LIMIT摄取可在启动基线之上使用的内存。接受1gb、1.5gb、512mb或裸数字GB1gbSUPERMEMORY_INGEST_CONCURRENCY并发处理的文档数2文档原文的调节建议Raise the limit and concurrency on machines with spare RAM for faster bulk imports; lower them on small VPSes where you want the server to stay lean and dont mind adds draining slowly.——空闲内存多的机器上调高这两项以获得更快的大批量导入小 VPS 上则调低保持占用。文档给出的示例较大机器上给摄取 4 GB headroom# Give ingestion 4 GB of headroom on a larger machine文档示例 SUPERMEMORY_EMBEDDING_RAM_LIMIT4gb ./supermemory-serverworker 参数与内存上限可以同时生效worker 侧加快向量计算内存上限与并发决定同一时刻有多少文档能真正进入流水线。验证启动输出与终端摄取状态行调节是否生效、队列是否健康以终端输出为判断依据文档原文The limit is printed at boot, and whenever adds are waiting the binary shows a live status line in the terminal。以下为文档示例输出具体数值随你的机器与数据量变化[ingest] memory limit 1.0 GB above baseline (1.6 GB) · 2 concurrent — set SUPERMEMORY_EMBEDDING_RAM_LIMITngb to change [ingest] 2 running · 193 queued · 0.4 GB / 1.0 GB ingest memory [ingest] 2 running · 193 queued · paused — 1.1 GB / 1.0 GB ingest memory, waiting for it to drop [ingest] resumed — memory back under the 1.0 GB ingest limit逐行对照文档含义第一行在启动时打印当前内存上限与并发数并提示用SUPERMEMORY_EMBEDDING_RAM_LIMIT修改——先确认你设的值被正确加载。N running · N queued是当前并发文档数与队列长度队列长度持续下降说明吞吐在跟上。paused — … waiting for it to drop表示摄取内存已超上限、流水线在暂停等待内存回落resumed — memory back under the … limit表示恢复。大批量导入过程中偶尔出现 paused 属文档描述的机制若长期停在 paused说明SUPERMEMORY_EMBEDDING_RAM_LIMIT相对当前并发太小。在此期间搜索请求始终被立即服务不受队列影响。如果大批量数据是通过POST /v3/documents/batch单请求最多 600 条见 Backfill historical data提交的batch 端点在接收文档后即返回。需要确认某批文档真正处理完成时轮询返回的 document IDGET /v3/documents/{id}直到status与dreamingStatus都为done出现status failed表示该文档处理失败。限制与边界这组 worker 参数只作用于localprovider 的吞吐不改变模型与维度远程 embedding provider 完全忽略它们。文档未给出任何具体的吞吐提升数值只有方向性结论调高内存上限与并发 faster bulk imports。不要期待文档承诺的固定倍数。worker 参数不触碰模型/维度因此不会触发文档中更换 embedding 模型不支持就地变更的限制若日后要改模型或维度需要全新数据目录或全量重新摄取配置的维度与已存数据不一致时server 会拒绝启动。超过内存上限时文档不丢弃、只排队摄取变慢是设计行为不是故障。相关文档Self-Hosting Configuration — 全部环境变量、内存上限与摄取队列Embeddings (self-hosted) — provider 选择、worker 调优变量、维度锁定Self-Hosting Quickstart — 安装与supermemory-server启动Backfill historical data — 批量回填与完成状态轮询【免费下载链接】supermemoryMemory and context engine app that is extremely fast, scalable, and can be run fully locally. The Memory API for the AI era.项目地址: https://gitcode.com/GitHub_Trending/su/supermemory创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表