日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RAG小结

發布時間:2024/1/18 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RAG小结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

RAG

RAG做知識問答,我們所使用的語料、索引建立方式、訓練方式,大致的模型參數,以及滿足以上我們對GPU運算資源的需求。

  • 需求總結:
    • 以下表格列舉我們實驗配置和論文實驗配置;
    • 如果要使用base甚至large版本的預訓練模型和batch128,最好是單服務器節點有3塊16G+的gpu;沒有的情況下,可以利用多節點多GPU并行,需要配置;但單塊gpu能跑的batch還是很有限;
配置RetrieverGeneratorRAG
模型DPR
(Albert-small*2)
mT5-smallDPR+mT5
(fix-ctx)
參數5M*280M85M
訓練語料問診(11W)+母嬰(2K)
測試1W
問診(11W)+母嬰(2K)
測試1W
問診(11W)+母嬰(2K)
測試1W
訓練方式B-24/S-256/40EB-16/S-256/30EB-16/S-256/30E
索引方式Faiss(12W/1hour)
實際占用GPU3gpus*9G/gpu
(office0-1080ti)
2gpus*10G/gpu
(office2-2080ti)
2gpus*11G/gpu
(office2-2080ti)
以下為論文使用配置
模型DPR
(Bert-base-uncased*2)
Bart-largeDPR+Bart
(fix-ctx)
參數120M*2400M520M
訓練語料Eng-QA(16W)+Wiki(2KW )Eng-S2S預訓練QA(16W)
訓練方式B-128/S-100/40EB-8000B-128/S-100/40E(約)
索引方式Faiss(21M/8.5hour)
實際占用GPU8gpus*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:“約” 指的是論文沒有明確指出配置具體情況,表格給出的相關數據為綜合推測;
注5:DPR論文提到21M passages建立Faiss索引只需8.5h,使用E5-2698 V4@2.2GHz CPU和512G的內存;使用of2 CPU和96G內存實測faiss建索引,速度約12W/1h,300W/85h(非線性);查看實測用的Faiss索引代碼和DPR論文索引代碼實現方式,基本一致;估計是硬件差別;
注6:數據問題–DPR論文訓練數據answer有對應的源context/passage,我們的數據沒有(除了2K母嬰QA),目前是利用answer同時做context,問題應該不大;

  • RAG相關

    • 流程如圖
    • 基本過程:RAG由Retriever和Generator組成,輸入編碼后(對QA來說即question)傳入Retriever,Retriever檢索與question相關的多個內容(稱為contexts),并將contexts與question結合后,作為新的輸入發送給Generator,Generator接受輸入并生成結果(對QA即生成答案)。
  • 組件細節

    • Retriever
      • 來自另一篇論文DPR。DPR使用Bi-Encoder,即雙編碼器,分別編碼question和context。原始paper使用的兩個編碼器為 Bert-base-uncased;
      • Retriever訓練使用In-batch negative training,大致是 batch內每個樣本(即question)對應的positive context均為其他樣本的negative;每個樣本另外利用BM25尋找最相似的context作為hard negative,以此增強模型學習能力;
      • Inference階段,Retriever將輸入的question編碼為q_vector,再利用q_vector和事先做好索引的passages(檢索語料庫,即context)進行相似度計算,獲得相似度top k的contexts,與question拼接,結果作為新的輸入傳遞給generator,由generator生成答案;
    • Generator
      • RAG論文使用的generator為預訓練的Bart模型,Bart是一個預訓練的seq2seq(S2S)模型,將很多任務當做S2S模式來訓練;MBart/MT5為基于Bart/T5的多語言預訓練模型;
      • generator經過預訓練,已存有一定的知識,再結合檢索的contexts,可以更好的生成答案;
  • 訓練過程

    • 固定retriever的context encoder,訓練question encoder及generator;

總結

以上是生活随笔為你收集整理的RAG小结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。