跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 浅色
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • 深色
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(LCZ-Blue)
  • 不使用皮肤
  • LCZ-Green
  • LCZ-Blue
  • LCZ-Black
折叠
品牌标识

抡锤者

首页 版块 标签 硬件 AI 广场
  1. 主页
  2. 版块
  3. LLM讨论区
  4. (學術) ninfer 可支援的 去審查Qwen3.8-27B nvfp4:製作方法

(學術) ninfer 可支援的 去審查Qwen3.8-27B nvfp4:製作方法

已定时 已固定 已锁定 已移动 LLM讨论区
ninferqwen-27b量化
3 帖子 2 发布者 157 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • David ChenD
    David ChenD
    David Chen
    德高望重
    编写于 最后由 David Chen 编辑
    #1

    "This repository/article is for academic and AI safety research purposes only. It demonstrates how model weights react to specific transformations. No model weights are hosted or redistributed here. Users are responsible for ensuring compliance with the original model's license when applying these techniques locally."

    ninfer目前認可模型並不是uncensored
    所以有很多不雅的事不能試(例如請模型創作正妹..................................................................................挖鼻孔照片....)

    我想應該很多大神早就做出來了,只是忘了分享,因此拋磚引玉一下
    以下純學術討論(不提供模型下載)!!!!!!!!!!!! 但你可以用自己顯卡去實現自己的uncensored模型

    適用:手上有一份同架構(Qwen3.8-27B / 64 層 / vocab 248320)的去審查(abliterated / uncensored)權重,想在 NInfer 引擎上跑,且不想改引擎、不想換 binary、不想重學啟動參數。
    本文只講四件事:製作方法、執行步驟、資料來源、為什麼「原本那套 NInfer 可以無痛接入」。
    不講:效能數字、量化路徑對比、TP2 雙卡細則、其它引擎。
    本流程 = 2026-09-22 實測跑通的可重現 SOP(uncensored 重轉 nvfp4 後與標準 artifact 同 runtime identity)。

    1. 為什麼無痛接入(先講結論)

    「uncensored」不是新模型——它是同一個 base 的權重「值」改動(abliteration 只動 attn.o_proj / mlp.down_proj 的 residual stream),不動 shape / vocab / tokenizer / layer 排程。

    因為 NInfer 的 convert.py / convert_nvfp4.py 對權重是「餵進去的值重新量化」,uncensored 的 bf16 / nvfp4 權重直接餵就能產出一個 .ninfer artifact。產出後:

    項目 標準模型 uncensored 模型
    NInfer binary ninfer-serve 同一支
    啟動參數 --spec dflash2 --draft-tokens 8 ... 完全相同
    runtime identity qwen3.8-27b/nvfp4 qwen3.8-27b/nvfp4(v2 重轉後相同)
    唯一差別 artifact 檔 只換 artifact 檔 + model-id

    換句話說:原本跑標準模型的那套 NInfer 環境、那支 binary、那套啟動參數,把 artifact 路徑指到 uncensored、model-id 改一下,就能直接跑。 不用重裝、不用改引擎、不用重學參數。

    2. 製作方法(產出 .ninfer artifact)

    2.1 準備三份料

    料 用途 格式要求
    uncensored base 權重 模型主體 safetensors(bf16 可直餵 groupwise-int 路)
    DFlash2 配重 投機解碼 draft head safetensors(model.safetensors 單檔 + 含 dflash_config 的 config.json;GGUF 不行)
    官方 frontend 6 檔 tokenizer / chat template 等 用官方的,不是 uncensored repo 的(見 §2.3)

    2.2 下載 uncensored 權重(用 snapshot_download,別用 hf download)

    python3 -c "
    import os; os.environ['HF_XET_HIGH_PERFORMANCE']='1'
    from huggingface_hub import snapshot_download
    snapshot_download(
      'JonathanColetti/Qwen3.8-27B-Uncensored',
      allow_patterns=['model-[0-9]*.safetensors','model-mtp.safetensors',
                      'model.safetensors.index.json','config.json'],
      local_dir='$HOME/.llama/<EXP>/uncensored', max_workers=16)"
    

    ⚠️ 坑:hf download CLI 會把多個 --include 誤解成正位元字面檔名,12 個大 shard 一個都不下、只抓小檔。一律改用 snapshot_download(allow_patterns=)。

    2.3 用「官方」frontend 6 檔,不用 uncensored repo 的

    uncensored repo 是 transformers re-save,tokenizer.json 的 byte-ordering 跟官方不同 → 直接餵會被 converter 的 SHA256 gate 擋。vocab 已驗證與官方相同,所以語意零損失,直接用官方檔:

    # 官方 6 檔 @ base revision 1d4bf0f2ff6012fd82039f2fa52739d0dd7c60c0
    BASE="https://huggingface.co/Qwen/Qwen3.8-27B/resolve/1d4bf0f2ff6012fd82039f2fa52739d0dd7c60c0"
    for f in tokenizer.json tokenizer_config.json chat_template.jinja \
             generation_config.json preprocessor_config.json video_preprocessor_config.json; do
      curl -sL "$BASE/$f" -o <UNC_DIR>/$f
    done
    # 驗證:sha256sum 六檔應全等於 convert.py 的 OFFICIAL_RESOURCE_SHA256
    

    2.4 轉換(模組模式,別直接跑 script)

    cd <NINFER_SRC_ROOT>
    export PYTHONPATH=<NINFER_SRC_ROOT>
    export CUDA_VISIBLE_DEVICES=<idle GPU>
    python3 -m tools.convert.qwen3_8_27b.convert \
      --model <UNC_DIR> \
      --dflash2-model <DF2_DIR> \
      --out <OUT>.ninfer \
      --device cuda
    

    ⚠️ 坑:不能用 python3 tools/.../convert.py 直接跑——會 ImportError: attempted relative import with no known parent package(converter 內部用 from . import dflash2_recipe)。必須 python3 -m 模組模式、從 source root 執行。

    兩條量化路(擇一):

    • convert.py(groupwise-int 路):直接餵 bf16,記憶體內重新量化。簡單快速。
    • convert_nvfp4.py(nvfp4 路):吃一個預先量化好的 vLLM compressed-tensors NVFP4 checkpoint(--quantized-model),不在記憶體重量化。→ 要讓 uncensored 與標準 artifact 同 runtime identity(nvfp4)、真正「無痛同速」,走這條。

    3. 執行步驟(上線,無痛接入)

    # ~/.config/systemd/user/ninfer-dryrun.service  [Service]
    Environment=CUDA_VISIBLE_DEVICES=<idle GPU>
    ExecStart=<NINFER_BINARY> <UNCERTAINSED_ARTIFACT> \
      --host 127.0.0.1 --port <獨立port> --device 0 \
      --max-context 262144 --kv-dtype nvfp4 --kv-capacity 334000 --max-concurrency 3 \
      --prefill-chunk 1024 --pending-timeout-ms 600000 \
      --spec dflash2 --draft-tokens 8 --lm-head-draft \
      --model-id qwen38-uncensored \
      --vision --media-cache-mib 256 --media-live-mib 512 --host-state-slots 8 --host-kv-mib 8192
    
    systemctl --user daemon-reload && systemctl --user start ninfer-dryrun
    # ~8s 後
    curl -s http://127.0.0.1:<port>/health    # 應 {"status":"ok"}
    # 測試完:systemctl --user stop ninfer-dryrun && rm unit && daemon-reload
    

    3.1 dry-run 驗證項(三項全過才算數)

    • engine ready(runtime identity 應為 qwen3.8-27b/nvfp4)+ CUDA graphs ready
    • 發一個正常 prompt,確認輸出正確
    • 去審查行為驗證:拿「base 會拒、uncensored 不該拒的有害請求」餵兩端(base 主腦 + uncensored),比對拒率 delta——base 高拒 + uncensored 低拒 + delta 大 → 去審查真生效。(不是找「只有 uncensored 能答的題」,那是能力差異不是去審查。)

    3.2 上線

    4. 資料來源

    來源 說明
    JonathanColetti/Qwen3.8-27B-Uncensored uncensored base 權重(bf16,12 shard)
    z-lab/Qwen3.8-27B-DFlash2 DFlash2 投機解碼配重(safetensors + config)
    Qwen/Qwen3.8-27B @ 1d4bf0f2ff6012fd82039f2fa52739d0dd7c60c0 官方 frontend 6 檔(tokenizer / chat_template 等,SHA256 gate 基準)
    NInfer tools/convert/qwen3_8_27b/convert.py groupwise-int 轉換路(OFFICIAL_RESOURCE_SHA256、check_members、validate_base_compatibility)
    NInfer tools/convert/qwen3_8_27b/convert_nvfp4.py nvfp4 轉換路(吃 vLLM compressed-tensors NVFP4 checkpoint;recipe_nvfp4.py 格式合約)
    本地 SOP ninfer-uncensored-qwen38-convert-20260921.md(完整實測 + 踩坑)、ninfer-uncensored-vs-standard-perf-20260921.md §5.5(TP2 狀態)

    本檔為 LCZ 貼文規格(2~3 欄 pipe table、阿拉伯數字章節、code fence 標語言、資料來源連結)。貼上 lcz 前寬表已控制在 3 欄內。

    1 条回复 最后回复
    1
    • terryT
      terryT
      terry
      超级版主
      编写于 最后由 编辑
      #2

      坛友们玩的这么深?都开始定制模型了?完全看不懂。

      油管:https://www.youtube.com/@抡锤者

      David ChenD 1 条回复 最后回复
      0
      • terryT terry

        坛友们玩的这么深?都开始定制模型了?完全看不懂。

        David ChenD
        David ChenD
        David Chen
        德高望重
        编写于 最后由 编辑
        #3

        @terry 破解的AI模型配合破解的影片生成模型....相得益彰啊......

        1 条回复 最后回复
        0

        你好!看起来您对这段对话很感兴趣,但您还没有一个账号。

        厌倦了每次访问都刷到同样的帖子?您注册账号后,您下次访问时都将自动回到上次浏览的位置,并可选择接收新回复的通知(通过电子邮件或推送通知)。您还可以收藏帖子、为帖子点赞,以此向其他社区成员表达您的感谢。

        有了你的建议,这篇帖子会更精彩哦 💗

        注册 登录
        回复
        • 在新帖中回复
        登录后回复
        • 从旧到新
        • 从新到旧
        • 最多赞同


        • 登录

        • 登录或注册以进行搜索。
        • 第一个帖子
          最后一个帖子
        0
        • 版块
        • 最新
        • 标签
        • 热门
        • 用户
        • 群组