用於微調的基礎模型和超參數 - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

用於微調的基礎模型和超參數

基礎模型耗費大量計算,並且在一個大型的無標籤語料庫上進行過訓練。微調預先訓練過的基礎模型是一種經濟實惠的方式,可以利用其廣泛的功能,又能在您自己的小型語料庫上自訂模型。微調是一種涉及進一步訓練的自訂方法,並且會改變模型的權重。

有以下需求時,微調可能對您有用:

  • 根據特定業務需求自訂您的模型

  • 您的模型可以成功使用網域特定的語言,例如行業術語、技術術語或其他專業詞彙

  • 針對特定任務增強效能

  • 應用程式中的準確、相對和上下文感知回應

  • 更以事實為基礎,毒性更低,更符合特定要求的反應

根據您的使用案例和選擇的基礎模型,您可以採取兩種主要方法進行微調。

  1. 如果您有興趣在特定網域資料上微調模型,請參閱使用網域修正微調大型語言模型 (LLM)

  2. 如果您對使用提示詞和回應範例的指令式微調感興趣,請參閱使用提示指示微調大型語言模型 (LLM)

基礎模型可用於微調

您可以微調下列任何 JumpStart 基礎模型:

  • Bloom 3B

  • Bloom 7B1

  • BloomZ 3B FP16

  • BloomZ 7B1 FP16

  • 程式碼 Llama 13B

  • 程式碼 Llama 13B Python

  • 程式碼 Llama 34B

  • 程式碼 Llama 34B Python

  • 程式碼 Llama 70B

  • 程式碼 Llama 70B Python

  • 程式碼 Llama 7B

  • 程式碼 Llama 7B Python

  • CyberAgentLM2-7B-Chat(CALM2-7B-Chat)

  • Falcon 40B BF16

  • Falcon 40B 指示 BF16

  • Falcon 7B BF16

  • Falcon 7B 指示 BF16

  • Flan-T5 基礎

  • Flan-T5 大型

  • Flan-T5 小型

  • Flan-T5 XL

  • Flan-T5 XXL

  • Gemma 2B

  • Gemma 2B 指示

  • Gemma 7B

  • Gemma 7B 指示

  • GPT-2 XL

  • GPT-J 6B

  • GPT-新 1.3B

  • GPT-新 125M

  • GPT-NEO 27 億

  • LightGPT Instruct 6B

  • Llama 2 13B

  • Llama 2 13B 聊天

  • Llama 2 13B Neuron

  • Llama 2 70B

  • Llama 2 70B 聊天

  • Llama 2 7B

  • Llama 2 7B 聊天

  • Llama 2 7B Neuron

  • 雜音 7B

  • 混合 8x7B

  • 混合 8x7B 指示

  • RedPajama INCITE 基礎 3B V1

  • RedPajama INCITE 基礎 7B V1

  • RedPajama INCITE 聊天 3B V1

  • RedPajama INCITE 聊天 7B V1

  • RedPajama INCITE 指示 3B V1

  • RedPajama INCITE 指示 7B V1

  • 穩定擴散 2.1

通常支援的微調超參數

微調時,不同的基礎模型支援不同的超參數。以下是常用支援的超參數,可在訓練期間進一步自訂模型:

推論參數 描述

epoch

模型在訓練期間經過微調資料集的傳遞次數。必須是大於 1 的整數。

learning_rate

處理每批次微調訓練範例後,模型權重更新的速度。必須是大於 0 的正浮點數。

instruction_tuned

是否要指示訓練模型。必須是 'True''False'

per_device_train_batch_size

每個GPU核心或用於訓練CPU的批次大小。必須是正整數。

per_device_eval_batch_size

每個GPU核心的批次大小或 CPU 用於評估。必須是正整數。

max_train_samples

為了偵錯目的或更快速的訓練,請將訓練範例的數量截斷為此值。值 -1 表示模型使用所有訓練範例。必須是正整數或 -1。

max_val_samples

為了偵錯目的或更快速的訓練,請將驗證範例的數量截斷為此值。值 -1 表示模型使用所有驗證範例。必須是正整數或 -1。

max_input_length

權杖化後的總輸入序列長度上限。超過此長度的序列將被截斷。如果 -1,max_input_length則 設定為最小 1024,且權杖器model_max_length定義的 。如果設定為正值, max_input_length 會設定為所提供值的最小值,以及權杖器model_max_length定義的 。必須是正整數或 -1。

validation_split_ratio

如果沒有驗證管道,則會從訓練資料分割訓練驗證的比例。必須介於 0 和 1 之間。

train_data_split_seed

如果沒有驗證資料,這會修正輸入訓練資料的隨機分割為模型使用的訓練和驗證資料。必須是整數。

preprocessing_num_workers

用於預先處理的程序數目。如果 None,主要程序會用於預先處理。

lora_r

低階修正 LoRA) r 值,作為權重更新的擴展因素。必須是正整數。

lora_alpha

低階修正 LoRA) alpha 值,作為權重更新的擴展因素。大小通常為 的 2 到 4 倍lora_r。必須是正整數。

lora_dropout

低階修正 (LoRA層的捨棄值必須是介於 0 和 1 之間的正浮點數。

int8_quantization

如果 True,則模型會載入 8 位元的訓練精確度。

enable_fsdp

如果 True,訓練會使用全陰影資料平行處理。

您可以在 Studio 中微調模型時指定超參數值。如需詳細資訊,請參閱在 Studio 中微調模型

您也可以在使用 微調模型時覆寫預設超參數值 SageMaker Python SDK。如需詳細資訊,請參閱使用 JumpStartEstimator類別微調公開可用的基礎模型