Chinese-LLaMA-Alpaca技術報告

EFFICIENT AND EFFECTIVE TEXT ENCODING FOR CHINESE LL AMA AND ALPACA

https://arxiv.org/pdf/2304.08177v1.pdf

https://github.com/ymcui/Chinese-LLaMA-Alpaca

Part1介紹

  • 我們通過在原有的LLaMA詞彙中增加20,000箇中文符號來提高中文編碼和解碼的效率,並提高LLaMA的中文理解能力。
  • 我們採用低秩適應(LoRA)的方法來有效地訓練和部署中國的LLaMA和Alpaca模型,使研究人員能夠在不產生過多計算成本的情況下使用這些模型。
  • 我們評估了中國羊駝7B和13B模型在各種自然語言理解(NLU)和自然語言生成( NLG)任務中的表現,表明在中文語言任務中比原來的LLaMA對應模型有明顯的改進。
  • 我們公開了我們的研究資源和結果,促進了NLP社區的進一步研究和合作,並鼓勵將LLaMA和Alpaca模型改編爲其他語言。

Part2CHINESE LLAMA

針對於中文而言,LLaMA存在的問題:

  • LLaMA標記器的原始詞彙中只有不到一千個中文字符。儘管LLaMA標記器通過回退到字節來支持所有的中文字符,但這種回退策略大大增加了序列的長度,降低了中文文本的處理效率。
  • 字節令牌並不是專門用來表示漢字的,因爲它們也被用來表示其他UTF-8令牌,這使得字節令牌很難學習漢字的語義。

爲了解決這些問題,我們建議用額外的中文標記來擴展LLaMA標記器,併爲新的標記器調整模型(Yang等人,2022):

  • 爲了加強標記器對中文文本的支持,我們首先用SentencePiece(Kudo & Richardson, 2018)在中文語料庫上訓練一箇中文標記器,使用的詞彙量爲20,000。然後,我們通 過組合它們的詞彙,將中文標記器合併到原始的LLaMA標記器中。最終,我們得到了 一個合併的標記器,我們稱之爲中文LLaMA標記器,其詞彙量爲49,953。
  • 爲了適應中文LLaMA標記器的模型,我們將詞嵌入和語言模型頭的大小從形狀V×H調整爲V′×H,其中V=32,000代表原始詞彙量,V′=49,953是中文LLaMA標記器的詞彙量。新的行被附加到原始嵌入矩陣的末尾,以確保 原始詞彙中的標記的嵌入仍然不受影響。

我們的初步實驗表明,中文LLaMA標記器產生的標記數量大約是原始LLaMA標記器的一半。表1顯示了原始LLaMA標記器和我們的中文LLaMA標記器之間的比較實例。正如我們所看到的,使用中文LLaMA標記器大大減少了與原始標記器相比的編碼長度。在固定的語境長度下,該模型可以容納大約兩倍的信息,而且生成速度比原來的LLaMA標記器快兩倍。這證明了我們提出的方法在提高LLaMA模型的中文理解和生成能力方面的有效性。

在完成上述適應步驟後,我們在標準的休閒語言建模(CLM)任務中使用中文-LLaMA標記器對中文-LLaMA模型進行預訓練。

Part3CHINESE ALPACA

在獲得預訓練的中文LLaMA模型後,我們按照斯坦福大學Al-paca(Taori等人,2023)中使用的方法,應用自我訓練的微調來訓練指令跟隨模型。

每個例子由一條指令和一個輸出組成。我們將指令輸入模型,並提示模型自動生成輸出。這個過程類似於普通的語言建模任務。我們採用以下來自斯坦福大學Alpaca的提示模板,用於自我指導的微調,這也是在推理過程中使用的:

我們的方法和Stanford Alpaca的一個關鍵區別是,我們只使用爲沒有輸入字段的例子設計的提示模板,而Stanford Alpaca爲有輸入字段和沒有輸入字段的例子分別採用了兩個模板。如果例子中包含一個非空的輸入字段,我們用一個"/n "將指令和輸入連接起來,形成新的指令。注意,Alpaca模型有一個額外的填充標記,導致詞彙量爲49,954。

Part4用LORA進行參數有效的微調

低等級適應(LoRA)(Hu等人,2021)是一種參數高效的訓練方法,它在引入可訓練的等級分解矩陣的同時保留了預訓練的模型權重。這種方法大大減少了可訓練參數的數量。LoRA的一般公式如下,其中r是預先確定的等級,d是隱藏的大小,A和B是分解的可訓練矩陣:

爲了在遵守嚴格預算的情況下實現參數有效的訓練,我們在所有的實驗中都將LoRA應用於chinese-LalaMA/Alpaca模型,包括預訓練和微調階段。我們主要將LoRA適配器納入注意力模塊的權重中,在某些情況下,還包括額外的MLP層。進一步的細節,請參考下一節和表2。

Part5實驗設置

1用於預訓練和微調的實驗設置

7B版本

