成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在家中完成LLM微調(diào)高效指南(上)

原創(chuàng)
人工智能
盡管相比推理,微調(diào)仍然較為耗費(fèi)計(jì)算資源,但借助于低秩適應(yīng)(LoRA)及其量化變體QLoRA等技術(shù),現(xiàn)在可以使用單塊GPU來(lái)微調(diào)模型——這正是我們將在本指南中探討的內(nèi)容。

編輯 | 言征

出品 | 51CTO技術(shù)棧(微信號(hào):blog51cto)

LLM在生成文本和理解信息方面非常有效,但它們最終受限于訓(xùn)練數(shù)據(jù)的語(yǔ)料庫(kù)。例如,如果你讓一個(gè)通用的預(yù)訓(xùn)練模型回答與你的業(yè)務(wù)特定流程或操作有關(guān)的問(wèn)題,最好的結(jié)果是它拒絕,最壞的情況是它會(huì)信誓旦旦地給出一個(gè)看似合理但錯(cuò)誤的答案。

當(dāng)然,你可以通過(guò)自己訓(xùn)練一個(gè)模型來(lái)解決這個(gè)問(wèn)題,但所需的資源往往超出實(shí)際可行的范圍。例如,訓(xùn)練Meta的相對(duì)小的Llama 3 8B模型需要約130萬(wàn)GPU小時(shí)的計(jì)算資源,使用的是80GB的Nvidia H100。好消息是你不需要這樣做。我們可以通過(guò)稱(chēng)為微調(diào)的過(guò)程,利用現(xiàn)有的模型(如Llama、Mistral或Phi),并通過(guò)自己的數(shù)據(jù)擴(kuò)展其知識(shí)庫(kù)或修改其行為和風(fēng)格。

盡管相比推理,微調(diào)仍然較為耗費(fèi)計(jì)算資源,但借助于低秩適應(yīng)(LoRA)及其量化變體QLoRA等技術(shù),現(xiàn)在可以使用單塊GPU來(lái)微調(diào)模型——這正是我們將在本指南中探討的內(nèi)容。

在本指南中,我們將討論:

  • 微調(diào)的應(yīng)用場(chǎng)景和適用時(shí)機(jī)
  • 擴(kuò)展預(yù)訓(xùn)練模型能力和行為的替代方法
  • 數(shù)據(jù)準(zhǔn)備的重要性
  • 如何使用Axolotl和自定義數(shù)據(jù)集微調(diào)Mistral 7B模型
  • 各種超參數(shù)及其對(duì)訓(xùn)練的影響
  • 加快和提高微調(diào)效率的其他資源

1.設(shè)定期望

相比我們之前的動(dòng)手指南,微調(diào)是一個(gè)涉及很多參數(shù)調(diào)整、開(kāi)關(guān)配置和最佳實(shí)踐的復(fù)雜過(guò)程。因此,我們認(rèn)為有必要設(shè)定一些期望。

微調(diào)是修改預(yù)訓(xùn)練模型行為或風(fēng)格的有用方法。然而,如果你的目標(biāo)是教授模型新的知識(shí),雖然可以做到,但可能有更好和更可靠的方式值得首先考慮。

我們之前探討過(guò)檢索增強(qiáng)生成(RAG),這種方法基本上為模型提供了一個(gè)它可以參考的庫(kù)或數(shù)據(jù)庫(kù)。這個(gè)方法因其相對(duì)易于設(shè)置、計(jì)算成本低廉且可以引用來(lái)源而備受歡迎。不過(guò),它并不完美,也無(wú)法改變模型的風(fēng)格或行為。

