Ajuste um modelo de base - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Ajuste um modelo de base

Os modelos de base são computacionalmente caros e treinados em um corpus grande e sem rótulo. Ajustar um modelo de base pré-treinado é uma forma acessível de aproveitar seus amplos recursos e, ao mesmo tempo, personalizar um modelo em seu próprio pequeno corpus. O ajuste fino é um método de personalização que envolve treinamento adicional e altera os pesos do seu modelo.

O ajuste fino pode ser útil se você precisar de:

  • para personalizar seu modelo de acordo com necessidades comerciais específicas

  • seu modelo para trabalhar com sucesso com linguagem específica de domínio, como jargões do setor, termos técnicos ou outro vocabulário especializado

  • desempenho aprimorado para tarefas específicas

  • respostas precisas, relativas e sensíveis ao contexto em aplicativos

  • respostas mais factuais, menos tóxicas e mais bem alinhadas aos requisitos específicos

Há duas abordagens principais que você pode adotar para fazer o ajuste fino, dependendo do seu caso de uso e do modelo de base escolhido.

  1. Se você estiver interessado em ajustar seu modelo em dados específicos do domínio, consulte Ajuste fino da adaptação do domínio.

  2. Se você estiver interessado em um ajuste fino baseado em instruções usando exemplos de solicitações e respostas, consulte Ajuste fino baseado em instruções.

Modelos de base disponíveis para ajuste fino

Você pode ajustar qualquer um dos seguintes modelos de JumpStart base:

  • Bloom 3B

  • Bloom 7B1

  • BloomZ 3B FP16

  • BloomZ 7B1 FP16

  • Código Llama 13B

  • Código Llama 13B Python

  • Código Llama 34B

  • Código Llama 34B Python

  • Código Llama 70B

  • Código Llama 70B Python

  • Código Llama 7B

  • Código Llama 7B Python

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

  • Falcão 40B BF16

  • Falcon 40B Instruct BF16

  • Falcão 7B BF16

  • Falcon 7B Instruct BF16

  • Base Flan-T5

  • Flan-T5 Grande

  • Flan-T5 pequeno

  • Flange T5 XL

  • Flan-T5 XXL

  • Gemma 2B

  • Gemma 2B Instruct

  • Gemma 7B

  • Gemma 7B Instrutor

  • GPT-2 XL

  • GPT-J 6B

  • GPT-Neo 1,3B

  • GPT-Neo 125M

  • GPT-NEO 2.7B

  • LightGPT Instruct 6B

  • Llama 2 13B

  • Llama 2 13B Chat

  • Neurônio Llama 2 13B

  • Llama 2 70B

  • Llama 2 70B Chat

  • Llama 2 7B

  • Llama 2 7B Chat

  • Neurônio Llama 2 7B

  • Mistral 7B

  • Mixtral 8x7B

  • Instrução Mixtral 8x7B

  • RedPajama INCITE Base 3B V1

  • RedPajama Base INCITE 7B V1

  • RedPajama INCITE Chat 3B V1

  • RedPajama INCITE Chat 7B V1

  • RedPajama INCITE Instruct 3B V1

  • RedPajama INCITE Instruct 7B V1

  • Difusão estável 2.1

Hiperparâmetros de ajuste fino comumente suportados

Diferentes modelos de base oferecem suporte a diferentes hiperparâmetros durante o ajuste fino. A seguir estão os hiperparâmetros comumente aceitos que podem personalizar ainda mais seu modelo durante o treinamento:

Parâmetro de inferência Descrição

epoch

O número de passagens que o modelo faz pelo conjunto de dados de ajuste fino durante o treinamento. Deve ser um número inteiro maior que 1.

learning_rate

A taxa na qual os pesos do modelo são atualizados depois de analisar cada lote de exemplos de treinamento de ajuste fino. Deve ser um flutuador positivo maior que 0.

instruction_tuned

Se o modelo deve ser treinado ou não. Precisa ser 'True' ou 'False'.

per_device_train_batch_size

O tamanho do lote por núcleo de GPU ou CPU para treinamento. Deve ser um número inteiro positivo.

per_device_eval_batch_size

O tamanho do lote por núcleo de GPU ou CPU para avaliação. Deve ser um número inteiro positivo.

max_train_samples

Para fins de depuração ou treinamento mais rápido, reduza o número de exemplos de treinamento para esse valor. O valor -1 significa que o modelo usa todas as amostras de treinamento. Deve ser um número inteiro positivo ou -1.

max_val_samples

Para fins de depuração ou treinamento mais rápido, reduza o número de exemplos de validação para esse valor. O valor -1 significa que o modelo usa todas as amostras de validação. Deve ser um número inteiro positivo ou -1.

max_input_length

Comprimento máximo total da sequência de entrada após a tokenização. Sequências maiores do que isso serão truncadas. Se -1, max_input_length é definido como o mínimo de 1024 e o model_max_length definido pelo tokenizador. Se definido como um valor positivo, max_input_length é definido como o mínimo do valor fornecido e o model_max_length definido pelo tokenizador. Deve ser um número inteiro positivo ou -1.

validation_split_ratio

Se não houver canal de validação, a proporção entre treinamento e validação é dividida dos dados de treinamento. Deve estar entre 0 e 1.

train_data_split_seed

Se os dados de validação não estiverem presentes, isso corrige a divisão aleatória dos dados de treinamento de entrada nos dados de treinamento e validação usados pelo modelo. Deve ser um número inteiro.

preprocessing_num_workers

O número de processos a serem usados para o pré-processamento. SeNone, o processo principal é usado para pré-processamento.

lora_r

Valor r de adaptação de baixa classificação (LoRa), que atua como fator de escala para atualizações de peso. Deve ser um número inteiro positivo.

lora_alpha

Valor alfa de adaptação de baixa classificação (LoRa), que atua como fator de escala para atualizações de peso. Geralmente 2 a 4 vezes o tamanho delora_r. Deve ser um número inteiro positivo.

lora_dropout

O valor de abandono para camadas de adaptação de baixa classificação (LoRa) deve ser uma flutuação positiva entre 0 e 1.

int8_quantization

SeTrue, o modelo for carregado com precisão de 8 bits para treinamento.

enable_fsdp

SeTrue, o treinamento usa paralelismo de dados totalmente fragmentado.

Você pode especificar valores de hiperparâmetros ao ajustar seu modelo no Studio. Para ter mais informações, consulte Ajuste os modelos de base no Studio.

Você também pode substituir os valores padrão dos hiperparâmetros ao ajustar seu modelo usando o SDK. SageMaker Python Para ter mais informações, consulte Ajuste os modelos de fundação disponíveis publicamente com a classe JumpStartEstimator.