精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

得物AI平臺-KubeAI推理訓練引擎設計和實踐

人工智能
KubeAI平臺從得物AI業務場景的實際需求出發,以三大核心引擎為建設目標,著力解決AI模型研發過程中的訓練、推理性能問題,以及模型版本迭代過程中的效率問題。

1、KubeAI介紹

KubeAI是得物AI平臺,是我們在容器化過程中,逐步收集和挖掘公司各業務域在AI模型研究和生產迭代過程中的需求,逐步建設而成的一個云原生AI平臺。KubeAI以模型為主線提供了從模型開發,到模型訓練,再到推理(模型)服務管理,以及模型版本持續迭代的整個生命周期內的解決方案。

在數據方面,KubeAI提供基于cvat的標注工具,與數據處理及模型訓練流程打通,助力線上模型快速迭代;提供任務/Pipeline編排功能,對接ODPS/NAS/CPFS/OSS數據源,為用戶提供一站式AI工作站。平臺自研推理引擎助力業務在提高模型服務性能的同時還能控制成本;自研訓練引擎提高了模型訓練任務吞吐量,縮短了模型的訓練時長,幫助模型開發者加速模型迭代。

此外,隨著AIGC的火熱發展,我們經過調研公司內部AI輔助生產相關需求,上線了AI制圖功能,為得物海報、營銷活動、設計師團隊等業務場景提供了基礎能力和通用AI制圖能力。

圖片

此前,我們通過一文讀懂得物云原生AI平臺-KubeAI的落地實踐過程一文,向大家介紹了KubeAI的建設和在業務中的落地過程。本文,我們將重點介紹下KubeAI平臺在推理、訓練和模型迭代過程中的核心引擎能力實踐經驗。

2、AI推理引擎設計實現

2.1 推理服務現狀及性能瓶頸分析

Python語言以其靈活輕盈的特點,以及其在神經網絡訓練與推理領域提供了豐富的庫支持,在模型研究和開發領域被廣泛使用,所以模型推理服務也主要以Python GPU推理為主。模型推理過程一般涉及預處理、模型推理、后處理過程,單體進程的方式下CPU前/后處理過程,與GPU推理過程需要串行,或者假并行的方式進行工作,大致流程如下圖所示:

圖片

上述架構的優勢是代碼寫起來比較通俗易懂,但在性能上有很大的弊端,所能承載的QPS比較低。通過在CV域的模型上進行壓測,我們發現推理QPS很難達到5,深入分析發現造成這一問題的原因如下:

(1)單線程模式下,CPU邏輯與GPU邏輯相互等待,GPU Kernel函數調度不足,導致GPU使用率不高,無法充分提升服務QPS。這種情況下只能開啟更多進程來提升QPS,但是更多進程會帶來更大的GPU顯存開銷。

(2)多線程模式下,由于Python的GIL鎖的原因,Python的多線程實際上是偽的多線程,并不是真正的并發執行,而是多個線程通過爭搶GIL鎖來執行,這種情況下GPU Kernel Launch線程不能得到充分的調度。此外,在Python推理服務中開啟多線程反而會導致GPU Kernel Launch線程頻繁被CPU的線程打斷,所以GPU算力也會一直“萎靡不振”,持續低下。

以上問題使得 如果推理服務想要支撐更多的流量,只能做橫向的增加服務實例數,伴隨著成本的上漲。

2.2 自研推理服務統一框架kubeai-inference-framework

針對以上問題,KubeAI的解決方案是把CPU邏輯與GPU邏輯分離在兩個不同的進程中:CPU進程主要負責圖片的前處理與后處理,GPU進程則主要負責執行CUDA Kernel 函數,即模型推理。

為了方便模型開發者更快速地接入我們的優化方案,我們基于Python開發了一個CPU與GPU進程分離的統一框架kubeai-inference-framework,舊有Flask或Kserve的服務,稍作修改即可接入推理引擎統一框架,新增服務按照框架實現指定function即可。推理服務統一框架構如下圖所示:

圖片

如前所述,推理服務統一框架的主要思路是把GPU邏輯與CPU邏輯分離到兩個進程,除此之外,還會拉起一個Proxy進程做路由轉發。

CPU進程

CPU進程主要負責推理服務中的CPU相關邏輯,包括前處理與后處理。前處理一般為圖片解碼,圖片轉換,后處理一般為推理結果判定等邏輯。CPU進程在前處理結束后,會調用GPU進程進行推理,然后繼續進行后處理相關邏輯。CPU進程與GPU進程通過共享內存或網絡進行通信,共享內存可以減少圖片的網絡傳輸。

GPU進程

GPU進程主要負責運行GPU推理相關的邏輯,它啟動的時候會加載很多模型到顯存,然后在收到CPU進程的推理請求后,直接觸發Kernel Lanuch調用模型進行推理。

