從0開始學習語言模型--Day02-如何最大化利用硬件

如何利用硬件

這個單元分為內核、并行處理和推理。

內核(Kernels)

我們說的內核一般指的就是GPU,這是我們用于計算的地方,一般說的計算資源就指的是GPU的大小。我們模型所用的數據和參數一般存儲在內存里,假設把內存比喻為倉庫,GPU比喻為工廠,那么我們所要做的就是最大限度提高數據在倉庫和工廠之間運輸的效率,像我們常說的矩陣乘法、融合或分塊等算法都是在減少數據運輸的成本。

并行處理(parallelism)

就如字面意思一樣,多個GPU連接著一個個CPU,彼此并行傳輸數據,我們需要思考如何防止模型參數、激活值(模型在處理輸入數據時,每一層神經網絡的中間輸出結果。這些值反映了模型在特定層對輸入信息的非線性變換結果,是模型理解和生成文本的關鍵中間狀態)或梯度來提高運輸效率,與內核的本質是一樣的,只是這個的關鍵在于并行鏈接的處理方式。

推理(inference)

推理指的是我們實際使用模型的方式,指的是在給定提示的情況下完成生成提示詞的任務。推理的成本比訓練模型的成本大得多,后者是一次性成本,而前者伴隨著模型使用者的增多,需要不斷地提高推理的高效,這就需要不斷地投入成本。推理分為兩個階段:預填充和解碼。預填充階段,模型會根據提示詞,運行得到一些激活值,然后在解碼階段自回歸地生成一個個詞元(token)。在推理中,比較困難的就是解碼階段,因為是一次生成一個token,這很難讓我們的并行處理的GPU進行飽和式的運行,在這里會浪費一些資源,同時由于不斷地移動數據,進一步地放大這種損失。當然,我們可以選擇一些快速推理模型來降低1成本浪費,比如推理型解碼,通過預設一些tokens,假設這些是我們需要的或通過評分認為這些是好的,就全部接受,從而省去了生成一部分token所花費的資源。

在構建這些部分的過程中,我們要養成總是進行基準測試和性能分析的習慣。因為在過程中我們可以寫想要實現的任何一個功能,但我們需要反饋來確定進展在哪個階段以及定位瓶頸,也就是上限在哪里,以便我們確認我們構筑的方向是對的以及處理好一些細節來提高上限。

縮放法則(scaling laws)

之前我們說到過理想情況是在小規模上做實驗并弄清楚問題,然后預測大模型下的超參數和損失。這里會引出一個基本問題,假設給出一個浮點運算預算,應該用多大的模型。如果使用更大的模型,就意味著可以在更少的數據上訓練,相反則是可以在更多的數據上訓練。那么該如何找到這里的平衡點呢?我們一般會根據一個經驗法則去判斷:假定有一個大小為n的模型,那么將n乘以20,得到的結果就是我們要訓練的token的數量。當然這里指的是如何訓練出最佳的模型,而不是最劃算的模型,是忽略了模型的推理成本的。

數據

即使我們做好了架構,調試好了參數,但模型會用于做什么還是取決于我們輸入的數據。如果是多語言數據,那么訓練出的就是多語言模型,輸入的是代碼數據,訓練出的就是代碼模型。那么我們該如何評估模型的能力呢。這就需要用到困惑度指標、標準化測試、跟隨回復以及其他的一些包括評估整個模型的方法。

討論完了評估,我們繼續回溯,就到了如何篩選要訓練的數據了。畢竟我們平時練習用到的數據,很多都是別人處理好的,不管是在網站爬取的統計數據,還是網頁上的文本,都是需要進行大量的細節操作來進行篩選的,以確保數據盡可能多保留我們想要的信息的前提下(一般會用到分類器來過濾掉垃圾信息,以及用去重來保證信息的唯一性,不讓模型重復識別某類信息),更好地被模型識別。

