Megosztás a következőn keresztül:


Megerősítés finomhangolása (RFT) az Azure OpenAI o4-minivel (előzetes verzió)

A megerősítés finomhangolása (RFT) az olyan érvelési modellek fejlesztésének egyik technikája, mint az o4-mini, amely jutalomalapú folyamaton keresztül betanítja őket, és nem csak címkézett adatokra támaszkodik. Ha visszajelzést vagy "jutalmakat" használ a tanulás irányításához, az RFT segít a modelleknek jobb érvelési és problémamegoldó képességek kialakításában, különösen olyan esetekben, amikor a címkézett példák korlátozottak vagy összetett viselkedésre van szükség.

Folyamat

A megerősítés finomhangolásának folyamata (RFT) hasonló a felügyelt finomhangoláshoz (SFT), néhány jelentős különbséggel:

  • Az adatelőkészítési rendszerüzenetek nem támogatottak, és assistant üzenet helyett a betanítási adatok utolsó üzenete egy hivatkozási válasz.
  • Modellválasztás: csak az o4-mini támogatja az RFT-t.
  • Osztályozó definíciója: Az RFT megköveteli az osztályozók használatát a finomhangolt modell minőségének értékelésére és a tanulás irányítására. Használhat sztringellenőrzést, szöveg-hasonlóságot vagy modellalapú osztályozókat , vagy kombinálhatja őket egy többosztályossal.
  • Betanítás: további paramétereket tartalmaz: eval_samples, eval_interval, reasoning_effortés compute_multiplier. Emellett szüneteltetheti és folytathatja a feladatokat, így szüneteltetheti a betanítást, megvizsgálhatja az ellenőrzőpontokat, és csak akkor folytathatja, ha további képzésre van szükség.
  • Értékelés: A pontosság és a veszteség mellett az RFT az átlagos jutalmat és elemzési hibát, valamint az átlagos tokeneket adja vissza.

A betanítási folyamat során a platform végigfut az adathalmazon, és több választ generál minden egyes kérdésre. Ezeket a válaszokat az osztályozó kiértékeli, és a szabályzatátmenetes frissítések alkalmazása a kapott pontszámok alapján történik. Ez a ciklus addig ismétlődik, amíg a betanítási adatok teljesen fel nem dolgozódnak, vagy a folyamat le nem áll egy megadott ellenőrzési pontnál, végül egy a kívánt metrikához finomhangolt modellt eredményezve.

E különbségek ellenére azonban az SFT és az RFT között számos közös jellemző van: az adat-előkészítés kulcsfontosságú; a kiszolgáló nélküli betanítási feladatok az Foundry felhasználói felületén keresztül indíthatók el; és támogatjuk a standard és globális standard üzembe helyezéseket.

Betanítási és kiértékelési fájlalakítási követelmények

Az o4-mini RFT futtatásához betanítási és érvényesítési fájlokra is szükség van. Az o4-mini új adatformátumot használ a megerősítés finomhangolásához. Ezek jsonl fájlok, például a felügyelt finomhangoláshoz (SFT) használt fájlok.

A fájl minden sorának tartalmaznia kell az üzenetek mezőt, az SFT-hez képest néhány különbséggel:

  • A rendszerüzenetek nem támogatottak
  • A végső üzenetnek nem az asszisztenstől, hanem a felhasználótól kell származnia (ahogy az SFT esetében is)
  • Tools, response_formatstámogatottak
  • Képek és multimodális adatok nem támogatottak

A JSONL-adatfájl minden sorának tartalmaznia kell egy üzenettömböt, valamint a modell kimenetének besorolásához szükséges további mezőket. Ennek az értéknek érvényes JSON-objektumnak kell lennie (például szótárnak vagy listának; az adott típus és struktúra a kiválasztott osztályozótól függ).

Példa betanítási adatokra

Ha egy puzzle-t adunk a modellnek a szükséges RFT-betanítási formátumban, az a következő lenne:

"messages": [
    {
      "role": "user",
      "content": "You are a helpful assistant. Your task is to solve the following logic and puzzle quiz:\n\n2. In the expression 1 * 2 * 3 * 4 * 5 * 6 * 7 * 8 * 9 = 100, replace the asterisks with arithmetic operation signs to obtain a correct equation."
    }
  ],

  "solution": "Solution. 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 \\cdot 9 = 100.\n\nEvaluation. 12 points for the correct solution.",

  "final_answer": "1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 \\cdot 9 = 100"
}

