Ajuste fino baseado em instruções - 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 fino baseado em instruções

O ajuste fino baseado em instruções usa exemplos rotulados para melhorar o desempenho de um modelo de base pré-treinado em uma tarefa específica. Os exemplos rotulados são formatados como solicitações, pares de respostas e expressos como instruções. Esse processo de ajuste fino modifica os pesos do modelo. Para obter mais informações sobre o ajuste fino baseado em instruções, consulte os artigos Introdução ao FLAN: modelos de linguagem mais generalizáveis com ajuste fino de instruções e Escalonamento de modelos de linguagem ajustados por instruções.

Os modelos ajustados de Language Net (FLAN) usam o ajuste de instruções para tornar os modelos mais fáceis de resolver tarefas gerais de PNL downstream. SageMaker JumpStart A Amazon fornece vários modelos básicos na família de modelos FLAN. Por exemplo, os modelos FLAN-T5 são ajustados com instruções em uma ampla variedade de tarefas para aumentar o desempenho zero em uma variedade de casos de uso comuns. Com dados adicionais e ajustes, os modelos baseados em instruções podem ser ainda mais adaptados a tarefas mais específicas que não foram consideradas durante o pré-treinamento.

Modelos compatíveis com ajuste fino baseado em instruções

Somente um subconjunto de modelos JumpStart básicos é compatível com o ajuste fino baseado em instruções. O ajuste fino baseado em instruções está disponível com os seguintes modelos de base:

nota

Alguns modelos JumpStart básicos, como o Llama 2 7B, exigem a aceitação de um contrato de licença do usuário final antes de ajustar e realizar inferências. Para ter mais informações, consulte Contratos de licença de usuário final.

  • Base Flan-T5

  • Flan-T5 Grande

  • Flan-T5 pequeno

  • Flange T5 XL

  • Flan-T5 XXL

  • 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

  • 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

Prepare e faça upload de dados de treinamento para ajustes finos baseados em instruções

Os dados de treinamento para ajuste fino baseado em instruções devem ser fornecidos no formato de arquivo de texto JSON Lines, em que cada linha é um dicionário. Todos os dados de treinamento devem estar em uma única pasta. A pasta pode incluir vários arquivos.jsonl.

A pasta de treinamento também pode incluir um arquivo JSON de modelo (template.json) que descreve os formatos de entrada e saída dos seus dados. Se nenhum arquivo de modelo for fornecido, o seguinte arquivo de modelo será usado:

{ "prompt": "Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.\n\n### Instruction:\n{instruction}\n\n### Input:\n{context}", "completion": "{response}" }

De acordo com o template.json arquivo, cada entrada .jsonl dos dados de treinamento deve incluir campos {instruction}{context}, e. {response}

Se você fornecer um arquivo JSON de modelo personalizado, use as "completion" teclas "prompt" e para definir seus próprios campos obrigatórios. De acordo com o seguinte arquivo JSON de modelo personalizado, cada entrada .jsonl dos dados de treinamento deve incluir campos{question}, {context} e: {answer}

{ "prompt": "question: {question} context: {context}", "completion": "{answer}" }

Divida os dados para treinamento e teste

Opcionalmente, você pode fornecer outra pasta contendo dados de validação. Essa pasta também deve incluir um ou mais arquivos.jsonl. Se nenhum conjunto de dados de validação for fornecido, uma quantidade definida dos dados de treinamento será reservada para fins de validação. Você pode ajustar a porcentagem de dados de treinamento usados para validação ao escolher os hiperparâmetros para ajustar seu modelo.

Faça upload de dados de ajuste fino para o Amazon S3

Faça upload dos dados preparados para o Amazon Simple Storage Service (Amazon S3) para usá-los no ajuste fino JumpStart de um modelo básico. Você pode usar os seguintes comandos para fazer upload de seus dados:

from sagemaker.s3 import S3Uploader import sagemaker import random output_bucket = sagemaker.Session().default_bucket() local_data_file = "train.jsonl" train_data_location = f"s3://{output_bucket}/dolly_dataset" S3Uploader.upload(local_data_file, train_data_location) S3Uploader.upload("template.json", train_data_location) print(f"Training data: {train_data_location}")

Crie um trabalho de treinamento para ajuste fino baseado em instruções

Depois que seus dados forem carregados para o Amazon S3, você poderá ajustar e implantar seu modelo básico. JumpStart Para ajustar seu modelo no Studio, consulte. Ajuste os modelos de base no Studio Para ajustar seu modelo usando o SageMaker Python SDK, consulte. Ajuste os modelos de fundação disponíveis publicamente com a classe JumpStartEstimator

Cadernos de exemplo

Para obter mais informações sobre o ajuste fino baseado em instruções, consulte os seguintes exemplos de cadernos: