從頭開始寫大語言模型的程式碼,
是最好理解大語言模型的機制與限制的方風。
從頭開始寫大語言模型的程式碼,可以幫助我們得到預訓練與微調整開源大語言模型架構所需要的知識,並應用到特定領域的數據及以及任務。
客製化大語言模型一般來說比起通用大語言模型有更好的表現。
一個具體的例子是BloombergGPT是專門於金融的大語言模型。
其他也有專門做醫療問答的大語言模型。
創造一個大語言模型包含「預訓練」與「微調整」兩個階段。
預訓練階段是在大量多種的數據集訓練大語言模型去開發語言理解。
這種預訓練模型作為基礎資源,可進行近一步的微調整。
微調整是在一個更狹義的數據集,對特定的任務與領域做額外改良的過程。
創造大語言模型的第一步,是在巨大的文本語料庫來訓練。
這種文本又稱為「原始文本 (Raw Text)」,表達數據只是一般的文本,沒有任何標籤的資訊。
大語言模型的第一訓練階段是「預訓練」,構造基礎模型,例如GPT-3模型。
基礎模型能夠做「文本補齊 Text Completion」,也就是將寫到一半的句子補成完整句子的能力。
大語言模型還有有限的「小樣本 Few-Shot」能力,也就是使用少量的樣本,大語言模型就能學習做新的任務。
這個能力的秘密,就在對不同的任務使用不同的Transformers。
「微調整 Finetuning」則是將預訓練的大語言模型進一步使用有標籤的數據來訓練。
在微調整大語言模型的任務中,兩類最受歡迎的是「指令微調 Instruction-Finetuning」與為了分類任務而做微調整。
在指令微調任務中,有貼標籤的數據集有一對對的指令與答案,例如給一段文本以及正確翻譯的文本。
在分類微調中,有貼標籤的數據集是一對對文本與類別標籤,例如一封郵件與垃圾信/非垃圾信的標籤。