RAG小结
RAG
RAG做知識問答,我們所使用的語料、索引建立方式、訓(xùn)練方式,大致的模型參數(shù),以及滿足以上我們對GPU運算資源的需求。
- 需求總結(jié):
- 以下表格列舉我們實驗配置和論文實驗配置;
- 如果要使用base甚至large版本的預(yù)訓(xùn)練模型和batch128,最好是單服務(wù)器節(jié)點有3塊16G+的gpu;沒有的情況下,可以利用多節(jié)點多GPU并行,需要配置;但單塊gpu能跑的batch還是很有限;
| 模型 | DPR (Albert-small*2) | mT5-small | DPR+mT5 (fix-ctx) |
| 參數(shù) | 5M*2 | 80M | 85M |
| 訓(xùn)練語料 | 問診(11W)+母嬰(2K) 測試1W | 問診(11W)+母嬰(2K) 測試1W | 問診(11W)+母嬰(2K) 測試1W |
| 訓(xùn)練方式 | B-24/S-256/40E | B-16/S-256/30E | B-16/S-256/30E |
| 索引方式 | Faiss(12W/1hour) | 無 | 無 |
| 實際占用GPU | 3gpus*9G/gpu (office0-1080ti) | 2gpus*10G/gpu (office2-2080ti) | 2gpus*11G/gpu (office2-2080ti) |
| 以下為論文使用配置 | |||
| 模型 | DPR (Bert-base-uncased*2) | Bart-large | DPR+Bart (fix-ctx) |
| 參數(shù) | 120M*2 | 400M | 520M |
| 訓(xùn)練語料 | Eng-QA(16W)+Wiki(2KW ) | Eng-S2S預(yù)訓(xùn)練 | QA(16W) |
| 訓(xùn)練方式 | B-128/S-100/40E | B-8000 | B-128/S-100/40E(約) |
| 索引方式 | Faiss(21M/8.5hour) | 無 | 無 |
| 實際占用GPU | 8gpus*32G/gpu | 不少于DPR(約) | 不少于DPR(約) |
注1:fix-ctx指固定context encoder,不做更新
注2:M-百萬,W-萬,K-千;h指hour,B指Batch,S指Seq length,E指Epoch;Eng指English;S2S指Seq2Seq;
注3:我們的其他可用語料近600W–百度百科(146W) & dureader(22W) & web問答(400W) & cmrc2018(1.3W);
注4:“約” 指的是論文沒有明確指出配置具體情況,表格給出的相關(guān)數(shù)據(jù)為綜合推測;
注5:DPR論文提到21M passages建立Faiss索引只需8.5h,使用E5-2698 V4@2.2GHz CPU和512G的內(nèi)存;使用of2 CPU和96G內(nèi)存實測faiss建索引,速度約12W/1h,300W/85h(非線性);查看實測用的Faiss索引代碼和DPR論文索引代碼實現(xiàn)方式,基本一致;估計是硬件差別;
注6:數(shù)據(jù)問題–DPR論文訓(xùn)練數(shù)據(jù)answer有對應(yīng)的源context/passage,我們的數(shù)據(jù)沒有(除了2K母嬰QA),目前是利用answer同時做context,問題應(yīng)該不大;
-
RAG相關(guān)
- 流程如圖
- 基本過程:RAG由Retriever和Generator組成,輸入編碼后(對QA來說即question)傳入Retriever,Retriever檢索與question相關(guān)的多個內(nèi)容(稱為contexts),并將contexts與question結(jié)合后,作為新的輸入發(fā)送給Generator,Generator接受輸入并生成結(jié)果(對QA即生成答案)。
-
組件細(xì)節(jié)
- Retriever
- 來自另一篇論文DPR。DPR使用Bi-Encoder,即雙編碼器,分別編碼question和context。原始paper使用的兩個編碼器為 Bert-base-uncased;
- Retriever訓(xùn)練使用In-batch negative training,大致是 batch內(nèi)每個樣本(即question)對應(yīng)的positive context均為其他樣本的negative;每個樣本另外利用BM25尋找最相似的context作為hard negative,以此增強(qiáng)模型學(xué)習(xí)能力;
- Inference階段,Retriever將輸入的question編碼為q_vector,再利用q_vector和事先做好索引的passages(檢索語料庫,即context)進(jìn)行相似度計算,獲得相似度top k的contexts,與question拼接,結(jié)果作為新的輸入傳遞給generator,由generator生成答案;
- Generator
- RAG論文使用的generator為預(yù)訓(xùn)練的Bart模型,Bart是一個預(yù)訓(xùn)練的seq2seq(S2S)模型,將很多任務(wù)當(dāng)做S2S模式來訓(xùn)練;MBart/MT5為基于Bart/T5的多語言預(yù)訓(xùn)練模型;
- generator經(jīng)過預(yù)訓(xùn)練,已存有一定的知識,再結(jié)合檢索的contexts,可以更好的生成答案;
- Retriever
-
訓(xùn)練過程
- 固定retriever的context encoder,訓(xùn)練question encoder及generator;
總結(jié)
- 上一篇: 网站验证码破解功略
- 下一篇: 成功英语演讲的秘诀:开场白、结束语(我们