A fenti szöveget egyetlen sorból jsonlkibontottuk, így a várt mezők láthatók: üzenetek, szerepkör, tartalom és final_answer.

Adathalmaz mérete az RFT-hez

Kezdje egy kis adatkészlettel, amely több tucat vagy néhány száz példát tartalmaz, hogy kiértékelje az RFT hatékonyságát, mielőtt elkötelezi magát egy nagyobb adatkészlet mellett. Biztonsági okokból a betanítási készletnek automatizált szűrési folyamaton kell átesnie, amely a fájlfeltöltés helyett a finomhangolási feladat indításakor indul el. Ha egy fájl sikeresen átment a szűrésen, az ismételten, késedelem nélkül használható.

A kiváló minőségű példák nélkülözhetetlenek, még korlátozott mennyiségben is. A szűrést követően a megnövekedett adatmennyiség előnyös, feltéve, hogy magas minőséget biztosít. A nagyobb adathalmazok lehetővé teszik a nagyobb kötegméretek használatát, ami általában javítja a betanítás stabilitását.

A betanítási fájlok legfeljebb 50 000 példát tartalmazhatnak, míg a tesztadatkészletek legfeljebb 1000 példát tartalmazhatnak. Mindkét adathalmaztípusra automatizált szűrés vonatkozik

Finomhangolási feladatok létrehozása

Az Azure AI Foundryben ugyanúgy hozhat létre betanítási feladatokat az o4-mini RFT-hez, ahogyan bármely más modellt finomhangolna: Válasszon finomhangolást egy támogatott régióban, és válassza az o4-minit alapmodellként.

Képernyőkép az o4-mini modell kiválasztásáról az Azure AI Foundry portálon.

Képernyőkép az Azure AI Foundry portál megerősítési finomhangolási menüjéről.

Hiperparaméter kiválasztása

A megerősítési módszer hiperparaméterek szakasza támogatja az összes normál betanítási hiperparamétert (például a tanulási arányt, a korszakok számát és a kötegméretet), valamint három új hiperparamétert:

Hiperparaméter neve Érték Leírás
Eval_samples: 1-10 A kiértékelés során használandó minták száma. Az ellenőrzési felosztási jutalommetrikákat a rendszer az egyes adatpontok különböző mintáiban átlagozza. Az alapértelmezett érték 5.
Eval_interval 1-25 A kiértékelések közötti betanítási lépések száma egy megadott érvényesítési fájlon keresztül. Az alapértelmezett érték 1.
Compute-multiplier 0.5 -3.0 A betanítás során a keresési terület feltárására használt számítási mennyiség szorzója. A növekvő példányszám nagyobb számú mintát eredményez. Túl alacsony valószínűleg alulillesztéshez vezet, túl magas pedig hajlamos a túlillesztésre.
Reasoning_effort Alacsony, Közepes, Magas A modell által az érvelésbe fektetett munka mennyisége. Alapértelmezés szerint közepes erőfeszítés. Ha a teljesítmény gyenge, fontolja meg az érvelés növelését.

Megjegyzés:

Ha megad egy metódust, a rendszer figyelmen kívül hagyja a legfelső szintű hiperparaméterek mezőt. Ha normál és megerősítési betanítási paramokat is szeretne beállítani, állítsa be mindkettőt a megerősítés hiperparaméterek szakaszában.

Jótanács

Ezek az értékek nem kötelezőek, és azt javasoljuk a felhasználóknak, hogy a hiperparaméterek módosítása előtt az első feladatot az alapértelmezett értékekkel kezdik el.

Földgyaluk

Az RFT azért egyedi, mert osztályozókkal értékeli a modell válaszának minőségét, hogy megtanítsa a modellt az okra. Az SFT-től eltérően a végső üzenet nem az asszisztenstől származik , hanem mintául vesszük a modellt, és minden mintán egy osztályozót használunk a minőség pontszámához. Ezután a pontszámok alapján tanítunk be a modell teljesítményének javítása érdekében.

