Ajustar um grande modelo de linguagem (LLM) usando adaptação de domínio
O ajuste fino da adaptação de domínio permite que você aproveite modelos de base pré-treinados e os adapte a tarefas específicas usando dados limitados específicos do domínio. Se os esforços imediatos de engenharia não fornecerem personalização suficiente, você poderá usar o ajuste fino da adaptação de domínio para fazer seu modelo funcionar com a linguagem específica do domínio, como jargões do setor, termos técnicos ou outros dados especializados. Esse processo de ajuste fino modifica os pesos do modelo.
Para ajustar seu modelo em um conjunto de dados específico do domínio:
-
Embaralhe os dados de treinamento. Para obter instruções, consulte Prepare e faça upload dos dados de treinamento para o ajuste de adaptação de domínio.
-
Crie seu trabalho de treinamento ajustado. Para obter instruções, consulte Crie um trabalho de treinamento para ajuste baseado nas instruções.
Você pode encontrar exemplos completos em Cadernos de exemplo.
O ajuste fino da adaptação do domínio está disponível com os seguintes modelos de base:
nota
Alguns modelos de base do JumpStart, 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 obter mais informações, consulte Contratos de licença de usuário final.
-
Bloom 3B
-
Bloom 7B1
-
BloomZ 3B FP16
-
BloomZ 7B1 FP16
-
GPT-2 XL
-
GPT-J 6B
-
GPT-Neo 1.3B
-
GPT-Neo 125M
-
GPT-NEO 2.7B
-
Llama 2 13B
-
Llama 2 13B Chat
-
Llama 2 13B Neuron
-
Llama 2 70B
-
Llama 2 70B Chat
-
Llama 2 7B
-
Llama 2 7B Chat
-
Llama 2 7B Neuron
Prepare e faça upload dos dados de treinamento para o ajuste de adaptação de domínio
Os dados de treinamento para ajuste da adaptação do domínio podem ser fornecidos no formato de arquivo CSV, JSON ou TXT. Todos os dados de treinamento devem estar em um único arquivo dentro de uma única pasta.
Os dados de treinamento são extraídos da coluna Texto dos arquivos de dados de treinamento CSV ou JSON. Se não houver uma coluna chamada Texto, os dados de treinamento serão extraídos da primeira coluna dos arquivos de dados de treinamento CSV ou JSON.
Veja a seguir o corpo de um exemplo de um arquivo TXT a ser usado para ajuste:
This report includes estimates, projections, statements relating to our business plans, objectives, and expected operating results that are “forward- looking statements” within the meaning of the Private Securities Litigation Reform Act of 1995, Section 27A of the Securities Act of 1933, and Section 21E of ....
Dividir dados para treinamento e teste
Você pode fornecer outra pasta contendo os dados de validação. Essa pasta também deve incluir um arquivo CSV, JSON ou TXT. 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 adaptar a porcentagem de dados de treinamento usados para validação quando for escolher os hiperparâmetros para ajustar seu modelo.
Fazer upload de dados de ajuste no Amazon S3
Faça upload dos dados preparados no Amazon Simple Storage Service (Amazon S3) para usá-los no ajuste de um modelo de base do JumpStart. Você pode usar os seguintes comandos para fazer o upload dos dados:
from sagemaker.s3 import S3Uploader import sagemaker import random output_bucket = sagemaker.Session().default_bucket() local_data_file =
"train.txt"
train_data_location = f"s3://{output_bucket}/training_folder"
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 baseado nas instruções
Depois que seus dados forem enviados para o Amazon S3, você poderá ajustar e implantar seu modelo de base do JumpStart. Para ajustar seu modelo no Studio, consulte Ajustar um modelo no Studio. Para ajustar seu modelo usando o SageMaker Python SDK, consulte Ajustar modelos de base disponíveis ao público com a função JumpStartEstimator.
Cadernos de exemplo
Para obter mais informações sobre ajuste para adaptação de domínio, consulte os seguintes cadernos de exemplos: