成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Kaggle大模型競賽優勝方案總結與思考

發布于 2024-12-4 12:47
瀏覽
0收藏

大家好,我是HxShine。

LLM的Reward模型該如何訓練呢?今天對Kaggle LLM比賽LLM Science Exam 的一些優勝方法做一個總結,這是Kaggle競賽平臺第一次舉辦LLM相關比賽,賽題就是探索如何訓練一個science-based Reward Model。

優勝方案中,如何利用RAG(檢索增強)方法提高模型的上限,如何通過傳統方法以及向量檢索方法提高檢索知識的質量,如何使用LoRA,QLoRA等技術對LLaMa2等系列進行微調,甚至在16GB內存的GPU上對70B大小的LLM進行推理[7]等很多技術都值得我們學習,相信大家看完會有所收獲。

Kaggle大模型競賽優勝方案總結與思考-AI.x社區

一、概述

Title:Kaggle - LLM Science Exam Use LLMs to answer difficult science questions

比賽排行榜:??https://www.kaggle.com/competitions/kaggle-llm-science-exam/leaderboard??

1.Motivation


Kaggle大模型競賽優勝方案總結與思考-AI.x社區

  • Reward模型:簡單來說就是用于判斷LLM的輸出哪個更好,輔助提升LLM的輸出質量。它是一種用于強化學習的技術,用于改進生成式對話系統的性能,基本思想是通過獎勵函數來引導模型生成更好的回復,
  • Reward模型是強化學習提高LLM表現的關鍵之一。Reward模型該如何建模?可以利用那些數據?如何訓練?大模型好還是小模型好?都還有待進一步探索。
  • 如何盡可能低成本的訓練好的Reward模型?OpenAI的Reward模型用的是6B左右的模型[1],成本更低的Reward模型方案也值得探索,該比賽通過限制GPU數量和推理時間來挖掘成本低,精度高的Reward模型訓練方案。

2.Definition

賽題:從大模型生成的5個候選結果挑選3個最好的結果。即對于每一個問題prompt,LLM生成A、B、C、D、E五個答案,正確的答案answer只有一個,從LLM生成的5個結果中,選擇前三的答案進行輸出。其利用MAP@3計算分數。下面給出一個樣例數據:

Prompt:

Which of the following statements accurately describes the impact of Modified Newtonian Dynamics (MOND) on the observed ""missing baryonic mass"" discrepancy in galaxy clusters?

A:

MOND is a theory that reduces the observed missing baryonic mass in galaxy clusters by postulating the existence of a new form of matter called "fuzzy dark matter."

B:

MOND is a theory that increases the discrepancy between the observed missing baryonic mass in galaxy clusters and the measured velocity dispersions from a factor of around 10 to a factor of about 20.

C:

MOND is a theory that explains the missing baryonic mass in galaxy clusters that was previously considered dark matter by demonstrating that the mass is in the form of neutrinos and axions.

D:

MOND is a theory that reduces the discrepancy between the observed missing baryonic mass in galaxy clusters and the measured velocity dispersions from a factor of around 10 to a factor of about 2.

E:

MOND is a theory that eliminates the observed missing baryonic mass in galaxy clusters by imposing a new mathematical formulation of gravity that does not require the existence of dark matter.

Answer: 

D

評價指標:MAP@3: Mean Average Precision @ 3,??????@3=1??∑??=1??∑??=1??????(??,3)??(??)×??????(??)

資源要求:CPU或者GPU推理時間都不能超過9小時,不能接入外部網絡。

訓練數據:200條評估數據。

測試集:大概4000條數據。

3.難點分析

  • 建模方法:題目要求我們對LLM生成的science-based的結果進行排序,其強烈依賴于science相關知識,如何對其建模非常關鍵,包括中后期大家發現引入外部知識(RAG)來進行增強可以極大的提升模型的上限。
  • 建模數據:比賽只提供了200條測試數據,沒有訓練數據,同時待預測的數據大概4000+左右,20%在A榜,80%在B榜。
  • 資源限制:比在只提供2*T4或者1*P100的GPU,時間限制為不超過9小時。

二、Methods

1.RAG vs Finetuning?[2]

Kaggle大模型競賽優勝方案總結與思考-AI.x社區

RAG:這種方法將檢索(或搜索)的能力集成到LLM中。它結合了一個檢索系統和一個大模型,前者從大型語料庫中獲取相關文檔片段,后者使用這些片段中的信息生成答案。本質上,RAG 幫助模型“查找”外部信息以改進其響應。

Kaggle大模型競賽優勝方案總結與思考-AI.x社區

微調:這是采用預先訓練的 LLM 并在較小的特定數據集上對其進行進一步訓練的過程,以使其適應特定任務或提高其性能。通過微調,我們根據數據調整模型的權重,使其更適合我們應用程序的獨特需求。

Kaggle大模型競賽優勝方案總結與思考-AI.x社區

RAG+微調:在外部知識要求高的情況下,優先RAG,需要模型適配(風格行為詞匯)等,就需要微調,兩者要求都高的話,需要結合使用[5]。

三、關鍵優化思路總結


Kaggle大模型競賽優勝方案總結與思考-AI.x社區

總體上,RAG + LLM結合的模型可以在知識來源、檢索方法、基座模型及其尺寸、是否需要微調等多個方面進行優化,針對本次比賽,對我收集到的一些方法進行對比,方便大家參考。

1.檢索增強與檢索質量為王!

說明:主要探索不用RAG檢索增強以及用了RAG檢索增強的效果差異,如果不用RAG,模型很快就會到達瓶頸。

基座模型

方法

說明

LB分數

鏈接

deberta

without context

不利用檢索的結果進行增強

0.732

??https://www.kaggle.com/code/radek1/new-dataset-deberta-v3-large-training??

deberta

wiki as context

利用wiki百科的數據進行增強

0.819

??https://www.kaggle.com/code/cdeotte/how-to-train-open-book-model-part-1??

??https://www.kaggle.com/code/cdeotte/how-to-train-open-book-model-part-2??

deberta

stem(270k)as context

利用stem相關的高質量結果進行檢索增強

0.862

??https://www.kaggle.com/code/mbanaei/86-2-with-only-270k-articles??

LLM(7b/17b)

without context

直接用LLM,不用檢索增強,很快就遇到瓶頸了

0.84

??https://www.kaggle.com/competitions/kaggle-llm-science-exam/discussion/446422??

LLM(7b/17b)

wiki as context

利用wiki百科的檢索數據來增強,同時基座模型用7B/13B左右的模型

0.90+

??https://www.kaggle.com/competitions/kaggle-llm-science-exam/discussion/446422??v

總結1:沒有檢索增強RAG的引入,很快達到性能瓶頸。沒有引入RAG,分數大概是0.73~0.84,第一名的解決方案[4]也提到如果沒有檢索增強,很快就遇到性能瓶頸,所以他們在RAG檢索以及質量優化上都做了不少工作。

總結2:知識以及知識的質量非常關鍵,幾乎是本場比賽的決定因素之一。例如同樣的模型(deberta系列),270k的高質量數據LB分數可以到0.862左右,wiki的上下文LB分數只能到0.819左右,同時without context情況下LB只有0.732。另外第一名的解決方案[4]也探索了多種embedding的方案來檢索高質量的上下文。15rd place solution[6]幾乎把全部精力都放在檢索端。

2.有哪些好的檢索方法?

方法

說明

LB

鏈接

tfidf

利用tfidf傳統方法來做檢索增強

0.862

??https://www.kaggle.com/code/mbanaei/86-2-with-only-270k-articles??

tfidf+embedding

結合多類檢索方法來做增強,甚至可以在檢索測做TTS

0.905

tfidf方案:??https://www.kaggle.com/code/mbanaei/86-2-with-only-270k-articles??

embedding方案:??https://www.kaggle.com/code/dangnguyen97/wikipedia-rag??


bm25(elastic sedarch)

利用bm25傳統方法來做檢索增強

0.9+?(第4名用了多種檢索增強的方法來做,最終PB分數0.927)

??https://www.kaggle.com/competitions/kaggle-llm-science-exam/discussion/446307??

??https://www.kaggle.com/code/linshokaku/4th-elasticsearch-retrieval-example??

embedding model

主要的考察點在用哪種embedding模型效果好?第一名嘗試了MTEB Leaderboard上top-20模型,最終挑選了5個最好的模型模型

0.90+

??https://www.kaggle.com/competitions/kaggle-llm-science-exam/discussion/446422??

ranker model

在檢索的基礎上,利用ranker模型進一步篩選更高質量的結果

0.90+

??https://www.kaggle.com/competitions/kaggle-llm-science-exam/discussion/446816??

檢索位置的影響(選項ABCDE不同位置有影響)

TTS增強:根據context或者答案的順序來做TTS,增加多樣性。有效果但是不太穩定。

在final classification head添加每個選項的average logits,效果不錯并且穩定。

0.90+,上限比較高!

??https://www.kaggle.com/competitions/kaggle-llm-science-exam/discussion/446422??

總結1:傳統檢索方法效果也不錯。在LLM領域,向量檢索不一定比傳統檢索方法tfidf以及bm25效果好,特別是沒有經過垂直領域的訓練的embedding模型。例如86-2-with-only-270k-articles[2]中利用tfidf檢索,效果比向量檢索還稍微好一點。同時4th[2]方法,用elastic_search來檢索文檔(原理是bm25算法),也取得一個不錯的效果。

總結2:檢索的質量非常重要。為了提高檢索質量,86-2-with-only-270k-articles[2]方法過濾篩選了270k相關的數據,效果相對于原始的wiki數據有了明顯的提升。第一名的解決方案[4]提到篩選更相關的一些數據用處不大,可能是其挑選的embedding模型效果不錯了,不會檢索出質量不太好的結果出來。第15名的方法[6]利用ranker模型進一步篩選高質量的檢索結果來提高最終表現。

總結3:檢索側可以用到的優化的方法:傳統檢索方法(es,tfidf,bm25,Lucene等)+ 向量檢索(開源embedding模型, SimCSE[6])+ 訓練Ranker模型[6]。

3.基座模型該如何選擇?

方法

模型

說明

最高排名

鏈接

傳統模型

deberta + finetuning + RAG

deberta系列模型做微調后,結合RAG效果也不錯,重點是需要優化檢索效果

4rd private:0.927

??https://www.kaggle.com/competitions/kaggle-llm-science-exam/discussion/446307??

中等模型(7B/13B)

Llama-2-7b

Mistral-7B-v0.1

xgen-7b-8k-base

Llama-2-13b + finetuning + RAG

7B/13B左右的模型,經過微調,同時結合RAG,在做融合,效果比較好

1rd

private:0.933

??https://www.kaggle.com/competitions/kaggle-llm-science-exam/discussion/446358??

大模型(70B)

debertas + Platypus(70B for hard question) + Xwin(70B) + reranker,其中Platypus(70B for hard question)以及reranker帶來的提升比較大

大模型主要是解決hard question,帶來一定提升

3rd

private:0.928

??https://www.kaggle.com/competitions/kaggle-llm-science-exam/discussion/446358??

總結1:小模型微調+高質量的檢索結果上限也不錯。第四名最終只用了deberta模型,另外在檢索測利用es等方法做了很多優化,在檢索側做了TTS,最終拿到了第四名。

總結2:大模型微調(7B或者13B左右的模型)可能比小模型微調的上限更高。第一名利用7B左右的模型微調+RAG,一直搖搖領先。