kubeai-inference-framework框架中對模型開發者提供了一個Model類接口,他們不需要關心后面的調用邏輯,只需要填充其中的前處理,后處理的業務邏輯,就可以快速上線模型服務,自動拉起這些進程。

Proxy進程

Proxy進程是推理服務入口,對外提供調用接口,負責路由分發與健康檢查。當Proxy進程收到請求后,會輪詢調用CPU進程,分發請求給CPU進程進行處理。

自研的推理服務統一框架,把CPU邏輯(圖片解碼,圖片后處理等)與GPU邏輯(模型推理)分離到兩個不同的進程中后,有效解決了Python GIL鎖帶來的GPU Kernel Launch調度問題,提升了GPU利用率,提高了推理服務性能。針對線上的某個推理服務,使用我們的框架進行了CPU與GPU進程分離,壓測得出的數據如下表所示,可以看到QPS提升了近7倍。

推理服務框架類型

QPS

耗時(s)

GPU算力使用率(%)

傳統多線程架構

4.5

1.05

2.0

自研推理服務框架(6個CPU進程+1個GPU進程)

27.43

0.437

12.0

2.3 做的更好 — 引入TensorRT優化加速

在支持推理服務接入kubeai-inference-framework統一框架的過程中,我們繼續嘗試在模型本身做優化提升。經過調研和驗證,我們將現有pth格式模型通過轉成TensorRT格式,并開啟FP16,在推理階段取得了更好的QPS提升,最高可到10倍提升。

TensorRT是由英偉達公司推出的一款用于高性能深度學習模型推理的軟件開發工具包,可以把經過優化后的深度學習模型構建成推理服務部署在實際的生產環境中,并提供基于硬件級別的推理引擎性能優化。業內最常用的TensorRT優化流程,是把pytorch / tensorflow等模型先轉成onnx格式,然后再將onnx格式轉成TensorRT(trt)格式進行優化,如下圖所示:

圖片

TensorRT所做的工作主要在兩個時期,一個是網絡構建期,另外一個是模型運行期。

  • 網絡構建期
  1. 模型解析與建立,加載onnx網絡模型。
  2. 計算圖優化,包括橫向算子融合,或縱向算子融合等。
  3. 節點消除,去除無用的節點。
  4. 多精度支持,支持FP32/FP16/int8等精度。
  5. 基于特定硬件的相關優化。
  • 模型運行期
  1. 序列化,加載RensorRT模型文件。
  2. 提供運行時的環境,包括對象生命周期管理,內存顯存管理等

為了更好地幫助模型開發者使用TensorRT優化,KubeAI平臺提供了kubeai-trt-helper工具,用戶可以使用該工具把模型轉成TensorRT格式,如果在模型轉換的過程中出現精度丟失等問題,也可以使用該工具進行問題定位與解決。kubeai-trt-helper主要在兩個階段為用戶提供幫助:一個是問題定位,另一個階段是模型轉換。

問題定位

問題定位階段主要是為了解決模型轉TensorRT開啟FP16模式時出現的精度丟失問題。一般分類模型,對精度的要求不是極致的情況下,盡量開啟FP16,FP16模式下,NVIDIA對于FP16有專門的Tensor Cores可以進行矩陣運算,相比FP32來說吞吐量提升一倍以上。比如在轉TensorRT時,開啟FP16出現了精度丟失問題,kubeai-trt-helper工具在問題定位階段的大致工作流程如下:

圖片

第1步:設定模型轉換精度要求后,標記所有算子為輸出,然后對比所有算子的輸出精度。

第2步:找到最早的不符合精度要求的算子,對該算子進行如下幾種方式干預。

  • 標記該算子為FP32。
  • 標記其父類算子為FP32。
  • 更改該算子的優化策略。

循環通過以上2個步驟,最終找到符合目標精度要求的模型參數。這些參數比如:需要額外開啟FP32的那些算子等。相關參數會輸出到配置文件中,如下:

配置項

釋義

FP32_LAYERS_FOR_FP16

開啟FP16模式下,哪些算子需要額外開啟FP32

TRT_EXCLUDE_TACTIC

TensorRT算子需要忽略的tactic策略(tactic可參考TensorRT相關資料)

atol

相對誤差

rtol

絕對誤差

check-error-stat

誤差的計算方法包括:mean, median, max

模型轉換

模型轉換階段則直接使用上面問題定位階段得到的參數,調用TensorRT相關接口與工具進行轉換。此外,我們在模型轉換階段,針對TensorRT原有參數與API過于復雜的問題也做了一些封裝,提供了更為簡潔的接口,比如工具可以自動解析onnx,判斷模型的輸入與輸出shape,不需要用戶再提供相關shape信息等。

2.4 落地實踐成果

在實際應用中,我們幫助算法域的模型開發同學,能夠對一個推理基于自研推理服務統一框架進行實現的同時,也開啟TensorRT優化,這樣往往可以得到QPS兩次優化的疊加效果。

