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

大模型 VS 小模型

發布于 2024-8-20 10:40
瀏覽
0收藏

首先,我們思考一個問題,為什么 qwen2 基本上是當下最受歡迎的開源模型?說實話,相比于 deepseek、llama、minicpm 這些誠意滿滿的技術報告,qwen2 的技術報告稍顯一些“小家子氣”,并沒有提及到關鍵的技術細節。然而,qwen2 提供給開源社區的“全家桶”套餐,又是多長的技術報告也比不上的。對 llm 的研究者來說,用相同 tokenizer,相同的 7T pretrain_data 得到的“一簇小 llm”,其研究價值遠遠超過 Qwen2-72B 本身!

知乎: https://zhuanlan.zhihu.com/p/714399961


接下來,我們帶著兩個基本概念進入正文:

  • 同源小模型:同 tokenizer,同訓練數據下得到的 size 較小的llm
  • 小模型:重點在于“小”,推理快或者本身就是分類模型,怎么訓的完全無所謂。較小 size 的 llm,BERT,RoBERTa,Xgboost,LR 等等都可以稱作小模型

同源小模型是大模型的實驗場

scaling law 告訴我們:小模型的性能表現能用來預測大模型的性能表現。這也就是說,大部分情況下,我們是可以通過在同源小模型上做實驗,去預測大模型的效果的。

在 pretrain / post_pretrain 階段有很多需要做實驗才能知道答案的問題。怎么樣的數據配比最合理,課程學習中哪種學習順序效果最好,數據的質量是否過關,數據的去重程度是否過關,先訓4k、再擴到 32k 和直接訓 32k 的效果差異,post_pretrain 的時候怎樣調整學習率和數據分布來防止模型斷崖式的能力遺忘?……

直接啟動大模型的成本實在是在太高昂了,可能訓練兩三周,loss 曲線才會表現出一點點差異。但我們完全可以在小模型上大膽的訓,每天訓 100B token,兩天就能出一版實驗結果。觀察 tensorbord 的 loss 曲線,刷 benchmark 打榜,或是做 sft 看效果,總之小模型可以幫助我們快速地敲定 pretrain 階段使用的數據配置。

在 alignment 階段,我們也可以去借助小模型和 scaling law 來指導工作。

我要強化模型的某個能力,準備了 N 條訓練數據,能讓模型達到多大的提升呢?可以看看這份數據在小模型上能有大提升,繪制一條曲線,去預估大模型的性能表現。說的再通俗一點,100B token 能讓 0.5B 模型下降 0.2 loss,能讓 72B 模型下降 0.1 loss, alignment 數據能讓 0.5B 模型提高 x% 的 task 能力,那么大概率這份數據也只能讓 72B 模型提升 0.5x % 的 task 能力。

  • 已知:Qwen2-0.5B + few shot
  • 已知:Qwen2-0.5B + SFT + zero_shot
  • 已知:Qwen2-1.5B + few shot
  • 已知:Qwen2-1.5B + SFT + zero_shot
  • ……
  • 已知:Qwen2-72B + few shot
  • 預測:Qwen2-72B + SFT + zero_shot

但其實,在 alignment 階段,小模型的實驗指導意義并不是特別強,畢竟小模型的最大優勢在于訓得快,做實驗快。由于 alignment 的數據量不大,我們往往可以直接對目標大模型進行訓練來驗證結果。這里的指導意義,往往是在我們需要大量數據去強化模型某個能力時才顯得有意義,比如代碼強化、創作能力增強。

在這里,額外需要強調兩個點:

  • 小模型需要使用較大的學習率,而大模型學習能力強、特征空間稀疏,往往需要使用較小的學習率;
  • 強如 meta,據說也訓崩了千億級別參數的 MOE 模型。換句話說,MOE 的 scaling law 可能還不成熟,或者是 MOE 缺少一個像 llama 一樣的能穩定訓練的標準結構,其在小模型上的優異表現可能無法復現在大模型上。

大模型是同源小模型的良師

首先,大模型的效果就是同源小模型不可達到的 ceiling,這點毋庸置疑。(實際工作中,知道模型效果的上限,是一件非常有意義的事情)。

除此之外,大模型可以在訓練中給到同源小模型極大的幫助。

模型蒸餾

“distill”是 BERT 時代非?;鸬囊粋€技術方案,現在卻提及的不太多了,歸根到底就是蒸餾對“同源 tokenizer”的要求太硬了。不過同源小模型沒有這個顧慮,蒸餾技術就像是為同源小模型的效果強化量身定制的技術方案一樣。