總結3:70B模型zero-shot通用效果就不錯,但是在有些方面還打不過微調后的小模型。70B+zero-shot模型大概能達到0.872,總體上表現還不錯,但是離要拿到獎牌還有一定距離,微調70B左右的模型效果可能更好,但資源需求也更大,并且不方便做模型融合。

總結4:基座模型可能沒那么重要,具體效果的話大概如下:7b/13b + fine-tuning > deberta + fine-tuning > 70b + zero-shot。

4.是否需要對模型在該領域數據上進行微調?


方法

是否微調

分數

鏈接

longformer/deberta + RAG

不微調

0.862(with RAG, longformer 未微調)

0.89(with RAG,  deberta微調)

??https://www.kaggle.com/code/mbanaei/86-2-with-only-270k-articles??

deberta + 微調 + RAG

微調

0.762(without RAG)

0.90+(with RAG)

??https://www.kaggle.com/code/mewmlelswm/lb-0-762-train-4-fold-and-ensemble??

??https://www.kaggle.com/competitions/kaggle-llm-science-exam/discussion/446307??

LLama7B

Mistral 7B

不微調

0.656(without RAG)

0.853(with RAG)

??https://www.kaggle.com/code/zzy990106/llama-7b-infer??

??https://www.kaggle.com/code/goelyash/llm-science-mistral-7b??

7B LLama2 + 微調 + RAG

微調

0.84+(without RAG)

0.90+(with RAG)

??https://www.kaggle.com/competitions/kaggle-llm-science-exam/discussion/446358??

70B LLM + zero-shot + RAG

不微調

0.872(with RAG)

??https://www.kaggle.com/code/zulqarnainali/explained-platypus2-70b-wikipedia-rag??

70B LLM + 微調 + RAG

微調

0.914(with RAG)

??https://www.kaggle.com/competitions/kaggle-llm-science-exam/discussion/446414??

總結1:微調特別是小模型微調,能帶來不錯的提升。deberta模型微調+模型融合也能到0.927左右的分數,和其他模型的最終結果差異沒那么大。

總結2:7B/13B左右的模型微調上限可能高于deberta系列模型的微調。第一名提到其7B左右的模型微調效果就已經很不錯了(LB 0.92+),融合deberta模型已經不能帶來提升了。

總結3:70B大小的模型其zero-shot能力已經相當不錯了【需要結合RAG】。開源70B模型+zero-shot+RAG能達到PB 0.872的分數,效果還不錯。

四、優勝方案要點分析


leaderboard

方法概述

關鍵因素

分數

1rd place solution

基座模型:Llama-2-7b,Mistral-7B-v0.1,xgen-7b-8k-base,Llama-2-13b + 是否微調:finetuning

檢索增強:1. 探索MTEB top20 embedding模型,挖掘最好的5個。2. 探索更高的數據質量。3. 檢索側做TTS融合。

驗證策略:6k STEM數據。

工程:推理加速,包括對context+prompt結果做緩存,優化推理速度,從而可以進行多模型融合。


檢索質量,基座模型,工程能力

private:0.933

3rd place solution

基座模型:debertas + Platypus(70B for hard question) + Xwin(70B)

排序模型:reranker +0.912->0.927提升挺大的。

更高的數據質量:利用??https://github.com/attardi/wikiextractor??收集更高質量的wiki數據


數據質量,模型融合

  1. Platypus(70B for hard question)
  2. reranker篩選更高質量的context

總結:相當于利用70B模型有更好的通用能力來解決小模型表現不太好的case從而進行融合。

private:0.928

4rd place solution

基座模型:Deberta v3 Large

檢索方法:Elasticsearch

檢索排序:edit distance + sentence-transformers

檢索質量:高質量的檢索結果,以及在檢索側做很多TTS優化融合工作帶來的提升。

private:0.927

5rd place solution

基座模型:Mistral 7B + Llama-70B

微調方法:QLoRA