2.4.1 分類模型,CPU與GPU分離,TensorRT優化,并開啟FP16,得到10倍QPS提升

線上某個基于Resnet的分類模型,對精度損失可以接受誤差在0.001(誤差定義:median,atol,rtol)范圍內。因此我們對該推理服務進行了3項性能優化:

  1. 使用kubeai-inference-framework統一框架,對CPU進程和GPU進程進行分離改造。
  2. 對模型轉ONNX后,轉TensorRT。
  3. 開啟FP16模式,并使用自研工具定位到中間出現精度損失的算子,把這些算子標記為FP32。

經過以上優化,最終得到了10倍QPS的提升(與原來Pytorch直接推理比較),服務成本大幅削減。

2.4.2 檢測模型,CPU與GPU分離,TensorRT模型優化,QPS提升4-5倍左右。

線上某個基于Yolo的檢查模型,由于對精度要求比較高,所以不能開啟FP16,我們直接在FP32的模式下進行了TensorRT優化,并使用kubeai-inference-framework統一框架對GPU進程與CPU進程分離,最終得到QPS 4-5倍的提升。

2.4.3 模型推理進程多實例化,充分利用GPU算力資源

在實際的場景中,往往GPU的算力是充足的,而GPU顯存是不夠的。經過TensorRT優化后,模型運行時需要的顯存大小一般會降低到原來的1/3到1/2。所以為了充分利用GPU算力,kubeai-inference-framework統一框架進一步優化,支持可以把GPU進程在一個容器內復制多份,這種架構即保證了CPU可以提供充足的請求給GPU,也保證了GPU算力充分利用。

線上某個模型,經過TensorRT優化后,顯存由原來的2.4G降低到只需要1.2G。在保持推理服務配置5G顯存不變的情況下,我們將GPU進程為復制4份,充分利用了5G顯存,使得服務吞吐達到了原來的4倍。

3、AI訓練引擎優化實踐

3.1 PyTorch框架概況

PyTorch是近年來較為火爆的深度學習框架,幾乎占據了CV(Computer Vision,計算機視覺)、NLP(Natural Language Processing,自然語言處理)領域各業務方向,算法同學基本都在使用PyTorch框架來進行模型訓練。下圖是基于PyTorch框架進行模型訓練時的代碼基本流程:

圖片

第1步:從pytorch dataloader中將本step訓練過程中需要的數據拉出來。

第2步:將獲取到的數據,例如:樣本圖片、樣本標簽的tensor等數據,復制到GPU顯存里。

第3步:開始正式的模型訓練:前向計算、計算損失、計算梯度、 更新參數。

整個訓練過程的耗時,也主要分布在上面3個步驟。通常第2步不會是瓶頸,因為大部分訓練樣本圖片都是被resize變小之后才從內存拷貝到到GPU顯存上的。但由于模型的差異性、訓練數據的差異性,經常是第1、2步會在訓練過程中出現性能瓶頸,導致訓練耗時長,GPU利用率低下,影響模型迭代效率。

3.2 Dataloader瓶頸分析及優化

3.2.1 PyTorch Dataset/Dataloader分析

PyTorch訓練讀取數據部分主要是通過Dataset、Dataloader的方式完成的,其中Dataset為用戶自定義讀取數據的類(繼承自 torch.utils.data.Dataset),而Dataloader是PyTorch實現的在訓練過程中對Dataset的調度器。

torch.utils.data.dataloader
torch.utils.data.Dataset


train_loader = torch.utils.data.DataLoader( MyDataset, 
                      batch_size=16, 
                      num_workers=4, 
                      shuffle=True, 
                      drop_last=True,
                      pin_memory=False)


val_loader = torch.utils.data.DataLoader(MyDataset, 
                     batch_size=batch_size, 
                     num_workers=4, 
                     shuffle=False)

參數解釋如下:

  • dataset(Dataset):傳入的自定義Dataset(數據讀取的具體步驟)。
  • batch_size(int, optional):每個batch有多少個樣本,每個iter可以從dataloader中取出多少數據。
  • shuffle(bool, optional):在每個epoch開始的時候,對數據進行重新排序,可以使每個epoch讀取數據的組合和順序不同。
  • num_workers (int, optional):這個參數決定dataloader啟動幾個后臺進程來做數據拉取。0意味著所有的數據都會被load進主進程,默認為0。
  • collate_fn (callable, optional):將一個list的sample組成一個mini-batch的函數,一般CV場景是concat函數。
  • pin_memory (bool, optional):如果設置為True,那么data loader將會在返回batch之前,將tensors拷貝到CUDA中的固定內存(CUDA pinned memory)中, 這個參數某些場景下有妙用。
  • drop_last (bool, optional):該參數是對最后的未完成的batch來說的,比如batch_size設置為64,而一個epoch只有100個樣本,如果設置為True,那么訓練的時候后面的36個就被扔掉了,否則會繼續正常執行,只是最后的batch_size會小一點。默認設置為False。

