Finjustera modellen
Finjusterar en modell med angiven uppsättning träningsdata.
Tillval
-
Kontonamn är ett textuttryck för namnet på det AI-konto som ska användas. Använd Scriptsteget Konfigurera AI-konto i den aktuella filen för att konfigurera kontot och tilldela det namnet när som helst innan scriptsteget körs.
-
Basmodell är ett textuttryck för att textgenereringsmodellen ska kunna finjusteras. Information om vilka modeller som stöds finns i Tekniska specifikationer för FileMaker.
-
Träningsdata anger källan till träningsdata för finjusteringen:
-
Tabell: Använder data från den angivna tabellförekomsten baserat på den aktuella hittade uppsättningen poster. För träning används data från Slutförandefält som assistentsvar. Data från alla andra fält används som motsvarande användarprompt.
-
Fil: Använder en JSONL-fil som innehåller träningsdata. Varje rad måste vara ett giltigt JSON-objekt som innehåller en användarprompt och motsvarande assistentsvar.
-
-
Mål för svar anger det fält eller den variabel där modelleverantören returnerar ett JSON-objekt med information om finjusteringsjobbet som startas av det här scriptsteget.
-
Finjustera parametrar är ett textuttryck för ett JSON-objekt som består av par av nyckel–värde för finjusteringsalternativ som stöds av modelleverantören.
Alternativ som endast är tillgängliga när Träningsdata är Tabell:
-
Värdet för Tabell anger en tabellförekomst som ska användas för träningsdata.
-
Slutförandefält anger det fält i Tabell som innehåller förväntade assistentsvar vid träning.
Alternativ som endast är tillgängliga när Träningsdata är Fil:
-
Värdet för Fil anger en lista med en eller flera sökvägar för JSONL-filen som innehåller träningsdata. Sökvägarna måste använda ett av sökvägsprefixen
file
. Scriptsteget söker igenom listan och lägger till den första JSONL-filen som hittas. Mer information finns i Skapa filsökvägar.
Kompatibilitet
Produkt | Stöds |
FileMaker Pro | Ja |
FileMaker Go | Ja |
FileMaker WebDirect | Ja |
FileMaker Server | Ja |
FileMaker Cloud | Ja |
FileMaker Data API | Ja |
Anpassad webbpublicering | Ja |
Ursprungsversion
22.0
Beskrivning
Det här scriptsteget skickar träningsdata till en modelleverantör som stöds för att skapa en finjusterad version av en AI-basmodell med hjälp av LoRA-teknik (Low-Rank Adaptation). Finjustering gör att du kan anpassa en modells beteende för specifika uppgifter, domäner eller svarsstilar genom att träna den på dina egna data samtidigt som basmodellens allmänna funktioner bevaras. Du kan till exempel finjustera en modell så att den svarar bättre med hjälp av företagets specifika terminologi, skrivstil eller domänexpertis. LoRA är en effektiv metod som lägger till små träningsbara parametrar i modellen utan att ändra den ursprungliga viktningen. Den här metoden kräver betydligt mindre beräkningsresurser och minne jämfört med fullständig modellfinjustering samtidigt som jämförbara prestandaförbättringar uppnås.
Det AI-konto som anges av Kontonamn måste vara konfigurerat för en av följande modelleverantörer:
-
OpenAI
-
AI-modellservern som tillhandahålls med FileMaker Server på en Mac med Apple-chip
Andra modelleverantörer och operativsystem stöds inte för finjustering. Se de tekniska specifikationerna för FileMaker .
Träningsdata
Träningsdata kan tillhandahållas antingen från en FileMaker-tabell eller från en JSON Lines-fil (JSONL). Varje träningsexempel består av en användarprompt och önskat assistentsvar. Modellen kan sedan generera svar som liknar dina träningsexempel när den ges liknande promptar.
Träningsdata från | ... ger följande resultat |
---|---|
Tabell |
För den angivna tabellförekomsten skickas data från Slutförandefält som assistentsvar och data från alla andra fält som motsvarande användarprompt. För varje post i de aktuella hittade posterna (eller för varje relaterad post om du anger en relaterad tabell) skapar scriptsteget ett JSON-objekt i följande format och skickar dem sedan alla som en JSONL-fil till modelleverantören. Kopiera
Obs! Med det här alternativet kan du inte ange vilka fält som ska skickas i användarprompten. Om du vill ange vilka fält som ska inkluderas i användarprompten ska du använda Scriptsteget Spara poster i JSONL-format och skapa en JSONL-fil. Använd sedan alternativet Fil i det här scriptsteget och skicka filen som träningsdata. |
Fil |
Skickar den första JSONL-filen som har hittas i den sökvägslista som anges av Fil. Varje rad i JSONL-filen måste innehålla ett JSON-objekt som har som minst användarprompten och motsvarande assistentsvar i detta format: Kopiera
Obs! Det visas här på flera rader för tydlighets skull, men varje JSON-objekt måste alltså stå på en enda rad i JSONL-filen. Du kan använda Scriptsteget Spara poster i JSONL-format med alternativet Format för finjustering aktiverat för att skapa den här filen från postdata. |
Mål för svar
Om du vill ha information om finjusteringsjobbet som startas av det här scriptsteget anger du en variabel eller ett fält för alternativet Mål för svar. Finjustering kan ta lång tid, så du måste kontrollera med modelleverantören för att avgöra när processen har slutförts och den finjusterade modellen är klar att använda.
Till exempel skickar AI-modellservern ett svar liknande det som visas nedan när
-
JSONL-filen som anges av Fil är mina-träningsdata.jsonl.
-
Basmodell är google/codegemma-7b-IT.
-
Värdet på nyckeln
fine_tuned_model_name
som anges i Finjustera parametrar är min-finjusterade-modell-namn. Värdet på nyckelnfine_tuned_model
i Mål för svar är det fullständiga namnet som tilldelas av AI-modellservern.
{
"result": {
"object": "finjustering.job",
"id": "fm-ftjob-1753297022103",
"file_id": "fm-ft-train-1753297022070",
"model": "google/codegemma-7b-it",
"created_at": 1753297022103,
"fine_tuned_model": "fm-mlx-min-finjusterade-modell-namn",
"status": "queued",
"training_file": "mina-träningsdata.jsonl",
"tags": [
"fine-tune"
]
}
}
Logga in på FileMaker Server Admin Console för att avgöra när AI-modellservern har finjusterats. Se Kommentarer.
Finjustera parametrar
Alternativet Finjustera parametrar kan användas för att ange finjusteringsparametrar som stöds av modelleverantören. Se modelleverantörens dokumentation för nyckelnamn på de parametrar som stöds och giltiga intervall.
För den AI-modellserver som medföljer FileMaker Server kan du använda följande nycklar och värden för att anpassa finjusteringen om det behövs. Om en nyckel inte anges eller alternativet Finjustera parametrar inte används använder scriptsteget standardvärdena.
Parameter | Beskrivning | Standardvärde |
|
Totalt antal träningssteg (eller iterationer). Fler iterationer kräver mer datorminne och tid men riskerar att överanpassa modellen. |
1000 |
|
Ett tal som styr hur mycket modellen justeras under varje träningssteg. Högre värden innebär snabbare träning men riskerar att gå högre än optimala prestanda. Lägre värden innebär stabilare träning men långsammare konvergens. |
2e-4 (0,0002) |
|
Antal lager av modellen med tillämpade LoRA-adaptrar under finjusteringen. Lägre värden innebär snabbare träning med lägre minnesanvändning, vilket är bra för enkla modelljusteringar. Högre värden innebär långsammare träning med högre minnesanvändning, vilket är bättre för mer komplexa modelljusteringar. |
4 |
|
Antal träningsexempel som bearbetats tillsammans innan modellviktningen uppdateras under finjusteringen. Lägre värden innebär lägre minnesanvändning och långsammare träning. Högre värden innebär mer minnesanvändning och snabbare träning. |
1 |
|
Styr det anpassade namnet på din finjusterade modell efter träning. Utifrån rotnamnet som du anger i den här parametern konverterar AI-modellserver mellanslag till bindestreck och lägger till prefixet Det fullständiga finjusterade modellnamnet returneras i Mål för svar. Varning Om det fullständiga namnet är detsamma som för en befintlig finjusterad modell, tas den befintliga finjusterade modellen bort innan träningen av den nya finjusterade modellen påbörjas. |
|
Det här JSON-objektet anger nycklarna i alternativet Finjustera parametrar:
{
"max_steps": 2000,
"learning_rate": 1e-4,
"batch_size": 2,
"lora_layers": 6,
"fine_tuned_model_name": "kundsupport-v1"
}
Kommentarer
-
Finjustering kräver betydande beräkningsresurser. Att köra mer än ett finjusteringsjobb åt gången på AI-modellservern kan påverka systemets prestanda negativt.
-
Om du vill övervaka status för finjusterade modeller på AI-modellservern (till exempel för att se när träningen är klar) kan du öppna FileMaker Server Admin Console. Där kan du också skapa finjusterade modeller direkt genom att ladda upp en JSONL-fil. Mer information finns i Creating AI fine-tuned models (skapa finjusterade AI-modeller) i FileMaker Server Hjälp.
Exempel 1- Grundläggande finjustering med hjälp av tabelldata
Finjusterar en OpenAI-modell med data från en tabell. Scriptet konfigurerar ett AI-konto för OpenAI och går till layouten Support_QA. Tabellen Support_QA innehåller bland annat fält för frågor och svar. Scriptet utför en sökning för att få de önskade hittade posterna, skickar sedan data från dessa poster för att finjustera en GPT-4.1-modell och anger fältet Svar som Slutförandefält (data från alla andra fält skickas som användarprompten).
Konfigurera AI-konto [ Kontonamn: "mitt-konto" ; Modelleverantör: OpenAI ; API-nyckel: Global::OpenAI_API_Key ]
Gå till Layout [ "Support_QA" (Support_QA) ]
Utför sökning [ Återställ ]
Finjustera modellen [ Kontonamn: "mitt-konto" ; Basmodell: "gpt-4.1-2025-04-14" ; Träningsdata: Tabell ; "Support_QA" ; Slutförandefält: Support_QA::Svar ; Mål för svar: $$målFörSvar ]
När OpenAI meddelar dig att träningen har slutförts och tillhandahåller namnet på den finjusterade modellen kan du använda modellen i scriptsteg som Generera svar från modell:
Generera svar från modell [ Kontonamn: "mitt-konto" ; Modell: "ft:gpt-4o-mini-2024-07-18:min-org::LBNO71Qq" ; Användarprompt: $fråga ; Agentläge; Svar: $$svar ]
Exempel 2- Finjustering med hjälp av en JSONL-fil
Finjusterar en modell på AI-modellservern genom att skicka JSONL-filen som skapades i Exempel 2 för Scriptsteget Spara poster i JSONL-format. Scriptet konfigurerar ett AI-konto för och anger variabeln $träningsfil till sökvägen för JSONL-filen i mappen Dokument.
Scriptet anger sedan variabeln $Parametrar till ett JSON-objekt som innehåller de nyckel–värde-par som ska användas som finjusteringsparametrar, inklusive att ange rotnamnet för den finjusterade modellen.
Slutligen skickar scriptet JSONL-filen som anges av $träningsfil till AI-modellservern, som anger vilken basmodell som ska finjusteras, vilka parametrarna som ska användas och variabeln $svar där svaret ska lagras. För att få det fullständiga finjusterade modellnamnet tillgängligt att använda senare hämtar scriptet namnet från $svar och lagrar det i ett globalt fält.
Konfigurera AI-konto [ Kontonamn: "AI-modellserver" ; Modelleverantör: Anpassad ; Slutpunkt: "https://minserver.exempel.com/llm/v1/" ; API-nyckel: Global::Finjustering_API-nyckel ; Verifiera SSL-certifikat ]
Ange variabel [ $träningsfil ; Värde: Get ( Dokumentsökväg ) & "träningsdata.jsonl" ]
Ange variabel [ $parametrar ; Värde:
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"; "produktexpert-v2" ; JSONString )
] ;
json
)
]
Finjustera modellen [ Kontonamn: "AI-modellserver" ; Basmodell: "google/codegemma-7b-it" ; Träningsdata: Fil ; "$träningsfil" ; Mål för svar: $målFörSvar ; Finjustera parametrar: $parametrar ]
Tilldela fält [ Global::Finjusterad_Modell ; JSONGetElement ( $målFörSvar ; "resultat.finjusterad_modell" ) ]