前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在Jetson上玩转大模型Day9:建立EffectiveViT测试环境

在Jetson上玩转大模型Day9:建立EffectiveViT测试环境

作者头像
GPUS Lady
发布2024-11-04 10:38:04
260
发布2024-11-04 10:38:04
举报
文章被收录于专栏:GPUS开发者

雖然DCNN深度卷積神經網絡在2010年代爲視覺AI技術開創新格局,但實用性受到很大的限制。後來受到NLP在Transformer技術的突破,對視覺技術產生非常大的衝擊,於是Google在2021年提出的ViT(Vision Transform)技術,對機器視覺上的圖片分類、物體檢測、語義分割等應用,產生非常大的變化,不僅在效能上有所突破,並且爲視覺與大語言模型相結合的多模態技術,開創新的格局。

網上已經有很多關於ViT算法的專業內容,有興趣的讀者請自行搜索閱讀。本文章的重點,在於爲大家提供一個快速搭建測試不同ViT模型的實驗環境,因此需要尋找合適的模型來進行示範,爲此我們找到非常適合在邊緣AI設備上部署的EfficientViT模型。

這個模型是ViT模型家族中非常突出的成員,由MIT的HanLab所創作,用于高效的高分辨率密集预测视觉任务,其核心构建块是一个轻量级的多尺度线性注意力模块,仅需硬件高效操作即可实现全局感受野和多尺度学习,非常适合於GPU部署。

這個實驗室專注在發展“微型機器學習工程(Tiny Machine Learning Projects)”,成員名單從姓名上分析,應該是以華人爲主力(https://hanlab.mit.edu/team),而大部分的項目名稱使用“Efficient”作爲開頭,例如Efficient LLM quantization、Efficient ML systems、Efficient CNN algorithm-system co-designs等等

實驗室在https://github.com/mit-han-lab/efficientvit開源了調用這個模型的源碼,雖然在“Getting Started”所列的安裝步驟只有以下4步:

$ conda create -n efficientvit python=3.10

$ conda activate efficientvit

$ conda install -c conda-forge mpi4py openmpi

$ pip install -r requirements.txt

看起來似乎很簡單,但實際執行過程中卻是難度很大,特別是這個以Python爲主的各種依賴庫的版本變動太過頻繁,而requirements.txt所包含的依賴庫超過20個,如下所列:

torch==2.0.1

torchvision==0.15.2

einops

opencv-python

timm==0.6.13

tqdm

torchprofile

matplotlib

git+https://github.com/zhijian-liu/torchpack.git@3a5a9f7ac665444e1eb45942ee3f8fc7ffbd84e5

transformers

onnx

onnxsim

onnxruntime

git+https://github.com/alibaba/TinyNeuralNetwork.git

git+https://github.com/facebookresearch/segment-anything.git

pycocotools

lvis

# demo-specific packages

gradio

gradio-clickable-arrow-dropdown

gradio-box-promptable-image

gradio-point-promptable-image

gradio-sbmp-promptable-image

一開始的torch就牽涉到是否支持CUDA的問題,對應執行效率有很大影響。其次,20多個Python依賴庫之間的版本依存關係,會隨着版本變動頻率與時間的延伸,降低安裝成功的機率。第三,裏面還有三個依賴於其他Github repo代碼的安裝,同樣會增強整個安裝過程的不確定性。

事實上,根據我們實際的操作,很難一次就完成EfficientViT模型的執行環境,這並不是如項目所指示地那麼容易。

好在Jetson AI Lab同樣爲我們打包好一組專門執行EfficientViT模型的鏡像文件,我們依舊只要執行以下非常簡單的指令,就能進行操作:

jetson-containers run (autotag efficientvit)

现在我们进入的项目里面的/opt/efficentvit目录中,但是用ls -l 指令检查一下里面的文件版本,发现全部都是 2024年1月份的版本,应该是比较老旧的内容,当然也都是可以执行应用。

如果我们想要执行EfficoentViT最新版本的应用时,只需要将最新的项目内容下载到本机里面,然后在 docker 执行时用 -v 去映射路径,这样就可以使用最新版本的代码去测试EfficientViT的各项应用。参考的指令如下:

$ git clone https://github.com/mit-han-lab/efficientvit

jetson-containers run -v ~/efficientvit:/opt/efficientvit (autotag efficientvit)

現在就可以使用最新版本的代碼內容,對不同版本 EfficientViT模型進行各種不同的測試,甚至訓練自己的ViT模型。目前項目提供三大類應用,我們可以到 https://github.com/mit-han-lab/efficientvit/tree/master/applications 看到cls.md、sam.md與seg.md三個基礎AI視覺應用說明:

每個應用說明中,對進行實驗都提供非常完整的相關內容,包括:

  • 參考數據集,含下載鏈接;
  • 預訓練模型,含參數與下載鏈接的列表(如下图);
  • 執行調用的範例代碼;
  • 各種評估性能的範例指令;
  • 視覺化處理的示範指令;
  • 部署指令:包括使用ONNX與TensorRT的示範指令
  • 訓練模型的示範指令
  • 其他

所有執行內容請詳細參考applications裏 *.md 的操作說明,對於實驗用途的人來說,這些操作內容是非常豐富並且足夠的。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-11-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 GPUS开发者 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档