上述參數中,比較重要的是num_workers,Dataloader在構造的時候,會啟動num_workers個worker進程,然后主進程會向worker進程分發讀取任務,worker進程讀到數據之后,再把數據放到隊列中供主進程取用。多進程模式使用的是torch.multiprocessing接口,可以實現worker進程與主進程之間共享內存,而且共享內存中可以存放tensor,這樣進程中如果返回tensor,可以通過共享內存的方式直接將結果返回給主進程,減少多進程間的通訊開銷。

當num_workers 為0 的時候: get_data()流程與train_model()過程是串行,效率非常低下,如下圖所示:

圖片

當num_workers 大于0開啟多進程讀取數據, 并且讀取一個batch數據的時間小于一個step訓練的時間時效率最高,GPU算力被充分利用,如下圖所示:

圖片

當num_workers 大于0開啟多進程度數據, 但是讀取一個batch數據的時間大于一個step訓練的時間時,會出現GPU訓練過程等待數據拉取,就會出現GPU算力空閑,訓練耗時增加,如下圖所示:

圖片

由此可見Dateset中的__getitem__函數非常重要,詳細分析它的源碼實現后我們發現,該函數的耗時主要包含2段時間:

  • load_image_time:從磁盤或者遠程盤上讀取數據的耗時。
  • transform_image_time:將圖片或文本數據進行預處理的耗時。

3.2.2 解問題 — 設置合理的參數很重要

通過上一小節的分析,訓練時相關參數的選擇至關重要??偨Y如下:

  • batch_size:根據數據量,以及期望訓練時長,用戶合理自定義設置
  • 訓練環境(KubeAI Notebook/任務/流水線節點)的CPU配置:建議CPU配置為 GPU卡數*(單GPU卡配置的CPU核數)。
  • num_workers:參數最小設置為 訓練環境的CPU配置-1,比如:任務配置為12C時,建議該參數設置為11 。另外,num_workers數值可以適當調大,因為dataset iter中有部分時間是在網絡或者磁盤IO, 這部分不消耗CPU;但是也不能設置太大,因為數據預處理部分是CPU密集型任務,并行進程過多,會造成CPU爭搶從而降低預處理效率。
優化案例一

線上一個基于MMDetection框架(其底層也是調用PyTorch框架)的CV模型訓練任務,在做參數調整之前,單個step耗時不穩定,平均在1.12s左右,其中拉取數據時長在0.3s左右:

mmengine - INFO - Epoch(train) [2][3050/6005]  time: 1.1128  data_time: 0.1032  
mmengine - INFO - Epoch(train) [2][3100/6005]  time: 1.0193  data_time: 0.0055  
mmengine - INFO - Epoch(train) [2][3150/6005]  time: 1.0928  data_time: 0.3230  
mmengine - INFO - Epoch(train) [2][3200/6005]  time: 0.9927  data_time: 0.2304  
mmengine - INFO - Epoch(train) [2][3250/6005]  time: 1.3224  data_time: 0.5135  
mmengine - INFO - Epoch(train) [2][3300/6005]  time: 1.1044  data_time: 0.3427  
mmengine - INFO - Epoch(train) [2][3350/6005]  time: 1.0574  data_time: 0.2842

調整參數之后,單個step耗時穩定,平均在0.78 s左右,其中拉取數據耗時0.004s,基本可以忽略。

mmengine - INFO - Epoch(train) [1][100/5592]  time: 0.8508  data_time: 0.0049  
mmengine - INFO - Epoch(train) [1][150/5592]  time: 0.7743  data_time: 0.0043  
mmengine - INFO - Epoch(train) [1][200/5592]  time: 0.7736  data_time: 0.0044  
mmengine - INFO - Epoch(train) [1][250/5592]  time: 0.7880  data_time: 0.0044  
mmengine - INFO - Epoch(train) [1][300/5592]  time: 0.7761  data_time: 0.0045

該模型訓練任務,通過上述優化調整,數據拉取時間縮短為0,單個step的耗時從原來的1.12s降到0.78s,整體訓練時間減少30%(從2天縮短到33小時),效果顯著。

優化案例二

線上某個多模態模型(輸入包含圖片和文字)訓練任務,使用2卡V100訓練,參數調整如下:

batch_size=32
CPU = 12  ---> 調整為 24
num-workers = 4  ---> 調整為 11

調整后訓練300 step總消耗時405s,整體訓練時間減少45%左右(從10天縮短到5天左右)。

優化案例三

線上某YoloX模型訓練任務,使用單卡A100訓練,參數調整如下:

batch size :48  
num-workers = 4 ---> 調整為 16

調整后整體訓練時長減少80%左右(從10天19小時,縮短至1天16小時)。

3.2.3 數據拉取IO瓶頸分析

