簡體   English   中英

針對具有不同 GPU 的變形金剛的多 GPU 訓練

[英]Multi GPU training for Transformers with different GPUs

我想使用 Huggingface 的 Transformers 微調 GPT-2 model。 最好是中等 model 但如果可能的話,大。 目前,我有一個 RTX 2080 Ti 和 11GB 的 memory,我可以很好地訓練小型 model。

我的問題是:如果我將舊的 Tesla K80 (24GB) 添加到我的機器並分發培訓,我會遇到任何問題嗎? 我找不到有關在訓練期間使用不同容量 GPU 的信息以及我可能遇到的問題。

我的 model 大小限制基本上是所有可用 GPU memory 的總和嗎? (35GB?)

我對在 AWS 中執行此操作不感興趣。

你已經解決了你的問題。 那太棒了。 我想指出一種不同的方法並解決幾個問題。

我的 model 大小限制基本上是所有可用 GPU memory 的總和嗎? (35GB?)

這取決於您使用的訓練技術。 標准數據並行性將 model、梯度和優化器狀態復制到每個 GPU。 所以每個 GPU 必須有足夠的 memory 來容納所有這些。 數據在 GPU 上進行拆分。 然而,瓶頸通常是優化器狀態和 model 而不是數據。

最先進的訓練方法是 不僅是數據集,還有 model 參數、梯度和優化器狀態在 GPU 之間進行拆分。 這使您可以在不遇到 OOM 的情況下訓練大型模型。 從論文中看到下面的漂亮插圖。 基線是我提到的標准情況。 他們逐漸在 GPU 上拆分優化器狀態、梯度和 model 參數,並比較每個 GPU 的 memory 使用情況。

在此處輸入圖像描述

該論文的作者創建了一個名為 DeepSpeed 的庫,並且很容易將其與 huggingface 集成。 這樣我就能夠將我的 model 大小從 2.6 億增加到 110 億:)

如果你想詳細了解它是如何工作的,這里是論文: https://arxiv.org/pdf/1910.02054.pdf

可以在此處找到有關將 DeepSpeed 與 Huggingface 集成的更多信息:https://huggingface.co/docs/transformers/main_classes/deepspeed

PS:有一個 model 並行技術,其中每個 GPU 訓練 model 的不同層,但它失去了它的流行度並且沒有被積極使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM