大模型相關問題

adam86546853發表於2024-08-17

大模型問題彙總

  1. llama 2注意力機制,手寫分組注意力機制

    • GQA分組注意力機制(為了加速模型訓練和推理,MHA每個head都需要一個QKV矩陣,於是有了將K,V矩陣分組,幾個head共用一個KV矩陣,Q矩陣不變)
    • MQA 則是所有的head共用KV矩陣
  2. langchain介紹,主要元件

    • langchain主要包含langchain,langchain-core,langchain-community,LangServe,LangSmith
      • langchain: 包含ModelIO,Retrieval,Agent,Chains,Memory,Callbacks

        • ModelIO主要是和LLM進行互動
        • Retrieval主要是和外部資料檢索互動
        • Agent提供工具的代理能力
        • Chains提供呼叫序列抽象能力
        • Memory儲存會話狀態和記錄
        • Callbacks回撥監控、日誌
      • Langchain-community: 提供第三方整合的功能,譬如文件載入、分割等

      • langchain-core: 包含langchain的基本抽象已經LCEL(Langchain Expression Language)

      • LangServe: 使用了FastAPI提供服務能力,有server和client端側的能力

      • LangSmith: 提供測試、開發、監控的平臺

    • 具體詳細介紹http://shiyanjun.cn/archives/2613.html
  3. 位置編碼,幾種位置編碼的異同

    • 絕對位置向量編碼(1...N),擴充套件性差,很難外推,泛化性不好

    • 正餘弦標準位置編碼(偶數正弦,基數餘弦編碼)

    • \(PE_{pos,2i+1}=cos(\frac{pos}{10000^{{2i+1}/d_m}})\) ; \(PE_{pos,2i}=sin(\frac{pos}{10000^{{2i}/d_m}})\)

    • RoPE 旋轉位置編碼(QK進行乘法的時候,會將絕對位置轉化成相對位置,可以理解是一種位置編碼的轉換)

      • \(<f_q(x_m,m),f_k(x_n,n)> = g(x_m,x_n,m-n)\) 詳細介紹:https://blog.csdn.net/v_JULY_v/article/details/134085503
      • 具體實施步驟:
        • token編碼向量後+pos編碼向量,使用Q,K矩陣計算出\(q_m\),\(k_n\)向量,此時向量攜帶絕對位置
        • 然後對\(q_m\),\(k_n\)應用旋轉矩陣,具體做法針對向量元素,每2個一組進行旋轉操作,也就是乘以旋轉矩陣\(\begin{bmatrix} cos(m\theta_0) & -sin(\theta_0) & \cdots & 0 \\ sin(m\theta_0) & cos(\theta_0) & \cdots & 0 \\ \vdots & \ddots & cos(m\theta_{d/2-1}) & -sin(\theta_{d/2-1}) \\ 0 & \cdots & sin(m\theta_{d/2-1}) & cos(\theta_{d/2-1}) \end{bmatrix}\) ,其中d對應的向量維度
        • RoPE有相應的侷限,無法聚焦遠處;attention score在隨著distance很大時候會很小
    • ALiBi(Attention with Linear Biases) 不和標準transformer那樣,在embedding層新增位置編碼,而是QK^T結果後新增一個靜態的不可學習的偏置項(說白了,就是數值固定)

      • Alt text
      • \(softmax(qiK^T+m⋅[−(i−1),…,−2,−1,0])\), \(m=\frac{-8}{n}\),其中n是head的索引
  4. RLHF具體流程,包含幾種模型

    • 包含3個步驟,4個模型(actor,critic,SFT,reward)四個模型
  5. encoder-only,decoder-only,encoder-decoder代表模型

    • encoder-only bert以及bert變種模型
    • decoder-only llama2等一些大模型
    • encoder-decoder 模型有T5模型,GLM第一代模型
  6. p-turing,lora微調方法介紹,與傳統finetune區別

    • p-turing 講prompt進行引數隱式微調;一般會透過訓練一些隱式的token(也有對應的emb引數),有些可能會透過MLP+LSTM訓練拿到emb
    • lora則是透過外掛一個低秩的矩陣進行引數微調,一般在nn.linear線性矩陣層,attention矩陣引數
    • Qlora則是quant+lora
      • 一般量化針對比較穩定的引數,譬如nn.linear層引數;啟用層引數有較大值,量化可能會影響精度
      • 量化可以降低視訊記憶體佔用,加快運算速度
      • quant: float -> int8 (先將矩陣引數float對映到int8;計算【forward,backward】的時候再反量化回去);所以量化的好壞取決於對映函式的壓縮比以及反量化解碼效率
      • 譬如int8量化策略:\(Q=round(\frac{real_val - zero_point}{scale} * 255) - 128\),這樣將量化到區間[-127,127]之間
  7. 視訊記憶體不夠一般怎麼解決

  8. 主流大模型的loss瞭解過嗎?

  9. deepspeed介紹,使用情況

  10. 領域模型continue Pretrain資料選取?

  11. 領域模型訓練後通用能力下降,怎麼緩解幻覺

  12. 指令微調、如何選擇、設定、最佳化不同的超引數

  13. 指令微調如何選擇最佳指令策略,以及該指令對模型的效果影響

  14. llama,glm,bloom等大模型在資料處理,訓練細節以及模型結構的最佳化點,包括但不限於注意力機制,歸一化,嵌入層


相關文章:
強化學習:https://blog.csdn.net/v_JULY_v/article/details/128965854

相關文章