Az osztályozók olyan függvények, amelyek összehasonlítják a képzési fájlból származó referenciaválaszt a mintában szereplő válasszal.

Gréderek:

  • 0 és 1 közötti lebegőpontos számokat ad vissza. Hasznos lehet, ha a modell részleges kreditet ad a válaszokhoz a bináris 0/1 helyett.
  • Az osztályozók JSON-ként vannak megadva (lásd alább)

Támogatott osztályozók

Három osztályozótípust támogatunk: Sztringellenőrzés, Szöveg hasonlósága, Modell osztályozók. A több osztályosok is használhatnak osztályozókat kombinációkban.

Sztringellenőrzési osztályozó

Ezekkel az alapszintű sztringműveletekkel ad vissza egy 0 vagy 1.

Előírás:

{
    "type": "string_check",
    "name": string,
    "operation": "eq" | "ne" | "like" | "ilike",
    "input": string,
    "reference": string,
}

Támogatott műveletek:

  • eq: 1 értéket ad vissza, ha a bemenet megfelel a hivatkozásnak (kis- és nagybetűk megkülönböztetése), 0 ellenkező esetben
  • neq: 1 értéket ad vissza, ha a bemenet nem egyezik a hivatkozással (kis- és nagybetűk megkülönböztetése), 0 ellenkező esetben
  • like: 1 értéket ad vissza, ha a bemenet tartalmazza a hivatkozást (kis- és nagybetűk megkülönböztetése), 0 ellenkező esetben
  • ilike: 1 értéket ad vissza, ha a bemenet tartalmazza a hivatkozást (nem kis- és nagybetűk megkülönböztetése), 0 ellenkező esetben

Szöveg hasonlósága

Annak kiértékeléséhez, hogy milyen közel van a modell által létrehozott kimenet a referenciahoz, különböző értékelési metrikákkal pontozott.

Előírás:

{
    "type": "text_similarity",
    "name": string,
    "input": string,
    "reference": string,
    "pass_threshold": number,
    "evaluation_metric": "fuzzy_match" | "bleu" | "gleu" | "meteor" | "rouge_1" | "rouge_2" | "rouge_3" | "rouge_4" | "rouge_5" | "rouge_l" 
}

Támogatott műveletek:

  • bleu – karakterláncok közötti BLEU-pontszám kiszámítása
  • Fuzzy_match – fuzzy karakterlánc egyezés, a rapidfuzz használatával
  • gleu – kiszámítja a Google BLEU-pontszámot a karakterláncok számára
  • meteor – kiszámítja a METEOR-pontszámot a szövegek között
  • rouge-* - a rouge Python-kódtár által meghatározottak szerint

Relevanciamodell

Ez a Model Grader, ahol az LLM használatával osztályozhatja a betanítási kimenetet.

Az osztályozómodellekként támogatott modellek a következők:

  • gpt-4o-2024-08-06
  • o3-mini-2025-01-31
{
    "type": "score_model",
    "name": string,
    "input": Message[],
    "model": string,
    "pass_threshold": number,
    "range": number[],
    "sampling_params": {
        "seed": number,
        "top_p": number,
        "temperature": number,
        "max_completions_tokens": number,
        "reasoning_effort": "low" | "medium" | "high"
    }
}

A pontszámmodell-osztályozó használatához a bemenet a csevegőüzenetek listája, amelyek mindegyike szerepkört és tartalmat tartalmaz. A rendszer az osztályozó kimenetét az adott tartományra csonkolja, és alapértelmezés szerint 0-ra az összes nem numerikus kimenet esetében.

Többszintű osztályozó

A többszintű objektumok több osztályozó kimenetét kombinálva egyetlen pontszámot hoznak létre.

{  
"type": "multi",
 "graders": dict[str, Grader],
 "calculate_output": string, 
"invalid_grade": float
}

Támogatott műveletek:

operátorok:

  • + (hozzáadás)
  • - (kivonás)
  • * (szorzás)
  • / (osztás)
  • ^ (teljesítmény)

Funkciók:

  • min
  • max
  • abs
  • floor
  • ceil
  • exp
  • sqrt
  • log

