蒸馏翻译模型的详细过程

模型 opus-mt-small320d-opus100-joint32k-ft-money-coffee-ct2-int8 完整训练手册 这个模型是用来做 en –> zh 的翻译用的极小模型 原本模型本体是 opus-mt ,模型大小296M。 -rw-rw-r-- 1 ubuntu ubuntu 1.4K May 19 08:20 config.json -rw-rw-r-- 1 ubuntu ubuntu 287 May 19 08:20 generation_config.json -rw-rw-r-- 1 ubuntu ubuntu 296M May 19 08:20 model.safetensors -rw-rw-r-- 1 ubuntu ubuntu 788K May 19 08:20 source.spm -rw-rw-r-- 1 ubuntu ubuntu 786K May 19 08:20 target.spm -rw-rw-r-- 1 ubuntu ubuntu 822 May 19 08:20 tokenizer_config.json -rw-rw-r-- 1 ubuntu ubuntu 1.7M May 19 08:20 vocab.json 蒸馏量化完变成了20M,这样整个en <–> zh的翻译软件,就只有60M左右,完美 -rw-rw-r-- 1 ubuntu ubuntu 223 Apr 21 05:27 config.json -rw-rw-r-- 1 ubuntu ubuntu 1007 Apr 21 05:27 generation_config.json -rw-rw-r-- 1 ubuntu ubuntu 20M Apr 21 05:27 model.bin -rw-rw-r-- 1 ubuntu ubuntu 620K Apr 21 05:27 shared_vocabulary.json -rw-rw-r-- 1 ubuntu ubuntu 778K Apr 21 05:27 source.spm -rw-rw-r-- 1 ubuntu ubuntu 778K Apr 21 05:27 target.spm -rw-rw-r-- 1 ubuntu ubuntu 819 Apr 21 05:27 tokenizer_config.json -rw-rw-r-- 1 ubuntu ubuntu 828K Apr 21 05:27 vocab.json 整个蒸馏的过程和代码都放到github了:https://github.com/zhangrr/distill-opus-mt-en-zh ...

2026年05月22日 · 1 分钟 · 151 字 · 八戒

手撕大模型GPT2

上星期花时间翻译了一篇: https://github.com/raiyanyahya/how-to-train-your-gpt 写的非常好,用简单明了的方式讲解了GPT2是怎么训练出来的 译文:https://github.com/zhangrr/how-to-train-your-gpt/ 📖 这是什么? 这是一本 12 章、3,900+ 行的交互式教科书,手把手教你从零开始构建、训练和运行一个现代语言模型——和 ChatGPT、Claude、LLaMA、Mistral 背后的架构属于同一家族。 你不只是"读"关于 Transformer 的内容,而是 亲手写下每一行代码:分词器(Tokenizer)、嵌入(Embedding)、注意力、训练循环、推理引擎。每一行都有注释,解释它 做了什么 以及 为什么这么做。 🤔 为什么要做这个 大多数 ML 教程都逃不出两个坑: ❌ 太浅 ❌ 太学术 ✅ 本指南 model = GPT().fit(data) 40 页论文,密密麻麻的数学符号 五岁小孩的类比 → 完整可运行代码 你只学会了调 API 默认你有 ML 博士学位 零 ML 经验也能上手 完全不了解内部原理 没有实际示例 每一行都标注了"做什么"和"为什么" 目标: 学完之后,你不只是知道注意力"有用"。你会理解 1/√d_k 背后的方差论证、RoPE 如何通过旋转捕获相对位置、为什么 pre-norm 在深层网络中优于 post-norm,以及反向传播时每个梯度的流向。 👥 适合谁? 🧑‍💻 你是…… 📚 你需要…… 一个好奇 ChatGPT 到底怎么工作的 Python 开发者 基础 Python(函数、类、列表)。不需要 ML 经验 一个想深入理解 Transformer 的学生 愿意阅读约 3,500 行带注释代码的耐心 一个在评估 LLM 架构的工程师 理解各种技术权衡(RoPE vs 学习式位置编码、RMSNorm vs LayerNorm) 一个在其他教程里被"注意力"搞晕的人 派对类比 + 用真实数字走一遍的完整示例 🔧 前置要求: Python 基础(变量、函数、类、pip install)。就这些。不需要微积分、线性代数或 PyTorch 经验——我们边做边教。 ...

2026年05月19日 · 2 分钟 · 301 字 · 八戒

一步一步用unsloth LoRA微调Qwen3