檢索方法:BM-25(Lucene),參考??https://www.kaggle.com/code/strifonov/pyserini-scibert?? + 向量檢索

高質量數據:自己處理了wikipedia的數據

增強方法:TTA

融合方法:7B模型簡單問題(40%),70B模型苦難問題(60%),更長的context+70B模型預測前兩個困難樣本(5%)

融合方法:困難問題用70B模型來解決

檢索質量:BM25 + 向量檢索結合

TTA增強等


private:0.926, public:0.928

7rd palce solution

基座模型:Deberta + LLM

檢索方法:tfidf + sentence-transformer

驗證集:130k STEM數據

訓練:QLoRA SFT訓練(7B/13B)

多級模型融合方法:簡單模型解決閾值高的問題,模型融合解決稍微復雜一點的問題,LLM模型融合解決hard example

融合方法+檢索方法

private:0.925, public:0.931

10rd palce solution

數據:dumps數據,cirrus數據,270k兩種數據。

檢索方法:tfidf+向量(bge,gte,e5)

切片方法:sliding window,top 10 chunks

模型:deberta

檢索質量

private:0.922

14rd palce solution

數據:cirrussearch wiki dump(質量更好點)

檢索:向量檢索(gte,bge,e5)

模型:deberta 256

融合:TTA(檢索結果)

檢索結果融合:不同排序的context融合

  • [ 0, 1, 2, 3, 4, 5]
  • [ 0, 6, 7, 8, 9, 10]
  • [ 0, 11, 12, 13, 14, 15]
  • [ 0, 16, 17, 18, 19, 20]

private:0.920

15rd palce solution

數據:6800k wikipedia + 270k

檢索方法:tfidf + sentence model(simcse訓練)

檢索排序:

  1. 6800k wiki -> sentence top1000 -> LBGRanker -> top30 -> sentence model -> top20 -> LB 0.885
  2. 270k tfidf/sentence -> top5/top8 paragraphs

模型:deberta

檢索優化+排序模型+檢索側TTS

private:0.920,public:0.934

總結1:RAG檢索對于最終效果非常重要。包括不斷優化檢索數據質量,利用多種檢索策略(基于傳統方法or基于向量),還可以通過ranker等方法篩選更好的結果。另外檢索側基于不同不用順序的context做TTS也能帶來不錯的提升。

總結2:小模型微調效果也不錯,大模型(70B)zero-shot能力非常強,大模型勝在通用能力。例如3rd方法采用小模型解決簡單問題,大模型解決hard問題的融合策略。

總結3:7B/13B大小的模型可能會成為NLP競賽的主力軍。其模型上限效果不錯,可能比deberta類似大小的模型效果更好,同時訓練所需資源也較小。

詳細解決思路可以參考:https://www.kaggle.com/competitions/kaggle-llm-science-exam/leaderboard

五、總結

  1. RAG檢索對于最終效果非常重要。包括不斷優化檢索數據質量,利用多種檢索策略,基于傳統方法(es,bm25,tfidf等),基于向量(開源方法,SimCSE訓練),還可以通過ranker等方法篩選更好的結果都能帶來不錯的提升。
  2. 如何有效的檢索上下文知識,如何有效的處理長文本知識是難點,還有待進一步探索。本次比賽發現,在檢索側基于不同組合,不同順序的檢索結果做TTS(一種數據側做融合的方法)能帶來非常不錯的提升[4][8]。這意味著如果我們在檢索側,長文本理解側可以做得更好,可能我們不會太依賴檢索側的TTS融合方法,從而降低推理成本。
  3. 大模型的zero-shot能力比較強,勝在通用能力不錯。其意味著不微調就可以在很多任務上取得不錯的效果。在本次競賽中開源的70B模型+zero-shot+RAG效果0.875。
  4. 大模型for hard sample + 小模型for simple sample可能是一種不錯的融合方式。利用了大模型的通用能力不錯,在hard樣本上也有著比較強的泛化能力,同時小模型易于訓練,微調后在簡單樣本上表現好的特點。3rd place solution[9]就主要用的這種方法。
  5. 小模型(deberta等)特定領域做微調效果也有一定的發揮之力,同時其有成本優勢。deberta微調+RAG可以到0.89左右,利用模型融合甚至可以到前幾名0.92+。
  6. 7B/13B大小的模型可能會成為NLP競賽的主力軍。其模型上限效果不錯,可能比deberta類似大小的模型效果更好,同時訓練所需資源也較小。
  7. 強大的工程能力對LLM的繼續發展也非常有用。例如讓模型一層一層推理在16GB內存的GPU運行70B大模型[7],以及第一名方案中,對context+prompt結果做緩存,可以減少大量重復上下文或者系統消息(system message)的tokens數量,從而優化LLM推理時間[4]。
  8. 總結提分點:RAG【檢索方法,排序方法,TTS策略】 >> 13b+微調 > deberta/longformer + 微調 > 70b zero-shot。

