[Questions] 關於Model Head 以及 LLM Training dataset的請教
您好,我想問兩個問題
第一個是關於 "AutoModelForCausalLM.from_pretrained"
我知道這個在基礎課程with/without Head篇章有提到過,基本上使用AutoModel會提取底層的Bert,輸出則為Hidden State。
使用ForCausalLM則會在後續加上Fully Connected Layer之類的,用以生成logits完成下游任務。
在Bert我可以理解,因為他本來就是將文字embedding成hidden state的過程,沒有下游任務。但是以bloom而言,
AutoModelForCausalLM也會在他後續又加上Header嗎?我就是在這邊一直糾結。
或是反過來,對於本來就有下游任務的某個model,比如llama2-instruct,那我用AutoModelForCausalLM跟AutoModel去讀取他,會有什麼差別?
AutoModel是會讀取完整模型,還是會把他的Head給切了?還是AutoModelForCausalLM會又額外給他多加新的head layer?
第二個問題是關於 Training Data是使用causal data(['input_ids']+DataCollatorForCausalLM)比較好,還是seq2seq data(['input_ids']+['label']+DataCollatorFromSeq2Seq)?
是取決於什麼呢?取決於模型嗎?
比如gpt-2就應該使用causal data, T5就應該使用seq2seq data?
還是取決於任務跟效果?
比如是希望模型能回答出一模一樣的結果使用seq2seq?
我會有這個疑問是因為看到其他人的程式碼 04-Gemma-2-9b-it peft lora微调.ipynb 以及 fine_tune_gemma_model.ipynb
明明同樣是Gemma,其中一個卻使用seq2seq讓我感到困惑