LoRA(Low-Rank Adaptation,低秩微调)。 全面微调(Full Fine-Tuning)一个几百亿参数的大模型像是在“重新装修整栋摩天大楼”(成本极高、极易塌房),那么 LoRA 就是在摩天大楼外面搭几根轻量级的“外挂管道”。 我们来一步一步实现这个过程: 准备 uv pip install --no-deps bitsandbytes accelerate xformers==0.0.29.post3 peft trl==0.15.2 triton cut_cross_entropy unsloth_zoo uv pip install sentencepiece protobuf datasets huggingface_hub hf_transfer uv pip install --no-deps unsloth 一、加载底模: from unsloth import FastLanguageModel import torch MODEL = "unsloth/Qwen3-14B" model, tokenizer = FastLanguageModel.from_pretrained( model_name =MODEL, max_seq_length = 2048, dtype = None, load_in_4bit = True, full_finetuning = False ) model = FastLanguageModel.get_peft_model( model, r = 32, target_modules = ["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj",], lora_alpha = 32, lora_dropout = 0, bias = "none", use_gradient_checkpointing = "unsloth", use_rslora = False, loftq_config = None, ) 140 亿(14B 参数) 的庞然大物(通义千问最新版)塞进你的电脑里。 ...

2026年05月18日 · 12 分钟 · 2406 字 · 八戒

huggingface.co得模型文件及其dataset的下载管理

我们蒸馏模型的过程中会要到 huggingface.co 下载底模和数据文件,有必要单独拿出来说一下 安装 uv venv --python 3.12 source .venv/bin/activate uv pip install huggingface_hub hf_transfer hf auth login --token hf_xxxxx #使用国内加速站下载 HF_ENDPOINT=https://hf-mirror.com hf download # 下载所有文件,直接下载 hf download google/gemma-4-1b-it --local-dir ./gemma-4-1b-it hf download google/translategemma-4b-it --local-dir ./translategemma-4b # 下载多个文件,不指定下载目录 # 文件会放到 # ~/.cache/huggingface/hub/models--lmstudio-community--Qwen3.5-9B-GGUF/snapshots/1379f25c6b505a3fc737bd7818cb09389cf807c1/Qwen3.5-9B-Q4_K_M.gguf \ # ~/.cache/huggingface/hub/models--lmstudio-community--Qwen3.5-9B-GGUF/snapshots/1379f25c6b505a3fc737bd7818cb09389cf807c1/mmproj-Qwen3.5-9B-BF16.gguf \ hf download lmstudio-community/Qwen3.5-9B-GGUF Qwen3.5-9B-Q4_K_M.gguf mmproj-Qwen3.5-9B-BF16.gguf --revision main # 下载多个文件,指定下载目录 uv tool run hf download facebook/m2m100_418M config.json vocab.json sentencepiece.bpe.model special_tokens_map.json tokenizer_config.json pytorch_model.bin --local-dir Translate/m2m100 # 下载单个文件,指定下载目录 hf download Jackrong/Qwopus3.5-9B-v3-GGUF --local-dir Jackrong/Qwopus3.5-9B-v3-GGUF Qwopus3.5-9B-v3.Q4_K_M.gguf # 下载无限制的gemma4 uv tool run hf download HauhauCS/Gemma-4-E4B-Uncensored-HauhauCS-Aggressive Gemma-4-E4B-Uncensored-HauhauCS-Aggressive-Q4_K_M.gguf mmproj-Gemma-4-E4B-Uncensored-HauhauCS-Aggressive-f16.gguf # 下载所有Q4和多模 hf download unsloth/gemma-4-26B-A4B-it-GGUF \ --local-dir unsloth/gemma-4-26B-A4B-it-GGUF \ --include "*mmproj-BF16*" \ --include "*UD-Q4_K_XL*" # 动态 2 位请使用 "*UD-Q2_K_XL*" 那一些非常好的训练数据集: ...

2026年05月17日 · 1 分钟 · 116 字 · 八戒

多Token预测MTP技术-dflash

DFlash 项目 问:能加快 model 运行吗? 能。 DFlash 是一个专门用于加速大语言模型推理的项目,通过 Speculative Decoding(投机解码) 技术显著提升Token生成速度。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 核心原理分析: 标准 LLM 推理是 自回归 的——每次只生成 1 个 token,每个 token 都需要完整的 target model forward pass,这是瓶颈所在(GPU 利用率低,受 memory bandwidth 限制)。 DFlash 的做法是 Block Diffusion + Speculative Decoding: 轻量级 Draft Model(草稿模型):一个很小的 diffusion 模型,它不是独立的 LM,而是复用 target model 的 embedding 层和 lm_head,只有几层自己的 transformer layers。 并行草拟一个 block:Draft model 一次性并行生成 block_size(通常 15-16)个候选 token,而不是逐个生成。它通过以下方式实现: 从 target model 的中间层提取 hidden states(extract_context_feature 从指定的 target_layer_ids 拼接隐藏状态) 将这些 hidden states 作为条件,对一个 masked block 做去噪(类似 diffusion),一步生成整个 block 的预测 Target Model 并行验证:Target model 对这 block_size 个候选 token 做一次 forward pass(而非 block_size 次),验证哪些是正确的。 ...