在經歷了這么多步驟后,我們就得到了一個可以預測下一個token的基礎模型。我們會通過對齊(通過技術手段使得模型的輸出是符合我們期望的)的操作來滿足三件事:讓語言模型的能夠跟隨指令去生成對應的token;確定模型的風格;模型能夠拒絕回答一些性質是有害的問題。對其一般分為兩個階段,一個是監督微調,通過少數的數據(一般在一千個就可以讓模型可以跟隨指令了)來達成好的學習效果,另一個是讓模型去學習偏好的數據。即給定問題讓模型去回答,并讓用戶給回答打分,從而得到偏好數據讓模型去學習。最后是在這些數據的基礎上,應用算法,讓模型進行真正的訓練以擁有對應的功能。

學習來源于B站教程:【斯坦福大學 ? CS336】從零開始構建語言模型 | 2025 年春季_嗶哩嗶哩_bilibili

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

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

相關文章

ElasticSearch配置詳解:設置內存鎖定的好處

什么是內存鎖定 "bootstrap": {"memory_lock": "true" }內存鎖定是指將Elasticsearch的JVM堆內存鎖定在物理內存中,防止操作系統將其交換(swap)到磁盤。 內存交換是操作系統的虛擬內存管理機制,當…

成功解決 ValueError: Unable to find resource t64.exe in package pip._vendor.distlib

解決問題 我們在本地的命令行中運行指令"python -m pip install --upgrade pip"的時候,報了如下的錯誤: 解決思路 我們需要重新安裝一下pip。 解決方法 步驟1: 通過執行下面的指令刪除本地的pip: python -m pip uninstall pip…

倉庫物資出入庫管理系統源碼+uniapp小程序

一款基于ThinkPHPuniapp開發的倉庫物資出入庫管理系統,適用于單位內部物資采購、發放管理的庫存管理系統。提供全部無加密源碼,支持私有化部署。 更新日志: 新增 基于UNIAPP開發的手機端,適配微信小程序 新增 字典管理 新增頁面…

基于機器學習的逐巷充填開采巖層運動地表沉降預測

基于機器學習的逐巷充填開采巖層運動地表沉降預測 1. 項目概述 本報告詳細介紹了使用Python和機器學習技術預測逐巷充填開采過程中地表沉降的方法。通過分析地質參數、開采參數和充填參數,構建預測模型評估地表沉降風險。 # 導入必要的庫 import numpy as np import pandas…

MotleyCrew ——拋棄dify、coze,手動搭建多agent工作流

1. MotleyCrew 核心組件 - 協調器: Crew MotleyCrew 的核心是一個 “Crew” 對象,即多代理系統的指揮者。Crew 持有一個全局的知識圖譜(使用 Kuzu 圖數據庫),用于記錄所有任務、任務單元和其執行狀態。 Cr…

掌握這些 Python 函數,讓你的代碼更簡潔優雅

在 Python 編程世界里,代碼的簡潔性與可讀性至關重要。簡潔優雅的代碼不僅便于自己后期維護,也能讓其他開發者快速理解邏輯。而 Python 豐富的內置函數和一些實用的第三方庫函數,就是實現這一目標的有力武器。接下來,就為大家介紹…

簡說ping、telnet、netcat

簡說 ping 和 telnet 命令的作用、用法和區別,方便理解它們在網絡診斷中的用途。 🌐 ping 命令 ? 作用: ping 用于檢測網絡連通性。它通過向目標主機發送 ICMP Echo 請求 并等待回應,從而判斷目標主機是否可達,并測…

基于STM32的超聲波模擬雷達設計

一、雷達概述 雷達(Radio Detection and Ranging,無線電探測與測距)是一種利用電磁波探測目標位置、速度等信息的主動式傳感器系統。其基本原理是發射電磁波并接收目標反射的回波,通過分析回波的時間差、頻率變化等參數&#xff0…

飛書多維表格利用 Amazon Bedrock AI 能力賦能業務

背景 飛書多維表格是一款功能強大的在線數據管理與協作工具。它打破傳統表格局限,將電子表格與數據庫特性融合,支持看板、甘特圖、表單等多種視圖自由切換,可根據項目進度、任務管理等不同場景靈活展示數據。其豐富的字段類型能精準適配各類…

表格對比工具推薦,快速比對Excel文件

