测试数据集:google/wmt25pp(英→中)
BLEU(双语评估替补)是一种算法,用于评估从一种语言机器翻译成另一种语言的文本的精确度或准确度。 自定义翻译器使用 BLEU 指标作为传达翻译准确性的一种方式。
BLEU 分数是一个 0 到 100 之间的数字。 0 分表示翻译质量低,翻译中没有任何内容与引用匹配。 分数为 100 表示与引用完全相同的完美翻译。 不需要达到 100 分 - BLEU 分数在 40 到 60 之间表明翻译质量高。
From 测试自定义翻译器 by Microsoft
BLEU(Bilingual Evaluation Understudy)是机器翻译中最常用的自动评价指标之一,它衡量的是机器翻译结果和一个或多个参考译文之间的相似度。
BLEU指标的取值范围为[0,1]之间,值越大代表机器翻译与参考译文越相似,表明翻译效果越好。
BLEU得分 模型表现 0-0.1 差,基本不可读 0.1-0.2 可表达大体意思,有时会有错误 0.2-0.3 基本流畅可用,有一定错误或者不自然 0.3-0.4 很流畅,但不完美 0.4-0.5 很好,接近人工翻译 0.5-1.0 非常好(罕见) 你只要知道BLEU是衡量模型翻译好坏的指标,取值范围[0-1],越大越好。0.3以上就表示该翻译模型基本可用。
From RethinkFun深度学习
机器翻译及 ChatGPT 英翻中译文的 BLEU 值(测试材料为5篇China Daily的中英文新闻)
有道 微软 DeepL ChatGPT 均值 51.4 47.2 51.2 53.8 46.1
直接推理:
| 模型 | K&V 缓存量化 | BLEU | chrF++ |
|---|---|---|---|
| Hy-MT2-1.8B:Q8_0 | f16 | 34.07 | 18.27 |
| q8_0 | 34.07 | 18.27 | |
| q4_0 | 34.07 | 18.27 | |
| Hy-MT2-7B:Q4_K_M | f16 | 59.20 | 43.74 |
| q8_0 | 59.20 | 43.74 | |
| q4_0 | 59.20 | 43.74 |
使用 user prompt:
| 模型 | K&V 缓存量化 | BLEU | chrF++ | 时间 |
|---|---|---|---|---|
| Hy-MT2-1.8B:Q8_0 | f16 | 36.62 | 20.55 | 06:49 |
| q8_0 | 36.62 | 20.55 | 07:30 | |
| q4_0 | 49.97 | 29.96 | 07:21 | |
| Hy-MT2-7B:Q4_K_M | f16 | 63.49 | 45.78 | 14:47 |
| q8_0 | 46.98 | 33.24 | 15:43 | |
| q4_0 | 46.98 | 33.24 | 15:37 | |
| Hy-MT2-1.8B:Q8_0* | q4_0 | 48.85 | 25.12 | 07:23 |
| Hy-MT2-7B:Q4_K_M* | q4_0 | 63.49 | 45.78 | 15:12 |
| Hy-MT2-7B:Q4_K_M** | q4_0 | 50.65 | 34.41 | 16:04 |
使用 system prompt:
| 模型 | K&V 缓存量化 | BLEU | chrF++ | 时间 |
|---|---|---|---|---|
| Hy-MT2-1.8B:Q8_0 | f16 | 49.98 | 25.38 | 06:32 |
| q8_0 | 49.98 | 25.38 | 07:06 | |
| q4_0 | 55.64 | 32.20 | 07:12 | |
| Hy-MT2-7B:Q4_K_M | f16 | 59.20 | 43.74 | 14:36 |
| q8_0 | 59.20 | 43.74 | 15:08 | |
| q4_0 | 63.49 | 45.78 | 15:09 | |
| Hy-MT2-1.8B:Q8_0* | q4_0 | 53.64 | 31.13 | 07:00 |
| Hy-MT2-7B:Q4_K_M* | q4_0 | 51.47 | 34.30 | 15:18 |
| Hy-MT2-7B:Q4_K_M** | q4_0 | 63.49 | 45.06 | 15:52 |
- *: 推荐参数重测
- **:
top_p=0.8重测
使用中文 prompt + user prompt::
| 模型 | K&V 缓存量化 | BLEU | chrF++ | 时间 |
|---|---|---|---|---|
| Hy-MT2-7B:Q4_K_M | - | 59.20 | 43.74 | 14:58 |
| q8_0 | 59.20 | 43.74 | 15:43 | |
| q4_0 | 59.20 | 43.74 | 15:43 |
使用中文 prompt + system prompt::
| 模型 | K&V 缓存量化 | BLEU | chrF++ | 时间 |
|---|---|---|---|---|
| Hy-MT2-7B:Q4_K_M | - | 59.20 | 43.74 | 15:04 |
| q8_0 | 59.20 | 43.74 | 15:42 | |
| q4_0 | 59.20 | 43.74 | 15:43 |
Server: (vllm 0.10.2)
VIRTUAL_ENV=.venv_vllm uv run vllm serve tencent/Hy-MT2-1.8B --tensor-parallel-size 1 --max-model-len 8192 --gpu-memory-utilization 0.66 --port 8118 --kv-cache-dtype fp8使用 user prompt:
| 模型 | K&V 缓存量化 | BLEU | chrF++ | 时间 |
|---|---|---|---|---|
| Hy-MT2-1.8B | - | 52.64 | 33.26 | 11:55 |
| Hy-MT2-1.8B | fp8 | 52.64 | 33.26 | 12:14 |
使用 system prompt:
| 模型 | K&V 缓存量化 | BLEU | chrF++ | 时间 |
|---|---|---|---|---|
| Hy-MT2-1.8B | - | 56.68 | 35.17 | 11:03 |
Server: (vllm 0.19.2)
docker run --gpus all -it --rm \
--ipc=host --ulimit memlock=-1 --ulimit stack=67108864 \
--name vllm \
-v ~/.cache/huggingface:/root/.cache/huggingface \
--env "HF_ENDPOINT=$HF_ENDPOINT" \
-p 8118:8000 nvcr.nju.edu.cn/nvidia/vllm:26.04-py3 \
vllm serve tencent/Hy-MT2-1.8B \
--tensor-parallel-size 1 --max-model-len 8192 --gpu-memory-utilization 0.66 \
--override-generation-config '{"repetition_penalty": 1.05, "temperature": 0.7, "top_k": 20, "top_p": 0.6, "max_tokens": 4096}' \
--attention-backend FLASHINFER使用 system prompt:
| 模型 | 后端 | BLEU | chrF++ | 时间 |
|---|---|---|---|---|
| Hy-MT2-1.8B | FlashInfer | 54.82 | 32.91 | 10:17 |
| Hy-MT2-1.8B | Flash Attention | 54.82 | 32.91 | 10:24 |
使用 FlashInfer 比 Flash Attention 占用的显存要多(约1G〖?〗)。
| 模型 | 上下文长度 | K&V 缓存量化 | 显存 (G) |
|---|---|---|---|
| Hy-MT2-1.8B:Q8_0 | 40960 | f16 | 3.11 |
| q8_0 | 2.53 | ||
| q4_0 | 2.23 | ||
| Hy-MT2-7B:Q4_K_M | 20480 | f16 | 5.77 |
| q8_0 | 5.20 | ||
| q4_0 | 4.89 |
模型:unsloth/gemma-4-26B-A4B-it-qat-GGUF
使用 system prompt:
| 思考 | K&V 缓存量化 | BLEU | chrF++ | 时间 |
|---|---|---|---|---|
| non-thinking | q8_0 | 29.99 | 18.15 | 24:25 |
| thinking | q8_0 | 29.56 | 15.43 | 6:19:45 |
PPL 是 Perplexity(困惑度) 的缩写,它是衡量语言模型性能的常用指标,特别是在评估经典语言模型(自回归或因果语言模型)的生成任务时。
PPL 主要用于衡量模型对给定文本的预测能力。PPL 反映了模型在处理一段文本时的“不确定性”或“困惑度”,数值越低,表示模型越擅长预测下一个词汇。
较低的 PPL:表示模型更准确地预测了文本中的词汇,模型对语言结构的掌握更好。
较高的 PPL:表示模型对文本的预测较为不确定,困惑度高,模型的表现较差。
在 AWQ 和 GPTQ 的量化研究中,PPL 被用来评估模型在不同量化位宽下的性能表现,例如 3-bit 或 4-bit 量化对模型预测能力的影响。
命令:.\llama-perplexity.exe -ngl 99 -m $MODEL -fa on -f .\test.txt -ctk $K -ctv $V
| 模型 | K&V 缓存量化 | PPL |
|---|---|---|
| Hy-MT2-7B:Q4_K_M | f16 | 33.9120 ± 0.96412 |
| q8_0 | 33.9277 ± 0.96509 | |
| q4_0 | 33.6081 ± 0.95230 | |
| Hy-MT2-1.8B:Q8_0 | f16 | 18.9252 ± 0.40557 |
| q8_0 | 18.9504 ± 0.40618 | |
| q4_0 | 19.2110 ± 0.41287 |
- 量化的大模型优于非量化的小模型
- 开启K&V缓存量化,速度略有下降(与实际使用的感官不同〖?〗),但是显存占用明显减少。
- 对于量化的小模型,使用 K&V 缓存量化没有太大的负面影响。
- 实测,在使用 KISS Translator 开启聚合之后,有一定概率出现漏翻的情况。
- 使用 Trancy 时较少遇到这种情况。
- 官方推荐
max_tokens=4096是有道理的,超过 4k 的输入经常会出现中间漏翻的情况。有时还会只翻译第一句就结束了。 Hy-MT2-7B:Q4_K_M模型- 上下文长度务必设为0!(否则经常直接返回上一个翻译结果。)
- 输入 ≈240 tokens/s,输出 ≈18 tokens/s
- 开启
q8_0缓存量化,输入 ≈1.6k tokens/s,输出 ≈38 tokens/s - 开启
q4_0缓存量化,输入 ≈1.8k tokens/s,输出 ≈35 tokens/s