日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

HuggingFace又出炼丹神器!稀疏矩阵运算进入平民化时代!

發布時間:2024/7/5 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HuggingFace又出炼丹神器!稀疏矩阵运算进入平民化时代! 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文 | rumor醬

編 | YY


一提到模型加速,大家首先想到的就是蒸餾、(結構性)剪枝、量化(FP16),然而稀疏矩陣(sparse matrix)運算一直不被大家青睞。原因也很簡單,一是手邊沒有現成的代碼(懶),二是即使用了,速度也不一定有之前的稠密矩陣(dense matrix)快。

不過,框架的開發者們并沒有停下他們的腳步,就在不久前,HuggingFace開心地宣布,他們可以支持稀疏矩陣運算啦!75%的sparsity換來了1/4的內存和2倍的速度提升!

這個消息還是比較令人激動的,首先稀疏矩陣在存儲上省略了0值,另外在計算上,也沒必要計算和0值相關的結果。所以稀疏矩陣能顯著提升運算速度,并節約大量存儲空間。

不過老司機們的第一反應肯定是:效率不錯,但效果(精度)怎么樣?

普普通通……(注意上圖高亮的modest,感覺效果的確一般,否則就直接放結果了=。=)

Anyway,雖然精度有些美中不足,但單從速度上講已經很好了。技術的進步要一步步來,以HuggingFace的效率,之后應該還會有更多動作。

細心的同學們看到這里一定很疑惑,為啥壓縮了4倍,但只提升了2倍速呢?

在pytorch_block_sparse[1]的Github庫中,官方詳細解釋了這個問題:主要是當前使用的CUTLASS庫還不夠快

在繼續下文的討論前,先介紹些GPU編程的小知識:

  • CUDA(Compute Unified Device Architecture):Nvidia家的編程平臺,幫大家把C++等程序轉換為GPU指令。

  • BLAS(Basic Linear Algebra Subprograms):一個線性代數計算的API標準。

  • cuBLAS:用cuda實現的GPU BLAS計算庫。像我們所用的Pytorch、Tensorflow都是基于一系列的cuda庫開發的。只用于dense矩陣運算,已經配合GPU優化得很好了。這也就是為什么之前大家不在意稀疏矩陣,因為這樣就不能用cuBLAS了,同時還得加上更多的邏輯,可能還不如用cuBLAS直接運算dense要快。

  • CUTLASS:CUDA Templates for Linear Algebra Subroutines,一個CUDA C++ 模板集,用于在CUDA上實現更多樣的矩陣乘法計算(GEMM)。

HuggingFace為了實現稀疏矩陣,選取了CUTLASS庫,其本身在計算矩陣乘法時就比cuBLAS庫要慢上兩倍。所以即使理論上75%稀疏度應該加速4倍,最后測出來也只提升了2倍。

可見如果深入研究出定制化的稀疏矩陣運算庫,速度上可能還會有所提升。

