huggingface 筆記:device_map

  • 1 基本映射方法?

  • 設計設備映射時,可以讓Accelerate庫來處理設備映射的計算
  • 通過設置device_map為支持的選項之一("auto"、 "balanced"、 "balanced_low_0"、 "sequential");或者如果想更精確地控制每一層應該去哪里,也可以自己創建一個設備映射
"auto" 和 "balanced"在所有可用的GPU上均勻分配模型
"balanced_low_0"

在除了第一個GPU之外的所有GPU上均勻分配模型,并且只有在其他GPU放不下時,才在GPU 0上放置內容

當你需要在生成 Transformers 模型的輸出時使用GPU 0進行一些處理時,這個選項非常有用

"sequential"盡可能在GPU 0上放置內容,然后移動到GPU 1,依此類推(如果不需要,就不會使用最后的GPU)

2??max_memory

  • 在infer_auto_device_map中,通過使用max_memory參數來限制每個GPU上使用的內存
  • 設置max_memory時,你應該傳遞一個包含GPU標識符(例如0、1等)和“cpu”鍵的字典
    • 值可以是一個整數(以字節為單位)或一個帶單位的數字字符串,如"10GiB"或"10GB"
from accelerate import infer_auto_device_mapdevice_map = infer_auto_device_map(my_model, max_memory={0: "10GiB", 1: "10GiB", "cpu": "30GiB"})

3 完全自行設計設備映射

  • 如果選擇完全自行設計設備映射,它應該是一個字典,鍵是模型的模塊名稱,值是一個有效的設備標識符(例如GPU的一個整數)或“cpu”用于CPU卸載,“disk”用于磁盤卸載
  • 鍵需要覆蓋整個模型

  • 例如,如果你的模型有兩個塊(block1和block2),每個塊包含三個線性層(linear1、linear2和linear3),一個有效的設備映射可以是:
device_map = {"block1": 0, "block2": 1}
device_map = {"block1": 0,"block2.linear1": 0, "block2.linear2": 1, "block2.linear3": 1}

下面這種映射不是有效的,因為它沒有覆蓋模型的每個參數

device_map = {"block1": 0, "block2.linear1": 1, "block2.linear2": 1}
  • 為了最有效率,確保設備映射以順序方式將參數放在GPU上,以避免在GPU之間進行多次數據傳輸。
    • 例如,不要將第一個權重放在GPU 0上,然后將權重放在GPU 1上,最后的權重再放回GPU 0

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/15412.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/15412.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/15412.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

golang的context和chan 的使用

1. context 作用 context包的context的接口,主要是控制協程執行上下文的時間,以及取消程序的執行,以及上下文中傳遞數據等作用,golang中耗時或者需要協同的操作都會見到context的身影。 context有幾個常用的方法 1.1 context.B…

用爬山算法解決離散的優化問題

爬山算法,也稱為梯度上升算法或局部搜索算法,是一種簡單有效的優化算法,常用于解決連續或離散的優化問題。爬山算法的基本思想是從一個隨機的初始點開始,通過迭代地向局部最優的方向移動,逐步逼近全局最優解。 爬山算…

git管理Codeup云效平臺

HTTPS方式實現Git命令 1.進入項目路徑,如 cd demo,與此同時,在Codeup平臺創建一個空倉庫repo,獲取空倉庫的https協議地址,例如 https://codeup.aliyun.com/xxxx/xxxx/xxx.git。 2.在demo項目下執行 git init命令初始化…

從反向傳播(BP)到BPTT:詳細數學推導【原理理解】

從反向傳播到BPTT:詳細推導與問題解析 在本文中,我們將從反向傳播算法開始,詳細推導出反向傳播通過時間(Backpropagation Through Time, BPTT)算法。重點討論BPTT中的梯度消失和梯度爆炸問題,并解釋如何解…

采用LoRA方法微調llama3大語言模型

文章目錄 前言一、Llama3模型簡介1.下載llama3源碼到linux服務器2.安裝依賴3.測試預訓練模型Meta-Llama-3-8B4.測試指令微調模型Meta-Llama3-8B-Instruct5.小結 二、LoRA微調Llama31.引入庫2.編寫配置文件3.LoRA訓練的產物 三、測試新模型效果1.編寫配置文件2.運行配置文件&…

QT教程-一,初識QT

目錄 一,QT是什么?能夠使用它做什么? 二,Qt 能夠使用的語言 三,Qt主要用于什么領域? 四,Qt開發的軟件 一,QT是什么?能夠使用它做什么? Qt是一個跨平臺的 C 開發庫,主…

全球最高點贊記錄,世界點贊第一名是誰?世界點贊第一人名字的由來

世界點贊第一人名字的由來: 起源與概念提出: 二十一世紀東方偉大的思想家哲學家教育家顏廷利教授,一位在中國21世紀早期便以其非凡才華和創新精神著稱的學者,早在互聯網尚未普及的20世紀90年代,就已經提出了“點贊”的…

算法提高之最大數

算法提高之最大數 核心思想&#xff1a;線段樹 添加數 看作原本的數組有數(0) 現在將他修改成另一個值 詢問后l個數的最大值query函數具體實現 #include <iostream>#include <cstring>#include <algorithm>using namespace std;const int N 200010;typed…

