亚洲中文字幕无码日韩精品,亚洲一区制服无码中字,亚洲精品第一国产综合精品99 ,一本大道中文日本香蕉

微立頂科技

新聞資訊

創(chuàng)新 服務(wù) 價值

  ChatGLM-6B 微調(diào):P-Tuning,LoRA,F(xiàn)ull parameter

發(fā)布日期:2023/6/20 23:19:57      瀏覽量:

本視頻的分點摘要:

1. 本報告將從頭到尾手把手教大家如何翻譯ChatGLM6B模型。

2. GLM模型是一個語言模型,其預(yù)訓(xùn)練過程與GPT有所不同。

3. GLM模型包括GLM、GLM 130B和GLM 6B等不同規(guī)模的模型,需要不同算力來實現(xiàn)高效微調(diào)或全量微調(diào)。

4. Finetune過程中,介紹了Mixed Precision和ZeRO優(yōu)化器等基礎(chǔ)知識,以及P tuning和Lora等高效微調(diào)方法。

5. 借助Gradio,可以將模型前端部署,實現(xiàn)與用戶的交互。

6. 使用Finetune方法,4bit量化的情況下可以用7GB,否則需要十幾個GB,全量微調(diào)的話需要50多個GB,使用4張A100可以跑起來。

7. 借助NVIDIA Pytorch,可在Linux機器上起一個Torch container,方便快捷地進行環(huán)境配置。

8. 下載checkpoint可以參考hugging face view,需首先下載git-lfs并按照操作系統(tǒng)進行操作。手動下載也可通過github repo內(nèi)的方法來實現(xiàn)。

9. 下載checkpoint時需注意鏡像的源問題,建議使用三條命令來快速放遠。若從hugging face下載,則需注意LFS運行過程沒有回顯的問題。

10. 手動下載checkpoint文件時,推薦使用清華cloud downloader工具,可以快速下載。

11. 下載完checkpoint后,需要克隆官方的源代碼并手動安裝適合的torch,然后install requirements。

12. 在web demo和CL demo中,需要把tokenizer和model的相對路徑改成自己的路徑才能運行。

13. 可以通過量化支持來減小模型的顯存占用。

14. 在CL demo中,可以通過指定顯存大小來避免顯存不足的情況。

15. 可以使用cli或webdemo進行推理,簡化前端開發(fā)。

16. 通過使用半精度浮點數(shù)(如FP16或Brain Flow16)可以提高模型訓(xùn)練效率,節(jié)約顯存,但可能會丟失精度。

17. 在訓(xùn)練中將參數(shù)、Momentum和Variance這三個參數(shù)都用高精度來表示,以避免出現(xiàn)非常小的gradients 而影響模型訓(xùn)練。

18. Gradio是一種非常適合深度學(xué)習模型展示和推理的前后端框架。

19. 在使用demo時需要注意路徑修改和顯存不足的解決方法。

20. 使用半精度浮點數(shù)可以提升模型訓(xùn)練效率,但需要注意Dynamic Loss Scaling技術(shù),避免訓(xùn)練過程中出現(xiàn)下溢情況。

21. 推薦使用Gradio框架進行前端開發(fā)和模型推理,需要注意demo使用時的細節(jié)。

22. Zero Redundancy是一種可以幫助省略顯存的技術(shù),結(jié)合數(shù)據(jù)并行和模型并行可以有效提高訓(xùn)練效率。

23. Mono parallel技術(shù)可以實現(xiàn)模型并行,在不同的GPUs上分別運行不同分塊的計算,并在訓(xùn)練的過程中進行數(shù)據(jù)交換。

24. 拆分模型到多張卡上可能會導(dǎo)致慢速和內(nèi)存問題,不建議用CPU訓(xùn)練。

25. Model parallel的通信太慢,而data parallel有較大冗余,Zero Redundancy 提出了拆分optimizer state的解決方案。