六、References

[1] Ouyang L, Wu J, Jiang X, et al. Training language models to follow instructions with human feedback[J]. Advances in Neural Information Processing Systems, 2022, 35: 27730-27744.

[2] RAG vs Finetuning — Which Is the Best Tool to Boost Your LLM Application???https://towardsdatascience.com/rag-vs-finetuning-which-is-the-best-tool-to-boost-your-llm-application-94654b1eaba7??

[3] 利用tfidf傳統方法檢索相關文檔:??https://www.kaggle.com/code/hxshine/86-2-with-only-270k-articles?scriptVersinotallow=144092114??

[4] 1rd Place Solution:??https://www.kaggle.com/competitions/kaggle-llm-science-exam/discussion/446422??

[5] 大模型Kaggle比賽首秀冠軍方案總結:??https://mp.weixin.qq.com/s/mhLOYWA9KEDANVdkoUpP-Q??

[6] 15rd place solution: ??https://www.kaggle.com/competitions/kaggle-llm-science-exam/discussion/446816??

[7] 利用16GB內存運行70B大模型:??https://www.kaggle.com/code/zulqarnainali/explained-platypus2-70b-wikipedia-rag??

[8] 4rd Place Solution:??https://www.kaggle.com/competitions/kaggle-llm-science-exam/discussion/446307??

[9] 3rd Place Solution:???https://www.kaggle.com/competitions/kaggle-llm-science-exam/discussion/446358??

本文轉載自??NLP PaperWeekly??,作者: NLP PaperWeekly 

已于2024-12-4 13:58:31修改
收藏
回復
舉報
回復
相關推薦
主站蜘蛛池模板: 成人h片在线观看 | 成人av播放 | 久久亚| 国产精品国产三级国产aⅴ原创 | 国产乱码精品一区二区三区五月婷 | 午夜欧美| 久久综合爱 | 在线观看国产h | 成人黄色在线视频 | 91精品久久 | 91看片在线观看 | 久久久网| 欧美日韩亚洲国产 | 日本三级电影在线免费观看 | 国产小u女发育末成年 | 在线色网 | 美国黄色毛片 | 91视视频在线观看入口直接观看 | 四季久久免费一区二区三区四区 | 久久亚洲一区二区三区四区 | 精品久久久久一区二区国产 | 精品欧美黑人一区二区三区 | 91免费看片| 欧美成人免费在线视频 | 丁香久久| 国产日韩久久 | 在线看av的网址 | 亚洲国产精品99久久久久久久久 | 久久伊人久久 | 美女福利视频网站 | 成人免费视频网站在线看 | 91久久看片 | 美女网站视频免费黄 | 狼色网 | 欧美456| 久久久久久91 | 日韩在线观看 | 久久精品亚洲精品 | 成人免费在线观看 | 91精品国产综合久久国产大片 | 欧美一区二区三区在线观看 |