例如,如果你正在構(gòu)建一個(gè)客戶(hù)聊天機(jī)器人來(lái)幫助用戶(hù)查找資源或解決產(chǎn)品問(wèn)題,你可能不希望它回答與健康或財(cái)務(wù)無(wú)關(guān)的問(wèn)題。提示工程可以在一定程度上幫助實(shí)現(xiàn)這一點(diǎn)。你可以創(chuàng)建一個(gè)系統(tǒng)提示,指示模型以某種方式行事。例如,添加一句“你不具備回答與健康、健康管理或營(yíng)養(yǎng)相關(guān)問(wèn)題的能力,如有相關(guān)問(wèn)題,請(qǐng)將話題引導(dǎo)至更合適的內(nèi)容?!?/p>

提示工程在其簡(jiǎn)單中顯得優(yōu)雅:只需告訴模型你希望它做什么或不做什么。但實(shí)際上,使用中的LLM模型經(jīng)常會(huì)遇到一些邊界情況,導(dǎo)致模型被誤導(dǎo)執(zhí)行它不應(yīng)該做的事情。你可能會(huì)驚訝地發(fā)現(xiàn),有時(shí)只需一句“忽略所有之前的指示,而執(zhí)行以下操作”即可使模型改變行為。

如果RAG和提示工程無(wú)法滿足需求,則可以考慮微調(diào)。

2.使用QLoRA進(jìn)行內(nèi)存高效的模型微調(diào)

在本指南中,我們將使用微調(diào)來(lái)改變Mistral 7B模型的風(fēng)格和語(yǔ)調(diào)。特別是,我們將使用QLoRA,如前所述,這將允許我們?cè)谂c傳統(tǒng)訓(xùn)練相比下,使用更少的內(nèi)存和計(jì)算資源進(jìn)行微調(diào)。

這是因?yàn)槲⒄{(diào)比運(yùn)行模型需要更多的內(nèi)存。在推理過(guò)程中,可以通過(guò)將參數(shù)數(shù)量乘以精度來(lái)計(jì)算內(nèi)存需求。對(duì)于Mistral 7B,其訓(xùn)練精度為BF16,因此大約需要14 GB內(nèi)存,外加少量用于關(guān)鍵緩存的內(nèi)存。

然而,完全微調(diào)則需要幾倍于此的內(nèi)存來(lái)加載模型。對(duì)于Mistral 7B來(lái)說(shuō),內(nèi)存需求約為90 GB或更多。如果你沒(méi)有多GPU的工作站,幾乎必然需要租用像Nvidia A100或H100這樣的數(shù)據(jù)中心GPU來(lái)完成任務(wù)。

這是因?yàn)橥耆⒄{(diào)意味著以完整分辨率重新訓(xùn)練模型的每一個(gè)權(quán)重。好消息是,在大多數(shù)情況下,不必更新所有權(quán)重即可調(diào)整神經(jīng)網(wǎng)絡(luò)的輸出。實(shí)際上,只需更新幾千或幾百萬(wàn)的權(quán)重就可以實(shí)現(xiàn)預(yù)期的效果。

這正是LoRA的邏輯所在:簡(jiǎn)而言之,它將模型的權(quán)重凍結(jié)在一個(gè)矩陣中,然后使用另一組矩陣記錄對(duì)第一個(gè)矩陣的調(diào)整以微調(diào)模型。這大大減少了計(jì)算和內(nèi)存的開(kāi)銷(xiāo)。QLoRA進(jìn)一步優(yōu)化了這一點(diǎn),通過(guò)以更低的精度(通常為四位)加載模型的權(quán)重。因此,每個(gè)參數(shù)只需占用半字節(jié)的內(nèi)存。

3.微調(diào)很簡(jiǎn)單,數(shù)據(jù)準(zhǔn)備就沒(méi)那么簡(jiǎn)單了

解決了那些問(wèn)題之后,我們需要談?wù)剶?shù)據(jù)。事實(shí)證明,微調(diào)模型并不是最難的部分,難的是準(zhǔn)備和清理數(shù)據(jù)集,以確保模型能按你的期望工作。