先澄清一個概念,目前的大部分論文都把“利用 GPT4 造數據,喂給小模型去訓練“叫做蒸餾,這種叫法也沒錯,不過更準確的叫法應該是”知識蒸餾“:讓小模型去學習大模型的知識能力。而傳統的“模型蒸餾”,指的是我們不再讓模型學習 hard-label,而是 soft-label:

  • hard_label:“臺灣屬于”,在預測下一個 token 的時候,“中國”的概率是 1,其他所有 token 的概率是 0;
  • soft_label:“臺灣屬于”,在預測下一個 token 的時候,“中國”的概率是 0.3,“中華”的概率是 0.2,“大陸”的概率是 0.1……

不管從哪個角度考慮,似乎 soft_label 都是蘊含更多信息量可學習的。因此,利用大模型去“模型蒸餾”小模型,很有可能能得到一個能力遠高于同等 size 的小模型,Google 的 Gemma 小模型 就應用了這項技術方案。

(模型蒸餾之所以在 llm 方向做的少,其實還是因為得不償失,其對算力和存儲的需求較大,與模型的效果提升不成正比。畢竟正常訓練學的是 seq_len 個 one_hot label,蒸餾學的是 seq_len * vocab_size 的 logits,一個比較現實的方案是做 clip,只取最大的 N 個 token logits 標簽進行學習,其他 token 的概率依然視為 0)

reward_model

用大模型來充當小模型的 reward_model,目前是一個很流行的做法,而用同源大模型去做 reward_model 則更是一個錦上添花的方案。

與蒸餾不同,蒸餾看中的是兩個模型“tokenizer 同源”,reward_model 看中的則是兩個模型“pretrain 數據同源”。也就是說,我們的 reward_model 和 policy_model 具有同等的知識量,兩個模型的學習成績雖然不一樣,但它們上過的的課程卻是一樣的。reward_model 會的知識,就是 policy_model 學過的知識:“我學過并且我掌握了,你學過但你沒掌握,所以我給你打低分就是合理的。”

雖然在實際工作中,一個同源 reward_model 可能沒有 GPT4 這種“天才 reward_model ”帶來的效果更好。但其往往能給出更公允的打分,進而避免過多的幻覺產生。這也是 alignment 的一大痛點,模型到底是訓過擬合了才答錯這個知識,還是壓根就沒學過這個知識 —— 交給同源大模型來判斷。

大模型背后的無數小模型

OK,同源模型的意義我們就談到這里,后面我們開始談真正的“小”模型!一個優秀的大模型,無論是在訓練階段,還是線上部署階段,其背后默默付出的小模型都數不勝數。

數據質量分類器:llama3 和 qwen2 都提到了,他們的 pretrain 訓練數據是有得分的,然后通過閾值來找出最高質量的訓練數據,開源 pretrain 數據集 fineweb 也提到了他們給數據打分的工作。Good data makes good model performance!李沐大佬在他的視頻里說到,llama3 的數據打分器是 RoBERTa,這很合理,效果又好、推理又快的分類模型確實還要看 BERT 家族。

數據 domain 分類器:垂直領域模型的 post_pretrain 工作,往往需要非常精準的數據配比,domain 數據的數據質量也需要非常優質。這也就是說,我們需要一個分類器,去提取海量數據中的 domain 數據,這個分類器最好還能把低質量的 domain 數據也視為非 domain 數據,通常承擔這個工作的模型也是 BERT 家族。

線上模型的分類器:眾所周知,RAG 模塊已經是 llm 的標配,我們總不能讓模型自己判斷該不該做檢索吧?雖然不是不行,但是額外生成“是否RAG”這些 token 會降低系統的響應速度,并且可能降低模型的通用能力(模型學的越多,忘的也越多)。因此,線上模型往往都是前置掛一個小模型,來判別是否需要 RAG,同理也需要判別是否觸發 safety,是否觸發工具鏈等。

RAG 模型:這個模型更是重量級,也就是咱們傳統的信息檢索模型,如何從海量 docs 里面選出最相關的 doc。BGE 是這個工作較為常用的模型。

