在Cloudflare的Web应用程序防火墙(WAF)上构建的机器学习(ML)层中,WAF攻击评分的流行性推动了性能改进的需求。该特性的目标是补充WAF,检测以前未遇到的攻击旁路,捕捉零日漏洞,并提高客户对新兴和未知威胁的保护。
为了优化WAF ML模型的性能,采取了多个步骤。首先,在预处理阶段使用Aho-Corasick DFA代替哈希映射查找,减少了延迟47.84%到1.64x。然后,使用基于匹配的方法,进一步减少了延迟53.45%到2.15x。接下来,开发了一种新的字母替换实现,双倍了预处理速度,使其比原始版本快四到五倍。
其次,实现了无分支ngram查找,减少了延迟91.33%到11.54x。这是通过预计算偏移查找表并使用它们来代替比较操作以直接访问内存,从而大大加快速度和避免分支操作。
最后,对模型推理进行了优化,启用了SIMD矩阵乘法并使用XNNPack,减少了延迟77.17%到4.38x。此外,还实现了LRU缓存,以跳过冗余执行并进一步减少延迟。总之,这些优化将WAF ML执行时间减少约81.90%,从1519微秒到275微秒,即5.5x更快。
blog.cloudflare.com
Making WAF ML models go brrr: saving decades of processing time
Create attached notes ...