2026年05月09日 · 2 分钟 · 295 字 · 八戒

ComfyUI生成视频

之前写了一篇文章:ComfyUI配置z-image-turbo工作流生成图片 能百无禁忌,生成图片了,那我们来试试生成视频 环境:操作系统是debian 12,搭配AMD 6700 xt 12G的显卡,已按上文搭好了ComfyUI 同样,要先去下载模型文件,这回我们直接去huggingface.co的 Mirro r站下: # ComfyUI的目录是/root/ComfyUI cd /root mkdir -p ComfyUI/models/diffusion_models/wan-fusionx/ # 3个模型文件 wget -O "ComfyUI/models/diffusion_models/wan-fusionx/WanT2V_MasterModel.safetensors" "https://hf-mirror.com/vrgamedevgirl84/Wan14BT2VFusioniX/resolve/main/WanT2V_MasterModel.safetensors" wget -O "ComfyUI/models/vae/wan_2.1_vae.safetensors" "https://hf-mirror.com/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/vae/wan_2.1_vae.safetensors" wget -O "ComfyUI/models/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors" "https://hf-mirror.com/Comfy-Org/Wan_2.1_ComfyUI_repackaged/resolve/main/split_files/text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors" 下载、打开加载我们的视频工作流文件:video_wan2.1_fusionx.json 看看模型文件都对不对,然后修改提示词:草地上有个小马在奔跑 然后就生图吧 搞好后,就要弄我们的下一步,搞个自动营销生推广视频的玩意了。

2026年05月09日 · 1 分钟 · 35 字 · 八戒

大模型的实际应用-ios-Translate

之前写了一篇文章:大语言模型TranslateGemma的实际应用 感觉非常有意思,但是也觉得模型文件实在太大了一些,1.2G,过分了。 于是就想自己也造个出来,以备不时之需,在没有网络的时候也可以进行中-英翻译。 本身自己没有ios程序的任何经验,那就借助Codex和Gemini来徒手造一个。 结果还真弄出来了,过程非常曲折 项目地址:https://github.com/zhangrr/ios-translate/ 最麻烦的部分有三个 模型的选择,huggingface.co上面有很多模型,从大到小,最后是没有en-zh的特别小的模型,于是干脆自己精炼出来了一个 整个精炼的过程也写到上篇文章了。 ios程序swift的编写,xcode的安装运行,跟Linux不同,别扭的很,拷贝粘贴都不知道在哪里 mac系统的运行,还是别扭,找不到home目录在哪里,尤其是远程桌面完全不可用,最后不得已,用了rustdesk,才勉强可以 比较好的部分是模型的选择和精炼,zh-en用了现成的tiny zh-en,19MB;反向的en-zh,最后蒸馏压缩后也20MB,很可以了。 整个过程也是APP从体积1.2GB–>600MB–>400MB–>200MB–>80MB–40MB一路压缩下来 给个运行截图: 纪念一下,什么都不懂的人,居然写出了IOS程序,居然精炼了大模型!

2026年04月27日 · 1 分钟 · 16 字 · 八戒

模型的蒸馏文档

前言:之前的文章有一篇是translategemma 4B在IOS手机上运行的 自己也很想做个这样的手机翻译软件,用本地模型,如果没有网络,可以用来救急,在Codex、Gemini的加持下,还真给弄出来了 开源:https://github.com/zhangrr/ios-translate 其中里面有2个模型: opus-mt-tiny-zh-en-ct2-int8 源自于huggingface,才19M 奇怪的是没有对应的en-zh的小模型,于是乎自己炼了一个出来,也20M opus-mt-small320d-opus100-joint32k-ft-money-coffee-ct2-int8 下面就是详细的炼丹过程了: 模型 opus-mt-small320d-opus100-joint32k-ft-money-coffee-ct2-int8 完整训练过程 本文档从零开始,逐步解释最终模型 outputs/opus-mt-small320d-opus100-joint32k-ft-money-coffee-ct2-int8/ 的整个训练链路。每个名词、参数、步骤都有详细阐述,便于复现。 目录 整体架构:知识蒸馏是什么 底模(教师模型):Helsinki-NLP/opus-mt-en-zh Marian 模型架构详解 训练数据集:三层来源 自定义词表(Joint 32k SentencePiece) 学生模型配置:从 44M 到 20M 的演化 蒸馏训练核心原理 完整训练链路:12 个阶段 CTranslate2 转换与 int8 量化 CT2 推理流程详解 Pad Embedding 归零问题(CT2 对齐) 关键参数汇总表 完整复现命令清单 1. 整体架构:知识蒸馏是什么 知识蒸馏(Knowledge Distillation, KD) 是一种模型压缩技术。核心思想是让一个**小模型(学生)学习一个大模型(教师)**的输出分布,而不是直接学习人工标注的"标准答案"(ground truth / hard labels)。 输入: "Hello world." │ ├─→ 教师模型 (opus-mt-en-zh, 52M参数) ─→ "你好世界。" (高质量) │ 产生 logits(概率分布) │ └─→ 学生模型 (Tiny, ~20M参数) ─→ 模仿教师的 logits 最终学会产出接近教师的翻译 为什么用 KD 而不是直接训练? ...