26. Pgminv2 是一種高效微調(diào)方法,通過在每層添加 learnable parameter 來節(jié)約GPU memory和訓(xùn)練時間,且具有較好的性能。

27. Pgminv2 在大型模型上的表現(xiàn)不錯。

28. 前文介紹了Pgminv2的高效微調(diào)方法和Zero Redundancy的optimizer state拆分方案,用于多卡訓(xùn)練中的內(nèi)存和通信效率問題。

29. 本段內(nèi)容是關(guān)于一個廣告數(shù)據(jù)集的例子,用于描述模型將一組屬性轉(zhuǎn)化為易于閱讀的廣告詞的過程。

30. 在運行這個例子時,需要下載并安裝相關(guān)依賴,可以設(shè)置quantization bet參數(shù)以控制量化程度。

31. 問題包括災(zāi)難性遺忘和過擬合,可以通過各種數(shù)據(jù)增強和減少訓(xùn)練epoch等方式緩解。

32. 最后,可以使用已經(jīng)訓(xùn)練好的模型的checkpoint文件進行評估,設(shè)置do predict參數(shù)指示訓(xùn)練還是推理,提供prompt和response列指示訓(xùn)練數(shù)據(jù)中的相關(guān)信息。

33. 可以通過override cache來節(jié)約debug時間;

34. 在evaluate的時候,可以開啟output directory來保存結(jié)果;

35. 可以通過max source/target length來限制token的長度并進行padding;

36. 需要使用accumulation state來模擬大的batch size來進行高效微調(diào);

37. evaluate函數(shù)可以增加prompt輸出讓結(jié)果更明確。

38. LoRa放在后面,使用另外一個倉庫zeroNLP,節(jié)省倉庫時間。

39. 使用full parameter時要用dbscript實現(xiàn)zero,指定模型名稱或路徑,使用4張卡進行訓(xùn)練。

40. 當使用dbc時,不要使用cuda-available-devices做設(shè)備排序,要使用include參數(shù)。

41. LoRa方法是加入一個d矩陣來模擬fine-tuning的效果,省去復(fù)雜計算。

42. LoRa在GPT上表現(xiàn)佳,在中國語料庫chineseopaca上也有應(yīng)用,詞表已被刪減以節(jié)約顯存。

43. LoRa方法和應(yīng)用。

44. china6166更新情況:刪除icetk依賴,并在早期版本的基礎(chǔ)上添加支持LoRa和avch數(shù)據(jù)集的修改。

45. 翻譯使用無外乎就是需要一個prompt,模型識別prompt模式,輸出response。

46. 能夠仿造以上流程處理不同的數(shù)據(jù)集。

47. 對于訓(xùn)練新任務(wù),數(shù)據(jù)量的要求會根據(jù)任務(wù)不同而有所不同,需要投入足夠的數(shù)據(jù)才能學(xué)會。

48. P-tuning V2和Lower兩種翻譯方式都可以嘗試,使用哪種方式要看實際情況。

49. 原始能力丟失不一定與P-tuning和Lower有關(guān),F(xiàn)ine-tune過程中需要保持原始能力可以用預(yù)設(shè)的數(shù)據(jù)集進行微調(diào)。

50. 全量微調(diào)需要的配置較少,只需要改好模型路徑和數(shù)據(jù)集位置即可。

51. 微調(diào)之后,Out-of-Distribution數(shù)據(jù)可能會回答不準確,如果出現(xiàn)卡死的情況可以設(shè)置Max Length或Max New Token。

52. 提供了關(guān)于訓(xùn)練新任務(wù)、翻譯方式選擇、原始能力丟失、全量微調(diào)配置和微調(diào)后回答出現(xiàn)錯誤等問題的具體建議和解決方案。

53. 介紹了一些成功案例和應(yīng)對方法,如0nlp和Lora的使用。

54. 參考了前文提到的chinese alpaca的數(shù)據(jù),構(gòu)建了相應(yīng)的數(shù)據(jù)集,進行了訓(xùn)練。