當前,KubeAI平臺為訓練場景提供3種存儲介質:

  • 本地盤:空間小,讀寫性能最好,單盤500G~3T空間可用。
  • NAS網絡存儲:空間大,讀寫性能較差,成本適中。
  • CPFS并行文件系統存儲:空間大,讀寫性能好,成本高。

對于小數據集,可以先將數據一次性拉取到本地盤,然后每個epoch從本地盤來讀數據,這樣避免了每一個epoch重復的從遠程NAS來拉取數據,相當于整個訓練只需要從遠程NAS拉取一次數據。對于大數據集,有2種解決方案:

  • 將大數據集提前進行resize,存儲比較小的圖片來進行訓練,這樣避免了每個epoch都需要resize,而且resize之后,圖片變小,讀取更快。
  • 將數據集放入并行文件系統CPFS存儲上,提高訓練吞吐。實驗表明CPFS 在圖片場景下是NAS盤讀性能的3~6倍。 

3.3 TrainingModel優化

數據部分優化后,訓練過程中的主要時間開銷就在GPU訓練部分了。目前業內有一些比較成熟的方法可以參考,我們總結如下。

3.3.1 混合精度訓練(AMP)

PyTorch混合精度訓練在PyTorch官網有詳細介紹,以及開啟混合精度訓練的方法,可以閱讀這里獲取實現方法。當前許多CV訓練框架已經支持AMP訓練,比如:

  • MMCV框架中AMP參數就是開啟混合精度訓練的選項。
  • Pytorch Vision中也有相關參數來開啟AMP訓練。

需要說明的是,混合精度訓練過程中并不是將所有模型參數都轉為FP16來計算,只有部分做轉換?;旌暇戎阅芗铀儆柧氝^程,是因為大部分英偉達GPU機型在FP16這種數據格式的浮點算力比FP32要快一倍;此外,混合精度訓練顯存占用會更小。

scaler = GradScaler()


for epoch in epochs:
    for input, target in data:
        optimizer.zero_grad()
        with autocast(device_type='cuda', dtype=torch.float16):
            output = model(input)
            loss = loss_fn(output, target)
        scaler.scale(loss).backward()


        # Unscales the gradients of optimizer's assigned params in-place
        scaler.unscale_(optimizer)


        # Since the gradients of optimizer's assigned params are unscaled, clips as usual:
        torch.nn.utils.clip_grad_norm_(model.parameters(), max_norm)


        # optimizer's gradients are already unscaled, so scaler.step does not unscale them,
        # although it still skips optimizer.step() if the gradients contain infs or NaNs.
        scaler.step(optimizer)


        # Updates the scale for next iteration.
        scaler.update()

3.3.2 單機多卡數據并行訓練

Pytorch原生支持多卡數據并行訓練,詳細開啟多卡訓練的方式參考官方文檔。多卡訓練過程中每一張卡的backword計算會多加一次多卡之間集合通訊all-reduce操作,用來計算多張卡上的梯度的平均值。

3.4 自研訓練引擎框架kubeai-training-framework

通過前面的分析我們可以看到,雖然PyTorch框架本身已經做的很好了,訓練方式、參數支持豐富,但在實際的模型研究和生產過程中,由于模型的差異性、訓練數據的差異性,以及模型開發者的經驗差異性,PyTorch框架本身的優勢不一定能夠發揮出來。

基于前述分析和實踐,KubeAI平臺開發了訓練引擎框架kubeai-training-framework,幫助模型開發者更好地匹配訓練腳本參數,快速接入使用合適的訓練方式。kubeai-training-framework中包含PyTorch Dataloader優化、GPU TrainModel(AMP)提速以及各種功能函數等。以Dataloader為例,用戶可通過以下方式使用:

import torch
from kubeai_training_framework.dataloader import Dataloader


def train(train_loader, model, criterion, optimizer, epoch):
    train_dataset = .......
    train_loader = torch.utils.data.DataLoader(
        train_dataset, batch_size=args.batch_size, shuffle=True,
        num_workers=args.workers, pin_memory=True)


    model.train()
    my_train_loader = Dataloader(train_loader)
    input, target = my_train_loader.next()


    while input is not None:
        ## model train 代碼 input, target
        ..........
        input, target = my_train_loader.next()

4、AI Pipeline引擎助力AI業務快速迭代

通常模型的開發可以歸納為如下圖所示的過程:

圖片

可以看到,在需求場景確定、第一個模型版本上線之后,模型是需要反復迭代的,以期望取得更好的業務效果。KubeAI平臺在迭代建設的過程中,逐步上線了Notebook、模型管理、訓練任務管理、推理服務管理等一個個相對獨立的功能模塊。隨著業務需求的不斷變化,模型迭代效率直接影響了業務的上線效率,KubeAI平臺建設了AI Pipeline能力,重點解決AI場景的周期性迭代類需求,提高生產效率。

