Modell feinabstimmen
Optimiert ein Modell mit dem angegebenen Training-Datensatz.
Optionen
-
Kontoname ist ein Textausdruck für den Namen des zu verwendenden KI-Kontos. Verwenden Sie in der aktuellen Datei den Scriptschritt „KI-Konto konfigurieren“, um das Konto einzurichten und ihm diesen Namen zuzuweisen, bevor dieser Scriptschritt ausgeführt wird.
-
Basismodell ist ein Textausdruck für das zu feinabstimmende Textgenerierungsmodell. Unterstützte Modelle finden Sie unter FileMaker – Technische Daten.
-
Training-Daten gibt die Quelle der Training-Daten für die Feinabstimmung an:
-
Tabelle: Verwendet Daten aus dem angegebenen Tabellenauftreten basierend auf der aktuellen Ergebnismenge von Datensätzen. Für das Training werden die Daten aus dem Abschlussfeld als Antwort des Assistant verwendet; die Daten aus allen anderen Feldern werden als entsprechende Benutzer-Prompts verwendet.
-
Datei: Verwendet eine JSONL-Datei mit Training-Daten. Jede Zeile muss ein gültiges JSON-Objekt sein, das einen Benutzer-Prompt und die entsprechende Antwort des Assistant enthält.
-
-
Antwortziel gibt das Feld oder die Variable an, an die der Modellanbieter ein JSON-Objekt mit Informationen über den durch diesen Scriptschritt gestarteten Feinabstimmungsjob zurückgibt.
-
Parameter feinabstimmen ist ein Textausdruck für ein JSON-Objekt, das aus Schlüssel-Wert-Paaren für Feinabstimmungsoptionen besteht, die vom Modellanbieter unterstützt werden.
Optionen nur verfügbar, wenn für Training-Daten die Option Tabelle festgelegt ist:
-
Der Wert für Tabelle gibt ein Tabellenauftreten an, das für die Training-Daten verwendet werden soll.
-
Abschlussfeld gibt das Feld in Tabelle an, das die erwarteten Antworten oder Antworten des Assistenten für das Training enthält.
Optionen nur verfügbar, wenn für Training-Daten die Option Datei festgelegt ist:
-
Der Wert für Datei gibt eine Liste mit einem oder mehreren Pfaden für die JSONL-Datei an, die die Training-Daten enthält. Pfade müssen einen der
file
Pfadpräfixe verwenden. Der Scriptschritt durchsucht die Liste und fügt die erste JSONL-Datei hinzu, die er findet. Weitere Informationen finden Sie unter Erstellen von Dateipfaden.
Kompatibilität
Produkt | Unterstützt |
FileMaker Pro | Ja |
FileMaker Go | Ja |
FileMaker WebDirect | Ja |
FileMaker Server | Ja |
FileMaker Cloud | Ja |
FileMaker Data API | Ja |
Custom Web Publishing | Ja |
Ursprung in Version
22.0
Beschreibung
Dieser Scriptschritt sendet Training-Daten an einen unterstützten Modellanbieter, um mithilfe von Low-Rank-Adaptation (LoRA)-Techniken eine feinabgestimmte Version eines Basis-KI-Modells zu erstellen. Durch Feinabstimmung können Sie das Verhalten eines Modells für bestimmte Aufgaben, Domänen oder Antwortstile anpassen, indem Sie es anhand Ihrer eigenen Daten trainieren und dabei die allgemeinen Fähigkeiten des Basismodells beibehalten. Sie können beispielsweise ein Modell feinabstimmen, damit es die spezifische Terminologie, den Schreibstil oder das Fachwissen Ihres Unternehmens besser berücksichtigt. LoRA ist eine effiziente Methode, mit der dem Modell kleine trainierbare Parameter hinzugefügt werden, ohne die ursprünglichen Gewichtungen zu verändern. Dieser Ansatz erfordert im Vergleich zur vollständigen Feinabstimmung des Modells deutlich weniger Rechenressourcen und Speicherplatz und erzielt dabei vergleichbare Leistungsverbesserungen.
Das unter Kontoname angegebene KI-Konto muss für einen der folgenden Modellanbieter konfiguriert sein:
-
OpenAI
-
Der KI-Modellserver, der mit FileMaker Server auf einem Mac mit Apple Chip bereitgestellt wird
Andere Modellanbieter und Betriebssysteme werden für die Feinabstimmung nicht unterstützt. Siehe FileMaker - Technische Daten.
Training-Daten
Training-Daten können entweder aus einer FileMaker-Tabelle oder aus einer JSON Lines (JSONL)-Datei bereitgestellt werden. Jedes Training-Beispiel besteht aus einem Benutzer-Prompt und der gewünschten Antwort des Assistant. Das Modell ist dann in der Lage, bei ähnlichen Prompts Antworten zu generieren, die Ihren Training-Beispielen ähneln.
Training-Daten von | Ergebnis |
---|---|
Tabelle |
Für das angegebene Tabellenauftreten werden Daten aus Abschlussfeld als Assistant-Antwort und Daten aus allen anderen Feldern als entsprechender Benutzer-Prompt gesendet. Für jeden Datensatz in der aktuellen Ergebnismenge (oder für jeden Bezugsdatensatz, wenn eine Bezugstabelle angegeben ist) erstellt der Scriptschritt ein JSON-Objekt im folgenden Format und sendet alle Objekte als JSONL-Datei an den Modellanbieter. Kopieren
Hinweis Mit dieser Option können Sie nicht angeben, welche Felder im Benutzer-Prompt gesendet werden. Um die Felder anzugeben, die in den Benutzer-Prompt aufgenommen werden sollen, verwenden Sie den Scriptschritt „Datensätze als JSONL speichern“, um eine JSONL-Datei zu erstellen, und verwenden Sie dann die Option Datei in diesem Scriptschritt, um diese Datei als Training-Daten zu senden. |
Datei |
Sendet die erste JSONL-Datei, die in der durch Datei angegebenen Pfadliste erfolgreich gefunden wurde. Jede Zeile der JSONL-Datei muss ein JSON-Objekt enthalten, das mindestens den Benutzer-Prompt und die entsprechende Antwort des Assistant in diesem Format enthält: Kopieren
Hinweis Zur besseren Übersichtlichkeit werden sie hier in mehreren Zeilen angezeigt, aber jedes JSON-Objekt muss in der JSONL-Datei in einer einzelnen Zeile stehen. Sie können den Scriptschritt „Datensätze als JSONL speichern“ mit der Option Format für Feinabstimmung aktiviert verwenden, um diese Datei aus Datensatzdaten zu erstellen. |
Antwortziel
Um Informationen über den Feinabstimmungsjob zu erhalten, der durch diesen Scriptschritt gestartet wird, geben Sie eine Variable oder ein Feld für die Option Antwortziel an. Die Feinabstimmung kann einige Zeit in Anspruch nehmen. Erkundigen Sie sich daher beim Modellanbieter, wann der Prozess abgeschlossen ist und das Feinabstimmungsmodell einsatzbereit ist.
Beispielsweise sendet der KI-Modellserver eine Antwort wie die unten gezeigte, wenn:
-
Die durch Datei angegebene JSONL-Datei my-training-data.jsonl ist.
-
Basismodell google/codegemma-7b-it ist.
-
Der Wert des in Parameter feinabstimmen angegebenen Schlüssels
fine_tuned_model_name
„my-fine-tuned-model-name“ lautet. Der Wert des Schlüsselsfine_tuned_model
in Antwortziel der vollständige Name ist, der vom KI-Modellserver zugewiesen wurde.
{
"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": "InWarteschlange",
"training_file": "meine-Training-Daten.jsonl",
"tags": [
"fine-tune"
]
}
}
Um festzustellen, wann der KI-Modellserver die Feinabstimmung abgeschlossen hat, melden Sie sich in FileMaker Server Admin Console an. Siehe Hinweise.
Parameter feinabstimmen
Mit der Option Parameter feinabstimmen können Sie Feinabstimmungsparameter angeben, die vom Modellanbieter unterstützt werden. Die Namen der Schlüssel für die unterstützten Parameter und deren gültige Bereiche finden Sie in der Dokumentation des Modellanbieters.
Für den mit FileMaker Server bereitgestellten KI-Modellserver können Sie bei Bedarf die folgenden Schlüssel und Werte verwenden, um Feinabstimmungen vorzunehmen. Wenn kein Schlüssel angegeben ist oder die Option Parameter feinabstimmen nicht verwendet wird, verwendet der Scriptschritt die Standardwerte.
Parameter | Beschreibung | Standardwert |
|
Gesamtzahl der Trainingsschritte (oder Iterationen). Mehr Iterationen erfordern mehr Arbeitsspeicher und Zeit, bergen jedoch das Risiko einer Überanpassung. |
1000 |
|
Zahl, die steuert, wie stark das Modell während jedes Training-Schritts angepasst wird. Höhere Werte bedeuten schnelleres Training, aber auch das Risiko, die optimale Leistung zu überschreiten. Niedrigere Werte bedeuten ein stabileres Training, aber eine langsamere Konvergenz. |
2e-4 (0.0002) |
|
Anzahl der Ebenen des Modells, auf die während der Feinabstimmung LoRA-Adapter angewendet werden. Niedrigere Werte bedeuten schnelleres Training bei geringerem Speicherverbrauch, was für einfache Modelländerungen von Vorteil ist. Höhere Werte bedeuten ein langsameres Training mit höherem Speicherverbrauch, was für komplexere Modelländerungen besser ist. |
4 |
|
Anzahl der gemeinsam verarbeiteten Training-Beispiele vor der Aktualisierung der Modellgewichtungen während der Feinabstimmung. Niedrigere Werte bedeuten einen geringeren Speicherverbrauch und ein langsameres Training. Höhere Werte bedeuten mehr Speicherverbrauch und schnelleres Training. |
1 |
|
Steuert den benutzerdefinierten Namen Ihres feinabgestimmtem Modells nach dem Training. Für den Root-Namen, den Sie in diesem Parameter angeben, wandelt der KI-Modellserver Leerzeichen in Bindestriche um und fügt das Präfix Der vollständige Name des feinabgestimmten Modells wird in Antwortziel zurückgegeben. Warnung Wenn der vollständige Name mit dem eines vorhandenen feinabgestimmten Modells übereinstimmt, wird das vorhandene feinabgestimmte Modell gelöscht, bevor das Training für das neue feinabgestimmte Modell beginnt. |
|
Dieses JSON-Objekt legt beispielsweise Schlüssel in der Option Parameter feinabstimmen fest:
{
"max_steps": 2000,
"learning_rate": 1e-4,
"batch_size": 2,
"lora_layers": 6,
"fine_tuned_model_name": "Kundensupport-v1"
}
Hinweise
-
Die Feinabstimmung erfordert erhebliche Rechenressourcen. Die gleichzeitige Ausführung mehrerer Feinabstimmungsjobs auf dem KI-Modellserver kann die Systemleistung beeinträchtigen.
-
Um den Status von feinabgestimmten Modellen auf dem KI-Modellserver zu überwachen (z. B. um festzustellen, wann das Training abgeschlossen ist), öffnen Sie FileMaker Server Admin Console. Dort können Sie auch direkt feinabgestimmte Modelle erstellen, indem Sie eine JSONL-Datei hochladen. Siehe Erstellen von feinabgestimmten KI-Modellen in der FileMaker Server-Hilfe.
Beispiel 1- Grundlegende Feinabstimmung anhand von Tabellendaten
Führt eine Feinabstimmung eines OpenAI-Modells anhand von Daten aus einer Tabelle durch. Das Script konfiguriert ein KI-Konto für OpenAI und wechselt zum Layout Support_QA. Die Tabelle Support_QA enthält unter anderem Felder für Fragen und Antworten. Das Script führt eine Suche durch, um die gewünschte Ergebnismenge zu erhalten, und sendet dann Daten aus diesen Datensätzen, um ein GPT-4.1-Modell feinabzustimmen, wobei das Antwortfeld für Abschlussfeld angegeben wird (Daten aus allen anderen Feldern werden als Benutzer-Prompt gesendet).
KI-Konto konfigurieren [ Kontoname: "mein-Konto" ; Modellanbieter: OpenAI ; API-Schlüssel: Global::OpenAI_API_Schlüssel ]
Gehe zu Layout [ "Support_QA" (Support_QA) ]
Ergebnismenge suchen [ Wiederherstellen ]
Modell feinabstimmen [ Kontoname: "mein-Konto" ; Basismodell: "gpt-4.1-2025-04-14" ; Training-Daten: Tabelle ; "Support_QA" ; Abschlussfeld: Support_QA::Antwort ; Antwortziel: $$Antwortziel ]
Wenn OpenAI Sie benachrichtigt, dass das Training abgeschlossen ist, und Ihnen den Namen des feinabgestimmten Modells mitteilt, können Sie das Modell in Scriptschritten wie Antwort von Modell generieren verwenden:
Antwort von Modell generieren [ Kontoname: "mein-Konto" ; Modell: "ft:gpt-4o-mini-2024-07-18:my-org::LBNO71Qq" ; Benutzer-Prompt: $Frage ; Agentischer Modus ; Antwort: $$Antwort ]
Beispiel 2 – Feinabstimmung mithilfe einer JSONL-Datei
Führt eine Feinabstimmung eines Modells auf dem KI-Modellserver durch, indem die in Beispiel 2 für den Scriptschritt „Datensätze als JSONL speichern“ erstellte JSONL-Datei gesendet wird. Das Script konfiguriert ein KI-Konto und setzt die Variable $TrainingDatei auf den Pfad für die JSONL-Datei im Ordner „Dokumente“.
Das Script setzt dann die Variable $Parameter auf ein JSON-Objekt, das die Schlüssel-Wert-Paare enthält, die für die Feinabstimmungsparameter verwendet werden sollen, einschließlich der Festlegung des Root-Namens für das feinabgestimmte Modell.
Schließlich sendet das Script die durch $TrainingDatei angegebene JSONL-Datei an den KI-Modellserver und gibt dabei das feinabzustimmende Basismodell, die zu verwendenden Parameter und die Variable $Antwort zum Speichern der Antwort an. Damit der vollständige Name des feinabgestimmten Modells später verwendet werden kann, ruft das Script den Namen aus $Antwort ab und speichert ihn in einem Variablenfeld.
KI-Konto konfigurieren [ Kontoname: "KI-Modell-Server" ; Modellanbieter: Benutzerdefiniert ; Endpunkt: "https://meinserver.beispiel.com/llm/v1/" ; API-Schlüssel: Global::Feinabstimmung_API_Schlüssel ; SSL-Zertifikate verifizieren ]
Variable setzen [ $TrainingDatei ; Wert: Hole (DokumentenPfad) & "training_data.jsonl" ]
Variable setzen [ $Parameter ; Wert:
Setze Var ( [
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
)
]
Modell feinabstimmen [ Kontoname: "KI-Modell-Server" ; Basismodell: "google/codegemma-7b-it" ; Training-Daten: Datei ; "$TrainingDatei" ; Antwortziel: $Antwortziel ; Parameter feinabstimmen: $Parameter ]
Feldwert setzen [ Global::feinabgestimmtes_Modell ; JSONGetElement ( $Antwortziel ; "result.fine_tuned_model" ) ]