數據生產模型:

  • “小模型 + SFT > GPT4 + zero_shot ”幾乎是數據生產階段最常用的公式了。我們在數據生產階段往往面臨幾個困境,GPT4 并不是百分之百按照我們指定的格式進行輸出(復雜指令任務尤為明顯),GPT4 真的很貴,特別是在生產多輪對話數據的時候。這種情況下,最好的方案就是用一個小模型去學目標 task 的高精數據,讓這個小模型過擬合,進而變成一個標準的 task 數據生產器;
  • 以 role_play 任務為例,很多場景是需要人不斷和 GPT4 聊天來生產高質量的對話數據的,我們的模型做不到 GPT4 那樣能準確拿捏角色性格的程度,但扮演一個“多事兒的用戶”還是綽綽有余的。訓一個聊天模型,讓它和 GPT4 聊天來自動化大量生產數據。

這里,我再分享一些個人使用小模型時的 trick:

學會變通,生成模型也可以當判別模型使用。簡單來說,如果我們懶得去找一份 BERT 代碼去訓一個分類器,我們也可以直接訓一個 Qwen2-0.5B,讓它只會輸出 0 和 1,當我們的模型完全過擬合到 0 和 1 的時候,那么所有 token 中便只有 0 和 1 有概率,其他 token 的概率幾乎為零。此時,我們用 1 所對應的 token_probability,不就是分類器的打分嗎?當然,更優雅的做法是把 pretrain_model 的 lm_head 替換成 reward_model 的 lm_head。

另外,一個優秀的大模型,無論是在訓練階段,還是線上部署階段,其背后默默付出的小模型都數不勝數。。這句話怎么說呢,是我在訓 domain 分類器的時候,發現 Qwen2-1.5B 的準確率和召回率都不如 Qwen2-0.5B 高。在一番討論和實驗分析之后,我認可了大佬同事的觀點:模型越大,其學習能力越強,但也意味著其更容易過擬合。

傳統機器學習模型做的事情都是特征抽取,去從輸入的特征中提取出看不到的特征,像 xgboost 這種還會計算每個特征的重要程度。但由于 llm 的參數量足夠大,再加上 decoder_only 的結構,它真的可以做到記住所有的輸入特征(decoder_only 是一個純信息檢索結構,它不壓縮任何 token 信息,和 BERT 的 CLS 位壓縮信息完全是兩種做法)。

因此,較大的模型雖然上限更高,但其所依賴的數據質量也更高,如果你的訓練數據是有失偏頗的,分布不均衡的,它完全可以記住這些數據的 pattern,而不是從這些 pattern 中抽取共同特征。我的 0.5B 模型效果好于 1.5B 模型大概率就是這種情況:我使用了 4 個數據源作為訓練集,但測試集來自于 10 個數據源。

寫在最后

誠然,大模型的出現,解決了困擾 nlp 多年的指代消解、多輪理解、對話人設等瓶頸,但小模型的信息壓縮、特征抽取等依然是非常有意義的。我們在工作中,還是應該多考慮一下能不能用小模型來解決問題,找找我們的老朋友 BERT,而不是二話不說就打開 GPT4 寫 prompt。

本文轉載自??NLP工作站??,作者: ybq ????

收藏
回復
舉報
回復
相關推薦
主站蜘蛛池模板: 久久免费精品 | 黄色毛片在线播放 | 亚洲欧美一区二区三区国产精品 | 日韩免费看片 | 一区二区三区在线观看视频 | 福利网址 | 欧美性大战久久久久久久蜜臀 | 国产黄色大片 | 天天精品在线 | 日本粉嫩一区二区三区视频 | 91精品国产综合久久久亚洲 | 亚洲精品区| 久久精品久久久久久 | www一级片| 亚洲九九精品 | 大学生a级毛片免费视频 | 亚洲男人的天堂网站 | 国产精品久久一区二区三区 | 午夜影院在线观看视频 | 日韩在线精品强乱中文字幕 | 国产精品免费在线 | 成人做爰999 | 日韩 国产 在线 | 国产精品免费一区二区三区四区 | 中文字幕伊人 | 欧美日韩三级视频 | 男女羞羞视频在线免费观看 | 国产一二三区电影 | 黄色国产在线视频 | 欧美αv| 亚洲国产欧美日韩 | 久久久久久久久久久91 | 黄色毛片在线观看 | 久久精品亚洲欧美日韩精品中文字幕 | 国产视频中文字幕 | 国产精品高清在线 | 欧美又大粗又爽又黄大片视频 | 日韩精品在线一区 | 国产毛片久久久 | 一级毛片在线视频 | 国产精品久久久久久久三级 |