[PyTorch] 將模型刪除後,釋放 GPU / CPU 的記憶體空間
問題描述
昨晚,我在改進一段將模型融合的程式碼時,由於個人設備資源不足,我採取分層合併的方法,一次只取一層的記憶體進行合併,以此減少系統同時保存的模型記憶體大小。然而,我發現模型雖然在 GPU 中的記憶體很容易被刪除、但是 CPU 中的記憶體被回收是十分不容易的。這涉及到了 Python 的資源回收器的設計。
Read More »[PyTorch] 將模型刪除後,釋放 GPU / CPU 的記憶體空間昨晚,我在改進一段將模型融合的程式碼時,由於個人設備資源不足,我採取分層合併的方法,一次只取一層的記憶體進行合併,以此減少系統同時保存的模型記憶體大小。然而,我發現模型雖然在 GPU 中的記憶體很容易被刪除、但是 CPU 中的記憶體被回收是十分不容易的。這涉及到了 Python 的資源回收器的設計。
Read More »[PyTorch] 將模型刪除後,釋放 GPU / CPU 的記憶體空間vLLM 是加州柏克萊分校所開發的一種大型語言模型(Large Language Model, LLM)加速推理框架。它主要是利用 PagedAttention 機制提高了 GPU VRAM 的使用率,並且這一方法無須更改模型的架構。
Read More »使用 vLLM 進行大型語言模型(LLM)的高速推理我雖然整天都在看 AI 的東西,但是 AI 中各式各樣的『架構』、『突破』、『理論』實在是太多太多了,很多東西我都是模模糊糊地知道個大概,了解了觀念就放在一邊。大部分徹地深入的認識,通通都是等到實戰時,必須自己跳下去親手改架構時才會領悟。
Read More »[Machine Learning] LLM 架構視覺化教學網站 LLM Visualization 分享在 2023 年初,PyTorch 的 2.0 版本新增了一個 torch.compile()
的新功能,讓我們能夠在模型訓練/推理時能夠進一步提昇速度。與混合精度訓練的協同工作,經常能使我的訓練速度提昇一倍左右。
變分自動編碼器(Variational AutoEncoder, VAE) 是自動編碼器(AutoEncoder, AE)的進階變體,架構與原本的自動編碼器相似,同樣都是由編碼器(Encoder)和解碼器(Decoder)所組成。
Read More »[Machine Learning] Variational AutoEncoder (VAE) 筆記現在的生成式模型越來越厲害的,各個獨立研究人員也都部署起了一個又一個的開源大型語言模型(LLMs)。但是在使用大型語言模型做推理、生成回覆時,要是真要去等待一個比較長的輸出,那是真的挺花時間的。
Read More »使用 HuggingFace Transformer 中的 TextStreamer 和 TextIteratorStreamer 來實現串流式(stream)輸出生成 token最近在因緣際會下,有了簡單改一些模型架構的機會,於是便趁這個機會好好地摸索了下 PyTorch 中模型神經網路層的遍歷打印方式。
Read More »[PyTorch] 遍歷模型每一層神經網路筆記論文連結: https://arxiv.org/abs/2212.13345
本篇研究工作的作者是鼎鼎大名的深度學習之父 Geoffrey Hinton,最初撰寫本篇論文時仍是 Google Brain 的研究員(於 2023 年離開)。
Read More »[論文閱讀] The Forward-Forward Algorithm: Some Preliminary Investigation我們經常會在機器學習中聽到 『KL 散度』(Kullback Libler Divergence)這個詞,而 KL 散度其實就是評估兩個機率分佈 P 和 Q 之間『差異性』的一個評估值。
Read More »[Machine Learning] KL 散度(Kullback-Leibler Divergence)筆記在使用 transformers 套件時,如果當我們使用如 AutoModelForSequenceClassification、AutoModelForSeq2SeqLM… 這樣不同 head 的任務模型時,經常我們會得到以下錯誤訊息:
Read More »[已解決] Some weights of the model checkpoint at distilbert-base-multilingual-cased were not used when initializing DistilBertForSequenceClassification: [‘vocab_projector.bias’, ‘vocab_layer_norm.bias’, ‘vocab_layer_norm.weight’, ‘vocab_transform.weight’, ‘vocab_transform.bias’]