Az UX használatakor igény szerint írhat egy parancssort, és létrehozhat egy érvényes osztályozó- és válaszformátumot json nyelven. A finomhangolási feladat beküldésekor kötelező megadni az osztályozó mezőt. A válasz formátuma nem kötelező.

Fontos

A megfelelő osztályozós séma létrehozásához gondos parancssori létrehozás szükséges. Előfordulhat, hogy az első néhány kísérlet érvénytelen sémákat hoz létre, vagy nem hoz létre olyan sémát, amely megfelelően kezeli a betanítási adatokat. Az osztályozó egy kötelező mező, amelyet be kell írni egy finomhangolási feladat elküldésekor. A válasz formátuma nem kötelező.

Képernyőkép a finomhangoló osztályozó sémagenerálási felületéről.

Íme egy példa értékelési rendszer minden kategóriához:

string-check-grader – egyszerű sztringműveletekkel 0 vagy 1 értéket ad vissza.

példa:

{
"name": "string_check_sample_grader",
 "type": "string_check", 
"input": "{{item.reference_answer}}",
 "reference": "{{sample.output_text}}", 
"operation": "eq"
}

Szöveg hasonlósága – Annak kiértékelése, hogy a modell által generált kimenet milyen közel van a hivatkozáshoz, különböző kiértékelési metrikákkal pontozott.

{
"name": "text_similarity_sample_grader",
 "type": "text_similarity",
 "input": "{{item.reference_answer}}",
 "reference": "{{sample.output_text}}", "evaluation_metric":"fuzzy_match"
}

Score Model – Ez a Modell osztályozója, ahol az LLM használatával osztályozhatja a betanítási kimenetet.

Azokat a modelleket támogatjuk osztályozómodellként, amelyek a gpt-4o-2024-08-06 és a o3-mini-2025-01-31.

{ 
"name": "score_model_sample_grader", 
"type": "score_model",
 
"input": [ { 
"role": "user", 
"content": "Score\nhow close the reference answer is to the model answer. You will be comparing these\ntwo as JSON objects that contain 2 keys, \"extracted_text\" and\n\"clause_type\". Score 1.0 if they are both the same, 0.5 if one is\nthe same, and 0.0 if neither are the same. Return just a floating point\nscore\n\n Reference answer: {\"extracted_text\": \n{{item.extracted_text}}, \"clause_type\": {{item.clause_type}}}\n\n\nModel answer: {{sample.output_json}}"}],

"model": "gpt-4o-2024-08-06", 
"sampling_params": {"seed": 42}
}

Multi Grader – A többszintű objektum több osztályozó kimenetét kombinálja egyetlen pontszám létrehozásához.

{
"name":"sample_multi_grader",
"type":"multi",
"graders":{"ext_text_similarity":{"name":"ext_text_similarity",
"type":"text_similarity",
"input":"{{sample.output_json.ext_text}}",
"reference":"{{item.ext_text}}",
"evaluation_metric":"fuzzy_match"},

"clause_string_check":{"name":"clause_string_check",
"type":"string_check",
"input":"{{sample.output_json.clause_type}}",
"operation":"eq",
"reference":"{{item.clause_type}}"}},

"calculate_output":"0.5 * ext_text_similarity + 0.5 * clause_string_check"
}

Megjegyzés:

Jelenleg nem támogatjuk a multi modellosztályozó alosztályozóként való használatát. Multi A grader csak a text_Similarity és a string_check támogatott.

Példa válaszformátumra, amely nem kötelező mező:

Ha a betanítási adatok példájában használt rejtvényproblémára is szükségünk van, akkor az alábbi módon adhatjuk hozzá a válaszformátumot, ahol a "megoldás" és a "végső válasz" mezők strukturált kimenetekben vannak megosztva.

{
  "type": "json_schema",
  "name": "puzzles_assistant",
  "schema": {
    "type" : "object",
    "properties": {
      "solution": {
        "type": "string",
        "title": "solution"
      },
      "final_answer": {
        "type": "string",
        "title": "final_answer"
      }
    },
    "required": [
      "solution",
      "final_answer"
    ],
    "additionalProperties": false
  },
  "strict": true
}

A betanítás előrehaladása és eredményei

