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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Amazon SageMaker和NVIDIA NGC加速AI和ML工作流

發布時間:2023/11/28 生活经验 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Amazon SageMaker和NVIDIA NGC加速AI和ML工作流 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Amazon SageMaker和NVIDIA NGC加速AI和ML工作流
從自動駕駛汽車到藥物發現,人工智能正成為主流,并迅速滲透到每個行業。但是,開發和部署AI應用程序是一項具有挑戰性的工作。該過程要求通過組合硬件,軟件和復雜的工作流程來構建可伸縮的基礎結構,這既耗時又容易出錯。為了加速端到端的AI工作流程,需要一個統一的平臺來使更快地投入生產。
本文演示了Amazon SageMaker和NVIDIA NGC之間的集成如何幫助數據科學家加速其AI工作流程,構建功能強大的應用程序以及收集實現業務目標所需的寶貴見解。
亞馬遜SageMaker
Amazon SageMaker是一項完全托管的服務,可為每個開發人員和數據科學家提供快速構建,訓練和部署機器學習模型的能力。Amazon SageMaker消除了機器學習過程中每個步驟的繁重工作,從而使開發高質量模型變得更加容易。

圖1.用于訓練和部署的Amazon SageMaker IDE。
NVIDIA GPU和NGC
GPU非常適合訓練和推理,但是還需要GPU優化的軟件來加快解決時間,這就是NVIDIA構建NGC的原因。選擇NGC的原因如下:
? 易用性-在建立模型和測試其功能時,Jupyter記事本電腦迅速成為數據科學家的首選工具。在Amazon SageMaker Jupyter會話中,可以使用一個簡單的pull命令直接從NGC部署容器和模型。
? 高性能的容器-在大規模部署應用程序時,容器幾乎是標準配置。容器使可以將應用程序,其庫和依賴項打包到可移植且隔離的環境中。這意味著可以在從PC到Amazon云實例的任何位置運行容器。NGC容器每月更新一次,并針對性能進行了微調。當從NGC部署最新版本的容器時,在cuDNN,cuBLAS,DALI和NCCL等庫和運行時中進行了性能改進,以從GPU中提取最大性能。

圖2.通過優化庫和運行時(例如cuDNN,cuBLAS,DALI和NCCL)來將框架的性能從一種版本提高到另一種版本。
? 加速的開發流程-NGC的預訓練模型可幫助跨各種應用程序(包括自然語言處理(NLP),圖像分析和推薦系統)使用100多種預訓練模型來加快應用程序構建過程。這些模型經過精心設計和調整,可以在NVIDIA GPU上實現最佳性能,以實現最佳性能。應用轉移學習,可以使用自己的數據集重新訓練這些模型并創建自己的自定義模型。如果希望從頭開始構建模型,使用NGC中的資源,提供了分步方法,根據NVIDIA工程師使用的最佳實踐來構建高度準確和高性能的模型。
? 面向企業的產品-除了性能以外,在生產環境中部署容器時,安全性也是至關重要的要求。NGC中發布的容器經過通用漏洞和暴露(CVE)的全面質量檢查流程,以確保是高度安全的,并且沒有任何缺陷和漏洞,使有最大的信心在基礎結構中部署。
NGC的例子
精心策劃了一些示例,涵蓋了整個工作負載和用例,從部署進行推理到部署容器以在Jupyter記事本中進行再訓練。本文引導完成使用NGC的內容充分利用Amazon SageMaker所需的所有步驟。使用記事本實例,可以使用GitHub輕松訪問七個示例。
對于列出的所有示例,從NGC部署容器或模型的一般過程都是相同的。在本文中,詳細介紹了第一個示例,向展示如何將NGC中的資產部署到Amazon SageMaker實例中。有關部署每個示例的更多信息,參閱Amazon SageMaker和NVIDIA GPU Cloud(NGC)示例。
在Jupyter記事本上訓練TensorFlow BERT-Large模型并部署到TensorRT
以下示例顯示了如何使用NGC的NVIDIA TensorRT容器部署TensorFlow BERT-Large模型。可以充分利用NGC的以下三項資產:
? TensorRT容器
? BERT模型(TensorFlow)
? NGC資源
設置
盡管Jupyter記事本提供了許多信息并提供了有關此示例如何工作的逐步指南,但值得注意的是,容器中還包含一個附加腳本,可以幫助完成繁重的工作。該entrypoint.sh腳本在首次構建或啟動容器時運行,并且將NGC模型和幫助程序腳本協調在一起以使API部署成為可能。該腳本執行以下操作:

  1. 從NGC下載預訓練的BERT模型。
  2. 下載幫助程序腳本。
  3. 微調BERT模型。
  4. 將經過微調的模型轉換為TensorRT引擎。
  5. 調用serve.py,定義并啟動用于為模型提供推理的端點。
    鼓勵更詳細地研究此文件,并了解如何針對用例進行修改。
    Jupyter記事本
    第一步是基于TensorRT構建自定義Docker容器,并將映像推送到Amazon Elastic Container Registry(Amazon ECR)。此步驟允許部署自定義映像以進行推斷。
    #構建映像并將其推送到ECR
    #build-and-push.sh接受一個arg:標記。在這里,使用0.1標記了映像,但可以隨時更改標記
    #有關映像的詳細信息,參見docker / Dockerfile.sagemaker.gpu
    !cd docker && bash build-和-push.sh 0.1
    接下來,導入與部署的模型和Amazon SageMaker配合使用所需的庫和工具:
    將numpy導入為np
    進口圣人作為圣人
    從sagemaker import get_execution_role
    然后,配置Amazon SageMaker會話,以便可以將TensorRT容器和BERT模型部署到NVIDIA GPU。確定實例類型,部署實例數以及存儲輸出的位置。在這種情況下,使用默認存儲桶。
    角色= get_execution_role()
    會話= sage.Session()
    TRAIN_INSTANCE_TYPE_ID =‘ml.p3.16xlarge’
    TRAIN_INSTANCE_COUNT = 1
    INFERENCE_INSTANCE_TYPE_ID =‘ml.p3.2xlarge’
    INFERENCE_INSTANCE_COUNT = 1
    OUTPUT_BUCKET =‘s3:// {bucket} /output’.format(bucket = session.default_bucket())
    配置好環境后,設置Estimators API以使用自定義的TensorRT容器并微調模型:
    帳戶= session.boto_session.client(‘sts’)。get_caller_identity()[‘Account’]
    地區= session.boto_session.region_name
    image_name =’{acct} .dkr.ecr。{region} .amazonaws.com / ngc-tf-bert-sagemaker-demo:0.1’.format(acct = account,region = region)