55. 在訓(xùn)練和數(shù)據(jù)處理過程中,需要注意代碼修改和數(shù)據(jù)格式的處理。

56. 根據(jù)微調(diào)訓(xùn)練的具體情況,精細調(diào)整模型參數(shù),避免出現(xiàn)過擬合和性能不佳的問題。

57. 在微調(diào)時可以使用高效微調(diào)和增加更多場景下的對話數(shù)據(jù)提升模型性能。

58. 訓(xùn)練時需要注意修改代碼和處理數(shù)據(jù)格式,微調(diào)時需要精細調(diào)整避免性能不佳。

59. 在訓(xùn)練過程中,可以調(diào)整max step以減少訓(xùn)練時間,同時需要注意處理集大小與訓(xùn)練步數(shù)的關(guān)系。

60. 在微調(diào)過程中,通過使用統(tǒng)一的prompt和添加前置prompt來提升模型效果。

61. 在進行分類任務(wù)時,通過增加一個新的head可以實現(xiàn)輸出分類標簽和分類概率。

62. 在構(gòu)建專業(yè)數(shù)據(jù)問答機器人時,需要準備大量的專業(yè)問答數(shù)據(jù),并進行簡單的數(shù)據(jù)增廣和微調(diào)。

63. 對于max target length的設(shè)置,需要考慮硬件需求和截斷的影響,以及使用logic processor等工具來保證穩(wěn)定輸出。

64. 通過減少fine tune step、加入明顯的pattern或prompt等方式,可以緩解fine tune過程中原始能力丟失的問題。

65. 對于不同的任務(wù),需要準備不同量級的數(shù)據(jù),如專業(yè)問答需要大量的對話數(shù)據(jù)。

66. 對于訓(xùn)練有限的問答機器人,建議增加retrieval模塊以提高準確率。

67. 訓(xùn)練過程中的關(guān)鍵點包括pre-sequence length和參數(shù)大小,應(yīng)根據(jù)數(shù)據(jù)集大小進行調(diào)整。

68. 若需要在多個場景中微調(diào)模型,可考慮使用多個channel的GM6b模型。

69. instruction tuning的channelGM6b可根據(jù)具體數(shù)據(jù)集采用經(jīng)典的instruction input,output形式。

70. 建議在知識庫embedding時,將長文檔拆分為多個段落,并將其作為prompt進行信息抽取。

71. 在構(gòu)建問答機器人中應(yīng)加強retrieval模塊,以提高準確率。

72. 根據(jù)數(shù)據(jù)集大小調(diào)整pre-sequence length和參數(shù)大小。

73. 使用多個channel、instruction tuning的channelGM6b和知識庫embedding等方法來提高機器人的表現(xiàn)。

74. 訓(xùn)練模型做混淆解密需要大量相關(guān)訓(xùn)練數(shù)據(jù),且加入這些數(shù)據(jù)可能會降低機器人的對話能力。 作者:層林盡染 https://www.bilibili.com/read/cv24092488?jump_opus=1 出處:bilibili


  業(yè)務(wù)實施流程

需求調(diào)研 →

團隊組建和動員 →

數(shù)據(jù)初始化 →

調(diào)試完善 →

解決方案和選型 →

硬件網(wǎng)絡(luò)部署 →

系統(tǒng)部署試運行 →

系統(tǒng)正式上線 →

合作協(xié)議

系統(tǒng)開發(fā)/整合

制作文檔和員工培訓(xùn)

售后服務(wù)

馬上咨詢: 如果您有業(yè)務(wù)方面的問題或者需求,歡迎您咨詢!我們帶來的不僅僅是技術(shù),還有行業(yè)經(jīng)驗積累。
QQ: 39764417/308460098     Phone: 13 9800 1 9844 / 135 6887 9550     聯(lián)系人:石先生/雷先生