最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【官方教程】ChatGLM-6B 微調(diào):P-Tuning,LoRA,F(xiàn)ull p

2023-06-02 17:33 作者:層林盡染  | 我要投稿

省流:我用ChatGPT生成了本視頻的分點摘要:

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

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

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

4. Finetune過程中,介紹了Mixed Precision和ZeRO優(yōu)化器等基礎知識,以及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)可以提高模型訓練效率,節(jié)約顯存,但可能會丟失精度。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

43. LoRa方法和應用。

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

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

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

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

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

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

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

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

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

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

54. 參考了前文提到的chinese alpaca的數(shù)據(jù),構建了相應的數(shù)據(jù)集,進行了訓練。

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

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

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

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

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

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

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

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

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

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

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

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

67. 訓練過程中的關鍵點包括pre-sequence length和參數(shù)大小,應根據(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. 在構建問答機器人中應加強retrieval模塊,以提高準確率。

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

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

74. 訓練模型做混淆解密需要大量相關訓練數(shù)據(jù),且加入這些數(shù)據(jù)可能會降低機器人的對話能力。

【官方教程】ChatGLM-6B 微調(diào):P-Tuning,LoRA,F(xiàn)ull p的評論 (共 條)

分享到微博請遵守國家法律
沂水县| 香格里拉县| 英德市| 常山县| 久治县| 汾阳市| 海丰县| 兰西县| 启东市| 台江县| 桃园市| 竹北市| 西峡县| 锡林浩特市| 绥江县| 揭西县| 当阳市| 疏附县| 富源县| 天祝| 达州市| 池州市| 台东市| 砀山县| 高清| 固原市| 志丹县| 斗六市| 甘孜| 军事| 隆林| 徐水县| 广灵县| 读书| 丹凤县| 定州市| 潮州市| 密山市| 新野县| 威远县| 开封市|