Az RFT-feladatok általában hosszú ideig futnak, és a paraméter kiválasztásától függően akár 24 órát is igénybe vehetnek. Az AI Foundry portál mindkét finomhangolási nézetében nyomon követheti az előrehaladást. Láthatja, hogy a feladat ugyanazokon az állapotokon megy keresztül, mint a normál finomhangolási feladatok (várólistán, futtatás, sikeres).

Az eredményfájlokat a tréning futása közben is áttekintheti, hogy lássa az előrehaladást, és hogy a tréning a várt módon halad-e.

Új funkció: szüneteltetés és folytatás

A betanítás során megtekintheti a naplókat és az RFT-metrikákat, és szükség szerint szüneteltetheti a feladatot (ha a metrikák nem konvergensek, vagy ha úgy érzi, hogy a modell nem a megfelelő ütemben tanul, helytelen osztályozót választott stb.). A betanítási feladat szüneteltetése után létrejön egy üzembe helyezhető ellenőrzőpont, amelyből következtethet vagy folytathatja a feladatot a befejezésig. A szüneteltetési művelet csak azokra a feladatokra alkalmazható, amelyek legalább egy lépésre be vannak tanítva, és futó állapotban vannak.

Képernyőkép a megerősítés finomhangolásáról egy futó feladattal.

Védőkorlátok a betanítási kiadásokhoz

Mivel az RFT-feladatok magas betanítási költségekhez vezethetnek, automatikusan szüneteltetjük a feladatokat, miután elértek 5 000 FT-t az összes betanítási költségben (betanítás és osztályozás). A felhasználók üzembe helyezhetik a legújabb ellenőrzőpontot, vagy folytathatják a betanítási feladatot. Ha a felhasználó úgy dönt, hogy folytatja a feladatot, a számlázás folytatódik a feladathoz, és a képzési feladatra ezt követően nem vonatkoznak további árkorlátok.

A betanítási eredmények értelmezése

A megerősített finomhangolási feladatok esetében az elsődleges metrikák a lépésenkénti jutalommetrikák. Ezek a metrikák azt jelzik, hogy a modell milyen jól teljesít a betanítási adatokon. Ezeket a feladatkonfigurációban meghatározott osztályozók számítják ki.

Jutalommetrikák

Ezek két különálló legfelső szintű jutalommetrika:

  • train_reward_mean: Az aktuális lépésben szereplő összes adatpontból vett minták átlagos jutalma. Mivel egy köteg adott adatpontjai minden lépéssel változnak, train_reward_mean különböző lépések értékei nem lesznek közvetlenül összehasonlíthatók, és az egyes értékek lépésről lépésre drasztikusan ingadozhatnak.

  • valid_reward_mean: Az érvényesítési csoport összes adatpontjából vett minták átlagos jutalma, ami egy stabilabb metrika.

Jótanács

Mindig tesztelje a következtetést a modellel. Ha nem megfelelő osztályozót választott, lehetséges, hogy az átlagos jutalom nem tükrözi a modell teljesítményét. Tekintse át a modellből származó mintakimeneteket, és győződjön meg arról, hogy megfelelően vannak formázva és érthetőek. Ellenőrizze, hogy a modell előrejelzései összhangban vannak-e az alapigazsággal, és hogy a leíró elemzés ésszerű magyarázatot ad-e.

Érvelési tokenek

A train_reasoning_tokens_mean modell viselkedésének időbeli változását szemléltető metrikák és valid_reasoning_tokens_mean metrikák. Ezek a metrikák a modell által a betanítási és érvényesítési adathalmazokban megjelenő kérdések megválaszolásához használt érvelési jogkivonatok átlagos száma. Az átlagos érvelési jogkivonatok számát a finomhangolási irányítópulton is megtekintheti.

Jótanács

A betanítás során a modell gyakran drasztikusan megváltoztatja az érvelési jogkivonatok átlagos számát, amelyet egy kérdés megválaszolásához használ. Ez annak a jele, hogy a modell a jutalomjelre reagálva módosítja a viselkedését. A modell megtanulhat kevesebb érvelési jogkivonatot használni ugyanahhoz a jutalomhoz, vagy megtanulhat több érvelési jogkivonatot használni egy magasabb jutalom eléréséhez.

Az eredmények kiértékelése