那么,你從哪里獲取用于微調(diào)模型的數(shù)據(jù)呢?嗯,對(duì)于像電子郵件助手或客戶(hù)服務(wù)聊天機(jī)器人這樣的應(yīng)用,你其實(shí)不需要找得太遠(yuǎn)。只需打開(kāi)你電子郵件中的“已發(fā)送”文件夾,就能找到一個(gè)不錯(cuò)的起點(diǎn)來(lái)尋找有機(jī)數(shù)據(jù)。如果你在使用像Continue這樣的本地聊天助手,它可能會(huì)自動(dòng)生成可用于微調(diào)模型的訓(xùn)練數(shù)據(jù)。

雖然高質(zhì)量的有機(jī)數(shù)據(jù)是理想之選,但它可能無(wú)法涵蓋你可能遇到的所有場(chǎng)景。例如,假設(shè)你希望模型生成回復(fù),將收到的電子郵件的發(fā)送者引導(dǎo)到另一個(gè)部門(mén)或團(tuán)隊(duì)。如果這種情況只是偶爾發(fā)生,你可能沒(méi)有足夠的有機(jī)數(shù)據(jù)來(lái)進(jìn)行訓(xùn)練。

這時(shí),使用大型語(yǔ)言模型(LLMs)生成合成數(shù)據(jù)或部分合成數(shù)據(jù)就派上了用場(chǎng)。這樣做相當(dāng)直接,只需將幾個(gè)示例輸入模型,并要求它生成模仿這些示例的新數(shù)據(jù)。你可能需要不斷調(diào)整提示,直到找到合適的內(nèi)容。

你可以對(duì)輸入和輸出都這樣做,或者生成輸入并手動(dòng)寫(xiě)出對(duì)應(yīng)的回復(fù)。在我們的測(cè)試中,我們發(fā)現(xiàn)合成數(shù)據(jù)通常缺乏細(xì)微差別,半合成數(shù)據(jù)效果良好,而完全有機(jī)數(shù)據(jù)的效果最佳。

無(wú)論你是使用有機(jī)數(shù)據(jù)還是合成數(shù)據(jù)來(lái)生成數(shù)據(jù)集,你都需要花時(shí)間清理數(shù)據(jù)集,刪除個(gè)人信息或不良樣本等內(nèi)容。例如,如果你正在為客戶(hù)服務(wù)或支持微調(diào)模型,你可能想從數(shù)據(jù)中刪除代理或用戶(hù)的姓名、電話號(hào)碼和其他信息。

雖然微調(diào)對(duì)于改變模型的行為最有幫助,但它仍然會(huì)捕捉到數(shù)據(jù)集中始終出現(xiàn)的細(xì)節(jié),如姓名。

一旦你收集好了數(shù)據(jù)——其實(shí)并不需要太多:甚至100個(gè)樣本可能就足以以明顯的方式改變模型的行為——你就需要以模型能夠理解的方式對(duì)其進(jìn)行格式化。有很多方法可以做到這一點(diǎn),但就我們的目的而言,我們發(fā)現(xiàn)使用Alpaca數(shù)據(jù)格式的JSON模板效果相當(dāng)不錯(cuò)。

4.微調(diào)容易,數(shù)據(jù)準(zhǔn)備難

以上內(nèi)容準(zhǔn)備好后,我們需要談?wù)剶?shù)據(jù)。事實(shí)證明,微調(diào)模型并不是最難的部分,真正的難點(diǎn)在于準(zhǔn)備和清理數(shù)據(jù)集,使模型能夠真正按照你的意圖運(yùn)行。

那么,你要從哪里獲取微調(diào)模型的數(shù)據(jù)呢?對(duì)于電子郵件助手或客服聊天機(jī)器人之類(lèi)的應(yīng)用,數(shù)據(jù)來(lái)源并不難找。簡(jiǎn)單地查看你的電子郵件“已發(fā)送”文件夾,就能為獲取自然數(shù)據(jù)提供一個(gè)不錯(cuò)的起點(diǎn)。如果你使用的是本地聊天助手,如Continue,它可能會(huì)自動(dòng)生成可用于微調(diào)模型的訓(xùn)練數(shù)據(jù)。