預訓練:我們用原始的LLaMA權重初始化中文-LLaMA模型,並在一般的中文語料上進行預 訓練,與中文BERT-wwm(Cui等人,2021)、MacBERT(Cui等人,2020)、LERT(Cui 等人,2022)等使用的語料一致,形成了一個20GB的文本語料。預訓練過程包括兩個階段:

  • 第一階段:我們在模型內固定transformer編碼器的參數,只訓練嵌入,適應新增加的中文詞向量,同時儘量減少對原始模型的干擾。
  • 第二階段:我們將LoRA權重(適配器)添加到注意力機制中,並訓練嵌入、LM頭和新增加的LoRA參數。

指令微調:在得到預訓練的模型後,我們根據第3章對其進行微調。我們還使用LoRA進行有效的微調,通過在MLP層添加LoRA適配器來增加可訓練參數的數量。我們利用大約200萬個數據點,包括翻譯(Xu,2019)、pCLUE3 , Stanford Alpaca,以及爬行的SFT數據,用於調整7B模型。

對於抓取的數據,我們採用了Taori等人(2023)使用的從ChatGPT(gpt-3.5-turboAPI)中自動獲取數據的自我指導(Wang等人,2022)方法。模板和代碼細節可在GitHub上找到。超參數列於表2。有關微調數據的詳細信息在表3中提供。

13B版本

預訓練:13B模型的預訓練過程與7B模型的預訓練過程基本相同,只是我們跳過了預訓練的 第1階段。我們直接將LoRA應用於注意力和MLPs的訓練,同時將嵌入和LM頭設置爲可訓練。

指令微調:LoRA設置和可訓練參數與預訓練階段保持一致。我們在13B模型的微調中使用了額外的100萬個爬行的自我指導的數據點,使得13B模型的總數據量爲3M。表2中列出了超參數。

2解碼的設置

LLMs的解碼過程在決定生成文本的質量和多樣性方面起着關鍵作用。在我們的實驗中,我們使用了以下解碼超參數:

  • 語境大小:我們將上下文大小設置爲2048,這決定了模型在生成文本時可以同時考慮的最大數量的標記。
  • 最大的序列長度:我們將生成的序列長度限制在512個標記,以確保輸出結果保持重點,並與輸入提示相關。
  • 溫度:我們將溫度設置爲0.2,控制採樣過程的隨機性。較低的值使模型產生更集中和確定的輸出,而較高的值則以一致性爲代價增加多樣性。
  • Top-k抽樣:我們使用k=40的Top-k抽樣,這意味着模型在每一步從最有可能的40個標記中選擇其下一個標記,爲生成的文本添加隨機性和多樣性元素。
  • Top-p抽樣:我們還採用了p=0.9的Top-p抽樣,通過考慮集體佔概率質量90%的動態標記集,進一步提高了分歧度。
  • 重複性懲罰:爲了阻止模型生成重複的文本,我們應用了一個係數爲1.3的重複懲罰,懲罰那些已經被選中的標記。

請注意,這些值對於每個測試場景來說可能都不是最佳的。我們沒有對每個任務的這些超參數進行進一步的調整,以保持一個平衡的觀點。

3在CPU上部署

在個人電腦上部署大型語言模型,特別是在CPU上部署,由於其巨大的計算需求,歷來都是一個挑戰。然而,在許多社區努力的幫助下,如llama.cpp(Gerganov,2023),用戶可以有效地將LLM量化爲4位形式,大大減少內存使用和計算需求,使LLM更容易部署在個人電腦上。這也使得與模型的互動更加快速,並有利於本地數據處理。量化LLM並將其部署在個人電腦上,有幾個好處。首先,它幫助用戶保護他們的數據隱私,確保敏感信息留在他們的本地環境中,而不是被傳輸到外部服務器。其次,它通過使計算資源有限的用戶更容易接觸到LLMs,實現了對它們的民主化訪問。最後,它促進了利用本地LLM部署的新應用和研究方向的發展。總的來說,使用llama.cpp(或類似的)在個人電腦上部署LLM的能力,爲在各種領域中更多地利用LLM和關注隱私鋪平了道路。在下面的章節中,我們將使用4位的圓對近(RTN)(Yao等人,2022;Dettmers等人,2022)量化的中國羊駝進行評估,從用戶的角度來看,這比面向研究的觀點更現實。作爲一個善意的提醒,4位量化的模型一般比FP16或FP32模型的表現要差。

4評價和任務設置

評估文本生成任務的性能可能具有挑戰性,因爲它們的形式有很大的不同,這與自然語言理解任務(如文本分類和提取式機器閱讀理解)不同。繼以前利用GPT-4作爲評分方法的工作之後,我們也採用GPT-4爲每個樣本提供一個總分(10分制),這比人工評估更有效。然而,GPT-4可能並不總是提供準確的分數,所以我們對其評分進行人工檢查,必要時進行調整。人工檢查確保了評分的一致性,並反映了被評估模型的真實性能。我們使用以下提示模板對系統的輸出進行評分:

通過採用GPT-4作爲評分方法,結合人工檢查,我們建立了一個可靠的評估框架,有效地衡量了我們的中國羊駝模型在一系列自然語言理解和生成任務中的表現。

