【免费下载链接】SemIf-OpenJevSemantic ifs from open models, on a 3090 at home. Independent; not affiliated with Jev or TypeSafe.项目地址https://gitcode.com/gh_mirrors/op/SemIf-OpenJev点击查看免费下载SemIf 的exl3-bridge/是一条与webgpu-demo/类似的独立执行轨道在不触碰固定 BF16 基准的前提下把 direct-mode 决策契约direct-options-v1完整迁移到 exllamav3 推理引擎用量化.exl3检查点Qwen3.8-27B5.0 bpw做全词表 logits 读出。读完本文你将掌握这条轨道的契约边界、已提交的对比证据、逐参数复现命令以及它在 3090 单卡上的已知限制能直接照搬它的运行与验证流程。exl3-bridge 是什么一条增量式的量化执行轨道exl3-bridge/是 SemIf 仓库中的一个独立执行轨道standalone execution track其定位与 webgpu-demo 相同针对 direct-mode 决策契约提供另一套可运行的打分路径但把 LLM 前向从固定 BF16 参考实现切换为 exllamav3 上的量化推理。三条设计原则决定了它的边界见 exl3-bridge/README.md独立runner 只依赖 exllamav3 / torch / transformers不属于固定参考运行时的一部分增量additive仓库中固定的Qwen/Qwen3.5-4B 851bf6eBF16 声明results/、phase1-summary.json、根 README 中的相关表格全部保持原样src/、benchmarks/、examples/不被修改可验证行级证据与 SHA256SUMS 随仓库提交compare_fixtures.py 可以从已提交 fixtures 重算出对比结论。从源码看exl3_runner.py 第 23-25 行runner 通过sys.path注入src/并直接from semif_phase1.core import LETTERS, direct_messages, softmax, digest说明它复用的是与固定基准完全相同的提示词构建与数值处理函数只有模型加载与前向这一层被替换为 exllamav3。不变的核心direct-mode 决策契约契约是这条轨道的灵魂。下表来自 exl3-bridge/README.md与src/中的实现一一对应契约要素具体约定代码落点提示词构建semif_phase1.core的direct-options-v1同一份 system JSON schemaexl3_runner.py 导入semif_phase1.core逐行prompt_sha256对渲染后的完整提示词文本做 SHA-256semif_phase1.core.digestcore.py单 token 答案槽A/B字母校验往返解码且前缀稳定semif_phase1.coreencode_prompt、slot_ids读出方式全词表最后位置 logits 的 softmax仅取声明选项exllamav3Job(return_logitsTrue)与logits[:, -1, :]同一数量不截断超预算行直接拒绝绝不裁剪input_budget_check对照 exllamav3model.token_length复核输出只创建、可追加续跑append-resumable每行一个决策exl3_runner.py提示词与答案槽的源码级细节提示词由 core.py 的direct_messages生成系统消息为DIRECT_SYSTEMApply the supplied criterion to the supplied evidence. Choose exactly one listed option. Respond with only its uppercase letter…用户消息把state作为evidence、question作为criterion、选项映射为letterdescription的 JSON。runner 随后用tokenizer.hf_render_chat_template(messages, add_generation_promptTrue, enable_thinkingFalse)渲染为模型输入exl3_runner.py关闭思考模式与固定基准路径保持一致。答案槽校验在slot_idsexl3_runner.py中完成两道检查往返解码tokenizer.single_id(letter)得到 token 后decode回来必须仍等于该字母否则抛ValueError前缀稳定对prompt letter重新编码必须恰好等于ids [tok]证明追加答案字母不会改变既有 token 边界——这正是单 token 决策读出成立的前提。此外validate_rowcore.py规定选项数必须在 2–16LETTERS ABCDEFGHIJKLMNOPID 唯一、state必须是非空字符串/对象/数组且 JSON 兼容runner 在direct_messages(row)中即触发该校验。读出与前向的差异点固定基准在 direct.py 中用model(**inputs).logits[:, -1, :]取最后位置 logitsexl3 bridge 则把同一语义落到 exllamav3 的Job(input_ids..., max_new_tokens1, return_logitsTrue, seed53)exl3_runner.py从result[logits][0, -1, :]取全词表 logits再softmax(selected)归一化——二者是同一数量last-position logits但通过不同的引擎路径得到。这就是契约中identical quantity的含义量相同、路径不同。已提交的证据结果与解读边界运行只在项目自有 fixtures 上进行无第三方数据结果已随仓库提交证据行数BridgeQwen3.8-27B exl3 5.0bpw固定 4B BF16 direct已提交authored144平衡准确率1440.95790.813shape777与固定 direct-4B 行级预测的 argmax 一致率7770.8443121 次翻转reference来源authored144-27b-exl3.jsonl、shape777-27b-exl3.jsonl 及其 SHA256SUMS。fixture-comparison.json不只是总分数compare_fixtures.py 会把上述对比重算并写入 fixture-comparison.json其中包含比总分数更细的视角authored144bridge 27B 准确率 0.9583、平衡准确率 0.9579与已提交 direct-4B 行级预测对比为both_right: 114、fixed_by_bridge: 24、regressed_by_bridge: 2、both_wrong: 4——即 27B 桥在这 144 行上净修复 22 个错误三个类别的召回率分别为 0.9636 / 0.9545 / 0.9556shape777777 行全部可比argmax 一致率 0.8443翻转 121 次并附注释明确模型家族和量化都与固定基线不同一致率是 bridge-vs-pinned 的增量而非量化消融。其中shape777的对照基准是 results/raw/shape777-direct.predictions.jsonlpinned 4B 行级预测按多数票聚合authored144的基准是 results/raw/predictions/ 下的 direct-4B 预测文件。fixture 本身来自 benchmarks/data/authored144.jsonl 与 benchmarks/data/shape777.jsonl均为项目自建、无第三方版权输入。解读边界这不是消融实验必须谨慎对待这些数字模型家族Qwen3.5-4B → Qwen3.8-27B、参数量、量化方式、运行时同时变化因此这是系统级对比不是受控的模型大小或量化消融。根 README 的 general decision baseline 表同样只把它作为EXL3 direct (27B, 5 bpw)一列展示且注明该桥尚未在其他质量工作负载WANLI、Every 等上运行。另有一条纪律值得注意仓库还跑过一个仓库外的外部电缆数据集的零样本探针但该数据上游许可证为 unknown因此探针的输入与输出一律未提交——这也是只提交项目自有证据原则的体现。复现指南从零跑到验证环境要求CUDA GPUREADME 示例基于单卡 3090 配置exllamav3MIT 许可——注意它不是固定参考运行时的一部分除 exllamav3 / torch / transformers 外runner 仅用标准库。安装与运行python -m venv .venv-exl3 . .venv-exl3/bin/activate pip install torch2.10.0 transformers5.17.0 pip install https://github.com/turboderp-org/exllamav3/releases/download/v1.4.4/exllamav3-1.4.4%2Bcu128.torch2.10.0-cp310-cp310-linux_x86_64.whl python exl3-bridge/exl3_runner.py \ --model-dir /path/to/model-exl3 \ --model-source turboderp/Qwen3.8-27B-exl3 \ --model-revision a35e75a73baee51da709329d19294245cbeeb5d8 \ --input benchmarks/data/shape777.jsonl \ --output exl3-bridge/results/shape777-27b-exl3.jsonl \ --cache-size 16384 --gpu-split 22.5命令行参数一览参数解析见 exl3_runner.py参数必填默认值说明--model-dir是—本地.exl3量化检查点目录传给 exllamav3 的-m--model-source否None公开模型 ID仅写入输出元数据如turboderp/Qwen3.8-27B-exl3--model-revision否None固定的模型 revision仅写入输出元数据--input是—输入 JSONL每行一个决策行--output是—输出 JSONL已存在时自动续跑跳过已完成 id--cache-size否16384KV 缓存容量token同时作为输入预算上限--gpu-split否22.5分配到 GPU 的显存GB传给 exllamav3 的-gs验证三步(cd exl3-bridge/results sha256sum -c SHA256SUMS) pytest exl3-bridge/test_bridge.py -q python exl3-bridge/compare_fixtures.pysha256sum -c核对已提交结果文件未被改动对应authored144-27b-exl3.jsonl、shape777-27b-exl3.jsonl、fixture-comparison.json三条校验和pytest跑 CI 安全测试见下节不需要 GPU、权重或网络compare_fixtures.py从已提交 fixtures 重算 fixture-comparison.json 并打印摘要。输出行的字段结构与 direct 行可互换每行决策输出是自描述的 JSON示例见 authored144-27b-exl3.jsonl 首行{id:a3f18f3a63d45345942b,status:ok,option_ids:[supported,insufficient,contradicted],probabilities:[0.001387390789205753,0.0008156049697433404,0.9977970042410509],option_logits:[17.515625,16.984375,24.09375],input_tokens:142,total_seconds:5.813881610985845,prompt_sha256:3cc9e3d1e4e07885afb7652e9c5f92a5b28168362a3d8e7f6e32e5189a4fccde,prompt_version:direct-options-v1-exl3-bridge,model:{source:turboderp/Qwen3.8-27B-exl3,dtype:exl3 quantized (see quantization_config.json),runtime:exllamav3 1.4.4,torch_version:2.10.0cu128,readout_backend:exllamav3 Generator/Job(return_logitsTrue), exl3 kernels,revision:a35e75a73baee51da709329d19294245cbeeb5d8},readout:native full-vocabulary last-position logits restricted to declared answer slots,probability_status:conditional option score; uncalibrated as decision confidence}关键字段statusok/refused_over_cache_budget超预算被拒附input_tokens与cache_size/no_logits引擎未返回 logits——不截断原则的直接体现probabilities/option_logits仅对声明选项的 softmax 概率与原始 logits顺序与option_ids对应prompt_sha256/prompt_version提示词哈希与版本标识桥的版本为direct-options-v1-exl3-bridge与固定基准的direct-options-v1区分model完整元数据source、revision、dtype、exllamav3 版本、torch 版本、读出后端每行都携带保证行级可审计probability_status明确标注条件化选项得分未校准不能直接当作决策置信度。test_bridge.py 专门断言了这些字段id、option_ids、probabilities、option_logits、input_tokens、prompt_sha256、prompt_version、model、readout、probability_status必须齐备且probabilities求和为 1——保证桥的输出行可直接替代 direct 行进入下游分析。CI 安全测试无 GPU 也验证契约test_bridge.py 的巧妙之处在于在导入 runner 之前先用types.ModuleType构造exllamav3桩并塞进sys.modules第 14-20 行使exl3_runner的模块级导入在无 exllamav3 的环境里也能成功。随后用字节级假 tokenizer每个字符一个 token覆盖以下契约点encode_ids对 list / tuple / tensor 三种编码返回值的归一化第 44-54 行slot_ids正常通过往返 前缀稳定校验第 57-60 行解码不匹配时抛ValueError第 63-71 行追加答案字母改变 token 边界前缀不稳定时抛ValueError第 74-86 行结果行携带 direct-mode 契约字段且概率和为 1第 89-101 行。因此这套测试无 GPU、无权重、无网络即可在 CI 中运行覆盖的正是桥与固定基准共用的提示词/槽位/拒绝/续跑契约。已知限制原文档列出了三条边界实际使用中务必留意对应 exl3_runner.py 的实现logits 位置语义exllamav3 的return_logits路径返回max_new_tokens 1个位置的 logitsrunner 断言形状后取位置-1最后位置与固定基准的logits[:, -1, :]对应但依赖引擎行为不能想当然量化质量取决于检查点最终质量完全由上传的.exl3检查点bits、head_bits等决定runner 只在每行报告exl3元数据不审计检查点本身预算必须适配 KV 缓存--input-budget默认 16384必须低于--cache-size/--gpu-split隐含的 KV 缓存容量超预算行会被拒绝而非截断这在 runner 中体现为len(ids) 8 args.cache_size即写入refused_over_cache_budget行见 exl3_runner.py。另外从 shape777 实测行看单行输入 token 约 1890 左右--cache-size 16384为多行并行/长状态留出了余量。下一步继续深入仓库exl3-bridge/README.md — 本轨道的原始说明compare_fixtures.py — 对比结论的完整计算逻辑test_bridge.py — CI 安全契约测试src/semif_phase1/core.py 与 src/semif_phase1/direct.py — 契约的本体实现benchmarks/README.md — fixtures、runner 与复现命令总览docs/RESULTS.md 与 docs/REPRODUCE.md — 质量与复现的全局视角README.md 的 General decision baseline 一节 — 桥在整体质量格局中的位置。简言之exl3-bridge 展示了 SemIf 的一种引擎可替换、契约不动摇的扩展方式把提示词构造、答案槽校验、全词表读出与不截断原则固化为契约再通过 exllamav3 把模型规模与量化自由度交给使用者——前提是清楚这是系统级对比而非消融并且一切证据都只建立在项目自有、可校验的 fixtures 之上。赞分享【免费下载链接】SemIf-OpenJevSemantic ifs from open models, on a 3090 at home. Independent; not affiliated with Jev or TypeSafe.项目地址https://gitcode.com/gh_mirrors/op/SemIf-OpenJev点击查看免费下载相关推荐TextGen 如何用 ExLlamaV3 加载 EXL3 多模态模型实现图片理解无需 mmprojTextGen 如何用 ExLlamaV3 加载 EXL3 多模态模型实现图片理解无需 mmproj TextGen 的多模态能力有两条实现路径llama人工智能大模型本地部署模型推理服务AI 应用桌面应用工具调用SemIf 实战指南用开放模型在本地 GPU 上实现语义化 if——直接从类型化选项读取概率的运行时决策方案SemIf 实战指南用开放模型在本地 GPU 上实现语义化 if——直接从类型化选项读取概率的运行时决策方案 导读 SemIf前身 OpenJev是一SemIf 原生 MLX CLI 实战Apple Silicon 终端录制重放、复现命令与决策输出解读SemIf 原生 MLX CLI 实战Apple Silicon 终端录制重放、复现命令与决策输出解读 SemIfSemantic ifs from ope创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