estimator = sage.estimator.Estimator(image_name = image_name,
角色=角色
train_instance_count = TRAIN_INSTANCE_COUNT,
train_instance_type = TRAIN_INSTANCE_TYPE_ID,
output_path = OUTPUT_BUCKET,
sagemaker_session =會話)

estimator.fit(輸入=無)
配置的最后一步是將自定義TensorRT容器,模型和腳本部署到Amazon SageMaker Estimator實例:
預測變量= estimator.deploy(initial_instance_count = INFERENCE_INSTANCE_COUNT,
instance_type = INFERENCE_INSTANCE_TYPE_ID)
然后,通過對自定義段落執行問答推斷來充分利用已部署的模型。可以看到提供一個新的上下文并提出不同的問題是多么容易。希望該示例能為提供思想的思路,并為應用程序注入AI提供網關。
從sagemaker.predictor導入json_serializer
從sagemaker.content_types導入CONTENT_TYPE_JSON
將numpy導入為np
short_paragraph_text =“阿波羅計劃是美國第三個人類太空飛行計劃。最初被設想為跟隨單人水星計劃的三人飛船,這使第一批美國人進入太空,阿波羅致力于約翰·F·肯尼迪總統的國家目標“是在月球上著陸一個人。阿波羅號首次載人飛行是在1968年。阿波羅號于1961年至1972年運行,隨后是阿波羅-聯盟號試驗項目,于1975年與蘇聯聯合進行了地球軌道飛行任務。”
question_text =“哪個項目使第一個美國人進入太空?”
qa_test_sample = {‘short_paragraph_text’:short_paragraph_text,‘question_text’:question_text}
Forecastor.content_type = CONTENT_TYPE_JSON
dictor.serializer = json_serializer
預報器。預報(qa_test_sample)。解碼(“ utf-8”)
證明!如所見,已部署的API知道月球著陸(或提供的任何其上下文)的全部信息:
“答案:“水星計劃”,概率:73.069%,每秒100.112句。”
使用NGC PyTorch容器微調BERT模型。
在此示例中,將使用NGC上可用的BERT PyTorch容器,并將其部署在Amazon SageMaker上。首先從NGC獲取現有容器和模型,在Amazon SageMaker中構建映像,然后將該映像推送到Amazon ECR。Amazon SageMaker廣泛使用Docker容器。通過構建容器映像,可以指定此映像以用于模型訓練或部署。
構建訓練圖像后,采用預訓練的PyTorch BERT模型,并通過旋轉一個在訓練工作期間生成的訓練實例并使用指定的超參數執行訓練代碼,從Amazon SageMaker記事本啟動訓練任務。此設置允許使用較小的實例進行探索性數據分析以節省成本,然后使用更多的重型實例進行訓練。
訓練代碼使用帶有Apex(PyTorch擴展)的GPU優化的PyTorch(自動混合精度訓練庫)微調BERT模型,以在SQuAD數據集上回答問題。Amazon SageMaker使使用多GPU實例輕松啟動此容器以進行分布式訓練。
訓練完成后,獲取保存到Amazon S3的模型權重,然后將經過微調的模型部署到Amazon SageMaker端點進行推理。最后,可以創建自己的服務容器,但是Amazon SageMaker使得使用專門的預先構建的服務容器輕松構建端點。現在,可以從部署在云中的模型中獲取實時問題解答!
在PyTorch中使用NGC預訓練的BERT-Large模型進行問題解答
通過將深度學習技術集成到應用程序中,可以采用NGC的任何模型并構建用于推理的API。使用NGC獲取模型,wget并將其加載到在Amazon SageMaker上運行的Jupyter記事本實例中。然后,將模型打包為Amazon SageMaker推理API所需的格式并進行部署。完成后,將擁有一個可用于自己的問答系統的API。
在Amazon SageMaker上為PyTorch部署NGC SSD模型
如果想探索物體檢測或圖像分類,那么本示例將使快速入門。首先從NGC抓取PyTorch的Single Shot Detector(SSD)模型,然后將其打包為Amazon SageMaker所需的tarball格式。