python爬蟲登錄到海康相機管理頁面

簡述 1.最近接到個任務是在管理頁面更改相機的某個參數&#xff0c;下載官方的sdk貌似沒有提供這個接口&#xff0c;所以只能自己寫爬蟲登錄發請求了。 1.主要步驟 1.1 發送get請求獲取到salt&#xff0c;sessionID&#xff0c;challenge等信息 http://admin:123456192.168.…

交叉熵損失函數計算過程(tensorflow)

交叉熵損失函數通常用于多類分類損失函數計算。計算公式如下&#xff1a; P為真實值&#xff0c;Q為預測值。 使用tensorflow計算 import tensorflow as tf import keras# 創建一個示例數據集 # 假設有3個樣本&#xff0c;每個樣本有4個特征&#xff0c;共2個類別 # 目標標簽…

Spark Client 配置

前言 記錄Spark Client 配置,這里的 Spark Client 和 HDFS、YARN 不在一個節點,只是一個單節點的 Spark Client,需要能連接其他節點的大數據集群的 Hive 和 能提交到Yarn 。 環境信息 大數據節點(已配置好Spark): 192.168.44.154 192.168.44.155 192.168.44.156 客戶端…

P2P 技術:點對點網絡的興起

目錄 概述 P2P 的興起 P2P 的定義和特征 定義 特征 P2P 的發展 早期發展 快速成長 成熟應用 P2P 的關鍵技術 P2P 的應用 總結 概述 P2P&#xff08;Peer-to-Peer&#xff09;&#xff0c;即點對點網絡&#xff0c;是一種去中心化的網絡架構&#xff0c;它允許網絡中…

2024最新私有化部署AI大模型,讓每個人都有屬于自己的AI助理

讓每個人都擁有一個屬于自己的本地大模型 下載Ollama 下載地址 ? https://ollama.com/download ? Ollama支持MacOS、Linux、Windows 解壓 下載完成后&#xff0c;會得到一個Ollama-darwin.zip文件&#xff0c;解壓后&#xff0c;以Mac為例是一個可運行文件&#xff1a;O…

Jupyter 使用手冊: 探索交互式計算的無限可能

什么是 Jupyter? Jupyter 是一個開源的 Web 應用程序,可用于創建和共享包含實時代碼、可視化和敘述性文本的文檔。它最初是作為 IPython 項目的一部分開發的,后來發展成為支持多種編程語言的交互式計算環境。 應用場景 作為一個開源的交互式計算環境,Jupyter 在以下幾個領域…

AI應用案例:服務器智能分析管理系統

服務器硬件配置、性能狀態、所運行的應用系統等信息分散于多個不同的信息管理系統。人為查詢判斷現有的服務器資源是否滿足用戶需求&#xff0c;且需結合資產管理系統與Maximo基礎資源、性能監控、運維管理等各個系統互不關聯&#xff0c;數據分散不能為運維管理提供完整一致的…

在Spring 當中存在的八大模式

在Spring 當中存在的八大模式 文章目錄 在Spring 當中存在的八大模式每博一文案1. 簡單工廠模式2. 工廠方法模式3. 單例模式4. 代理模式5. 裝飾器模式6. 觀察者模式7. 策略模式8. 模板方法模式最后&#xff1a; 每博一文案 我認為 “知世故而不世故” 才是真正意義上的成熟。回…

Micrometer中0.5 0.9 0.99三個百分位數詳解

Micrometer的Timer類中的publishPercentiles方法使用0.5, 0.95, 0.99這三個百分位數&#xff0c;是因為它們在性能監控和SLA&#xff08;Service Level Agreement&#xff0c;服務等級協議&#xff09;指標測量中具有特定的意義和普遍應用。 在系統性能監控領域&#xff0c;這…

【PPT密碼】PPT文件的兩種不可編輯情況

不知道大家有沒有遇到過&#xff0c;PPT文件無法編輯的情況&#xff0c;今天小編分享兩種ppt文件不可編輯的原因以及解決方法。 情況一 如果打開ppt文件之后&#xff0c;發現幻燈片某些地方或者每張幻燈片同一個地方&#xff0c;無法編輯&#xff0c;這可能是因為PPT中設置了…

Scala學習筆記6: 類

目錄 第六章 類1- 簡單類和無參方法2- 帶有getter和setter的屬性3- 只帶getter的屬性4- 對象私有化5- 輔助構造器6- 主構造器7- 嵌套類end 第六章 類 在Scala中, 類用于創建對象的藍圖; 類可以包含方法、值、變量、類型、對象和特質等成員; 類名應該以大寫字母開頭, 可以包含…

ISCC 2024 部分wp

文章目錄 一、Misc1、Number_is_the_key2、FunZip3、擂臺—— 重“隱”&#xff1b;4、RSA_KU5、時間刺客6、成語學習7、 精裝四合一8、鋼鐵俠在解密9、有人讓我給你帶個話10、Magic_Keyboard11、工業互聯網模擬仿真數據分析 二、Web1、還沒想好名字的塔防游戲2、代碼審計3、原…