2026年04月23日 · 19 分钟 · 3850 字 · 八戒

Tencent腾讯MySQL迁移

自打AWS全体迁移到AEPSLINK后,下一步就是Tencent腾讯的大迁移 这回已经有经验了,这里重点提一下腾讯MySQL的迁移,准备先建主备同步,切换的那天直接断开同步,就完事了 环境:腾讯的云数据库TencentDB是MySQL 8.0 InnoDB,内网IP 172.16.x.x 那建议是从一个跳板机进行端口转发进入MySQL,再从跳板机的security group对apeslink的IP进行限制 那第一步去腾讯云数据库备份中,把每天的full物理备份给下载出来 注:最佳方案是当时立刻手动备份一份,然后把备份拷贝到apeslink恢复 刚开始是去下载每天清晨自动的全备份,然后再拉binlog,实际操作过程中有问题,回放binlog的时候会出错,就很麻烦,浪费时间生命 Apeslink备库的操作如下,debian 12的操作系统,安装的社区版的8.0.45-1debian12的mysql: 腾讯备份采用的是xtrabackup,还用了qpress又压缩了一下,且binlog与my.cnf中的序列号不符 # 下载腾讯的full backup wget -c "https://mysql-database-backup-xxx" -O /root/full.xb # 下载percona,安装 wget https://repo.percona.com/apt/percona-release_latest.generic_all.deb dpkg -i percona-release_latest.generic_all.deb # 安装辅助包 apt install curl apt --fix-broken install percona-release setup pdps8.0 apt update apt install -y percona-xtrabackup-80 apt install -y percona-release percona-release enable tools release apt update apt install -y qpress 开始恢复: mkdir /root/full cd /root/full # 恢复/root/full.xb文件到目录/root/full xbstream -x < /root/full.xb # 把qpress文件都解压缩 xtrabackup --decompress --remove-original --target-dir=/root/full # 整理好 /root/full 目录 xtrabackup --prepare --target-dir=/root/full 然后去TencentDB把配置文件拉下来,放到/etc/mysql/mysql.conf.d/mysqld.cnf ...

2026年04月23日 · 2 分钟 · 419 字 · 八戒

黑魔法用Claude Opus蒸馏Qwen3.5的模型的安装运行

Claude Opus蒸馏Qwen3.5,9B小模型工具调用满分。9B的蒸馏模型,工具调用测试居然打了满分。 不知道为什么,huggingface.co 总给我推Jackrong的模型 从刚开始用opus数据蒸馏Qwen3.5开始,到现在的居然命名为 Qwopus3.5-9B-V3-GGUF 后面的9B是比较适合 Nvidia 3060 8G显卡的实现 我们来看看 apt-get update apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y apt-get search nvidia-driver #还是590是最新的 apt install nvidia-driver-590 nvidia-cuda-toolkit libssl-dev git clone https://github.com/ggml-org/llama.cpp # 指定静态编译 cmake llama.cpp -B llama.cpp/build \ -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON # 编译出主要得可运行程序 cd llama.app cmake --build build --config Release -j 8 # 装UV curl -LsSf https://astral.sh/uv/install.sh | sh source $HOME/.local/bin/env # 建目录 mkdir qwen cd qwen uv venv --python 3.12 source .venv/bin/activate uv pip install huggingface_hub hf_transfer hf auth login --token hf_xxxxx # 下载Q4_K_M的量化文件 hf download Jackrong/Qwopus3.5-9B-v3-GGUF --local-dir Jackrong/Qwopus3.5-9B-v3-GGUF Qwopus3.5-9B-v3.Q4_K_M.gguf # 下载多模态量化文件 hf download Jackrong/Qwopus3.5-9B-v3-GGUF --local-dir Jackrong/Qwopus3.5-9B-v3-GGUF mmproj.gguf 编写个run.sh ...

2026年04月17日 · 1 分钟 · 136 字 · 八戒