当前位置:网站首页 > Haskell函数式编程 > 正文

conv1d函数(convhull函数)



为了方便理解NF4算法的实现,这里用PyTorch实现了一版可以和CUDA NF4精度对齐的量化和反量化函数,并使用llama-3.1-8b模型进行测试,可以做到和CUDA实现的算子精度基本对齐(仅反量化存在少许误差),并对模型输出进行测试,64个tokens和CUDA实现完全一致。

以下都只是在RTX3090上对llama-3.1-8b上进行测试的结果,不能代表全部的设备和模型。

CUDA上使用函数使用类型的与类型的NF4表的中间值进行比较,从而得到表中距离的最近元素的索引。

 

因此在实现时也需要注意和的类型都需要是,经过在实际的llama3权重数据上测试:

  • 量化函数PyTorch实现可以和CUDA实现精度对齐,无精度误差;
  • 反量化函数平均绝对误差大约在,不影响模型输出。
 

在bitsandbytes中使用这两个函数对CUDA实现进行替换,可以达到模型输出64个tokens完全一致的效果:

<|begin_of_text|>Once upon a time, 20 years ago, I was a young, idealistic, and naive college student. I was also a young, idealistic, and naive college student who was a member of the Young Republicans Club. I was also a young, idealistic, and naive college student who was a member of the Young Republicans Club who was

不过PyTorch的实现存在一定的性能损失,8B模型的量化过程从CUDA实现的3s增加到PyTorch实现的10s;使用PyTorch实现的版本输出64 tokens需要28.012s(仅受反量化函数性能影响),而CUDA实现仅需3.65512s。

精度对比脚本:

到此这篇conv1d函数(convhull函数)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!
                            

版权声明


相关文章:

  • bigboss源官网联系方式(bigboss源可以删掉吗)2025-01-20 07:45:08
  • max开窗函数(max窗户)2025-01-20 07:45:08
  • 打开目录的函数是什么意思(打开目录的函数是什么意思呀)2025-01-20 07:45:08
  • 支付方式英文(支付方式英文有哪些)2025-01-20 07:45:08
  • sigmoid导函数图像(sigmoid函数导数图像)2025-01-20 07:45:08
  • a标签打开文件(a标签打开方式)2025-01-20 07:45:08
  • ceph容量损耗(ceph容量损耗计算公式)2025-01-20 07:45:08
  • sigmoid函数和tanh函数(tanh函数和sigmoid关系)2025-01-20 07:45:08
  • 工资支付方式有哪些(工资支付主要包括哪些内容)2025-01-20 07:45:08
  • 编程入门基础知识视频(编程入门基础知识视频教程)2025-01-20 07:45:08
  • 全屏图片