Aperfeiçoar modelo
Aperfeiçoa um modelo com o conjunto de dados de treinamento especificado.
Consulte também
Opções
-
Nome da conta é uma expressão de texto para o nome da conta de IA a ser usada. No arquivo atual, use a etapa de script Etapa de script Configurar a conta de IA para configurar a conta e atribuir esse nome a ela antes que a etapa de script seja executada.
-
Modelo base é uma expressão de texto para o modelo de geração de texto para ajustar. Para modelos compatíveis, consulte Especificações técnicas do FileMaker.
-
Dados de treinamento especifica a fonte dos dados de treinamento para ajuste fino:
-
Tabela: usa dados da ocorrência de tabela especificada com base no conjunto encontrado atual de registros. Para treinamento, os dados de Campo de Conclusão são usados como resposta do assistente. Dados de todos os outros campos são usados como o prompt do usuário correspondente.
-
Arquivo: usa um arquivo JSONL que contém dados de treinamento. Cada linha deve ser um objeto JSON válido com um prompt do usuário e sua resposta de assistente correspondente.
-
-
Destino da resposta especifica o campo ou variável em que o provedor do modelo retorna um objeto JSON com informações sobre o trabalho de ajuste fino iniciado por esta etapa de script.
-
Parâmetros de aperfeiçoamento é uma expressão de texto para um objeto JSON que consiste em pares de valores de chave para opções de aperfeiçoamento que são permitidos pelo provedor do modelo.
Opções disponíveis somente quando Dados de treinamento é Tabela:
-
O valor para Tabela especifica uma ocorrência de tabela a ser usada para dados de treinamento.
-
Campo de conclusão especifica o campo em Tabela que contém respostas ou respostas esperadas do assistente para treinamento.
Opções disponíveis somente quando Dados de Treinamento é Arquivo:
-
O valor para Arquivo especifica uma lista de um ou mais caminhos para o arquivo JSONL que contém dados de treinamento. Os caminhos devem usar um dos prefixos de caminho
do arquivo
. A etapa de script pesquisa a lista e adiciona o primeiro arquivo JSONL localizado com sucesso. Consulte Criação de caminhos de arquivo.
Compatibilidade
Produto | Compatível |
FileMaker Pro | Sim |
FileMaker Go | Sim |
FileMaker WebDirect | Sim |
FileMaker Server | Sim |
FileMaker Cloud | Sim |
FileMaker Data API | Sim |
Publicação na Web personalizada | Sim |
Originada na versão
22.0
Descrição
Essa etapa de script envia dados de treinamento para um provedor de modelo compatível para criar uma versão ajustada de um modelo de IA básico usando técnicas de adaptação de baixo nível (LoRA). O ajuste fino permite personalizar o comportamento de um modelo para tarefas, domínios ou estilos de resposta específicos, treinando-o em seus próprios dados, preservando os recursos gerais do modelo base. Por exemplo, você pode aperfeiçoar um modelo para responder melhor usando a terminologia, o estilo de escrita ou a experiência em domínio específicos da sua empresa. A LoRA é um método eficiente que adiciona pequenos parâmetros treináveis ao modelo sem modificar as ponderações originais. Essa abordagem requer significativamente menos recursos computacionais e memória em comparação com o ajuste fino do modelo completo para alcançar melhorias de desempenho comparáveis.
A conta de IA especificada por Nome da conta deve ser configurada para um dos seguintes provedores de modelo:
-
OpenAI
-
O Servidor do modelo de IA fornecido com o FileMaker Server em um Mac com Apple Silicon
Outros provedores de modelos e sistemas operacionais não são compatíveis com ajuste fino. Consulte as Especificações técnicas do FileMaker .
Dados de treinamento
Os dados de treinamento podem ser fornecidos a partir de uma tabela FileMaker ou de um arquivo JSON Lines (JSONL). Cada exemplo de treinamento consiste em um prompt do usuário e a resposta desejada do assistente. O modelo é então capaz de gerar respostas semelhantes aos exemplos de treinamento quando recebem instruções semelhantes.
Dados de treinamento de | Faz isso |
---|---|
Tabela |
Para a ocorrência de tabela especificada, envia dados de Campo de conclusão como a resposta do assistente e dados de todos os outros campos como o prompt do usuário correspondente. Para cada registro no conjunto encontrado atual (ou para cada registro relacionado se especificar uma tabela relacionada), a etapa de script cria um objeto JSON no seguinte formato e, em seguida, envia todos eles como um arquivo JSONL ao provedor do modelo. Copiar
Nota Essa opção não permite especificar os campos enviados no prompt do usuário. Para especificar os campos a serem incluídos no prompt do usuário, use a Etapa de script Salvar registros como JSONL para criar um arquivo JSONL e, em seguida, use a opção Arquivo nesta etapa de script para enviar esse arquivo como os dados de treinamento. |
Arquivo |
Envia o primeiro arquivo JSONL localizado com sucesso na lista de caminhos especificada por Arquivo. Cada linha do arquivo JSONL deve conter um objeto JSON com pelo menos o prompt do usuário e a resposta do assistente correspondente neste formato: Copiar
Nota Este exemplo mostra várias linhas para maior clareza, mas cada objeto JSON deve estar em uma única linha no arquivo JSONL. Você pode usar a Etapa de script Salvar registros como JSONL com a opção Formato para aperfeiçoamento ativada para criar este arquivo a partir de dados de registro. |
Destino da resposta
Para obter informações sobre o trabalho de ajuste fino iniciado por essa etapa de script, especifique uma variável ou campo para a opção Destino da resposta. O ajuste fino pode levar um tempo considerável, portanto, você precisará verificar quando o processo está completo e o modelo aperfeiçoado está pronto para uso com o provedor do modelo.
Por exemplo, o Servidor do modelo de IA envia uma resposta como a mostrada abaixo quando:
-
O arquivo JSONL especificado por Arquivo é my-training-data.jsonl.
-
Modelo base é google/codegemma-7b-it.
-
O valor da chave
fine_tuned_model_name
especificada em Parâmetros de aperfeiçoamento é my-fine-tuned-model-name. O valor da chavefine_tuned_model
em Destino da resposta é o nome completo atribuído pelo Servidor do modelo de IA.
{
"result": {
"object": "fine_tuning.job",
"id": "fm-ftjob-1753297022103",
"file_id": "fm-ft-train-1753297022070",
"model": "google/codegemma-7b-it",
"created_at": 1753297022103,
"fine_tuned_model": "fm-mlx-my-fine-tuned-model-name",
"status": "queued",
"training_file": "my-training-data.jsonl",
"tags": [
"fine-tune"
]
}
}
Para determinar quando o Servidor do modelo de IA concluiu o ajuste fino, faça login no console do FileMaker Server Admin. veja Notas.
Parâmetros de aperfeiçoamento
A opção Parâmetros de aperfeiçoamento pode ser usada para especificar parâmetros de ajuste fino que aceitos pelo provedor do modelo. Consulte a documentação do provedor do modelo para obter nomes de parâmetros suportados e seus intervalos válidos.
Para o Servidor do modelo de IA fornecido com o FileMaker Server, você pode usar as seguintes chaves e valores para ajustar o ajuste fino, se necessário. Se uma chave não for especificada ou a opção Parâmetros de aperfeiçoamento não for usada, a etapa de script usará os valores padrão.
Parâmetro | Descrição | Valor padrão |
|
Número total de etapas de treinamento (ou iterações). Mais iterações exigem mais memória e tempo da máquina, mas correm o risco de sobreajuste. |
1000 |
|
Controla o quanto o modelo se ajusta durante cada etapa de treinamento. Valores maiores aceleram o treinamento, mas correm o risco de ultrapassar o desempenho ideal. Valores menores significam treinamento mais estável, mas convergência mais lenta. |
2e-4 (0,0002) |
|
Número de camadas do modelo que terão adaptadores LoRA aplicados durante o ajuste fino. Valores menores aceleram o treinamento com menor uso de memória, o que é bom para mudanças simples de modelo. Valores maiores deixam o treinamento mais lento com maior uso de memória, o que é melhor para mudanças de modelo mais complexas. |
4 |
|
Número de exemplos de treinamento processados juntos antes de atualizar os pesos do modelo durante o ajuste fino. Valores menores reduzem o uso de memória e deixam o treinamento mais lento. Valores maiores aumentam o uso da memória e deixam o treinamento mais rápido. |
1 |
|
Controla o nome personalizado do seu modelo aperfeiçoado após o treinamento. Para o nome raiz especificado neste parâmetro, o Servidor do modelo de IA converte espaços em hifens e adiciona o prefixo O nome completo do modelo aperfeiçoado é retornado em Destino da resposta. Aviso Se já houver um modelo aperfeiçoado com esse nome completo, o modelo aperfeiçoado será excluído antes do início do treinamento para o novo modelo aperfeiçoado. |
|
Por exemplo, este objeto JSON define chaves na opção Parâmetros de aperfeiçoamento:
{
"max_steps": 2000,
"learning_rate": 1e-4,
"batch_size": 2,
"lora_layers": 6,
"fine_tuned_model_name": "suporte-ao-cliente-v1"
}
Notas
-
O ajuste fino requer recursos computacionais significativos. Executar mais de um trabalho de ajuste fino por vez no Servidor do modelo de IA pode afetar negativamente o desempenho do sistema.
-
Para monitorar o status de modelos ajustados no Servidor do modelo de IA (por exemplo, para saber quando o treinamento foi concluído), abra o console do FileMaker Server Admin. Nele, você também pode criar modelos aperfeiçoados diretamente fazendo o upload de um arquivo JSONL. Consulte Criação de modelos aperfeiçoados na Ajuda do FileMaker Server.
Exemplo 1- Ajuste fino básico usando dados de tabela
Ajuste um modelo da OpenAI com dados de uma tabela. O script configura uma conta de IA para OpenAI e vai para o layout Support_QA. A tabela Support_QA contém campos de pergunta e resposta, entre outros. O script executa uma pesquisa para obter o conjunto encontrado desejado e, em seguida, envia os dados desses registros para aperfeiçoar um modelo do GPT-4.1, especificando o campo de resposta para o Campo de conclusão (os dados de todos os outros campos são enviados como o prompt do usuário).
Configurar conta de IA [ Nome da Conta: "my-account" ; Provedor do modelo: OpenAI ; Chave de API: Global::OpenAI_API_Key ]
Ir para layout [ "Support_QA" (Support_QA) ]
Realizar busca [ Restore ]
Aperfeiçoar modelo [ Nome da Conta: "minha-conta" ; Modelo base: "gpt-4.1-2025-04-14" ; Dados de treinamento: Tabela ; "Support_QA" ; Campo de conclusão: Support_QA::Answer ; Destino da resposta: $$responseTarget ]
Quando o OpenAI notifica que o treinamento está concluído e fornece o nome do modelo aperfeiçoado, você pode usar o modelo em etapas de script como Gerar resposta do modelo:
Gerar resposta do modelo [ Nome da Conta: "my-account" ; Modelo: "ft:gpt-4o-mini-2024-07-18:my-org::LBNO71Qq" ; Prompt do usuário: $question ; Modo Agentic ; Resposta: $$response ]
Exemplo 2- Ajuste fino usando um arquivo JSONL
Ajuste um modelo no Servidor do modelo de IA enviando o arquivo JSONL criado em Exemplo 2 para a Etapa de script Salvar registros como JSONL. O script configura uma conta de IA e define a variável $trainingFile para o caminho do arquivo JSONL na pasta Documentos.
O script então define a variável $parameters para um objeto JSON que contém os pares chave-valor a serem usados para parâmetros de ajuste fino, incluindo a definição do nome raiz para fornecer o modelo aperfeiçoado.
Finalmente, o script envia o arquivo JSONL especificado por $trainingFile para o Servidor do modelo de IA, indicando o modelo base a ser ajustado, os parâmetros a serem usados e a variável $response para armazenar a resposta. Para ter o nome completo do modelo aperfeiçoado disponível para usar posteriormente, o script obtém o nome de $response e o armazena em um campo global.
Configurar conta de IA [ Nome da Conta: "AI_Model_Server" ; Provedor do modelo: Personalizado ; Ponto de extremidade: "https://meuservidor.exemplo.com/llm/v1/" ; Chave de API: Global::Fine_Tuning_API_Key ; Verificar certificados SSL ]
Definir variável [ $trainingFile ; Valor: Get(DocumentsPath) & "training_data.jsonl" ]
Definir variável [ $parameters ; Valor:
Let ( [
json = "{}" ;
json = JSONSetElement ( json; "max_steps"; 1500; JSONString ) ;
json = JSONSetElement ( json; "learning_rate"; 1e-4; JSONString ) ;
json = JSONSetElement ( json; "batch_size"; 2; JSONString ) ;
json = JSONSetElement ( json; "fine_tuned_model_name"; "product-expert-v2" ; JSONString )
] ;
json
)
]
Aperfeiçoar modelo [ Nome da Conta: "AI_Model_Server" ; Modelo base: "google/codegemma-7b-it" ; Dados de treinamento: File ; "$trainingFile" ; Destino da resposta: $responseTarget ; Parâmetros de aperfeiçoamento: $parameters ]
Definir campo [ Global::Fine_Tuned_Model ; JSONGetElement ( $responseTarget ; "result.fine_tuned_model" ) ]