現(xiàn)在,您已經(jīng)了解了如何調(diào)整和對齊大型語言模型以適應(yīng)您的任務(wù),讓我們討論一下將模型集成到應(yīng)用程序中需要考慮的事項。
在這個階段有許多重要的問題需要問。第一組問題與您的LLM在部署中的功能有關(guān)。您需要模型生成完成的速度有多快?您有多少計算預(yù)算可用?您是否愿意為改善推理速度或降低存儲空間而犧牲模型性能?
第二組問題與您的模型可能需要的額外資源有關(guān)。您是否打算讓您的模型與外部數(shù)據(jù)或其他應(yīng)用程序進行交互?如果是的話,您將如何連接到這些資源?
最后,還有一個問題,即您的模型將如何被使用。您的模型將通過什么樣的預(yù)期應(yīng)用程序或API界面來使用?
讓我們首先探討一些在將模型部署到推理之前用于優(yōu)化模型的方法。
雖然我們可以將幾節(jié)課用于討論這個主題,但本節(jié)的目標是為您介紹最重要的優(yōu)化技術(shù)。大型語言模型在計算和存儲要求方面提出了推理挑戰(zhàn),以及確保消費應(yīng)用程序具有低延遲。無論是在本地部署還是部署到云上,當部署到邊緣設(shè)備時,這些挑戰(zhàn)都會更加突出。
提高應(yīng)用程序性能的主要方法之一是減小LLM的大小。這可以允許模型更快地加載,從而減少推理延遲。但是,挑戰(zhàn)在于在保持模型性能的同時減小模型的大小。對于生成模型,某些技術(shù)比其他技術(shù)效果更好,準確性和性能之間存在權(quán)衡。在本節(jié)中,您將了解三種技術(shù)。
蒸餾使用一個較大的模型,即教師模型,來訓(xùn)練一個較小的模型,即學(xué)生模型。然后,您可以使用較小的模型進行推理,以降低存儲和計算預(yù)算。與量化感知訓(xùn)練類似,后期訓(xùn)練量化將模型的權(quán)重轉(zhuǎn)換為較低精度的表示,例如16位浮點或8位整數(shù)。如您在課程第一周學(xué)到的那樣,這會減小模型的內(nèi)存占用。第三種技術(shù),模型修剪,刪除了對模型性能貢獻不大的冗余模型參數(shù)。讓我們更詳細地討論這些選項。
模型蒸餾是一種側(cè)重于使用較大的教師模型來訓(xùn)練較小的學(xué)生模型的技術(shù)。學(xué)生模型學(xué)會統(tǒng)計上模仿教師模型的行為,可以是在最終預(yù)測層或模型的隱藏層中。
這里我們將重點放在第一種選項上。您可以使用您的微調(diào)LLM作為教師模型,為學(xué)生模型創(chuàng)建一個較小的LLM。您凍結(jié)教師模型的權(quán)重,并使用它來為您的訓(xùn)練數(shù)據(jù)生成完成。同時,您使用學(xué)生模型為訓(xùn)練數(shù)據(jù)生成完成。通過最小化稱為蒸餾損失的損失函數(shù)來實現(xiàn)教師和學(xué)生模型之間的知識蒸餾。為了計算這個損失,蒸餾使用了由教師模型的softmax層產(chǎn)生的標記概率分布。
現(xiàn)在,教師模型已經(jīng)在訓(xùn)練數(shù)據(jù)上進行了微調(diào)。因此,概率分布可能與基本事實數(shù)據(jù)非常接近,標記中的令牌不會有太大的變化。這就是為什么蒸餾應(yīng)用了一個小技巧,即在softmax函數(shù)中添加溫度參數(shù)。如您在第一課中學(xué)到的,溫度越高,模型生成的語言的創(chuàng)造力就越大。
通過一個大于一的溫度參數(shù),概率分布變得更廣泛,峰值不那么尖銳。
這種較軟的分布為您提供了一組與基本事實標記相似的標記。
在蒸餾的上下文中,教師模型的輸出通常被稱為軟標簽,
學(xué)生模型的預(yù)測被稱為軟預(yù)測。
同時,您訓(xùn)練學(xué)生模型生成基于您的基本事實訓(xùn)練數(shù)據(jù)的正確預(yù)測。在這里,您不會改變溫度設(shè)置,而是使用標準的softmax函數(shù)。蒸餾將學(xué)生和教師模型之間的損失和學(xué)生損失結(jié)合起來,通過反向傳播來更新學(xué)生模型的權(quán)重。
蒸餾方法的關(guān)鍵好處是可以在部署中使用較小的學(xué)生模型,而不是教師模型。
在實踐中,蒸餾對生成解碼器模型通常不太有效。通常對僅編碼器模型,如具有大量表示冗余的Bert模型,更有效。請注意,使用蒸餾,您訓(xùn)練了一個第二個較小的模型,用于推理。您沒有以任何方式減小初始LLM的模型大小。
接下來,讓我們看看下一個可以實際減小LLM大小的模型優(yōu)化技術(shù)。在第一周,您已經(jīng)在培訓(xùn)的上下文中介紹了第二種方法,即量化感知訓(xùn)練Specifically Quantization Aware Training,簡稱QAT。
然而,一旦模型訓(xùn)練完畢,您可以執(zhí)行后期訓(xùn)練量化Post Training quantization,簡稱PTQ,以優(yōu)化部署。PTQ將模型的權(quán)重轉(zhuǎn)換為較低精度的表示,例如16位浮點或8位整數(shù),以減小模型大小和內(nèi)存占用,以及模型服務(wù)所需的計算資源。一般來說,包括激活的量化方法對模型性能的影響較大。
量化還需要額外的校準步驟,以統(tǒng)計捕獲原始參數(shù)值的動態(tài)范圍。
與其他方法一樣,存在權(quán)衡,因為有時量化會導(dǎo)致模型評估指標略微下降。然而,這種降低通常可以抵消成本節(jié)省和性能提高的成本。
最后一個模型優(yōu)化技術(shù)是修剪Pruning。在高層次上,目標是通過消除對總體模型性能貢獻不大的權(quán)重來減小推理的模型大小。這些權(quán)重的值非常接近或等于零。請注意,一些修剪方法需要對模型進行全面重新訓(xùn)練,而其他方法屬于參數(shù)高效微調(diào)的范疇,例如LoRA。還有一些方法專注于后期修剪。在理論上,這可以減小模型的大小并提高性能。然而,在實踐中,如果只有一小部分模型權(quán)重接近零,那么模型的大小和性能可能沒有太大影響。
量化、蒸餾和修剪都旨在減小模型大小,以提高推理時的模型性能,而不影響準確性。優(yōu)化您的模型以供部署將有助于確保您的應(yīng)用程序運行良好,并為用戶提供最佳體驗。文章來源:http://www.zghlxwxcb.cn/news/detail-727469.html
Reference
https://www.coursera.org/learn/generative-ai-with-llms/lecture/qojKp/model-optimizations-for-deployment文章來源地址http://www.zghlxwxcb.cn/news/detail-727469.html
到了這里,關(guān)于LLMs 蒸餾, 量化精度, 剪枝 模型優(yōu)化以用于部署 Model optimizations for deployment的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!