Modello Fine-Tune
Esegue il fine-tuning di un modello con il gruppo di dati specificato.
Vedere anche
Opzioni
-
Nome account è un'espressione di testo per il nome dell'account AI da utilizzare. Nel file corrente, utilizzare l'istruzione di script Configura account AI per configurare l'account e assegnargli questo nome in qualsiasi momento prima che questa istruzione di script venga eseguita.
-
Modello base è un'espressione di testo per il modello di generazione di testo da affinare. Per i modelli supportati, vedere le Specifiche tecniche di FileMaker.
-
Dati addestramento specifica l'origine dei dati di addestramento per il fine-tuning:
-
Tabella: utilizza i dati della ricorrenza di tabella specificata in base al gruppo di record trovato corrente. Per l'addestramento, i dati di Campo completamento vengono utilizzati come risposta dell'assistente; i dati di tutti gli altri campi vengono utilizzati come prompt dell'utente corrispondente.
-
File: utilizza un file JSONL contenente dati di addestramento. Ogni riga deve essere un oggetto JSON valido contenente un prompt dell'utente e la risposta dell'assistente corrispondente.
-
-
Destinazione risposta specifica il campo o la variabile in cui il fornitore del modello restituisce un oggetto JSON con informazioni sul lavoro di fine-tuning avviato da questa istruzione di script.
-
Parametri Fine-Tune è un'espressione di testo per un oggetto JSON che consiste di coppie chiave-valore per opzioni di fine-tuning supportate dal fornitore del modello.
Opzioni disponibili solo quando Dati addestramento è Tabella:
-
Il valore per Tabella specifica una ricorrenza di tabella da utilizzare per i dati di addestramento.
-
Campo completamento specifica il campo in Tabella contenente le risposte dell'assistente previste o le risposte per l'addestramento.
Opzioni disponibili solo quando Dati addestramento è File:
-
Il valore per File specifica un elenco di uno o più percorsi per il file JSONL contenente i dati di addestramento. I percorsi devono utilizzare uno dei prefissi di percorso del
file
. L'istruzione di script cerca nell'elenco e aggiunge il primo file JSONL che riesce a individuare. Vedere Creazione dei percorsi di file.
Compatibilità
Prodotto | Supportata |
FileMaker Pro | Sì |
FileMaker Go | Sì |
FileMaker WebDirect | Sì |
FileMaker Server | Sì |
FileMaker Cloud | Sì |
FileMaker Data API | Sì |
Pubblicazione Web personalizzata | Sì |
Creata nella versione
22.0
Descrizione
Questa istruzione di script invia i dati di addestramento a un fornitore modello supportato per creare una versione affinata di un modello di AI di base utilizzando tecniche di low-rank adaptation (LoRA). Il fine-tuning consente di personalizzare il comportamento di un modello per attività, domini o stili di risposta specifici addestrandolo sui propri dati e preservando le capacità generali del modello di base. Ad esempio, è possibile affinare un modello in modo tale che fornisca risposte migliori utilizzando la terminologia specifica, lo stile di scrittura o l'esperienza settoriale della propria azienda. LoRA è un metodo efficiente che aggiunge piccoli parametri addestrabili al modello, senza modificare i pesi originali. Questo approccio richiede una quantità decisamente inferiore di risorse computazionali e di memoria rispetto al fine-tuning del modello completo, consentendo al contempo di ottenere miglioramenti delle prestazioni comparabili.
L'account AI specificato da Nome account deve essere configurato per uno dei seguenti fornitori di modelli:
-
OpenAI
-
Il Server modello AI fornito con FileMaker Server su un Mac con Apple Silicon
Altri fornitori di modelli e sistemi operativi non sono supportati per il fine-tuning. Vedere le Specifiche tecniche di FileMaker .
Dati addestramento
Dati addestramento può essere fornito da una tabella FileMaker o da un file JSON Lines (JSONL). Ciascun esempio di addestramento è costituito da un prompt dell'utente e dalla risposta dell'assistente desiderata. Il modello è quindi in grado di generare risposte simili agli esempi di addestramento quando gli vengono forniti suggerimenti simili.
Dati addestramento da | Operazione eseguita |
---|---|
Tabella |
Per la ricorrenza di tabella specificata, invia i dati da Campo completamento come risposta dell'assistente e i dati da tutti gli altri campi come prompt dell'utente corrispondente. Per ogni record del gruppo trovato corrente (o per ogni record correlato, se si specifica una tabella correlata), l'istruzione di script crea un oggetto JSON nel seguente formato, quindi li invia tutti come file JSONL al fornitore del modello. Copia
Nota Questa opzione non consente di specificare quali campi vengono inviati nel prompt dell'utente. Per specificare i campi da includere nel prompt dell'utente, utilizzare l'istruzione di script Salva record come JSONL per creare un file JSONL, quindi utilizzare l'opzione File in questa istruzione di script per inviare quel file come dati di addestramento. |
File |
Invia il primo file JSONL individuato correttamente nell'elenco dei percorsi specificato da File. Ogni riga del file JSONL deve contenere un oggetto JSON che abbia almeno il prompt dell'utente e la risposta dell'assistente corrispondente in questo formato: Copia
Nota Anche se qui viene mostrato su più righe per scopi di chiarezza, ogni oggetto JSON deve essere su una sola riga nel file JSONL. È possibile utilizzare l'istruzione di script Salva record come JSONL con l'opzione Formato per fine-tuning attivata per creare questo file dai dati del record. |
Destinazione risposta
Per ottenere informazioni sul lavoro di fine-tuning avviato da questa istruzione di script, specificare una variabile o un campo per l'opzione Destinazione risposta. Il fine-tuning può richiedere molto tempo, quindi occorerà verificare con il fornitore del modello quando il processo è completo e il modello affinato è pronto per essere utilizzato.
Ad esempio, il Server modello AI invia una risposta come quella mostrata di seguito quando:
-
Il file JSONL specificato da File è miei-dati-addestramento.jsonl.
-
Modello base è google/codegemma-7b-it.
-
Il valore della chiave
fine_tuned_model_name
specificata in Parametri Fine-Tune è nome_mio_modello_affinato. Il valore della chiavefine_tuned_model
in Destinazione risposta è il nome completo assegnato dal Server modello AI.
{
"risultato": {
"oggetto": "fine_tuning.job",
"id": "fm-ftjob-1753297022103",
"id_file": "fm-ft-train-1753297022070",
"modello": "google/codegemma-7b-it",
"creato_alle": 1753297022103,
"modello_affinato": "fm-mlx_mio_nome_modello_affinato",
"stato": "in coda",
"file_addestramento": "miei-dati-addestramento.jsonl",
"tag": [
"fine-tune"
]
}
}
Per determinare quando il Server modello AI ha completato il fine-tuning, accedere alla FileMaker Server Admin Console. Vedere Note.
Parametri Fine-Tune
L'opzione Parametri Fine-Tune può essere utilizzata per specificare i parametri di fine-tuning supportati dal fornitore del modello. Fare riferimento alla documentazione del fornitore del modello per i nomi delle chiavi dei parametri supportati e i relativi intervalli validi.
Per il Server modello AI fornito con FileMaker Server è possibile utilizzare le chiavi e i valori seguenti per regolare il fine-tuning, se necessario. Se non viene specificata una chiave o non viene utilizzata l'opzione Parametri Fine-Tune, l'istruzione di script utilizza i valori predefiniti.
Parametro | Descrizione | Valore predefinito |
|
Numero totale di fasi di addestramento (o iterazioni). Un maggior numero di iterazioni richiede una memoria della macchina e tempi più elevati, ma rischia l'overfitting. |
1000 |
|
Numero che controlla quanto il modello si adatta durante ogni fase di addestramento. Valori più alti indicano un addestramento più veloce ma rischiano di superare le prestazioni ottimali. Valori più bassi indicano un addestramento più stabile ma una convergenza più lenta. |
2e-4 (0.0002) |
|
Numero di livelli del modello per i quali verranno applicati adattatori LoRA durante il fine-tuning. Valori più bassi indicano un addestramento più veloce con un utilizzo della memoria inferiore, adatto per modifiche al modello semplici. Valori più alti indicano un addestramento più lento con un utilizzo di memoria maggiore, migliore per modifiche del modello più complesse. |
4 |
|
Numero di esempi di addestramento elaborati insieme prima di aggiornare i pesi del modello durante il fine-tuning. Valori più bassi indicano un minore utilizzo della memoria e un addestramento più lento. Valori più alti indicano un maggiore utilizzo della memoria e un addestramento più rapido. |
1 |
|
Controlla il nome personalizzato del proprio modello affinato dopo l'addestramento. Per il nome radice specificato in questo parametro, il Server modello AI converte gli spazi in trattini e aggiunge il prefisso Il nome completo del modello affinato viene restituito in Destinazione risposta. Avviso Se il nome completo corrisponde a quello di un modello affinato esistente, quest'ultimo viene eliminato prima dell'inizio dell'addestramento per il nuovo modello affinato. |
|
Ad esempio, questo oggetto JSON imposta le chiavi nell'opzione Parametri Fine-Tune:
{
"max_steps": 2000,
"learning_rate": 1e-4,
"batch_size": 2,
"lora_layers": 6,
"fine_tuned_model_name": "supporto-clienti-v1"
}
Note
-
Il fine-tuning richiede risorse computazionali notevoli. L'esecuzione di più di un lavoro di fine-tuning alla volta sul Server modello AI può influire negativamente sulle prestazioni del sistema.
-
Per monitorare lo stato dei modelli affinati sul Server modello AI (ad esempio, per comunicare quando l'addestramento è completo), aprire la FileMaker Server Admin Console. Qui è anche possibile creare modelli affinati direttamente, caricando un file JSONL. Vedere Creazione di modelli di AI affinati nella Guida di FileMaker Server.
Esempio 1- Fine-tuning di base utilizzando i dati della tabella
Affina un modello OpenAI con i dati di una tabella. Lo script configura un account AI per OpenAI e va al formato Support_QA. La tabella Support_QA contiene, tra le altre cose, i campi Domanda e Risposta. Lo script esegue una ricerca per ottenere il gruppo trovato desiderato, quindi invia i dati dei record per affinare un modello GPT-4.1, specificando il campo Risposta per Campo completamento (i dati di tutti gli altri campi vengono inviati come prompt utente).
Configura account AI [ Nome account: "my-account" ; Fornitore modello: OpenAI ; Chiave API: Globale::Chiave_API_OpenAI ]
Vai al formato [ "Support_QA" (Support_QA) ]
Esegui la ricerca [Ripristina ]
Modello Fine-Tune [ Nome account: "my-account" ; Modello base: "gpt-4.1-2025-04-14" ; Dati addestramento: Tabella ; "Support_QA" ; Campo completamento: Support_QA:: Risposta ; Destinazione risposta: $$destinazioneRisposta ]
Quando OpenAI notifica che l'addestramento è completato e fornisce il nome del modello affinato, è possibile utilizzare il modello in istruzioni di script come Genera risposta dal modello:
Genera risposta dal modello [ Nome account: "my-account" ; Modello: "ft:gpt-4o-mini-2024-07-18:my-org::LBNO71Qq" ; Prompt utente: $domanda ; Modalità agentica ; Risposta: $$risposta ]
Esempio 2- Fine-tuning con un file JSONL
Esegue il fine-tuning di un modello sul Server modello AI inviando il file JSONL creato nell'Esempio 2 per l'istruzione di script Salva record come JSONL. Lo script configura un account AI per e imposta la variabile $fileAddestramento sul percorso per il file JSONL nella cartella Documenti.
Quindi, lo script imposta la variabile $parametri su un oggetto JSON contenente le coppie chiave-valore da utilizzare per i parametri di fine-tuning, inclusa l'impostazione del nome radice da dare al modello affinato.
Infine, lo script invia il file JSONL specificato da $fileAddestramento al Server modello AI, indicando il modello di base da affinare, i parametri da utilizzare e la variabile $risposta per memorizzare la risposta. Per avere il nome completo del modello affinato a disposizione per l'uso successivo, lo script ottiene il nome da $risposta e lo memorizza in un campo globale.
Configura account AI [ Nome account: "Server_modello_AI" ; Fornitore modello: Personalizzato ; Endpoint: "https://myserver.example.com/llm/v1/" ; Chiave API: Globale::Chiave_API_Fine_Tuning ; Verifica certificati SSL ]
Imposta variabile [ $fileAddestramento ; Valore: Get(PercorsoDocumenti) & "dati_addestramento.jsonl"]
Imposta variabile [ $parametri ; Valore:
Dichiara ( [
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
)
]
Modello Fine-Tune [ Nome account: "Server_modello_AI" ; Modello base: "google/codegemma-7b-it" ; Dati addestramento: File ; "$fileAddestramento" ; Destinazione risposta: $destinazioneRisposta ; Parametri Fine-Tune: $parametri ]
Imposta campo [ Globale::Modello_affinato ; JSONGetElement ( $destinazioneRisposta ; "risultato.modello_affinato" ) ]