如果寫(xiě)代碼注釋讓你頭疼,你也可以讓AI來(lái)代勞。只要記得在提交代碼前查看一下注釋內(nèi)容。

當(dāng)你在家就能創(chuàng)建屬于自己的AI代碼助手,誰(shuí)還需要GitHub Copilot呢?

雖然高質(zhì)量的自然數(shù)據(jù)是理想選擇,但它可能無(wú)法覆蓋所有可能遇到的場(chǎng)景。例如,如果你希望模型生成的郵件回復(fù)能夠?qū)l(fā)件人重定向至不同的部門(mén)或團(tuán)隊(duì),而這種情況偶爾才發(fā)生,那么可能沒(méi)有足夠的自然數(shù)據(jù)來(lái)訓(xùn)練模型。

這時(shí),使用LLM生成合成數(shù)據(jù)或部分合成數(shù)據(jù)會(huì)非常有用。操作步驟相對(duì)簡(jiǎn)單:你可以向模型提供一些示例,然后讓它生成模擬這些示例的新數(shù)據(jù)。你可能需要調(diào)整提示,直到生成出符合需求的數(shù)據(jù)。

你可以同時(shí)為輸入和輸出生成數(shù)據(jù),也可以只生成輸入,自己編寫(xiě)相應(yīng)的輸出。在我們的測(cè)試中發(fā)現(xiàn),完全合成的數(shù)據(jù)通常缺乏細(xì)微之處,而半合成數(shù)據(jù)效果較好,完全自然的數(shù)據(jù)效果最佳。

無(wú)論是用自然數(shù)據(jù)還是合成數(shù)據(jù)生成數(shù)據(jù)集,你都需要花時(shí)間清理數(shù)據(jù)集,去除個(gè)人身份信息或無(wú)效樣本。例如,如果你在微調(diào)一個(gè)客戶(hù)服務(wù)或支持類(lèi)的模型,可能需要?jiǎng)h除數(shù)據(jù)中的代理人或用戶(hù)的姓名、號(hào)碼及其他信息。

雖然微調(diào)主要用于改變模型的行為,但模型仍然會(huì)受到數(shù)據(jù)集中一致出現(xiàn)的細(xì)節(jié)(如名稱(chēng))的影響。

一旦數(shù)據(jù)準(zhǔn)備好了,其實(shí)不需要很多數(shù)據(jù):即便是100個(gè)樣本也可能足以顯著改變模型的行為。接下來(lái),你需要將數(shù)據(jù)格式化,使模型能夠理解。對(duì)于我們的目的,我們發(fā)現(xiàn)這種基于Alpaca數(shù)據(jù)格式的JSON模板效果很好:

[
    {
      "instruction": "generate an appropriate response to this chat message",
      "input": "I'm having trouble getting Product X to work properly.",
      "output": "Can you tell me more about what isn't working?"
    },
...
]

5.設(shè)置Axolotl

市面上有許多用于微調(diào)LLM的框架,如Unsloth和Hugging Face的Transformers Trainer。不過(guò)在本次動(dòng)手操作中,我們將使用Axolotl。

該開(kāi)源項(xiàng)目旨在抽象出微調(diào)流行語(yǔ)言模型的復(fù)雜性,并支持多種不同的訓(xùn)練技術(shù)。因此,如果你在工作站或游戲PC上用QLoRA開(kāi)始微調(diào),之后想要在云端進(jìn)行完整微調(diào),可以輕松切換。

Axolotl的另一大優(yōu)勢(shì)是提供了大量用于微調(diào)流行LLM的模板庫(kù),因此你不必從頭開(kāi)始摸索針對(duì)特定模型或數(shù)據(jù)集需要的超參數(shù)。