AI Pipeline是在ArgoWorkflow基礎上做了二次開發,以滿足模型迭代、推理任務管理、數據處理等對定時需求、任務啟動觸發方式、通用模板任務、指定節點啟動等需求。AI Pipeline上線之前,一個迭代任務可能會被配置為多個分散的任務,維護工作量大,調試周期長。如下圖是做一個類似任務需要單獨配置的任務情況:

圖片

AI Pipeline可以將整個工作流設計成如下圖所示:

圖片

圖片

Pipeline編排的方式,減少了模型開發者浪費在重復工作上的時間,可以將更多的時間投入到模型研究上。同時,通過合理編排任務,可以對有限的資源進行充分地利用。

5、展望

KubeAI平臺從得物AI業務場景的實際需求出發,以三大核心引擎為建設目標,著力解決AI模型研發過程中的訓練、推理性能問題,以及模型版本迭代過程中的效率問題。

在推理服務性能上,我們會以kubeai-inference-framework為起點,繼續在模型量化、算子優化、圖優化等方面進行深入探索。在模型訓練方面,我們會繼續在圖像數據預處理、Tensorflow GPU訓練框架支持、NLP模型訓練支持上發力,以kubeai-training-framework訓練引擎框架為接口,為模型開發者提供更高效、性能更高的訓練框架。此外,AI Pipeline引擎上,我們會支持更豐富的預置模型,以滿足通用數據處理任務、推理任務等需求。

責任編輯:武曉燕 來源: 得物技術
相關推薦

2022-10-24 18:36:56

AI平臺KubeAI

2023-10-09 18:35:37

得物Redis架構

2022-10-26 18:44:33

藍紙箱設計數據

2024-11-12 14:19:53

2023-11-29 18:41:35

模型數據

2023-03-30 18:39:36

2025-11-11 01:55:00

2023-08-21 19:37:21

得物DGraph引擎

2018-07-31 10:34:10

百度

2023-03-13 18:35:33

灰度環境golang編排等

2025-03-13 06:48:22

2023-02-06 18:35:05

架構探測技術

2022-12-02 18:45:06

SOP機器人技術

2023-02-08 18:33:49

SRE探索業務

2023-11-27 18:38:57

得物商家測試

2022-12-14 18:40:04

得物染色環境

2023-08-09 20:43:32

2023-07-19 22:17:21

Android資源優化

2023-05-15 18:33:09

得物前端巡檢

2025-07-31 00:00:25

點贊
收藏

51CTO技術棧公眾號