圖3. NGC目錄頁面中的PyTorch SSD。
接下來,使用示例transform_script.py文件,該文件配置Amazon SageMaker終端節點,以便了解如何執行以下任務:
? 加載模型,是基于ResNet50主干的SSD300對象檢測器
? 處理輸入數據
? 根據模型進行預測
然后,使用Amazon SageMaker內置的PyTorchModel函數將模型部署到NVIDIA GPU實例終端節點以進行推理。最后,提供一些示例圖像,并從API獲取預測。有關SSD如何工作或NGC模型的更多信息,參閱適用于PyTorch的SSD v1.1。
從NGC到Neo編譯PyTorch模型并部署在Amazon SageMaker Neo上
在此示例中,從NGC取得了經過預訓練的ResNet50模型(通用圖像分類架構),并將其與Amazon SageMaker Neo一起部署。首先從NGC下載模型文件和資源,并將加載到記事本實例本地的\ NGC_assets目錄中。然后,根據image_classification_resnet從NGC下載的Python腳本,從NGC構建ResNet50模型。此步驟從NGC下載預訓練的權重,然后將重建的模型保存到可以與Neo一起使用的PyTorch文件中。將模型和權重存儲并打包到.tar文件中后,可以調用Neo編譯API。使用此API,可以配置以下內容:
? 目標模型(ResNet50)
? 模型框架(PyTorch)
? 在哪里存儲編譯后的模型(在本例中為S3)
? 任何超時或最大推理運行時間
最后一步是創建可與應用程序一起使用的預測端點API。為此,必須創建兩個函數:
? Neo_preprocess—此函數捕獲傳入的求,確定的內容類型和數據本身,并將其轉換為可由模型API解釋的numpy數組。
? Neo_postprocess—當模型和API進行分類后,此函數將執行以獲取預測結果并返回響應主體,即分類類別的文本值。
最后,可以根據上述配置,模型和功能配置端點,使用cat圖像測試API,并檢索最可能的類。希望是“貓”。
在Amazon SageMaker上使用NGC TensorFlow容器
在此示例中,向展示如何使用Python示例將NGC中的自定義TensorFlow容器打包,該示例與CIFAR-10數據集一起使用,并使用TensorFlow Serving進行推理。但是,可以通過修改Docker容器使用TensorFlow Serving以外的推理解決方案。
在此示例中,使用單個圖像來支持訓練和托管。因為只為兩個任務管理一個映像,所以這簡化了過程。有時可能需要單獨的圖像進行訓練和托管,因為有不同的要求。在這種情況下,將討論的部分分成單獨的Dockerfile,并構建兩個映像。選擇使用單個圖像還是使用兩個圖像是最方便開發和管理的問題。
在Amazon SageMaker上為TensorFlow部署NGC模型
在這里,正在處理圖像。如果想探索物體檢測或圖像分類,那么這將使快速入門。首先從NGC抓取經過預訓練的模型,然后將其打包為Amazon SageMaker所需的tarball格式。
接下來,創建一個Amazon SageMaker推理會話,并指定授予服務訪問S3中存儲的模型所需的IAM角色。配置了執行上下文后,可以使用Amazon SageMaker內置的TensorFlow服務模型功能部署模型,以將模型部署到GPU實例,可以在其中使用該模型進行推理。最后,提供一些示例圖像,并從API獲取預測。
NGC示例入門
Amazon SageMaker和NGC之間的集成為數據科學家和開發人員提供了理想的平臺:Amazon SageMaker用于開發和部署AI / ML應用程序,并可以從NGC輕松訪問企業級AI軟件。
NGC示例入門非常簡單。以下視頻顯示了如何將GitHub上可用的NGC示例鏈接到Amazon SageMaker實例,或者如何直接導航到NGC頁面。

視頻。將NGC示例加載到Amazon SageMaker實例的分步過程。

總結

以上是生活随笔為你收集整理的Amazon SageMaker和NVIDIA NGC加速AI和ML工作流的全部內容,希望文章能夠幫你解決所遇到的問題。

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