對于想試用的同學,HuggingFace也一如既往地重視“拿來即用”的體驗,提供了兩種使用方法:

  • 自己寫網絡時,可以直接用BlockSparseLinear替換Linear層

  • # from torch.nn import Linear from pytorch_block_sparse import BlockSparseLinear# self.fc = nn.Linear(1024, 256) self.fc = BlockSparseLinear(1024, 256, density=0.1)
  • 想轉換別人已經寫完的網絡,可以直接轉整個模型??上Р荒茏詣愚D參數,需要重新訓練。

  • from pytorch_block_sparse import BlockSparseModelPatcher # Create a model patcher mp = BlockSparseModelPatcher()# Selecting some layers to sparsify. # This is the "artful" part, as some parts are more prone to be sparsified, other may impact model precision too much.# Match layers using regexp (we escape the ., just because, it's more correct, but it does not change anything here) # the [0-9]+ match any layer number. # We setup a density of 0.5 on these layers, you can test other layers / densities . mp.add_pattern("roberta\.encoder\.layer\.[0-9]+\.intermediate\.dense", {"density":0.5}) mp.add_pattern("roberta\.encoder\.layer\.[0-9]+\.output\.dense", {"density":0.5}) mp.add_pattern("roberta\.encoder\.layer\.[0-9]+\.attention\.output\.dense", {"density":0.5}) mp.patch_model(model)print(f"Final model parameters count={model.num_parameters()}")# => 68 million parameters instead of 84 million parameters (embeddings are taking a lof of space in Roberta)

    目前HuggingFace只邁出了一小步,后續CUTLASS還會繼續提升,作者也會復現更多的學術成果。除了他們之外,OpenAI在20年初也宣布要將Tensorflow的部分計算代碼移植到Pytorch,谷歌和斯坦福在6月的Paper Sparse GPU Kernels for Deep Learning[2] 也承諾會放出源碼,大家可以把稀疏矩陣的優化學習提上日程啦。


    文末福利
    后臺回復關鍵詞【入群
    加入賣萌屋NLP/IR/Rec與求職討論群
    有頂會審稿人、大廠研究員、知乎大V和妹紙
    等你來撩哦~

    參考文獻

    [1] pytorch_block_sparse:
    https://github.com/huggingface/pytorch_block_sparse
    [2] Sparse GPU Kernels for Deep Learning:
    https://arxiv.org/abs/2006.10901

    總結

    以上是生活随笔為你收集整理的HuggingFace又出炼丹神器!稀疏矩阵运算进入平民化时代!的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 国产精品视频在线观看免费 | jjzz黄色片 | 亚洲国产欧美在线人成 | 免费看日批 | www.777含羞草 | 国产无遮挡又黄又爽 | 91欧美视频| 91亚瑟视频 | 伊人久久狼人 | 国产精品va | 国产精品久久久久久久天堂 | 国产真实乱偷精品视频 | 黄色在线观看www | www狠狠| free黑人多人性派对hd | 91精品国产综合久久精品图片 | 日本一级黄色录像 | 66精品 | 亚洲国产日韩一区二区 | 免费看一区二区三区 | 911亚洲精品 | 激情婷| 欧美久久久久久久久久久 | 国产精品99精品久久免费 | 亚洲图片综合区 | 又污又黄的视频 | 91久久极品少妇xxxxⅹ软件 | 国产一区二区视频免费 | 欧美性另类 | av黄色免费网站 | 婷婷免费视频 | 夜夜se | 亚洲av成人一区二区国产精品 | 影音先锋中文字幕一区二区 | 97人人爽| 中文字幕视频免费观看 | 国产精品99久久 | www.视频一区| 精品一区二区三区视频在线观看 | 91在线免费看 | 一本一道av无码中文字幕 | 成年人性视频 | 亚洲成色在线 | 综合激情亚洲 | 亚洲精品一区二区三区新线路 | 国产淫语 | 东北少妇高潮抽搐 | 九九视频在线免费观看 | 亚洲一区二区久久 | 色悠久 | 久久久久久久久久久久国产精品 | 在线看黄色片 | 亚洲激情成人网 | 国内91视频 | 欧美高清视频一区二区 | 在线免费黄色网址 | 国产1区在线 | 国产情侣av自拍 | 天堂网ww| 久久香蕉精品视频 | 国产乱码一区二区三区 | 玩弄人妻少妇500系列 | 欧美 日韩 国产 在线 | 欧美青青草 | 欧美日本韩国一区二区三区 | 日韩在线专区 | 韩国伦理电影免费在线 | a爱视频| 午夜精品一区二区三区三上悠亚 | 一二三四av| 在线观看日韩一区 | 爱情岛论坛永久入址测速 | 免费看欧美片 | 兄弟兄弟全集免费观看 | 一区二区精 | 日韩视频欧美视频 | 国产一区二区三区在线免费 | 国产精品30p | 蜜桃视频在线网站 | 秋霞中文字幕 | 巨乳美女被爆操 | 秋霞网一区二区三区 | 在线婷婷| 伦av综合一区 | 欧美国产成人精品一区二区三区 | 国产夫妻视频 | 久久理伦| 伊人射| 国产精品一区二区三区高潮 | 欧美日韩网站 | 操操网站| 伊人三级 | 免费看的黄网站 | 日本国产精品视频 | 在线观看www. | 日韩欧美视频二区 | 男人添女人囗交视频 | 亚洲妇女无套内射精 | 国产欧美日韩专区发布 |