许可证:gemma
pipeline_tag: 图像文本到文本
extra_gated_heading: 在Hugging Face上访问Gemma
extra_gated_prompt: >-
要在Hugging Face上访问Gemma,您需要审阅并同意Google的使用许可。为此,请确保您已登录Hugging Face并点击下方。请求会立即处理。
extra_gated_button_content: 确认许可
base_model: google/gemma-3-27b-it
标签:
gemma-3-27b-it-qat-q4_0 GGUF模型
[!注意]
实验性重新量化!! 我想测试QAT模型重新量化后是否比量化到相同比特级别的bf16模型表现更好。
我从Google原始的QAT Q4_0量化模型创建了一个imatrix文件。然后使用这个imatrix将模型重新压缩到更低的比特量化级别。
请留下反馈。
我测试了从bf16量化的4b模型和从QAT Q4_0模型重新量化的模型。两者都使用相同的张量量化。
我的结果:
python3 ~/code/GGUFModelBuilder/perp_test_2_files.py ./gemma-3-4b-it-qat-q4_0-q3_k_l.gguf ./google_gemma-3-4b-it-q3_k_l.gguf
测试模型:gemma-3-4b-it-qat-q4_0-q3_k_l.gguf
运行:llama.cpp/llama-perplexity -m gemma-3-4b-it-qat-q4_0-q3_k_l.gguf -f perplexity_test_data.txt --ctx-size 256 --ppl-stride 32 --chunks 1 --threads 4
[✓] 困惑度:4.0963(时间:284.70秒)
测试模型:google_gemma-3-4b-it-q3_k_l.gguf
运行:llama.cpp/llama-perplexity -m google_gemma-3-4b-it-q3_k_l.gguf -f perplexity_test_data.txt --ctx-size 256 --ppl-stride 32 --chunks 1 --threads 4
[✓] 困惑度:4.5557(时间:287.15秒)
=== 对比结果 ===
模型1:gemma-3-4b-it-qat-q4_0-q3_k_l.gguf - 困惑度:4.10(时间:284.70秒)
模型2:google_gemma-3-4b-it-q3_k_l.gguf - 困惑度:4.56(时间:287.15秒)
胜者:gemma-3-4b-it-qat-q4_0-q3_k_l.gguf(差异:0.46)
另一个测试:
要求两个模型:编写一些.NET代码来测试网站是否使用量子安全加密
然后让Deepseek-R1评估:
两个模型输出的评估
两个模型都尝试解决检测量子安全加密的问题,但QAT q4_0模型的代码明显更好,原因如下:
-
技术准确性
QAT q4_0模型:
检查TLS版本和密码套件,这是评估量子抵抗的关键。虽然实现有缺陷(例如假设TLS版本在HTTP头中暴露),但方法符合安全最佳实践。
明确承认局限性(例如“不是确定性测试”)并避免过度承诺。
BF16模型:
依赖于检查非标准的TLS/1.3头,这在HTTP响应中不存在。TLS版本是SSL/TLS握手的一部分,无法通过HttpClient头获取。
包含错误的逻辑(例如client.GetAwaiter().GetResult(null)无意义并会抛出运行时错误)。
-
代码质量
QAT q4_0模型:
使用现代async/await模式进行非阻塞I/O。
将关注点分离到方法中(CheckTLSVersionAsync, CheckCipherSuiteAsync)。
包括健壮的错误处理和日志记录。
BF16模型:
使用阻塞同步代码(GetAwaiter().GetResult()),违反.NET最佳实践并可能导致死锁。
结构不佳(例如冗余的using块,不清楚的变量名如result)。
-
安全性相关性
QAT q4_0模型:
关注密码套件,这更接近量子抵抗的实际指标(例如AES-256-GCM)。虽然不是真正的量子安全,但这些比过时的算法更强。
提到需要根据NIST指南更新密码列表。
BF16模型:
误导性地声称检查“AES-256-CBC”(一种已弃用的密码模式)但从未实现。
完全未涉及密码套件,使检查无意义。
-
现实性
QAT q4_0模型:
承认量子安全检测的复杂性,并澄清基于HTTP的检查不足。这与现实世界安全实践一致。
BF16模型:
暗示检查TLS 1.3保证量子安全,这是错误的。TLS 1.3使用经典密码学,并非固有量子抵抗。
-
可用性
QAT q4_0模型:
提供清晰的控制台输出(例如“未检测到量子抵抗密码套件”)。
包括一个工作的Main方法和示例URL。
BF16模型:
由于语法错误(例如client.GetAwaiter().GetResult(null)无效)无法编译。
缺乏有意义的输出(例如未说明为什么网站被视为不安全)。
两个模型的关键缺陷
头误用:两个模型错误地假设TLS版本和密码套件在HTTP头中暴露(例如Sec-Cipher)。实际上,这些数据是SSL/TLS握手的一部分,需要低级检查(例如使用SslStream或BouncyCastle等库)。
量子安全误解:两个代码均未检查后量子算法(例如CRYSTALS-Kyber)。当前TLS 1.3密码套件不是量子安全的,因此两个模型提供假阳性。
最终结论
QAT q4_0模型的代码更优,因为它:
遵循更好的编码实践(async/await,错误处理)。
尝试更相关的安全分析(TLS + 密码套件)。
明确承认局限性。
然而,由于对TLS/SSL机制的根本误解,两个模型均未能解决原始问题。对于生产级解决方案,需要直接检查TLS握手(例如通过SslStream)并支持后量子算法。
总体困惑度差异较小(我的测试集也较小),运行Deepseek测试在后续运行中产生不同结果。因此我无法得出明确结论。但可以说值得进一步研究。