9l国产精品久久久久麻豆| 91精品国产自产拍在线观看蜜| 性做久久久久久| 久久久99爱| 亚洲天堂aaa| 激情亚洲成人| 国产一区二区精品丝袜| 无码人妻一区二区三区在线视频| 51漫画成人app入口| 久久精品夜色噜噜亚洲a∨| 亚洲精品日产aⅴ| 亚洲影院在线播放| 中文精品久久| 亚洲桃花岛网站| 色欲无码人妻久久精品| 久久精品女人天堂av免费观看| 亚洲欧美另类在线| 偷拍视频一区二区| 日漫免费在线观看网站| 精品伊人久久久久7777人| 97香蕉超级碰碰久久免费的优势| 懂色av粉嫩av蜜臀av一区二区三区| 女同一区二区三区| 日韩三级中文字幕| 一道本视频在线观看| 92久久精品| 亚洲欧美另类小说| 在线精品亚洲一区二区| 户外极限露出调教在线视频| 99视频有精品| 91麻豆蜜桃| 91女人18毛片水多国产| 日本伊人色综合网| 国产成人av在线| 久久久午夜影院| 国产精品hd| 欧美成人午夜激情| 久久国产波多野结衣| 欧美日韩国产一区二区三区不卡| 亚洲国产精品成人av| 国产一级二级av| 久久久久毛片免费观看| 在线不卡中文字幕| 亚洲一级片av| 白嫩亚洲一区二区三区| 欧美日韩一区二区欧美激情| 亚洲成人福利在线观看| 免费高清视频在线一区| 日本韩国一区二区| 99视频精品免费| 亚洲www.| 欧美亚洲综合久久| 日本特黄a级片| 成人免费毛片嘿嘿连载视频…| 在线看日韩精品电影| 亚洲爆乳无码专区| 韩日精品一区| 欧美日韩第一区日日骚| www亚洲成人| 欧美成a人片免费观看久久五月天| 欧美天天综合网| 欧美wwwwwww| 国产精品一区免费在线 | 色偷偷av一区二区三区乱| 亚洲欧美va天堂人熟伦| 成人影院在线| 久久精品国产精品亚洲| 欧洲第一无人区观看| 亚洲午夜极品| 91极品女神在线| 中文字幕在线日本| 精品一区二区免费| av免费精品一区二区三区| 欧美熟女一区二区| 久久久综合激的五月天| 奇米888一区二区三区| 日本中文字幕在线观看| 亚洲精品国产视频| 国产最新免费视频| 青草综合视频| 精品国产凹凸成av人网站| 一区二区不卡免费视频| 成人在线免费小视频| 免费成人高清视频| 日韩在线观看第一页| 日韩av不卡一区二区| 亚洲一区二区三区在线视频| 四虎影院在线播放| 国产精品国产成人国产三级| 免费拍拍拍网站| 电影久久久久久| 日韩一区二区三区四区五区六区| 第四色在线视频| 999国产精品999久久久久久| 国产+人+亚洲| 一二三区中文字幕| 99久久99久久精品国产片果冻| 亚洲激情一区二区| 国产伦理精品| 91精品国产91久久久久久最新毛片| a级一a一级在线观看| 91久久高清国语自产拍| 97久久超碰福利国产精品…| 在线观看一二三区| 91网站最新网址| 中文字幕在线中文| 91九色综合| 亚洲国产精品99| 欧美成人精品欧美一级私黄| 日本免费新一区视频| 国产原创精品| 香蕉成人app免费看片| 日本电影亚洲天堂一区| 国产免费一区二区三区最新6| 久久国产电影| 日本成人精品在线| 丰满大乳国产精品| 亚洲免费在线看| 特黄视频免费观看| 精品日韩毛片| 欧美中文字幕在线| 视频一区二区在线播放| 专区另类欧美日韩| 男女男精品视频站| 伊人精品一区| 91sa在线看| 黄色小视频免费在线观看| 综合av第一页| 亚洲综合欧美在线| 精品日韩免费| 国产91亚洲精品| 欧美香蕉爽爽人人爽| 午夜国产不卡在线观看视频| 丝袜熟女一区二区三区| 黄色成人在线网站| 国产福利一区二区三区在线观看| 爆操欧美美女| 777亚洲妇女| 极品久久久久久| 国产综合久久久久久鬼色| 五月婷婷综合色| 欧美日韩国产网站| 在线精品视频视频中文字幕| 国产精品无码一区| 国产精品理伦片| 无限资源日本好片| 国产韩国精品一区二区三区| 成人网在线视频| 91福利国产在线观看菠萝蜜| 日韩天堂在线观看| 久久久久97国产| 成人午夜精品在线| 国产资源在线视频| 九九久久精品| 国产乱肥老妇国产一区二| 三区四区电影在线观看| 在线不卡中文字幕| 中文字幕影音先锋| 成人网在线播放| 日韩欧美一区二| 奇米777国产一区国产二区| 日本久久久久亚洲中字幕| 国产69久久| 91精品国产乱| 日韩免费观看一区二区| 久久久综合激的五月天| 污版视频在线观看| 欧美日韩在线大尺度| 狠狠色综合网站久久久久久久| 成人香蕉视频| 日韩小视频在线观看| 亚洲第一天堂网| 色综合天天综合网天天狠天天| 欧美自拍偷拍网| 国产精品一区二区无线| 国产黄页在线观看| 久久精品国产www456c0m| 99国产超薄丝袜足j在线观看| 超级白嫩亚洲国产第一| 在线播放精品一区二区三区 | 麻豆成人在线视频| 91亚洲精品一区二区乱码| 国产aaaaa毛片| 欧美特黄视频| 日本亚洲自拍| 亚洲一区二区三区四区电影| 日韩av手机在线| 黄色精品免费看| 日韩精品中文字幕在线播放| 在线观看日批视频| 精品久久久久久| 亚洲二区在线播放| 久久蜜桃香蕉精品一区二区三区| 小早川怜子一区二区三区| 亚洲乱码久久| 秋霞在线一区二区| 久久av网址| 国产精品视频福利| 日韩亚洲国产免费| 日本午夜在线亚洲.国产| 青青在线视频| 在线精品国产欧美| 天天干天天爱天天操| 91麻豆精品国产自产在线观看一区| 欧美激情黑白配| 一区二区三区国产精品| 亚洲熟女少妇一区二区| 91麻豆文化传媒在线观看| 女王人厕视频2ⅴk| 日本中文一区二区三区| www.com毛片| 国内自拍一区| 手机看片日韩国产| 日韩大片在线播放| 日本免费高清一区| 亚洲都市激情| 国产精品区二区三区日本| 不卡一区视频| 成人免费在线视频网址| 456亚洲精品成人影院| 97国产精品久久| 羞羞网站在线看| 精品国产一区av| av在线1区2区| 一区二区三区四区精品| 性插视频在线观看| 亚洲第一男人av| 欧美 日韩 人妻 高清 中文| 欧美一区二区三区四区视频| 中文字幕 亚洲视频| 在线视频国内自拍亚洲视频| 在线天堂中文字幕| 午夜天堂影视香蕉久久| 免费一级全黄少妇性色生活片| 亚洲欧美在线另类| 中文字幕第69页| 国产精品久久久久久久久快鸭| 国产在线综合视频| 国产精品美女www爽爽爽| 成人激情五月天| 中文字幕欧美三区| 亚洲黄色网址大全| 国产精品成人网| 免费看特级毛片| 亚洲精品中文在线影院| 成人免费毛片东京热| 一区二区三区精品视频在线| 久久国产一级片| 午夜精品久久久久久久蜜桃app| 国产一卡二卡在线播放| 五月天久久比比资源色| 欧美另类一区二区| 一本高清dvd不卡在线观看| 亚洲天堂五月天| 欧美日韩三级一区| 国产精品国产av| 日韩三级免费观看| 老牛影视av牛牛影视av| 亚洲精品www久久久| 精品久久av| 中文字幕一区二区精品| 久草资源在线| 国模视频一区二区三区| 美女高潮在线观看| 国产精品中文字幕久久久| 国产亚洲久久| 精品久久sese| 操欧美老女人| 欧美日韩中文字幕在线播放| 伊人影院久久| 天天爽人人爽夜夜爽| 黄网站免费久久| 日本一区二区在线观看视频| 久久综合九色综合97_久久久| 国产又黄又粗视频| 夜夜嗨av一区二区三区网页| 天天干天天干天天| 欧美精品国产精品| 色噜噜在线播放| 自拍偷拍亚洲区| 日本欧美电影在线观看| 日本久久久久久久久久久| 91嫩草国产线观看亚洲一区二区| 国产精品久久波多野结衣| 国产欧美日韩影院| 成人在线免费观看视频网站| 久久久夜精品| 下面一进一出好爽视频| 久久亚洲精品小早川怜子| 熟女少妇a性色生活片毛片| 五月婷婷综合网| 国产精品高潮呻吟久久久| 亚洲精品视频免费| a视频在线免费看| 国产精品久久久久久久久久久不卡 | 国产最新在线| 国产99久久久欧美黑人| 在这里有精品| 亚洲在线视频一区二区| 在线一区免费观看| 日本亚洲一区二区三区| 亚洲国产精品av| 国产成人亚洲精品自产在线 | 高清中文字幕mv的电影| 国产精品大尺度| 精品久久久久久久久久久久久久久久久久| 欧美一级夜夜爽| 91.xxx.高清在线| 日本高清视频精品| 久久亚洲黄色| 超碰97在线看| 精彩视频一区二区| www久久久久久久| 福利一区福利二区微拍刺激| 亚洲va欧美va| 久久视频这里只有精品| 成人做爰视频www| 欧洲亚洲一区二区| 国产亚洲精品bv在线观看| 国产一级二级av| 亚洲精品伦理在线| 一道本在线视频| 中文字幕一精品亚洲无线一区| 美脚恋feet久草欧美| 久久精品美女| 99在线精品免费视频九九视| 中文字幕在线观看91| 亚洲精品视频自拍| 国产美女免费看| 久久精品国产成人| 亚洲欧美一级| 男女啪啪的视频| 久久91精品久久久久久秒播| 成人在线观看免费高清| 欧美中文字幕一二三区视频| 国产高清视频免费最新在线| 国产99久久精品一区二区永久免费 | 久久综合激情| 国产交换配乱淫视频免费| 欧美性xxxx极品高清hd直播| 天堂av在线7| 国产成+人+综合+亚洲欧洲| 国产精品探花在线观看| 久久午夜夜伦鲁鲁一区二区| 久久久国产精品不卡| 日本中文字幕在线观看视频| 亚洲视频免费一区| 亚洲精品555| 国产一区一区三区| 懂色av一区二区三区免费观看| 国产系列精品av| 亚洲欧美成人网| 玖玖精品在线| 日韩精品一区二区三区电影| 国产精品69久久久久水密桃| 久久免费视频精品| 日韩www在线| www成人在线视频| 经典三级在线视频| 成人一区二区视频| 亚洲GV成人无码久久精品 | 国产在线精品二区| 久久久www| 波多野结衣久久久久| 精品久久久三级丝袜| 激情都市亚洲| 中国人体摄影一区二区三区| 国产aⅴ综合色| 国产精品久免费的黄网站| 中文欧美在线视频| 年轻的保姆91精品| 国产精品网站免费| 国产亚洲人成网站| 国产99对白在线播放| 91国产高清在线| 成人在线丰满少妇av| 日本wwww色| 一本到不卡精品视频在线观看| 欧美一区二区三区在线观看免费| 成人免费视频视频在| 久久国产66| 青青草手机在线观看| 亚洲摸下面视频| 91成人福利社区| 国产精品一区二区免费在线观看| 日本一区二区视频在线观看| 性色av蜜臀av| 日产精品99久久久久久| 欧美在线视屏| 亚洲v国产v欧美v久久久久久| 91精品在线一区二区| 范冰冰一级做a爰片久久毛片| 91xxx视频| 国产亚洲欧美日韩在线一区| 精品久久久久久亚洲综合网站 | 日韩在线视频国产| 天堂资源在线亚洲| 国产精品久久久久野外| 91久久精品一区二区三区| 色综合999|