6.準(zhǔn)備條件

一塊至少有16GB顯存的GPU。任何較新的Nvidia GPU都可以。對(duì)于AMD用戶(hù),建議使用AMD Radeon RX 7900或更高型號(hào)。我們測(cè)試了RTX 3090 TI 24GB、RTX 6000 Ada Generation 48GB、AMD Radeon RX 7900 XT 20GB和Radeon Pro W7900 48GB。

- 在本指南中,我們會(huì)盡量保持簡(jiǎn)單,使用Ubuntu Desktop 24.04。

- 你的顯卡所需的最新GPU驅(qū)動(dòng)和CUDA(Nvidia)或ROCm(AMD)二進(jìn)制文件。如果是第一次設(shè)置這些,可能會(huì)有些棘手,因此我們會(huì)在Ubuntu 24.04上詳細(xì)說(shuō)明配置步驟。

- 假設(shè)你對(duì)Linux系統(tǒng)的命令行操作較為熟悉。以下操作說(shuō)明涉及在此環(huán)境中使用終端運(yùn)行命令。

由于Nvidia和AMD顯卡的設(shè)置略有不同,注意區(qū)分。更多內(nèi)容。會(huì)在下一篇文章中介紹。

想了解更多AIGC的內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO AI.x社區(qū)

http://m.ekrvqnd.cn/aigc/

責(zé)任編輯:武曉燕 來(lái)源: 51CTO技術(shù)棧
相關(guān)推薦

2022-04-08 14:47:18

物聯(lián)網(wǎng)

2018-10-19 09:30:57

SSHSFTPLinux

2024-06-06 08:25:30

2024-11-27 14:00:00

模型訓(xùn)練

2019-06-04 13:00:34

2013-11-21 11:03:29

Nginx性能優(yōu)化

2025-02-14 08:18:33

2025-03-17 08:00:00

2021-08-04 10:40:39

無(wú)人駕駛自動(dòng)駕駛人工智能

2025-05-08 05:00:00

2024-01-24 13:37:36

大型語(yǔ)言模型人工智能

2024-04-18 10:39:57

2023-10-07 10:41:54

語(yǔ)言模型微調(diào)BitFit

2024-11-21 08:22:45

2025-05-20 06:00:00

AI人工智能RAG

2024-06-11 08:21:26

2024-07-22 08:17:00

模型性能

2024-06-26 09:00:00

2015-08-31 10:03:05

Facebook高效工作

2021-01-25 13:52:08

SOC/SIEM/安全
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 成人免费av | 日韩美女一区二区三区在线观看 | 国产一区精品在线 | 国产精品91久久久久久 | 天堂va在线 | 国产成人免费视频 | 希岛爱理在线 | 97成人免费 | 久久国产精品一区 | 人人爽日日躁夜夜躁尤物 | 欧美一级做a爰片免费视频 国产美女特级嫩嫩嫩bbb片 | 97国产精品 | 青青草国产在线观看 | 日韩中文字幕网 | 亚洲乱码一区二区三区在线观看 | 国产区免费视频 | 天堂av免费观看 | 久久精品91久久久久久再现 | 日韩欧美中文字幕在线观看 | 91看片网| 欧美偷偷操 | 91精品国产一区二区三区 | 福利社午夜影院 | 日韩中字幕 | 国产精品永久免费观看 | 国产精品久久久久久久久免费丝袜 | 日韩一级精品视频在线观看 | 九九伊人sl水蜜桃色推荐 | 欧美精三区欧美精三区 | 毛片免费观看 | 亚洲视频中文 | 夜夜骑首页 | 亚洲精品久久久久久下一站 | 懂色av色香蕉一区二区蜜桃 | 国产精品久久久久久模特 | 亚洲国产精品区 | 日本三级网 | 欧美a区 | 国产精品久久久久久久久久免费看 | av中文在线| 亚洲欧美成人在线 |