(1)大模型的“7B”是什么意思?
"B"通常代表“Billion”,即十億。因此,當提到7B時,指的是該模型擁有7 billion(70億)個參數。
(2)模型后面標的“instruct”是什么意思?
在基礎模型上進行指令微調后的版本。“instruct”版本的大模型是為了增強模型對指令的理解和執行力,使得用戶可以通過給出明確的指令來引導模型完成特定任務或獲得所需信息。這類模型通常會在包含大量指令-響應對的數據集上進行額外的訓練或微調,以提高其在這類任務上的性能。
(3)大模型量化什么意思?
量化主要涉及到減少模型權重和激活的精度以降低計算復雜度和存儲需求,從而使得模型能夠在資源受限的設備上更高效地運行。量化可以顯著減少模型的大小,并加速推理過程,但需要仔細處理以避免對模型性能產生負面影響。
(4)量化等級是什么意思?
量化等級指的是將浮點數表示的權重和激活值 轉換為低精度數值(如整數)的程度或精細度 。常見的量化等級包括:●?8-bit量化:這是最常用的量化級別之一,將32位浮點數權重壓縮至8位整數,大大減少了模型的存儲需求和計算量,同時保持較高的準確率。
●?4-bit量化:進一步降低精度到4位,能提供更高的壓縮比和更快的推理速度,但可能會影響模型的準確性。
(5)量化方法是什么意思?
量化方法是指實現從高精度到低精度轉換的具體技術。不同的量化方法在如何處理量化誤差、選擇代表值等方面有所不同。一些常見的量化方法包括:●?線性量化:最簡單的量化形式,通過均勻劃分范圍來映射浮點數到整數。
●?非線性量化(如偽量化):使用非均勻的量化間隔,通常在重要區域(如數據分布密集的地方)使用更小的間隔,以更好地保留信息。
(6)啥是Alpaca數據集?
Alpaca 數據集主要用于微調語言模型,使其能夠更好地遵循指令。這個數據集是通過模仿自動生成的指令-響應對創建的。結構:每個樣本通常包括三部分——instruction(指令)、input(輸入,可選)、和output(輸出)。●?instruction 描述了要執行的任務。
●?input 提供了額外的信息或上下文(不是所有樣本都包含這一部分)。
●?output 是對應指令的預期響應。
# 單輪對話
[
{"instruction": "描述一下如何制作一杯拿鐵咖啡。","input": "","output": "制作一杯拿鐵咖啡首先需要準備一份濃縮咖啡,然后在杯子里倒入熱牛奶,并且保證牛奶的量大約是杯子容量的三分之二,最后輕輕地將濃縮咖啡倒在牛奶上面即可。"
}
]
?下面提供一個 alpaca 格式多輪對話的例子,對于單輪對話只需省略 history 列即可。
# 多輪對話
[{"instruction": "今天的天氣怎么樣?","input": "","output": "今天的天氣不錯,是晴天。","history": [["今天會下雨嗎?","今天不會下雨,是個好天氣。"],["今天適合出去玩嗎?","非常適合,空氣質量很好。"]]}
]
(6)BLEU評估指標是什么?怎么算的?
BLEU(Bilingual Evaluation Understudy)是一種用于評估機器翻譯質量的指標,它通過比較機器生成的文本與一個或多個參考譯文之間的相似度來給出評分。BLEU得分范圍從0到1,值越接近1表示機器翻譯的結果越好,但實踐中很少能達到1,除非機器翻譯輸出與參考譯文完全一致。BLEU評估主要基于n-gram的精確度,并且考慮了句子長度的因素。●?N-gram匹配:首先將機器翻譯結果和每個參考譯文都分解為n-gram(連續的n個詞)。然后計算機器翻譯中出現的n-gram在參考譯文中也出現的比例,這被稱為“修改后的n-gram精確度”。通常會計算1-gram、2-gram、3-gram甚至4-gram的精確度。
●?修正的n-gram精確度:為了避免簡單重復高頻詞匯以提高精確度的問題,BLEU使用了一種稱為“clip”的操作。即對于每一個n-gram,如果機器翻譯中的出現次數超過所有參考譯文中該n-gram的最大出現次數,則將其計數裁剪為最大出現次數。
●?BP(Brevity Penalty,簡潔懲罰):為了懲罰過短的翻譯,BLEU引入了簡潔懲罰因子。如果機器翻譯的長度短于所有參考譯文中最短的一個,則BP小于1;否則BP等于1。
●?加權幾何平均:最后,將不同n-gram的精確度結合起來,通常是取它們的加權幾何平均值。標準的BLEU分數是1-gram至4-gram精確度的幾何平均值乘以BP。
假設有一個簡單的例子:
機器翻譯輸出為:“the cat”,
而參考譯文之一是:“the cat sits on the mat”。
●?對于1-gram,“the”和“cat”都在參考譯文中出現,所以1-gram精確度為1。
●?對于2-gram,“the cat”也在參考譯文中出現,因此2-gram精確度也為1。
然而,由于機器翻譯較短,BP將會小于1,從而降低最終的BLEU得分。
BLEU雖然廣泛應用,但它也有局限性,比如不能很好地處理語義準確性問題,以及對較長序列的評價不夠敏感等。BLEU主要關注的是精確率(Precision),即候選文本中出現的n-gram有多少是出現在參考文本中的。它試圖衡量機器生成的文本中有多少部分是正確的或與參考文本相匹配的。
(7)ROUGE評估指標是什么?怎么算的?
ROUGE(Recall-Oriented Understudy for Gisting Evaluation)是一系列用于自動評估文本生成質量的指標,特別是針對摘要生成和機器翻譯任務。它通過比較候選文本(如系統生成的摘要)與一組參考文本(如人工編寫的摘要)之間的相似度來工作。ROUGE關注的是召回率(recall),即參考文本中的信息有多少被候選文本覆蓋了。主要的ROUGE變種
●?ROUGE-N:基于n-gram共現的重疊情況計算得分,衡量候選文本和參考文本之間n-gram的匹配程度。
●?ROUGE-L:利用最長公共子序列(LCS, Longest Common Subsequence)來計算得分,考慮到詞序的重要性。
●?ROUGE-S:基于skip-bigram共現的重疊情況計算得分,其中skip-bigram允許跳過某些詞匯但仍保持其余詞匯的順序不變。這種方式更適合捕捉句子結構上的相似性。
(8)什么是QLoRA?
QLoRA 是一種結合了量化(Quantization)和低秩適配(Low-Rank Adaptation, LoRA)的技術,簡單說就是在微調的時候對參數做了量化用于高效地微調大型語言模型(LLMs)。這種方法旨在減少計算資源需求并加速推理過程,同時保持較高的性能水平。QLoRA 已被證明可以在顯著減少內存使用的同時保持接近全精度微調的性能。
(9)為什么要做分布式微調訓練?
模型規模 :模型的規模太大,單張顯卡的顯存無法加載全部參數。一般24G顯存,最多加載7B左右參數規模的大模型。因此,需要通過分布式訓練將模型分割到多個計算節點上。計算效率:分布式訓練可以大幅度減少訓練所需時間。
(10)怎么實現大模型的分布式微調的?原理策略?
分布式訓練的原理主要通過三種并行策略來實現:數據并行、模型并行以及流水線并行。●?數據并行(Data Parallelism)
基本概念:在數據并行中,整個模型被復制到每個計算節點上,而訓練數據則被分割成多個小批次,并分配給不同的節點。每個節點獨立地執行前向傳播和反向傳播計算梯度。
同步機制:在完成本地梯度計算后,所有節點需要通過一個全局操作(如AllReduce)來匯總各自的梯度,并同步更新模型參數。這種方式保證了所有節點上的模型副本保持一致。適用場景:適用于可以將數據均勻分割且模型大小適合單個設備內存的情況。
●?模型并行(Model Parallelism)
基本概念:當模型過于龐大無法完全放入單一設備的內存中時,可以采用模型并行的方法。該方法涉及將模型的不同部分放置在不同的設備上,使得每個設備僅需存儲和處理模型的一部分。通信需求:由于模型的不同部分可能需要相互傳遞中間計算結果,因此模型并行通常要求較高的節點間通信帶寬。適用場景:特別適合于超大型模型,例如具有數十億乃至更多參數的語言模型或推薦系統模型。
●?流水線并行(Pipeline Parallelism)
基本概念:流水線并行是一種更復雜的并行策略,它結合了數據并行和模型并行的優點。其核心思想是將模型分為幾個階段,并讓不同的設備負責不同階段的計算。每個批次的數據會依次經過這些階段進行處理。工作流程:為了最大化資源利用率,一種常見的做法是在前一批次的數據仍在后續階段處理的同時,開始對新批次的數據進行初步處理。
適用場景:適用于深度網絡結構,尤其是那些可以通過自然切分的方式劃分為多個相對獨立的階段的情況。