我們的評估集旨在對中國羊駝模型在廣泛的自然語言理解和生成任務中提供全面的評估。該評估集由160個樣本組成,涵蓋10個不同的任務,包括問題回答、推理、文學、娛樂、翻譯、多輪對話、編碼和倫理等。一項具體任務的總分是通過將該任務中所有樣本的分數相加,並將總分歸一化爲100分來計算的。這種方法確保了評價集反映了模型在各種任務中的能力,爲其性能提供了一個平衡而有力的衡量。

Part6結果

在這一節中,我們介紹並分析了我們用4位量化的中國Alpaca-7B和Alpaca-13B模型進行實驗的結果,如表4所示。評估是基於GPT-4在10個不同的NLP任務中的評分結果,共包括160個樣本。值得注意的是,所提出的分數只可以相互比較,而不能與其他模型比較,這就需要對系統重新評分。

中國的Alpaca-7B和Alpaca-13B模型的性能都顯示出比原來的LLaMA模型有明顯的提高。中國的Alpaca-13B模型的性能一直優於7B變體,突出了增加模型容量的好處。

對於問題回答任務,中國的Alpaca-13B獲得了77分,而7B模型爲53分。在開放式問答中也可以看到類似的改進,13B和7B模型的得分分別爲73和64。數字推理顯示出更大的改進,13B模型的得分是50,而7B模型的得分是23。

在詩歌、文學、哲學、音樂、體育和娛樂等領域,13B模型的表現繼續優於7B模型,其得分分別爲54和65,而7B模型爲31和36。在涉及信件和文章、翻譯和多輪對話的任務中,性能差距仍然很大,13B模型一直取得較高的分數。有趣的是,我們觀察到,即使我們沒有使用任何多輪對話數據來調整系統,中國羊駝仍然有能力跟蹤對話歷史,並以連續的方式遵循用戶指令。

編碼任務表現出明顯的改進,中國的Alpaca-13B模型得到49分,而7B模型得到27分。最顯著的性能差異可以在倫理學任務中觀察到,13B模型獲得了100分的滿分,而7B模型的得分是50分,這表明在拒絕任何不道德的用戶輸入方面表現出色。

總之,實驗結果表明,中國的Alpaca-7B和Alpaca-13B模型都比原來的LLaMA模型有明顯的改進,其中13B模型在所有任務中的表現一直優於7B模型。這強調了我們的方法在提高LLaMA和Alpaca模型的中文理解和生成能力方面的有效性。

Part7結論

在這份技術報告中,我們提出了一種方法來提高LLaMA模型的中文理解和生成能力。認識到原來的LLaMA中文詞彙的侷限性,我們通過加入2萬個額外的中文符號來擴展它,極大地提高了它對中文的編碼效率。在中文LLaMA的基礎上,我們用指令數據進行了監督性的微調,從而開發出了中文羊駝模型,它表現出了更好的指令跟隨能力。

爲了有效地評估我們的模型,我們在10種不同的任務類型中註釋了160個樣本,並使用GPT-4進行評估。我們的實驗表明,所提出的模型在中文理解和生成任務中明顯優於原LLaMA,與7B變體相比,13B變體一直取得更大的改進。

展望未來,我們計劃探索從人類反饋中強化學習(RLHF)或從人工智能指導的反饋中再強化學習(RLAIF),以進一步使模型的輸出與人類的偏好一致。此外,我們打算採用更先進和有效的量化方法,如GPTQ(Frantar等人,2022)等。此外,我們還打算研究LoRA的替代方法,以便更有效地對大型語言模型進行預訓練和微調,最終提高它們在中文NLP社區各種任務中的性能和適用性。

限制條件 雖然這個項目成功地加強了對LLaMA和Alpaca模型的中文理解和生成能力,但必須承認有幾個侷限性:

  • 有害的和不可預知的內容:我們的結果表明,13B版本比7B版本有更好的能力來拒絕不道德的查詢。然而,這些模型仍然可能產生有害的或與人類偏好和價值觀不一致的內容。這個問題可能來自於訓練數據中存在的偏見,或者模型在某些情況下無法辨別適當的輸出。
  • 訓練不充分:由於計算能力和數據可用性的限制,模型的訓練可能不足以達到最佳性能。因此,模型的中文理解能力仍有改進的餘地。
  • 缺少穩健性:在某些情況下,模型可能會表現出脆性,在面對對抗性輸入或罕見的語 言現象時產生不一致或無意義的輸出。
  • 可擴展性和效率:儘管我們應用了LoRA和4位量化,使模型更容易被更多的人接受, 但當與原來的LLaMA相結合時,模型的大尺寸和複雜性會導致部署上的困難,特別是 對於計算資源有限的用戶。這個問題可能會阻礙這些模型在各種應用中的可及性和廣泛採用。

未來的工作應該解決這些侷限性,以進一步提高模型的能力,使其在中文NLP社區的更廣泛的應用中更強大、更易獲得和更有效。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章