Mire a finomhangolási feladat befejeződik, érdemes tisztában lennie azzal, hogy a modell milyen jól teljesít az érvényesítési készlet átlagos jutalomértéke alapján. Lehetséges azonban, hogy a modell túl alkalmas a betanítási adatokra, vagy megtanulta jutalmazni az osztályozót, ami lehetővé teszi a magas pontszámok előállítását anélkül, hogy ténylegesen helyes lenne.

A modell viselkedésének megértése gyorsan elvégezhető a finomhangolási feladathoz társított evalek vizsgálatával. Különösen ügyeljen a végső betanítási lépés futására, hogy megfigyelje a modell végső viselkedését. Az evals termék használatával összehasonlíthatja a végső futtatás és a korábbi futtatások között, és megtekintheti, hogyan változott a modell viselkedése a betanítás során.

Az o4-mini RFT-modell üzembe helyezése és használata

A finomhangolt modell a felhasználói felületen vagy a REST API-n keresztül is üzembe helyezhető, ugyanúgy, mint bármely más finomhangolt modell.

Lehetősége van üzembe helyezni a befejezett finomhangolási feladatot vagy bármely automatikusan vagy manuálisan létrehozott időközi ellenőrzőpontot, miután szüneteltetést végzett. Ha többet szeretne megtudni a modell üzembe helyezéséről és a Chat Playground használatával történő tesztelésről, tekintse meg az üzembe helyezés finomhangolását ismertető témakört.

A modell használatakor ügyeljen arra, hogy ugyanazokat az utasításokat és struktúrát használja, mint a betanítás során. A modell a disztribúcióban marad, és biztosítja, hogy a következtetéskor ugyanazt a teljesítményt lássa a problémákon, mint amit az oktatás során elért.

Ajánlott eljárások

Osztályozó kiválasztása

Az osztályozók a megerősítés tanulására szolgálnak: a rossz osztályozó kiválasztása azt jelenti, hogy a jutalmak érvénytelenek lesznek, és a finomhangolás nem fogja eredményezni a várt eredményeket.

Néhány alapvető szabály az osztályozó kiválasztásához:

  • Ha rövid, konkrét válaszai vannak, például számok, logikai válaszok vagy több választási lehetőség, akkor válasszon egy sztringegyező osztályozót.

  • Ha összetett válaszai vannak, amelyek több feltétel alapján is értékelhetők, használjon több osztályozót. Ez lehetővé teszi a válasz különböző aspektusainak pontozását és összesítésbe való összevonását.

  • Fontolja meg, hogy az osztályozót több lépésre bontja, és részleges pontokat ad, hogy a modellek érvelését a megfelelő irányba terelje; az osztályozás stabil, és igazodik a preferenciákhoz. Adjon néhány példát a nagyszerű, tisztességes és rossz válaszokra a kérdésben.

  • Bíróként használjon egy LLM-et, ha a kód nem megfelelő. A gazdag, nyitott végű válaszokért kérdezzen meg egy másik nyelvi modellt, hogy értékelje azokat. Az LLM-osztályozók létrehozásakor futtasson több jelölt választ és alapigazságot az LLM-bírón keresztül, hogy

Tesztelje az osztályozókat

Az RFT-ben elérhető összes osztályozó támogatott az Azure OpenAI-értékelésben. A betanítási futtatás megkezdése előtt teszteljen egy vanília o4-mini modellt az érvényesítési adatokon ugyanazzal az osztályozóval, amelyet a betanításhoz használni kíván. Ha az osztályozó pontszámai nem felelnek meg az elvárásainak, akkor másik osztályozót kell választania.

Egy osztályozó ellenőrző API-t is biztosítunk, amellyel ellenőrizheti a konfiguráció érvényességét.

Adatok előkészítése

Törekedjen kezdetben néhány száz példára, és szükség esetén akár 1000 példát is felskálázhat. Az adathalmaznak az előrejelzett osztályok tekintetében kiegyensúlyozottnak kell lennie az torzítás elkerülése és az általánosítás biztosítása érdekében.

A kérésekhez adjon egyértelmű és részletes utasításokat, beleértve a válaszformátumot és a kimenetekre vonatkozó korlátozásokat (például a magyarázatok minimális hosszát, csak igaz/hamis választ stb.)