軟件介紹 今天為大家推薦一款專為Excel用戶設計的表格比較工具,簡單易用,零基礎也能快速掌握。 輕量高效的辦公助手 Excel比較工具體積僅為11MB,占用空間小,運行流暢,適合各類電腦配置使用。 簡潔明了的操作界面 軟…

深入探究其內存開銷與JVM布局——Java Record

Java 14引入的Record類型如同一股清流,旨在簡化不可變數據載體的定義。它的核心承諾是:??透明的數據建模??和??簡潔的語法??。自動生成的equals(), hashCode(), toString()以及構造器極大地提升了開發效率。 當我們看到這樣的代碼: …

Vue 3 九宮格抽獎系統,采用優雅的 UI 設計和流暢的動畫效果

九宮格抽獎 預覽地址 項目簡介 這是一個基于 Vue 3 開發的現代化九宮格抽獎系統,采用優雅的 UI 設計和流暢的動畫效果,為用戶提供極致的抽獎體驗。系統支持多種獎品配置,實時抽獎記錄展示,以及完整的活動說明功能。 核心功能 …

無縫對接大疆算力平臺:基于Coovally的無人機AI模型端到端優化方案

【導讀】 隨著無人機應用場景的快速拓展,企業對于定制化AI解決方案的需求日益迫切。大疆算力開放平臺為開發者提供了專業的模型量化與部署環境,幫助開發者將訓練好的AI模型高效部署至大疆無人機平臺。 然而,要實現完整的AI開發閉環&#xf…

ubuntu下載CUDA cuDNN

nivida-smi查看顯卡驅動版本 (一)安裝CUDA cuda官網 cuda官網 下載對應版本的cuda 這個官網真不錯啊,下面附上了指令 wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/cuda-ubuntu2404.pin sudo mv c…

FreeRTOS定時器

目錄 1.特性2.運行環境2.1 守護任務2.2 回調函數2.3 內部源碼 3.和Linux對比4.ID5.數據傳輸6.操作函數6.1 創建6.2 刪除6.3 啟動6.4 停止6.5 復位(重置)6.6 修改周期6.7 注意事項 7.示例:一般使用8.示例:定時器防抖 1.特性 定時器…

JavaScript中的迭代器模式:優雅遍歷數據的“設計之道”

JavaScript中的迭代器模式:優雅遍歷數據的“設計之道” 一、什么是迭代器模式? 在編程世界中,迭代器模式(Iterator Pattern)是一種經典的設計模式,它的核心思想是:為集合對象提供一種統一的訪…

Debian/Ubuntu systemd coredump調試程序Crash

程序是通過systemd監管,當程序出現crash的時候,需要保存crash的日志,也就是coredump日志,按照一般做法設置coredump。而在安裝有systemd服務的系統中一般都有systemd-coredump服務。 systemd-coredump 是 systemd 子系統中的一個工…

【圖片轉 3D 模型】北大·字節跳動·CMU攜手——單圖15 秒生成結構化3D模型!

??引言:單圖生成結構化 3 D 模型的技術突破? ? PartCrafter 由北京大學、字節跳動與卡耐基梅隆大學聯合研發,是全球首個??端到端生成結構化 3 D 網格??的模型。它僅需單張 RGB 圖像,即可在 34 秒內生成帶語義分解的 3 D 部件&#xf…

零基礎RT-thread第二節:按鍵控制

我這里依然使用的是野火開發板,F767芯片。 這一節寫一下按鍵控制LED亮滅。 這是按鍵以及LED的原理圖。 按鍵對應的引腳不按下時是低電平,按下后是高電平。 LED是在低電平點亮。 接下來是key.c: /** Copyright (c) 2006-2021, RT-Thread Development T…

《Gulp與SCSS:解構前端樣式開發的底層邏輯與實戰智慧》

探尋Gulp與SCSS協作的底層邏輯 Gulp,作為任務自動化的佼佼者,其核心價值在于將一系列復雜的任務,如文件的編譯、合并、壓縮等,以一種流暢且高效的方式串聯起來,形成一個自動化的工作流。它基于流(stream&a…