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


Modell testreszabása finomhangolással

Az Azure OpenAI Service segítségével modelljeinket a személyes adathalmazokhoz igazíthatja egy úgynevezett finomhangolási folyamattal. Ez a testreszabási lépés lehetővé teszi, hogy többet hozzon ki a szolgáltatásból azáltal, hogy:

  • Jobb minőségű eredmények, mint amit csak a gyors tervezésből kaphat
  • Több példát is betaníthat, mint amennyi belefér a modell maximális kérelemkörnyezeti korlátjába.
  • Jogkivonat-megtakarítás rövidebb kérések miatt
  • Kisebb késésű kérelmek, különösen kisebb modellek használata esetén.

A kevés lövéses tanulással ellentétben a finomhangolás sokkal több példán alapuló betanítással javítja a modellt, mint amennyi elfér egy kérdésben, így számos feladat esetében jobb eredményeket érhet el. Mivel a finomhangolás az alapmodell súlyát módosítja az adott tevékenység teljesítményének javítása érdekében, nem kell annyi példát vagy utasítást megadnia a kérésben. Ez azt jelenti, hogy kevesebb sms-t és kevesebb jogkivonatot dolgoznak fel minden API-hívás során, ami költségmegtakarítást és a kérelmek késésének növelését jelenti.

LoRA-t vagy alacsony rangsorolású közelítést használunk a modellek finomhangolásához oly módon, hogy az csökkenti az összetettségüket anélkül, hogy jelentősen befolyásolná a teljesítményüket. Ez a módszer úgy működik, hogy az eredeti magas rangú mátrixot egy alacsonyabb ranggal közelíti meg, így a felügyelt betanítási fázisban csak a "fontos" paraméterek egy kisebb részhalmazát finomhangolja, így a modell kezelhetőbbé és hatékonyabbá válik. A felhasználók számára ez gyorsabb és megfizethetőbbé teszi a betanítást, mint más technikákat.

Előfeltételek

Feljegyzés

Jelenleg be kell küldenie egy alkalmazást az Azure OpenAI szolgáltatás eléréséhez. A hozzáférés kérelmezéséhez töltse ki ezt az űrlapot.

Modellek

A következő modellek támogatják a finomhangolást:

  • babbage-002
  • davinci-002
  • gpt-35-turbo (0613)
  • gpt-35-turbo (1106)
  • gpt-35-turbo (0125)
  • gpt-4 (0613)

A modellek oldalán ellenőrizheti, hogy mely régiók támogatják jelenleg a finomhangolást.

Ha finomhangolásra tervezi használni gpt-4 , tekintse meg a GPT-4 nyilvános előzetes verziójú biztonsági kiértékelési útmutatóját

Az Azure OpenAI Studio munkafolyamatának áttekintése

Szánjon egy kis időt az Azure OpenAI Studio használatának finomhangolási munkafolyamatára:

  1. A betanítási és érvényesítési adatok előkészítése.
  2. Az egyéni modell betanítása az Egyéni modell létrehozása varázslóval az Azure OpenAI Studióban.
    1. Válasszon egy alapmodellt.
    2. Válassza ki a betanítási adatokat.
    3. Igény szerint válassza ki az érvényesítési adatokat.
    4. Igény szerint konfiguráljon speciális beállításokat a finomhangolási feladathoz.
    5. Tekintse át a lehetőségeket, és tanítsa be az új egyéni modellt.
  3. Ellenőrizze az egyéni finomhangolt modell állapotát.
  4. Az egyéni modell üzembe helyezése használatra.
  5. Használja az egyéni modellt.
  6. Igény szerint elemezze az egyéni modellt a teljesítmény és az illesztés szempontjából.

A betanítási és érvényesítési adatok előkészítése

A képzési és validálási adathalmazok bemeneti és kimeneti példákból állnak, amelyek azt mutatják, hogy a modellt hogyan kell teljesíteni.

A különböző modelltípusok eltérő betanítási adatokat igényelnek.

A használt betanítási és érvényesítési adatokat JSON Lines (JSONL) dokumentumként kell formázni. A gpt-35-turbo-0613 finomhangolási adatkészletet a Csevegés befejezése API által használt beszélgetési formátumban kell formázni.

Ha részletes útmutatót szeretne a modellek finomhangolásáról gpt-35-turbo-0613 , tekintse meg az Azure OpenAI finomhangolási oktatóanyagát.

Példa fájlformátumra

{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Is Xbox better than PlayStation?"}, {"role": "assistant", "content": "I apologize, but I cannot provide personal opinions. My primary job is to assist you with any issues related to your Xbox device. Do you have any Xbox-related issues that need addressing?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Can I play PC games on my Xbox?"}, {"role": "assistant", "content": "While Xbox consoles don't natively support PC games, they can play an array of Xbox games, many of which are also available on PC. Can I assist you with finding games compatible with your Xbox device?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "I'm having trouble connecting my Xbox to the Wi-Fi."}, {"role": "assistant", "content": "No worries, let's go through the network settings on your Xbox. Can you please tell me what happens when you try to connect it to the Wi-Fi?"}]}

Többfordulós csevegési fájlformátum

A jsonl-betanítási fájl egyetlen sorában lévő beszélgetések több fordulója is támogatott. Az egyes segédüzenetek finomhangolásának kihagyásához adja hozzá az opcionális weight kulcsértékpárt. Jelenleg weight 0 vagy 1 lehet.

{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the capital of France?"}, {"role": "assistant", "content": "Paris", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Paris, as if everyone doesn't know that already.", "weight": 1}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who wrote 'Romeo and Juliet'?"}, {"role": "assistant", "content": "William Shakespeare", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Oh, just some guy named William Shakespeare. Ever heard of him?", "weight": 1}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "How far is the Moon from Earth?"}, {"role": "assistant", "content": "384,400 kilometers", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Around 384,400 kilometers. Give or take a few, like that really matters.", "weight": 1}]}

A JSONL formátumon kívül a betanítási és érvényesítési adatfájlokat UTF-8-ban kell kódolni, és tartalmaznia kell egy bájtsorrendjelet (BOM). A fájlnak 512 MB-nál kisebb méretűnek kell lennie.

Betanítási és érvényesítési adatkészletek létrehozása

Minél több betanítási példa van, annál jobb. A finomhangolási feladatok nem folytatódnak legalább 10 betanítási példa nélkül, de ilyen kis szám nem elegendő a modellválaszok észrevehető befolyásolásához. Célszerű több száz, ha nem ezres betanítási példákat biztosítani a sikerességhez.

Általánosságban elmondható, hogy az adathalmaz méretének megduplázása lineáris modellminőség-növekedéshez vezethet. Ne feledje azonban, hogy az alacsony minőségű példák negatív hatással lehetnek a teljesítményre. Ha nagy mennyiségű belső adatra tanítja be a modellt, anélkül, hogy az adathalmazt először csak a legjobb minőségű példákhoz törlené, a vártnál sokkal rosszabb teljesítményt nyújtó modellhez vezethet.

Az egyéni modell létrehozása varázsló használata

Az Azure OpenAI Studio biztosítja az Egyéni modell létrehozása varázslót, így interaktívan létrehozhat és betaníthat egy finomhangolt modellt az Azure-erőforráshoz.

  1. Nyissa meg az Azure OpenAI Studiót, https://oai.azure.com/ és jelentkezzen be olyan hitelesítő adatokkal, amelyek hozzáférnek az Azure OpenAI-erőforráshoz. A bejelentkezési munkafolyamat során válassza ki a megfelelő könyvtárat, Azure-előfizetést és Azure OpenAI-erőforrást.

  2. Az Azure OpenAI Studióban keresse meg a Felügyeleti > modellek panelt, és válassza az Egyéni modell létrehozása lehetőséget.

    Képernyőkép az Egyéni modell létrehozása varázsló eléréséről az Azure OpenAI Studióban.

Megnyílik az Egyéni modell létrehozása varázsló.

Az alapmodell kiválasztása

Az egyéni modell létrehozásának első lépése egy alapmodell kiválasztása. Az Alapmodell panelen kiválaszthatja az egyéni modellhez használandó alapmodellt. A választás a modell teljesítményét és költségeit is befolyásolja.

Válassza ki az alapmodellt az Alapmodell típusa legördülő listában, majd a Tovább gombra kattintva folytassa.

Egyéni modellt a következő elérhető alapmodellek egyikéből hozhat létre:

  • babbage-002

  • davinci-002

  • gpt-35-turbo (0613)

  • gpt-35-turbo (1106)

  • gpt-35-turbo (0125)

  • gpt-4 (0613)

  • Vagy finomhangolhat egy korábban finomhangolt modellt alapmodell.ft-{jobid} formátumban.

Képernyőkép a modellbeállításokról egy egyéni finomhangolt modellel.

A finomhangolható alapmodellekről további információt a Modellek című témakörben talál.

A betanítási adatok kiválasztása

A következő lépés a meglévő előkészített betanítási adatok kiválasztása, vagy új előkészített betanítási adatok feltöltése a modell testreszabása során. A Betanítás adatpanel megjeleníti a meglévő, korábban feltöltött adathalmazokat, és új betanítási adatok feltöltésére is lehetőséget biztosít.

Képernyőkép az Egyéni modell létrehozása varázsló Betanítási adatok paneljéről az Azure OpenAI Studióban.

  • Ha a betanítási adatok már feltöltődtek a szolgáltatásba, válassza az Adathalmaz kiválasztása lehetőséget.

    • Válassza ki a fájlt a Betanítás adatpanelen látható listából.
  • Új betanítási adatok feltöltéséhez használja az alábbi lehetőségek egyikét:

Nagy adatfájlok esetén javasoljuk, hogy importálja az Azure Blob Store-ból. A nagyméretű fájlok instabillá válhatnak, ha többrészes űrlapokon keresztül vannak feltöltve, mert a kérések atomiak, és nem lehet újrapróbálkozás vagy újrakezdés. További információ az Azure Blob Storage-ról: Mi az Az Azure Blob Storage?

Feljegyzés

A betanítási adatfájlokat JSONL-fájlokként kell formázni, UTF-8 formátumban, bájtsorrendjellel (BOM) kódolva. A fájlnak 512 MB-nál kisebb méretűnek kell lennie.

Betanítási adatok feltöltése helyi fájlból

Az alábbi módszerek egyikével feltölthet egy új betanítási adatkészletet a szolgáltatásba egy helyi fájlból:

  • Húzza a fájlt a Betanítás adatpanel ügyfélterületére, majd válassza a Fájl feltöltése lehetőséget.

  • Válassza a Betanítási adatok panel ügyfélterületén található fájl tallózása lehetőséget, válassza ki a feltöltendő fájlt a Megnyitás párbeszédpanelen, majd válassza a Fájl feltöltése lehetőséget.

Miután kiválasztotta és feltöltötte a betanítási adatkészletet, válassza a Tovább gombot a folytatáshoz.

Képernyőkép az Egyéni modell létrehozása varázsló Betanítási adatok paneljéről, helyi fájlbeállításokkal.

Betanítási adatok importálása az Azure Blob Store-ból

A betanítási adatkészletet az Azure Blobból vagy más megosztott webhelyről importálhatja a fájl nevének és helyének megadásával.

  1. Adja meg a fájl fájlnevét .

  2. A fájl helyéhez adja meg az Azure Blob URL-címét, az Azure Storage közös hozzáférésű jogosultságkódját (SAS) vagy egy akadálymentes megosztott webhelyre mutató egyéb hivatkozást.

  3. Válassza a Fájl feltöltése lehetőséget a betanítási adatkészlet szolgáltatásba való importálásához.

Miután kiválasztotta és feltöltötte a betanítási adatkészletet, válassza a Tovább gombot a folytatáshoz.

Képernyőkép az Egyéni modell létrehozása varázsló Betanítási adatok paneljéről az Azure Blob és a megosztott webhely beállításaival.

Az érvényesítési adatok kiválasztása

A következő lépésben konfigurálhatja a modellt úgy, hogy érvényesítési adatokat használjon a betanítási folyamat során. Ha nem szeretne érvényesítési adatokat használni, a Tovább gombot választva folytathatja a modell speciális beállításait. Ellenkező esetben, ha rendelkezik érvényesítési adatkészletekkel, kiválaszthatja a meglévő előkészített érvényesítési adatokat, vagy feltöltheti a modell testreszabásához használandó új előkészített érvényesítési adatokat.

Az Érvényesítési adatok panel megjeleníti a meglévő, korábban feltöltött betanítási és érvényesítési adatkészleteket, és olyan lehetőségeket biztosít, amelyekkel új érvényesítési adatokat tölthet fel.

Képernyőkép az Egyéni modell létrehozása varázsló Érvényességi adatok paneljéről az Azure OpenAI Studióban.

  • Ha az érvényesítési adatok már feltöltődtek a szolgáltatásba, válassza az Adathalmaz kiválasztása lehetőséget.

    • Válassza ki a fájlt az Érvényesítési adatok panelen látható listából.
  • Új érvényesítési adatok feltöltéséhez használja az alábbi lehetőségek egyikét:

Nagy adatfájlok esetén javasoljuk, hogy importálja az Azure Blob Store-ból. A nagyméretű fájlok instabillá válhatnak, ha többrészes űrlapokon keresztül vannak feltöltve, mert a kérések atomiak, és nem lehet újrapróbálkozás vagy újrakezdés.

Feljegyzés

A betanítási adatfájlokhoz hasonlóan az érvényesítési adatfájlokat JSONL-fájlokként kell formázni, UTF-8 formátumban, bájtsorrendjellel (BOM) kódolva. A fájlnak 512 MB-nál kisebb méretűnek kell lennie.

Érvényesítési adatok feltöltése helyi fájlból

Az alábbi módszerek egyikével feltölthet egy új érvényesítési adatkészletet a szolgáltatásba egy helyi fájlból:

  • Húzza a fájlt az Ellenőrzés adatpanel ügyfélterületére, majd válassza a Fájl feltöltése lehetőséget.

  • Válassza az Ellenőrzés adatpanel ügyfélterületén található fájl tallózása lehetőséget, válassza ki a feltöltendő fájlt a Megnyitás párbeszédpanelen, majd válassza a Fájl feltöltése lehetőséget.

Miután kiválasztotta és feltöltötte az érvényesítési adatkészletet, válassza a Tovább gombot a folytatáshoz.

Képernyőkép az Egyéni modell létrehozása varázsló Érvényességi adatok paneljéről a helyi fájlbeállításokkal.

Érvényesítési adatok importálása az Azure Blob Store-ból

A fájl nevének és helyének megadásával importálhat egy érvényesítési adatkészletet az Azure Blobból vagy más megosztott webhelyről.

  1. Adja meg a fájl fájlnevét .

  2. A fájl helyéhez adja meg az Azure Blob URL-címét, az Azure Storage közös hozzáférésű jogosultságkódját (SAS) vagy egy akadálymentes megosztott webhelyre mutató egyéb hivatkozást.

  3. Válassza a Fájl feltöltése lehetőséget a betanítási adatkészlet szolgáltatásba való importálásához.

Miután kiválasztotta és feltöltötte az érvényesítési adatkészletet, válassza a Tovább gombot a folytatáshoz.

Képernyőkép az Egyéni modell létrehozása varázsló Érvényességi adatok paneljéről az Azure Blob és a megosztott webhely beállításaival.

Speciális beállítások konfigurálása

Az Egyéni modell létrehozása varázsló megjeleníti a finomhangolt modell betanításának paramétereit a Speciális beállítások panelen. A következő paraméterek állnak rendelkezésre:

Név Típus Leírás
batch_size egész szám A betanításhoz használandó kötegméret. A köteg mérete azoknak a betanítási példáknak a száma, amelyeket egyetlen előre- és hátramenő áthaladás betanítására használnak. Általánosságban elmondható, hogy a nagyobb kötegméretek általában jobban működnek a nagyobb adathalmazok esetében. Az alapértelmezett érték és a tulajdonság maximális értéke egy alapmodellre jellemző. A nagyobb kötegméret azt jelenti, hogy a modellparaméterek ritkábban, de alacsonyabb varianciával frissülnek.
learning_rate_multiplier szám A betanításhoz használandó tanulási sebesség szorzója. A finomhangolási tanulási arány az előzetes betanításhoz használt eredeti tanulási arány, és ez az érték megszorozva. A nagyobb tanulási arányok általában jobban teljesítenek a nagyobb kötegméretekkel. Javasoljuk, hogy kísérletezzen a 0,02 és 0,2 közötti tartományban lévő értékekkel, hogy lássa, mi okozza a legjobb eredményt. A túlillesztés elkerülése érdekében hasznos lehet a kisebb tanulási arány.
n_epochs egész szám A modell betanítása szükséges korszakok száma. A korszak egy teljes ciklusra utal a betanítási adathalmazon keresztül.
seed egész szám A vetőmag szabályozza a feladat reprodukálhatóságát. Az azonos vetőmag- és feladatparaméterek átadása ugyanazokat az eredményeket eredményezi, de ritka esetekben eltérő lehet. Ha nincs megadva mag, a rendszer létrehoz egy magot

Képernyőkép az Egyéni modell létrehozása varázsló Speciális beállítások paneljéről, amelyen az alapértelmezett beállítások vannak kiválasztva.

Válassza az Alapértelmezett lehetőséget a finomhangolási feladat alapértelmezett értékeinek használatához, vagy válassza a Speciális lehetőséget a hiperparaméter-értékek megjelenítéséhez és szerkesztéséhez. Ha az alapértelmezett értékek vannak kiválasztva, a betanítási adatok alapján algoritmusosan határozzuk meg a helyes értéket.

Miután konfigurálta a speciális beállításokat, válassza a Tovább lehetőséget a lehetőségek áttekintéséhez és a finomhangolt modell betanítása érdekében.

A lehetőségek áttekintése és a modell betanítása

A varázsló Véleményezés paneljén a konfigurációs lehetőségekre vonatkozó információk jelennek meg.

Képernyőkép az Egyéni modell létrehozása varázsló Véleményezés paneljéről az Azure OpenAI Studióban.

Ha készen áll a modell betanítására, válassza a Betanítás indítása lehetőséget a finomhangolási feladat elindításához, és térjen vissza a Modellek panelre.

Az egyéni modell állapotának ellenőrzése

A Modellek panel a Testreszabott modellek lapon jeleníti meg az egyéni modell adatait. A lap információkat tartalmaz az egyéni modellhez tartozó finomhangoló feladat állapotáról és feladatazonosítójáról. Amikor a feladat befejeződött, a lap megjeleníti az eredményfájl fájlazonosítóját. Előfordulhat, hogy a Frissítés lehetőséget kell választania a modell betanítási feladatának frissített állapotának megtekintéséhez.

Képernyőkép az Azure OpenAI Studió Modellek paneljéről, amelyen egy egyéni modell látható.

A finomhangolási feladat elindítása után eltarthat egy ideig. Előfordulhat, hogy a feladat várólistára kerül a rendszer többi feladata mögött. A modell betanítása a modelltől és az adatkészlet méretétől függően perceket vagy órákat is igénybe vehet.

Íme néhány feladat, amelyeket a Modellek panelen végezhet el:

  • Ellenőrizze az egyéni modell finomhangolási feladatának állapotát a Testreszabott modellek lap Állapot oszlopában.

  • A Modellnév oszlopban válassza ki a modell nevét az egyéni modellre vonatkozó további információk megtekintéséhez. Láthatja a finomhangolási feladat állapotát, a betanítási eredményeket, a betanítási eseményeket és a feladatban használt hiperparamétereket.

  • A modellhez használt betanítási adatok letöltéséhez válassza a Betanítási fájl letöltése lehetőséget .

  • A Letöltési eredmények lehetőséget választva töltse le a modell finomhangolási feladatához csatolt eredményfájlt, és elemezze az egyéni modellt a betanítási és érvényesítési teljesítmény érdekében.

  • Válassza a Frissítés lehetőséget az oldalon lévő információk frissítéséhez.

Képernyőkép az Azure OpenAI Studio Modellek paneljéről, amelyen egy egyéni modell látható.

Széf ty evaluation GPT-4 finomhangolás – nyilvános előzetes verzió

A GPT-4 a legfejlettebb modellünk, amely igény szerint finomhangolható. Az Azure OpenAI-modellekhez hasonlóan a finomhangolt modellek fejlett képességei a káros tartalmakkal, a manipulációval, az emberi viselkedéssel, az adatvédelmi problémákkal és egyebekkel kapcsolatos, fokozott felelős AI-kihívásokkal is járnak. További információ a kockázatokról, képességekről és korlátozásokról a Felelős AI-eljárások áttekintésében és az átláthatósági megjegyzésben. A GPT-4 finomhangolt modellekkel kapcsolatos kockázatok mérséklése érdekében további értékelési lépéseket hajtottunk végre a finomhangolt modellek betanításának és kimeneteinek káros tartalmának észleléséhez és megelőzéséhez. Ezeket a lépéseket a Microsoft Responsible AI Standard és az Azure OpenAI Szolgáltatás tartalomszűrése tartalmazza.

  • A kiértékelések dedikált, ügyfélspecifikus, privát munkaterületeken zajlanak;
  • A kiértékelési végpontok ugyanabban a földrajzi helyen találhatók, mint az Azure OpenAI-erőforrás;
  • A betanítási adatok nincsenek a kiértékelések végrehajtásával kapcsolatban tárolva; csak a végső modellértékelés (üzembe helyezhető vagy nem telepíthető) marad meg; És

A GPT-4 finomhangolt modell kiértékelési szűrői előre meghatározott küszöbértékekre vannak beállítva, és az ügyfelek nem módosíthatják; ezek nincsenek a létrehozott egyéni tartalomszűrési konfigurációhoz kötve.

Adatok kiértékelése

A betanítás megkezdése előtt az adatok kiértékelése potenciálisan káros tartalomra (erőszak, szexuális, gyűlölet és méltányosság, önkárosítás – a kategóriadefiníciókat itt tekintheti meg). Ha a rendszer a megadott súlyossági szint felett észlel káros tartalmakat, a betanítási feladat sikertelen lesz, és egy üzenet jelenik meg, amely tájékoztatja a hibakategóriákról.

Mintaüzenet:

The provided training data failed RAI checks for harm types: [hate_fairness, self_harm, violence]. Please fix the data and try again.

A betanítási adatok automatikusan kiértékelésre kerülnek az adatimportálási feladaton belül a finomhangolási képesség biztosításának részeként.

Ha a finomhangolási feladat a betanítási adatokban lévő káros tartalom észlelése miatt meghiúsul, nem számítunk fel díjat.

A modell kiértékelése

A betanítás befejezése után, de mielőtt a finomhangolt modell elérhetővé válik az üzembe helyezéshez, a rendszer kiértékeli az eredményül kapott modellt a potenciálisan káros válaszokra az Azure beépített kockázati és biztonsági metrikáival. Az alapszintű nagy nyelvi modellekhez használt tesztelési megközelítéssel a kiértékelési képességünk egy beszélgetést szimulál a finomhangolt modellel, hogy felmérje a káros tartalmak kimenetelének lehetőségét, ismét meghatározott káros tartalomkategóriák használatával (erőszak, szexuális, gyűlölet és méltányosság, önkárosítás).

Ha egy modell olyan kimenetet hoz létre, amely elfogadható sebességnél nagyobb károsként észlelt tartalmat tartalmaz, a rendszer tájékoztatja arról, hogy a modell nem érhető el az üzembe helyezéshez, és az észlelt kár adott kategóriáira vonatkozó információkat tartalmaz:

Mintaüzenet:

This model is unable to be deployed. Model evaluation identified that this fine tuned model scores above acceptable thresholds for [Violence, Self Harm]. Please review your training data set and resubmit the job.

A biztonsági értékelés miatt meghiúsult finomhangolási feladat képernyőképe

Az adatkiértékeléshez hasonlóan a rendszer automatikusan kiértékeli a modellt a finomhangolási feladaton belül a finomhangolási képesség biztosításának részeként. A szolgáltatás csak az eredményként kapott értékelést naplózza (üzembe helyezhető vagy nem telepíthető). Ha a finomhangolt modell üzembe helyezése a modell kimenetében lévő káros tartalom észlelése miatt meghiúsul, a betanítási futtatásért nem kell fizetnie.

Egyéni modell üzembe helyezése

Ha a finomhangolási feladat sikeres, üzembe helyezheti az egyéni modellt a Modellek panelen. Az egyéni modellt üzembe kell helyeznie, hogy elérhetővé tegye a befejezési hívásokhoz.

Fontos

Ha a testreszabott modell üzembe helyezése után az üzembe helyezés 15 napnál hosszabb ideig inaktív marad, a rendszer törli az üzembe helyezést. A testreszabott modell üzembe helyezése inaktív , ha a modell több mint tizenöt (15) nappal ezelőtt lett üzembe helyezve, és a folyamatos 15 napos időszakban nem történt befejezési vagy csevegés-befejezési hívás.

Az inaktív üzemelő példány törlése nem törli vagy befolyásolja az alapul szolgáló testreszabott modellt, és a testre szabott modell bármikor újra üzembe helyezhető. Az Azure OpenAI szolgáltatás díjszabásában leírtaknak megfelelően minden telepített testre szabott (finomhangolt) modell óránkénti üzemeltetési költséget okoz, függetlenül attól, hogy a modellhez befejezési vagy csevegés-befejezési hívásokat végeznek-e. Ha többet szeretne megtudni a költségek Azure OpenAI-val való tervezéséről és kezeléséről, tekintse meg az Azure OpenAI szolgáltatás költségeinek kezelésére vonatkozó terv útmutatóját.

Feljegyzés

Egyéni modell esetén csak egy üzembe helyezés engedélyezett. Egy már üzembe helyezett egyéni modell kiválasztásakor hibaüzenet jelenik meg.

Az egyéni modell üzembe helyezéséhez válassza ki az üzembe helyezni kívánt egyéni modellt, majd válassza a Modell üzembe helyezése lehetőséget.

Képernyőkép az egyéni modellek Azure OpenAI Studióban való üzembe helyezéséről.

Megnyílik a Modell üzembe helyezése párbeszédpanel. A párbeszédpanelen adja meg az üzembe helyezés nevét , majd válassza a Létrehozás lehetőséget az egyéni modell üzembe helyezésének elindításához.

Képernyőkép az Azure OpenAI Studióban a Modell üzembe helyezése párbeszédpanelről.

Az üzembe helyezés előrehaladását az Azure OpenAI Studióban, az Üzembe helyezés panelen figyelheti.

Régiók közötti üzembe helyezés

A finomhangolás támogatja a finomhangolt modellek üzembe helyezését egy másik régióban, mint ahol a modellt eredetileg finomhangolták. Másik előfizetésben/régióban is üzembe helyezheti azokat.

Az egyetlen korlátozás, hogy az új régiónak támogatnia kell a finomhangolást is, és az előfizetések közötti üzembe helyezéskor az üzembe helyezéshez az engedélyezési jogkivonatot létrehozó fióknak hozzáféréssel kell rendelkeznie a forrás- és célelőfizetésekhez is.

Az előfizetések/régiók közötti üzembe helyezés Pythonon vagy REST-en keresztül valósítható meg.

Üzembe helyezett egyéni modell használata

Az egyéni modell üzembe helyezése után a többi üzembe helyezett modellhez hasonlóan használhatja. Az Azure OpenAI Studióban található játszóterek használatával kísérletezhet az új üzembe helyezéssel. Továbbra is ugyanazokat a paramétereket használhatja az egyéni modellel, például temperature és max_tokens, mint más üzembe helyezett modellekkel. A finomhangolt babbage-002 és davinci-002 modellekhez a Befejezések játszóteret és a Completions API-t kell használnia. A finomhangolt gpt-35-turbo-0613 modellekhez a Csevegési játszóteret és a Csevegés befejezése API-t kell használnia.

Képernyőkép az Azure OpenAI Studio Játszótér paneljéről, kiemelt szakaszokkal.

Az egyéni modell elemzése

Az Azure OpenAI egy results.csv nevű eredményfájlt csatol minden finomhangolási feladathoz a befejezése után. Az eredményfájl használatával elemezheti az egyéni modell betanítási és érvényesítési teljesítményét. Az eredményfájl fájlazonosítója minden egyéni modellhez megjelenik az Azure OpenAI Studio Modellek panelJének Eredmény fájlazonosító oszlopában. A fájlazonosítóval azonosíthatja és letöltheti az eredményfájlt az Azure OpenAI Studio Adatfájlok paneljéről.

Az eredményfájl egy CSV-fájl, amely egy fejlécsort és egy sort tartalmaz a finomhangolási feladat által végrehajtott minden betanítási lépéshez. Az eredményfájl a következő oszlopokat tartalmazza:

Oszlop neve Leírás
step A betanítási lépés száma. A betanítási lépés egy betanítási adatköteg egyetlen áthaladását, előre- és hátralépését jelöli.
train_loss A betanítási köteg vesztesége.
train_mean_token_accuracy A modell által helyesen előrejelzett betanítási kötegben lévő tokenek százalékos aránya.
Ha például a köteg mérete 3, és az adatok befejezéseket [[1, 2], [0, 5], [4, 2]]tartalmaznak, akkor ez az érték 0,83 (a 6-ból 5) értékre van állítva, ha a modell előrejelezte [[1, 1], [0, 5], [4, 2]].
valid_loss Az érvényesítési köteg vesztesége.
validation_mean_token_accuracy A modell által helyesen előrejelzett érvényesítési köteg jogkivonatainak százalékos aránya.
Ha például a köteg mérete 3, és az adatok befejezéseket [[1, 2], [0, 5], [4, 2]]tartalmaznak, akkor ez az érték 0,83 (a 6-ból 5) értékre van állítva, ha a modell előrejelezte [[1, 1], [0, 5], [4, 2]].
full_valid_loss Az egyes korszakok végén kiszámított érvényesítési veszteség. Ha a betanítás jól megy, a veszteségnek csökkennie kell.
full_valid_mean_token_accuracy Az egyes korszakok végén kiszámított érvényes átlagos jogkivonat pontossága. Ha a betanítás jól halad, a token pontosságának növekednie kell.

A results.csv fájlban lévő adatokat ábrázolásként is megtekintheti az Azure OpenAI Studióban. Válassza ki a betanított modell hivatkozását, és három diagramot fog látni: a veszteség, a token átlagos pontossága és a token pontossága. Ha érvényesítési adatokat adott meg, mindkét adathalmaz ugyanazon a diagramon fog megjelenni.

Keresse meg, hogy a veszteség idővel csökkenjen, és a pontossága növekedjen. Ha eltérést tapasztal a betanítási és az érvényesítési adatok között, az azt jelezheti, hogy túlilleszti. Próbálja ki a kevesebb korszakot tartalmazó betanítást, vagy egy kisebb tanulási sebesség-szorzót.

Az üzemelő példányok, az egyéni modellek és a betanítási fájlok törlése

Ha végzett az egyéni modellel, törölheti az üzembe helyezést és a modellt. Szükség esetén törölheti a szolgáltatásba feltöltött betanítási és érvényesítési fájlokat is.

A modell üzembe helyezésének törlése

Fontos

Ha a testreszabott modell üzembe helyezése után az üzembe helyezés 15 napnál hosszabb ideig inaktív marad, a rendszer törli az üzembe helyezést. A testreszabott modell üzembe helyezése inaktív , ha a modell több mint tizenöt (15) nappal ezelőtt lett üzembe helyezve, és a folyamatos 15 napos időszakban nem történt befejezési vagy csevegés-befejezési hívás.

Az inaktív üzemelő példány törlése nem törli vagy befolyásolja az alapul szolgáló testreszabott modellt, és a testre szabott modell bármikor újra üzembe helyezhető. Az Azure OpenAI szolgáltatás díjszabásában leírtaknak megfelelően minden telepített testre szabott (finomhangolt) modell óránkénti üzemeltetési költséget okoz, függetlenül attól, hogy a modellhez befejezési vagy csevegés-befejezési hívásokat végeznek-e. Ha többet szeretne megtudni a költségek Azure OpenAI-val való tervezéséről és kezeléséről, tekintse meg az Azure OpenAI szolgáltatás költségeinek kezelésére vonatkozó terv útmutatóját.

Az egyéni modell üzembe helyezését az Azure OpenAI Studio Üzembe helyezések panelén törölheti. Jelölje ki a törölni kívánt üzembe helyezést, majd a Törlés gombra kattintva törölje az üzembe helyezést.

Az egyéni modell törlése

Az Egyéni modell törölhető az Azure OpenAI Studióban a Modellek panelen. Válassza ki a törölni kívánt egyéni modellt a Testreszabott modellek lapról, majd a Törlés gombra kattintva törölje az egyéni modellt.

Feljegyzés

Ha már rendelkezik üzembe helyezéssel, nem törölhet egyéni modellt. Az egyéni modell törléséhez először törölnie kell a modell üzembe helyezését .

Betanítási fájlok törlése

Törölheti a betanításhoz feltöltött betanítási és érvényesítési fájlokat, valamint a betanítás során létrehozott eredményfájlokat az Azure OpenAI Studio Management>Data files paneljén. Jelölje ki a törölni kívánt fájlt, majd a Törlés gombra kattintva törölje a fájlt.

Folyamatos finomhangolás

Miután létrehozott egy finomhangolt modellt, további finomhangolással tovább finomíthatja a modellt. A folyamatos finomhangolás egy már finomhangolt modell alapmodellként való kiválasztásának és az új betanítási példák további finomhangolásának iteratív folyamata.

A korábban finomhangolt modellek finomhangolásához ugyanazt a folyamatot kell használnia, mint amelyet a testreszabott modell létrehozásakor leírt, de az általános alapmodell nevének megadása helyett a már finomhangolt modellt kell megadnia. Egy egyéni finomhangolt modell úgy nézne ki, mint gpt-35-turbo-0613.ft-5fd1918ee65d4cd38a5dcf6835066ed7

Képernyőkép az egyéni modell felhasználói felületének létrehozásáról egy finomhangolt modell kiemelésével.

Azt is javasoljuk, hogy adja meg a suffix paramétert, hogy könnyebb legyen megkülönböztetni a finomhangolt modell különböző iterációit. suffix sztringet vesz fel, és a finomhangolt modell azonosítására van beállítva. Az OpenAI Python API-val egy legfeljebb 18 karakterből álló sztring támogatott, amely hozzáadódik a finomhangolt modell nevéhez.

Fontos

A cikkben ismertetett funkciók némelyike csak előzetes verzióban érhető el. Ez az előzetes verzió szolgáltatásszint-szerződés nélkül érhető el, és éles számítási feladatokhoz nem javasoljuk. Előfordulhat, hogy néhány funkció nem támogatott, vagy korlátozott képességekkel rendelkezik. További információ: Kiegészítő használati feltételek a Microsoft Azure előzetes verziójú termékeihez.

Előfeltételek

Feljegyzés

Jelenleg be kell küldenie egy alkalmazást az Azure OpenAI szolgáltatás eléréséhez. A hozzáférés kérelmezéséhez töltse ki ezt az űrlapot.

Modellek

A következő modellek támogatják a finomhangolást:

  • babbage-002
  • davinci-002
  • gpt-35-turbo (0613)
  • gpt-35-turbo (1106)
  • gpt-35-turbo (0125)
  • gpt-4 (0613)

A modellek oldalán ellenőrizheti, hogy mely régiók támogatják jelenleg a finomhangolást.

Ha finomhangolásra tervezi használni gpt-4 , tekintse meg a GPT-4 nyilvános előzetes verziójú biztonsági kiértékelési útmutatóját

Az Azure AI Studio munkafolyamatának áttekintése

Szánjon egy kis időt az Azure AI Studio használatának finomhangolási munkafolyamatára:

  1. A betanítási és érvényesítési adatok előkészítése.
  2. Az Egyéni modell betanítása az Azure AI Studióban a Modell finomhangolása varázslóval.
    1. Válasszon ki egy modellt.
    2. Válassza ki a betanítási adatokat.
    3. Igény szerint válassza ki az érvényesítési adatokat.
    4. Igény szerint konfigurálja a paramétereket a finomhangolási feladathoz.
    5. Tekintse át a lehetőségeket, és tanítsa be az új egyéni modellt.
  3. Ellenőrizze a finomhangolt modell állapotát.
  4. Igény szerint elemezze a finomhangolt modellt a teljesítmény és az illesztés szempontjából.
  5. A finomhangolt modell üzembe helyezése használatra.
  6. Használja a finomhangolt modellt.

A betanítási és érvényesítési adatok előkészítése

A képzési és validálási adathalmazok bemeneti és kimeneti példákból állnak, amelyek azt mutatják, hogy a modellt hogyan kell teljesíteni.

A különböző modelltípusok eltérő betanítási adatokat igényelnek.

A használt betanítási és érvényesítési adatokat JSON Lines (JSONL) dokumentumként kell formázni. A gpt-35-turbo-0613 finomhangolási adatkészletet a Csevegés befejezése API által használt beszélgetési formátumban kell formázni.

Ha részletes útmutatót szeretne a modellek finomhangolásáról gpt-35-turbo-0613 , tekintse meg az Azure OpenAI finomhangolási oktatóanyagát.

Példa fájlformátumra

{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Is Xbox better than PlayStation?"}, {"role": "assistant", "content": "I apologize, but I cannot provide personal opinions. My primary job is to assist you with any issues related to your Xbox device. Do you have any Xbox-related issues that need addressing?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Can I play PC games on my Xbox?"}, {"role": "assistant", "content": "While Xbox consoles don't natively support PC games, they can play an array of Xbox games, many of which are also available on PC. Can I assist you with finding games compatible with your Xbox device?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "I'm having trouble connecting my Xbox to the Wi-Fi."}, {"role": "assistant", "content": "No worries, let's go through the network settings on your Xbox. Can you please tell me what happens when you try to connect it to the Wi-Fi?"}]}

Többfordulós csevegési fájlformátum

A jsonl-betanítási fájl egyetlen sorában lévő beszélgetések több fordulója is támogatott. Az egyes segédüzenetek finomhangolásának kihagyásához adja hozzá az opcionális weight kulcsértékpárt. Jelenleg weight 0 vagy 1 lehet.

{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the capital of France?"}, {"role": "assistant", "content": "Paris", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Paris, as if everyone doesn't know that already.", "weight": 1}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who wrote 'Romeo and Juliet'?"}, {"role": "assistant", "content": "William Shakespeare", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Oh, just some guy named William Shakespeare. Ever heard of him?", "weight": 1}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "How far is the Moon from Earth?"}, {"role": "assistant", "content": "384,400 kilometers", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Around 384,400 kilometers. Give or take a few, like that really matters.", "weight": 1}]}

A JSONL formátumon kívül a betanítási és érvényesítési adatfájlokat UTF-8-ban kell kódolni, és tartalmaznia kell egy bájtsorrendjelet (BOM). A fájlnak 512 MB-nál kisebb méretűnek kell lennie.

Betanítási és érvényesítési adatkészletek létrehozása

Minél több betanítási példa van, annál jobb. A finomhangolási feladatok nem folytatódnak legalább 10 betanítási példa nélkül, de ilyen kis szám nem elegendő a modellválaszok észrevehető befolyásolásához. Célszerű több száz, ha nem ezres betanítási példákat biztosítani a sikerességhez.

Általánosságban elmondható, hogy az adathalmaz méretének megduplázása lineáris modellminőség-növekedéshez vezethet. Ne feledje azonban, hogy az alacsony minőségű példák negatív hatással lehetnek a teljesítményre. Ha nagy mennyiségű belső adatra tanítja be a modellt, anélkül, hogy az adathalmazt először csak a legjobb minőségű példákhoz törlené, a vártnál sokkal rosszabb teljesítményt nyújtó modellhez vezethet.

A finomhangolt modell létrehozása

Az Azure OpenAI-modell egy meglévő Azure AI Studio-projektben való finomhangolásához kövesse az alábbi lépéseket:

  1. Jelentkezzen be az Azure AI Studióba, és válassza ki a projektet. Ha még nem rendelkezik projektel, először hozzon létre egy projektet.

  2. Az összecsukható bal oldali menüben válassza a Finomhangolás+ A modell finomhangolása> lehetőséget.

    Képernyőkép az új, finomhangolt modell létrehozásának megkezdéséről.

Az alapmodell kiválasztása

  1. Válasszon ki egy alapmodellt a finomhangolásához. A választás a modell teljesítményét és költségeit is befolyásolja. Ebben a példában a gpt-35-turbo modellt választjuk. Ezután válassza a Megerősítés lehetőséget.

    Képernyőkép a finomhangolandó modell kiválasztásáról.

  2. A gpt-35-turbo finomhangoláshoz különböző verziók érhetők el, ezért válassza ki, hogy melyik verziót szeretné finomhangolni. A (0301) elemet választjuk.

  3. Azt is javasoljuk, hogy adja meg a suffix paramétert, hogy könnyebb legyen megkülönböztetni a finomhangolt modell különböző iterációit. suffix sztringet vesz fel, és a finomhangolt modell azonosítására van beállítva. Az OpenAI Python API-val egy legfeljebb 18 karakterből álló sztring támogatott, amely hozzáadódik a finomhangolt modell nevéhez.

Ha több Azure OpenAI-kapcsolat is engedélyezve van a finomhangoláshoz, válassza ki a használni kívánt erőforrást. Vegye figyelembe, hogy az Azure OpenAI-erőforráshoz hozzáféréssel rendelkező összes felhasználó hozzáfér ehhez a finomhangolt modellhez.

  1. Ezután válassza a Tovább gombra.

    Képernyőkép a modell finomhangolásának alapvető beállításairól.

A betanítási adatok kiválasztása

A következő lépés a meglévő előkészített betanítási adatok kiválasztása, vagy új előkészített betanítási adatok feltöltése a modell testreszabása során. A Betanítás adatpanel megjeleníti a meglévő, korábban feltöltött adathalmazokat, és új betanítási adatok feltöltésére is lehetőséget biztosít.

Képernyőkép az Azure AI Studióban a Modell finomhangolása varázsló Betanítási adatpaneljéről.

  • Ha a betanítási adatok már a projektben is megtalálhatóak, válassza az Adatok lehetőséget az Azure AI Studióban.

    • Válassza ki a fájlt a Betanítás adatpanelen látható listából.
  • Ha a betanítási adatok már feltöltődtek az Azure OpenAI szolgáltatásba, válassza ki az Azure OpenAI-kapcsolatot az Azure OpenAI Csatlakozás ion alatt.

  • Ha betanítási adatokat szeretne feltölteni a modell finomhangolásához, válassza az Adatok feltöltése, majd a Fájl feltöltése lehetőséget.

    • Győződjön meg arról, hogy az összes betanítási példa a következtetés várt formátumát követi. A modellek hatékony finomhangolásához biztosítsa a kiegyensúlyozott és változatos adatkészletet. Ez magában foglalja az adategyensúly fenntartását, beleértve a különböző forgatókönyveket, valamint a betanítási adatok rendszeres finomítását a valós elvárásoknak megfelelően, ami végső soron pontosabb és kiegyensúlyozottabb modellválaszokhoz vezet. További információkért tekintse meg az adatelőkészítést .
    • Nagy adatfájlok esetén javasoljuk, hogy importálja az Azure Blob Store-ból. A nagyméretű fájlok instabillá válhatnak, ha többrészes űrlapokon keresztül vannak feltöltve, mert a kérések atomiak, és nem lehet újrapróbálkozás vagy újrakezdés. További információ az Azure Blob Storage-ról: Mi az Az Azure Blob Storage?

Feljegyzés

A betanítási adatfájlokat JSONL-fájlokként kell formázni, UTF-8 formátumban, bájtsorrendjellel (BOM) kódolva. A fájlnak 512 MB-nál kisebb méretűnek kell lennie.

Képernyőkép a betanítási adatok helyi feltöltésének lehetőségéről.

A fájlok feltöltése után megjelenik a betanítási adatok előnézete. A folytatáshoz válassza a Tovább gombra.

Képernyőkép a betanítási adatok előnézetéről.

Az érvényesítési adatok kiválasztása

Igény szerint érvényesítési adatokat is megadhat a modell finomhangolásához. Ha nem szeretne érvényesítési adatokat használni, válassza a Nincs lehetőséget, majd a Tovább gombot a modell speciális beállításainak folytatásához.

Ellenkező esetben, ha rendelkezik érvényesítési adatkészletekkel, választhat a korábban feltöltött adatok közül, vagy feltöltheti az újonnan előkészített érvényesítési adatokat a modell finomhangolásához.

Feljegyzés

A betanítási adatfájlokhoz hasonlóan az érvényesítési adatfájlokat JSONL-fájlokként kell formázni, UTF-8 formátumban, bájtsorrendjellel (BOM) kódolva. A fájlnak 512 MB-nál kisebb méretűnek kell lennie.

Paraméterek konfigurálása

Igény szerint konfigurálja a finomhangolási feladat paramétereit. Az alábbi funkciók érhetők el:

Név Típus Leírás
batch_size egész szám A betanításhoz használandó kötegméret. A köteg mérete azoknak a betanítási példáknak a száma, amelyeket egyetlen előre- és hátramenő áthaladás betanítására használnak. Általánosságban elmondható, hogy a nagyobb kötegméretek általában jobban működnek a nagyobb adathalmazok esetében. Az alapértelmezett érték és a tulajdonság maximális értéke egy alapmodellre jellemző. A nagyobb kötegméret azt jelenti, hogy a modellparaméterek ritkábban, de alacsonyabb varianciával frissülnek. Ha -1 értékre van állítva, a batch_size a betanítási készlet példáinak 0,2%-a, a maximális érték pedig 256.
learning_rate_multiplier szám A betanításhoz használandó tanulási sebesség szorzója. A finomhangolási tanulási arány az előzetes betanításhoz használt eredeti tanulási arány, és ez az érték megszorozva. A nagyobb tanulási arányok általában jobban teljesítenek a nagyobb kötegméretekkel. Javasoljuk, hogy kísérletezzen a 0,02 és 0,2 közötti tartományban lévő értékekkel, hogy lássa, mi okozza a legjobb eredményt. A túlillesztés elkerülése érdekében hasznos lehet a kisebb tanulási arány.
n_epochs egész szám A modell betanítása szükséges korszakok száma. A korszak egy teljes ciklusra utal a betanítási adathalmazon keresztül. Ha -1 értékre van állítva, a rendszer dinamikusan határozza meg a korszakok számát a bemeneti adatok alapján.
seed egész szám A vetőmag szabályozza a feladat reprodukálhatóságát. Az azonos vetőmag- és feladatparaméterek átadása ugyanazokat az eredményeket eredményezi, de ritka esetekben eltérő lehet. Ha nincs megadva mag, a rendszer létrehoz egy magot.

Dönthet úgy, hogy hagyja meg az alapértelmezett konfigurációt, vagy testre szabja az értékeket. Miután befejezte a konfigurációkat, válassza a Tovább gombot.

A lehetőségek áttekintése és a modell betanítása

Tekintse át a lehetőségeket, és válassza a Küldés lehetőséget az új, finomhangolt modell betanításának megkezdéséhez.

A finomhangolt modell állapotának ellenőrzése

A finomhangolási feladat elküldése után megjelenik egy oldal, amelyen a finomhangolt modell részletei láthatók. A finomhangolt modell állapotát és további információit az Azure AI Studio Modellek finomhangolása>lapján találja.

Előfordulhat, hogy a feladat várólistára kerül a rendszer többi feladata mögött. A modell betanítása a modelltől és az adatkészlet méretétől függően perceket vagy órákat is igénybe vehet.

A finomhangolt modell elemzése

A finomhangolás sikeres befejezése után letölthet egy results.csv nevű eredményfájlt a Részletek lap finomhangolt modelloldaláról. Az eredményfájl használatával elemezheti az egyéni modell betanítási és érvényesítési teljesítményét.

Az eredményfájl egy CSV-fájl, amely egy fejlécsort és egy sort tartalmaz a finomhangolási feladat által végrehajtott minden betanítási lépéshez. Az eredményfájl a következő oszlopokat tartalmazza:

Oszlop neve Leírás
step A betanítási lépés száma. A betanítási lépés egy betanítási adatköteg egyetlen áthaladását, előre- és hátralépését jelöli.
train_loss A betanítási köteg vesztesége.
train_mean_token_accuracy A modell által helyesen előrejelzett betanítási kötegben lévő tokenek százalékos aránya.
Ha például a köteg mérete 3, és az adatok befejezéseket [[1, 2], [0, 5], [4, 2]]tartalmaznak, akkor ez az érték 0,83 (a 6-ból 5) értékre van állítva, ha a modell előrejelezte [[1, 1], [0, 5], [4, 2]].
valid_loss Az érvényesítési köteg vesztesége.
validation_mean_token_accuracy A modell által helyesen előrejelzett érvényesítési köteg jogkivonatainak százalékos aránya.
Ha például a köteg mérete 3, és az adatok befejezéseket [[1, 2], [0, 5], [4, 2]]tartalmaznak, akkor ez az érték 0,83 (a 6-ból 5) értékre van állítva, ha a modell előrejelezte [[1, 1], [0, 5], [4, 2]].
full_valid_loss Az egyes korszakok végén kiszámított érvényesítési veszteség. Ha a betanítás jól megy, a veszteségnek csökkennie kell.
full_valid_mean_token_accuracy Az egyes korszakok végén kiszámított érvényes átlagos jogkivonat pontossága. Ha a betanítás jól halad, a token pontosságának növekednie kell.

A results.csv fájlban lévő adatokat ábrázolásként is megtekintheti az Azure AI Studióban a finomhangolt modell Metrikák lapján. Válassza ki a betanított modell hivatkozását, és három diagramot fog látni: a veszteség, a token átlagos pontossága és a token pontossága. Ha érvényesítési adatokat adott meg, mindkét adathalmaz ugyanazon a diagramon fog megjelenni.

Keresse meg, hogy a veszteség idővel csökkenjen, és a pontossága növekedjen. Ha eltérést tapasztal a betanítási és érvényesítési adatok között, amelyek azt jelezhetik, hogy túlillesztés van. Próbálja ki a kevesebb korszakot tartalmazó betanítást, vagy egy kisebb tanulási sebesség-szorzót.

Széf ty evaluation GPT-4 finomhangolás – nyilvános előzetes verzió

A GPT-4 a legfejlettebb modellünk, amely igény szerint finomhangolható. Az Azure OpenAI-modellekhez hasonlóan a finomhangolt modellek fejlett képességei a káros tartalmakkal, a manipulációval, az emberi viselkedéssel, az adatvédelmi problémákkal és egyebekkel kapcsolatos, fokozott felelős AI-kihívásokkal is járnak. További információ a kockázatokról, képességekről és korlátozásokról a Felelős AI-eljárások áttekintésében és az átláthatósági megjegyzésben. A GPT-4 finomhangolt modellekkel kapcsolatos kockázatok mérséklése érdekében további értékelési lépéseket hajtottunk végre a finomhangolt modellek betanításának és kimeneteinek káros tartalmának észleléséhez és megelőzéséhez. Ezeket a lépéseket a Microsoft Responsible AI Standard és az Azure OpenAI Szolgáltatás tartalomszűrése tartalmazza.

  • A kiértékelések dedikált, ügyfélspecifikus, privát munkaterületeken zajlanak;
  • A kiértékelési végpontok ugyanabban a földrajzi helyen találhatók, mint az Azure OpenAI-erőforrás;
  • A betanítási adatok nincsenek a kiértékelések végrehajtásával kapcsolatban tárolva; csak a végső modellértékelés (üzembe helyezhető vagy nem telepíthető) marad meg; És

A GPT-4 finomhangolt modell kiértékelési szűrői előre meghatározott küszöbértékekre vannak beállítva, és az ügyfelek nem módosíthatják; ezek nincsenek a létrehozott egyéni tartalomszűrési konfigurációhoz kötve.

Adatok kiértékelése

A betanítás megkezdése előtt az adatok kiértékelése potenciálisan káros tartalomra (erőszak, szexuális, gyűlölet és méltányosság, önkárosítás – a kategóriadefiníciókat itt tekintheti meg). Ha a rendszer a megadott súlyossági szint felett észlel káros tartalmakat, a betanítási feladat sikertelen lesz, és egy üzenet jelenik meg, amely tájékoztatja a hibakategóriákról.

Mintaüzenet:

The provided training data failed RAI checks for harm types: [hate_fairness, self_harm, violence]. Please fix the data and try again.

A betanítási adatok automatikusan kiértékelésre kerülnek az adatimportálási feladaton belül a finomhangolási képesség biztosításának részeként.

Ha a finomhangolási feladat a betanítási adatokban lévő káros tartalom észlelése miatt meghiúsul, nem számítunk fel díjat.

A modell kiértékelése

A betanítás befejezése után, de mielőtt a finomhangolt modell elérhetővé válik az üzembe helyezéshez, a rendszer kiértékeli az eredményül kapott modellt a potenciálisan káros válaszokra az Azure beépített kockázati és biztonsági metrikáival. Az alapszintű nagy nyelvi modellekhez használt tesztelési megközelítéssel a kiértékelési képességünk egy beszélgetést szimulál a finomhangolt modellel, hogy felmérje a káros tartalmak kimenetelének lehetőségét, ismét meghatározott káros tartalomkategóriák használatával (erőszak, szexuális, gyűlölet és méltányosság, önkárosítás).

Ha egy modell olyan kimenetet hoz létre, amely elfogadható sebességnél nagyobb károsként észlelt tartalmat tartalmaz, a rendszer tájékoztatja arról, hogy a modell nem érhető el az üzembe helyezéshez, és az észlelt kár adott kategóriáira vonatkozó információkat tartalmaz:

Mintaüzenet:

This model is unable to be deployed. Model evaluation identified that this fine tuned model scores above acceptable thresholds for [Violence, Self Harm]. Please review your training data set and resubmit the job.

A biztonsági értékelés miatt meghiúsult finomhangolási feladat képernyőképe

Az adatkiértékeléshez hasonlóan a rendszer automatikusan kiértékeli a modellt a finomhangolási feladaton belül a finomhangolási képesség biztosításának részeként. A szolgáltatás csak az eredményként kapott értékelést naplózza (üzembe helyezhető vagy nem telepíthető). Ha a finomhangolt modell üzembe helyezése a modell kimenetében lévő káros tartalom észlelése miatt meghiúsul, a betanítási futtatásért nem kell fizetnie.

Finomhangolt modell üzembe helyezése

A modell finomhangolása után üzembe helyezheti a modellt, és használhatja a saját alkalmazásában. Nem helyezhet üzembe finomhangolt modellt az üzembe helyezési oldalról vagy az Azure AI Studio játszótéri oldaláról. Egy finomhangolt modell üzembe helyezésének jelenleg csak az adott modell részletes oldalán lehet üzembe helyezni.

A modell üzembe helyezésekor elérhetővé teszi a modellt a következtetéshez, és ez óránkénti üzemeltetési díjat von maga után. A finomhangolt modellek azonban díjmentesen tárolhatók az Azure AI Studióban, amíg készen nem áll a használatra.

Fontos

Ha a testreszabott modell üzembe helyezése után az üzembe helyezés 15 napnál hosszabb ideig inaktív marad, a rendszer törli az üzembe helyezést. A testreszabott modell üzembe helyezése inaktív , ha a modell több mint tizenöt (15) nappal ezelőtt lett üzembe helyezve, és a folyamatos 15 napos időszakban nem történt befejezési vagy csevegés-befejezési hívás.

Az inaktív üzemelő példány törlése nem törli vagy befolyásolja az alapul szolgáló testreszabott modellt, és a testre szabott modell bármikor újra üzembe helyezhető. Az Azure OpenAI szolgáltatás díjszabásában leírtaknak megfelelően minden telepített testre szabott (finomhangolt) modell óránkénti üzemeltetési költséget okoz, függetlenül attól, hogy a modellhez befejezési vagy csevegés-befejezési hívásokat végeznek-e. Ha többet szeretne megtudni a költségek Azure OpenAI-val való tervezéséről és kezeléséről, tekintse meg az Azure OpenAI szolgáltatás költségeinek kezelésére vonatkozó terv útmutatóját.

Feljegyzés

Egy finomhangolt modellhez csak egy üzembe helyezés engedélyezett. Hibaüzenet jelenik meg, ha kiválaszt egy már üzembe helyezett, finomhangolt modellt.

Az üzembe helyezés előrehaladását az Azure AI Studio Üzembe helyezések lapján követheti nyomon.

Üzembe helyezett, finomhangolt modell használata

A finomhangolt modell üzembe helyezése után a többi üzembe helyezett modellhez hasonlóan használhatja. Az Azure AI Studióban található Játszótér használatával kísérletezhet az új üzembe helyezéssel. A REST API-val a saját alkalmazásból is meghívhatja a finomhangolt modellt. Ezt az új, finomhangolt modellt a parancssori folyamatban is használhatja a generatív AI-alkalmazás létrehozásához.

Feljegyzés

A csevegőmodellek esetében a finomhangolt modell irányításához használt rendszerüzenetnek (legyen az üzembe helyezve vagy a játszótéren való teszteléshez elérhető) meg kell egyeznie a betanításhoz használt rendszerüzenettel. Ha másik rendszerüzenetet használ, előfordulhat, hogy a modell nem a várt módon működik.

Az üzemelő példányok, a finomhangolt modellek és a betanítási fájlok eltávolítása

Ha végzett a finomhangolt modellel, törölheti az üzembe helyezést és a modellt. Szükség esetén törölheti a szolgáltatásba feltöltött betanítási és érvényesítési fájlokat is.

A modell finomhangolt üzembe helyezésének törlése

Fontos

Ha a testreszabott modell üzembe helyezése után az üzembe helyezés 15 napnál hosszabb ideig inaktív marad, a rendszer törli az üzembe helyezést. A testreszabott modell üzembe helyezése inaktív , ha a modell több mint tizenöt (15) nappal ezelőtt lett üzembe helyezve, és a folyamatos 15 napos időszakban nem történt befejezési vagy csevegés-befejezési hívás.

Az inaktív üzemelő példány törlése nem törli vagy befolyásolja az alapul szolgáló testreszabott modellt, és a testre szabott modell bármikor újra üzembe helyezhető. Az Azure OpenAI szolgáltatás díjszabásában leírtaknak megfelelően minden telepített testre szabott (finomhangolt) modell óránkénti üzemeltetési költséget okoz, függetlenül attól, hogy a modellhez befejezési vagy csevegés-befejezési hívásokat végeznek-e. Ha többet szeretne megtudni a költségek Azure OpenAI-val való tervezéséről és kezeléséről, tekintse meg az Azure OpenAI szolgáltatás költségeinek kezelésére vonatkozó terv útmutatóját.

A finomhangolt modell üzembe helyezését az Azure AI Studio Üzembe helyezési lapján törölheti. Jelölje ki a törölni kívánt üzembe helyezést, majd a Törlés gombra kattintva törölje az üzembe helyezést.

A finomhangolt modell törlése

Az Azure AI Studio finomhangolási oldalán törölhet egy finomhangolt modellt. Jelölje ki a törölni kívánt finomhangolt modellt, majd a Törlés gombra kattintva törölje a finomhangolt modellt.

Feljegyzés

Ha már rendelkezik üzembe helyezéssel, nem törölhet finomhangolt modellt. Először törölnie kell a modell üzembe helyezését , mielőtt törölheti a finomhangolt modellt.

Betanítási fájlok törlése

Törölheti a betanításhoz feltöltött betanítási és érvényesítési fájlokat, valamint a betanítás során létrehozott eredményfájlokat. Ehhez meg kell nyitnia az Azure OpenAI Studiót, és meg kell nyitnia a Felügyeleti>adatfájlok panelt. Jelölje ki a törölni kívánt fájlt, majd a Törlés gombra kattintva törölje a fájlt.

Előfeltételek

Feljegyzés

Jelenleg be kell küldenie egy alkalmazást az Azure OpenAI szolgáltatás eléréséhez. A hozzáférés kérelmezéséhez töltse ki ezt az űrlapot.

Modellek

A következő modellek támogatják a finomhangolást:

  • babbage-002
  • davinci-002
  • gpt-35-turbo (0613)
  • gpt-35-turbo (1106)
  • gpt-35-turbo (0125)
  • gpt-4 (0613)

Ha finomhangolásra tervezi használni gpt-4 , tekintse meg a GPT-4 nyilvános előzetes verziójú biztonsági kiértékelési útmutatóját

Vagy finomhangolhat egy korábban finomhangolt modellt alapmodell.ft-{jobid} formátumban.

Képernyőkép a modellbeállításokról egy egyéni finomhangolt modellel.

A modellek oldalán ellenőrizheti, hogy mely régiók támogatják jelenleg a finomhangolást.

A Python SDK munkafolyamatának áttekintése

Szánjon egy kis időt a Python SDK Azure OpenAI-val való használatára vonatkozó finomhangolási munkafolyamat áttekintésére:

  1. A betanítási és érvényesítési adatok előkészítése.
  2. Válasszon egy alapmodellt.
  3. Töltse fel a betanítási adatokat.
  4. Betanítsa az új testreszabott modellt.
  5. Ellenőrizze a testreszabott modell állapotát.
  6. A testre szabott modell üzembe helyezése használatra.
  7. Használja a testre szabott modellt.
  8. Igény szerint elemezheti a testre szabott modellt a teljesítmény és az illesztés szempontjából.

A betanítási és érvényesítési adatok előkészítése

A képzési és validálási adathalmazok bemeneti és kimeneti példákból állnak, amelyek azt mutatják, hogy a modellt hogyan kell teljesíteni.

A különböző modelltípusok eltérő betanítási adatokat igényelnek.

A használt betanítási és érvényesítési adatokat JSON Lines (JSONL) dokumentumként kell formázni. A gpt-35-turbo-0613 finomhangolási adatkészletet a Csevegés befejezése API által használt beszélgetési formátumban kell formázni.

Ha részletes részletes útmutatót szeretne a finomhangolásról gpt-35-turbo-0613 , tekintse meg az Azure OpenAI finomhangolási oktatóanyagát

Példa fájlformátumra

{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Is Xbox better than PlayStation?"}, {"role": "assistant", "content": "I apologize, but I cannot provide personal opinions. My primary job is to assist you with any issues related to your Xbox device. Do you have any Xbox-related issues that need addressing?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Can I play PC games on my Xbox?"}, {"role": "assistant", "content": "While Xbox consoles don't natively support PC games, they can play an array of Xbox games, many of which are also available on PC. Can I assist you with finding games compatible with your Xbox device?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "I'm having trouble connecting my Xbox to the Wi-Fi."}, {"role": "assistant", "content": "No worries, let's go through the network settings on your Xbox. Can you please tell me what happens when you try to connect it to the Wi-Fi?"}]}

Többfordulós csevegési fájlformátum

A jsonl-betanítási fájl egyetlen sorában lévő beszélgetések több fordulója is támogatott. Az egyes segédüzenetek finomhangolásának kihagyásához adja hozzá az opcionális weight kulcsértékpárt. Jelenleg weight 0 vagy 1 lehet.

{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the capital of France?"}, {"role": "assistant", "content": "Paris", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Paris, as if everyone doesn't know that already.", "weight": 1}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who wrote 'Romeo and Juliet'?"}, {"role": "assistant", "content": "William Shakespeare", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Oh, just some guy named William Shakespeare. Ever heard of him?", "weight": 1}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "How far is the Moon from Earth?"}, {"role": "assistant", "content": "384,400 kilometers", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Around 384,400 kilometers. Give or take a few, like that really matters.", "weight": 1}]}

A JSONL formátumon kívül a betanítási és érvényesítési adatfájlokat UTF-8-ban kell kódolni, és tartalmaznia kell egy bájtsorrendjelet (BOM). A fájlnak 512 MB-nál kisebb méretűnek kell lennie.

Betanítási és érvényesítési adatkészletek létrehozása

Minél több betanítási példa van, annál jobb. A finomhangolási feladatok nem folytatódnak legalább 10 betanítási példa nélkül, de ilyen kis szám nem elegendő a modellválaszok észrevehető befolyásolásához. Célszerű több száz, ha nem ezres betanítási példákat biztosítani a sikerességhez.

Általánosságban elmondható, hogy az adathalmaz méretének megduplázása lineáris modellminőség-növekedéshez vezethet. Ne feledje azonban, hogy az alacsony minőségű példák negatív hatással lehetnek a teljesítményre. Ha nagy mennyiségű belső adatra tanítja be a modellt, anélkül, hogy az adathalmazt először csak a legjobb minőségű példákhoz törlené, a vártnál sokkal rosszabb teljesítményt nyújtó modellhez vezethet.

Betanítási adatok feltöltése

A következő lépés a meglévő előkészített betanítási adatok kiválasztása, vagy új előkészített betanítási adatok feltöltése a modell testreszabása során. A betanítási adatok előkészítése után feltöltheti fájljait a szolgáltatásba. A betanítási adatok kétféleképpen tölthetők fel:

Nagy adatfájlok esetén javasoljuk, hogy importálja az Azure Blob Store-ból. A nagyméretű fájlok instabillá válhatnak, ha többrészes űrlapokon keresztül vannak feltöltve, mert a kérések atomiak, és nem lehet újrapróbálkozás vagy újrakezdés. További információ az Azure Blob Storage-ról: Mi az Az Azure Blob Storage?

Feljegyzés

A betanítási adatfájlokat JSONL-fájlokként kell formázni, UTF-8 formátumban, bájtsorrendjellel (BOM) kódolva. A fájlnak 512 MB-nál kisebb méretűnek kell lennie.

Az alábbi Python-példa feltölti a helyi betanítási és érvényesítési fájlokat a Python SDK használatával, és lekéri a visszaadott fájlazonosítókat.

# Upload fine-tuning files

import os
from openai import AzureOpenAI

client = AzureOpenAI(
  azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"), 
  api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
  api_version="2024-05-01-preview"  # This API version or later is required to access seed/events/checkpoint capabilities
)

training_file_name = 'training_set.jsonl'
validation_file_name = 'validation_set.jsonl'

# Upload the training and validation dataset files to Azure OpenAI with the SDK.

training_response = client.files.create(
    file=open(training_file_name, "rb"), purpose="fine-tune"
)
training_file_id = training_response.id

validation_response = client.files.create(
    file=open(validation_file_name, "rb"), purpose="fine-tune"
)
validation_file_id = validation_response.id

print("Training file ID:", training_file_id)
print("Validation file ID:", validation_file_id)

Testreszabott modell létrehozása

Miután feltöltötte a betanítási és érvényesítési fájlokat, készen áll a finomhangolási feladat elindítására.

Az alábbi Python-kód egy példát mutat be arra, hogyan hozhat létre új finomhangoló feladatot a Python SDK-val:

Ebben a példában a magparamétert is átadjuk. A vetőmag szabályozza a feladat reprodukálhatóságát. Az azonos vetőmag- és feladatparaméterek átadása ugyanazokat az eredményeket eredményezi, de ritka esetekben eltérő lehet. Ha nincs megadva mag, a rendszer létrehoz egy magot.

response = client.fine_tuning.jobs.create(
    training_file=training_file_id,
    validation_file=validation_file_id,
    model="gpt-35-turbo-0613", # Enter base model name. Note that in Azure OpenAI the model name contains dashes and cannot contain dot/period characters. 
    seed = 105  # seed parameter controls reproducibility of the fine-tuning job. If no seed is specified one will be generated automatically.
)

job_id = response.id

# You can use the job ID to monitor the status of the fine-tuning job.
# The fine-tuning job will take some time to start and complete.

print("Job ID:", response.id)
print("Status:", response.id)
print(response.model_dump_json(indent=2))

További opcionális paramétereket, például hiperparamétereket is átadhat a finomhangolási folyamat jobb szabályozásához. Az első betanításhoz javasoljuk, hogy a paraméterek megadása nélkül jelen lévő automatikus alapértelmezett értékeket használja.

A finomhangoláshoz jelenleg támogatott hiperparaméterek a következők:

Név Típus Leírás
batch_size egész szám A betanításhoz használandó kötegméret. A köteg mérete azoknak a betanítási példáknak a száma, amelyeket egyetlen előre- és hátramenő áthaladás betanítására használnak. Általánosságban elmondható, hogy a nagyobb kötegméretek általában jobban működnek a nagyobb adathalmazok esetében. Az alapértelmezett érték és a tulajdonság maximális értéke egy alapmodellre jellemző. A nagyobb kötegméret azt jelenti, hogy a modellparaméterek ritkábban, de alacsonyabb varianciával frissülnek.
learning_rate_multiplier szám A betanításhoz használandó tanulási sebesség szorzója. A finomhangolási tanulási arány az előzetes betanításhoz használt eredeti tanulási arány, és ez az érték megszorozva. A nagyobb tanulási arányok általában jobban teljesítenek a nagyobb kötegméretekkel. Javasoljuk, hogy kísérletezzen a 0,02 és 0,2 közötti tartományban lévő értékekkel, hogy lássa, mi okozza a legjobb eredményt. A túlillesztés elkerülése érdekében hasznos lehet a kisebb tanulási arány.
n_epochs egész szám A modell betanítása szükséges korszakok száma. A korszak egy teljes ciklusra utal a betanítási adathalmazon keresztül.

Egyéni hiperparaméterek beállítása az OpenAI Python API 1.x verziójával:

from openai import AzureOpenAI

client = AzureOpenAI(
  azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"), 
  api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
  api_version="2024-02-01"  # This API version or later is required to access fine-tuning for turbo/babbage-002/davinci-002
)

client.fine_tuning.jobs.create(
  training_file="file-abc123", 
  model="gpt-35-turbo-0613", # Enter base model name. Note that in Azure OpenAI the model name contains dashes and cannot contain dot/period characters. 
  hyperparameters={
    "n_epochs":2
  }
)

A feladat állapotának finomhangolása

response = client.fine_tuning.jobs.retrieve(job_id)

print("Job ID:", response.id)
print("Status:", response.status)
print(response.model_dump_json(indent=2))

Események finomhangolásának listázása

A betanítás során létrehozott egyéni finomhangolási események vizsgálata:

Előfordulhat, hogy a parancs futtatásához frissítenie kell az OpenAI-ügyfélkódtárat a legújabb verzióra pip install openai --upgrade .

response = client.fine_tuning.jobs.list_events(fine_tuning_job_id=job_id, limit=10)
print(response.model_dump_json(indent=2))

Ellenőrzőpontok

Amikor minden betanítási korszak befejeződött, létrejön egy ellenőrzőpont. Az ellenőrzőpont egy modell teljes funkcionalitású verziója, amely üzembe helyezhető és célmodellként is használható a későbbi finomhangolási feladatokhoz. Az ellenőrzőpontok különösen hasznosak lehetnek, mivel a túlillesztés előtt pillanatképet adhatnak a modellről. Ha egy finomhangolási feladat befejeződik, a modell három legújabb verziója lesz üzembe helyezhető. Az utolsó korszakot a finomhangolt modell képviseli, az előző két korszak pedig ellenőrzőpontokként lesz elérhető.

A lista-ellenőrzőpontok parancs futtatásával lekérheti az egyes finomhangolási feladatokhoz társított ellenőrzőpontok listáját:

Előfordulhat, hogy a parancs futtatásához frissítenie kell az OpenAI-ügyfélkódtárat a legújabb verzióra pip install openai --upgrade .

response = client.fine_tuning.jobs.list_events(fine_tuning_job_id=job_id, limit=10)
print(response.model_dump_json(indent=2))

Széf ty evaluation GPT-4 finomhangolás – nyilvános előzetes verzió

A GPT-4 a legfejlettebb modellünk, amely igény szerint finomhangolható. Az Azure OpenAI-modellekhez hasonlóan a finomhangolt modellek fejlett képességei a káros tartalmakkal, a manipulációval, az emberi viselkedéssel, az adatvédelmi problémákkal és egyebekkel kapcsolatos, fokozott felelős AI-kihívásokkal is járnak. További információ a kockázatokról, képességekről és korlátozásokról a Felelős AI-eljárások áttekintésében és az átláthatósági megjegyzésben. A GPT-4 finomhangolt modellekkel kapcsolatos kockázatok mérséklése érdekében további értékelési lépéseket hajtottunk végre a finomhangolt modellek betanításának és kimeneteinek káros tartalmának észleléséhez és megelőzéséhez. Ezeket a lépéseket a Microsoft Responsible AI Standard és az Azure OpenAI Szolgáltatás tartalomszűrése tartalmazza.

  • A kiértékelések dedikált, ügyfélspecifikus, privát munkaterületeken zajlanak;
  • A kiértékelési végpontok ugyanabban a földrajzi helyen találhatók, mint az Azure OpenAI-erőforrás;
  • A betanítási adatok nincsenek a kiértékelések végrehajtásával kapcsolatban tárolva; csak a végső modellértékelés (üzembe helyezhető vagy nem telepíthető) marad meg; És

A GPT-4 finomhangolt modell kiértékelési szűrői előre meghatározott küszöbértékekre vannak beállítva, és az ügyfelek nem módosíthatják; ezek nincsenek a létrehozott egyéni tartalomszűrési konfigurációhoz kötve.

Adatok kiértékelése

A betanítás megkezdése előtt az adatok kiértékelése potenciálisan káros tartalomra (erőszak, szexuális, gyűlölet és méltányosság, önkárosítás – a kategóriadefiníciókat itt tekintheti meg). Ha a rendszer a megadott súlyossági szint felett észlel káros tartalmakat, a betanítási feladat sikertelen lesz, és egy üzenet jelenik meg, amely tájékoztatja a hibakategóriákról.

Mintaüzenet:

The provided training data failed RAI checks for harm types: [hate_fairness, self_harm, violence]. Please fix the data and try again.

A betanítási adatok automatikusan kiértékelésre kerülnek az adatimportálási feladaton belül a finomhangolási képesség biztosításának részeként.

Ha a finomhangolási feladat a betanítási adatokban lévő káros tartalom észlelése miatt meghiúsul, nem számítunk fel díjat.

A modell kiértékelése

A betanítás befejezése után, de mielőtt a finomhangolt modell elérhetővé válik az üzembe helyezéshez, a rendszer kiértékeli az eredményül kapott modellt a potenciálisan káros válaszokra az Azure beépített kockázati és biztonsági metrikáival. Az alapszintű nagy nyelvi modellekhez használt tesztelési megközelítéssel a kiértékelési képességünk egy beszélgetést szimulál a finomhangolt modellel, hogy felmérje a káros tartalmak kimenetelének lehetőségét, ismét meghatározott káros tartalomkategóriák használatával (erőszak, szexuális, gyűlölet és méltányosság, önkárosítás).

Ha egy modell olyan kimenetet hoz létre, amely elfogadható sebességnél nagyobb károsként észlelt tartalmat tartalmaz, a rendszer tájékoztatja arról, hogy a modell nem érhető el az üzembe helyezéshez, és az észlelt kár adott kategóriáira vonatkozó információkat tartalmaz:

Mintaüzenet:

This model is unable to be deployed. Model evaluation identified that this fine tuned model scores above acceptable thresholds for [Violence, Self Harm]. Please review your training data set and resubmit the job.

A biztonsági értékelés miatt meghiúsult finomhangolási feladat képernyőképe

Az adatkiértékeléshez hasonlóan a rendszer automatikusan kiértékeli a modellt a finomhangolási feladaton belül a finomhangolási képesség biztosításának részeként. A szolgáltatás csak az eredményként kapott értékelést naplózza (üzembe helyezhető vagy nem telepíthető). Ha a finomhangolt modell üzembe helyezése a modell kimenetében lévő káros tartalom észlelése miatt meghiúsul, a betanítási futtatásért nem kell fizetnie.

Testreszabott modell üzembe helyezése

Ha a finomhangolási feladat sikeres, a fine_tuned_model válasz törzsében lévő változó értéke a testre szabott modell nevére lesz állítva. A modell most már a Models API listából is elérhető a felderítéshez. A testre szabott modell üzembe helyezéséig azonban nem adhat ki befejezési hívásokat. A testreszabott modellt üzembe kell helyeznie, hogy elérhetővé tegye a befejezési hívásokhoz.

Fontos

Ha a testreszabott modell üzembe helyezése után az üzembe helyezés 15 napnál hosszabb ideig inaktív marad, a rendszer törli az üzembe helyezést. A testreszabott modell üzembe helyezése inaktív , ha a modell több mint tizenöt (15) nappal ezelőtt lett üzembe helyezve, és a folyamatos 15 napos időszakban nem történt befejezési vagy csevegés-befejezési hívás.

Az inaktív üzemelő példány törlése nem törli vagy befolyásolja az alapul szolgáló testreszabott modellt, és a testre szabott modell bármikor újra üzembe helyezhető. Az Azure OpenAI szolgáltatás díjszabásában leírtaknak megfelelően minden telepített testre szabott (finomhangolt) modell óránkénti üzemeltetési költséget okoz, függetlenül attól, hogy a modellhez befejezési vagy csevegés-befejezési hívásokat végeznek-e. Ha többet szeretne megtudni a költségek Azure OpenAI-val való tervezéséről és kezeléséről, tekintse meg az Azure OpenAI szolgáltatás költségeinek kezelésére vonatkozó terv útmutatóját.

A testre szabott modell üzembe helyezéséhez használhatja az Azure OpenAI-t vagy az Azure CLI-t .

Feljegyzés

Testre szabott modell esetén csak egy üzembe helyezés engedélyezett. Hiba történik, ha egy már üzembe helyezett testreszabott modellt választ ki.

Finomhangolt modell üzembe helyezése

Az előző SDK-parancsokkal ellentétben az üzembe helyezést a vezérlősík API-val kell elvégezni, amely külön engedélyezést, egy másik API-útvonalat és egy másik API-verziót igényel.

változó Definíció
jogkivonat Az engedélyezési jogkivonatok többféleképpen is létrehozhatóak. A kezdeti tesztelés legegyszerűbb módja a Cloud Shell elindítása az Azure Portalról. Ez után futtassa a az account get-access-token parancsot. Ezt a jogkivonatot használhatja ideiglenes engedélyezési jogkivonatként API-teszteléshez. Javasoljuk, hogy ezt egy új környezeti változóban tárolja
előfizetést A társított Azure OpenAI-erőforrás előfizetés-azonosítója
resource_group Az Azure OpenAI-erőforrás erőforráscsoportjának neve
resource_name Az Azure OpenAI-erőforrás neve
model_deployment_name Az új, finomhangolt modell üzembe helyezésének egyéni neve. Ez a név lesz hivatkozva a kódban a csevegés befejezésére irányuló hívások során.
fine_tuned_model Kérje le ezt az értéket a finomhangolási feladat eredményéből az előző lépésben. Úgy fog kinézni gpt-35-turbo-0613.ft-b044a9d3cf9c4228b5d393567f693b83. Ezt az értéket hozzá kell adnia a deploy_data jsonhoz. Másik lehetőségként egy ellenőrzőpontot is üzembe helyezhet, ha átadja az ellenőrzőpont azonosítóját, amely a következő formátumban jelenik meg: ftchkpt-e559c011ecc04fc68eaa339d8227d02d
import json
import os
import requests

token= os.getenv("<TOKEN>") 
subscription = "<YOUR_SUBSCRIPTION_ID>"  
resource_group = "<YOUR_RESOURCE_GROUP_NAME>"
resource_name = "<YOUR_AZURE_OPENAI_RESOURCE_NAME>"
model_deployment_name ="gpt-35-turbo-ft" # custom deployment name that you will use to reference the model when making inference calls.

deploy_params = {'api-version': "2023-05-01"} 
deploy_headers = {'Authorization': 'Bearer {}'.format(token), 'Content-Type': 'application/json'}

deploy_data = {
    "sku": {"name": "standard", "capacity": 1}, 
    "properties": {
        "model": {
            "format": "OpenAI",
            "name": <"fine_tuned_model">, #retrieve this value from the previous call, it will look like gpt-35-turbo-0613.ft-b044a9d3cf9c4228b5d393567f693b83
            "version": "1"
        }
    }
}
deploy_data = json.dumps(deploy_data)

request_url = f'https://management.azure.com/subscriptions/{subscription}/resourceGroups/{resource_group}/providers/Microsoft.CognitiveServices/accounts/{resource_name}/deployments/{model_deployment_name}'

print('Creating a new deployment...')

r = requests.put(request_url, params=deploy_params, headers=deploy_headers, data=deploy_data)

print(r)
print(r.reason)
print(r.json())

Régiók közötti üzembe helyezés

A finomhangolás támogatja a finomhangolt modellek üzembe helyezését egy másik régióban, mint ahol a modellt eredetileg finomhangolták. Másik előfizetésben/régióban is üzembe helyezheti azokat.

Az egyetlen korlátozás, hogy az új régiónak támogatnia kell a finomhangolást is, és az előfizetések közötti üzembe helyezéskor az üzembe helyezéshez az engedélyezési jogkivonatot létrehozó fióknak hozzáféréssel kell rendelkeznie a forrás- és célelőfizetésekhez is.

Az alábbi példa egy olyan modell üzembe helyezésére mutat be, amely az egyik előfizetésben/régióban egy másikra lett finomhangolva.

import json
import os
import requests

token= os.getenv("<TOKEN>") 

subscription = "<DESTINATION_SUBSCRIPTION_ID>"  
resource_group = "<DESTINATION_RESOURCE_GROUP_NAME>"
resource_name = "<DESTINATION_AZURE_OPENAI_RESOURCE_NAME>"

source_subscription = "<SOURCE_SUBSCRIPTION_ID>"
source_resource_group = "<SOURCE_RESOURCE_GROUP>"
source_resource = "<SOURCE_RESOURCE>"


source = f'/subscriptions/{source_subscription}/resourceGroups/{source_resource_group}/providers/Microsoft.CognitiveServices/accounts/{source_resource}'

model_deployment_name ="gpt-35-turbo-ft" # custom deployment name that you will use to reference the model when making inference calls.

deploy_params = {'api-version': "2023-05-01"} 
deploy_headers = {'Authorization': 'Bearer {}'.format(token), 'Content-Type': 'application/json'}



deploy_data = {
    "sku": {"name": "standard", "capacity": 1}, 
    "properties": {
        "model": {
            "format": "OpenAI",
            "name": <"FINE_TUNED_MODEL_NAME">, # This value will look like gpt-35-turbo-0613.ft-0ab3f80e4f2242929258fff45b56a9ce 
            "version": "1",
            "source": source
        }
    }
}
deploy_data = json.dumps(deploy_data)

request_url = f'https://management.azure.com/subscriptions/{subscription}/resourceGroups/{resource_group}/providers/Microsoft.CognitiveServices/accounts/{resource_name}/deployments/{model_deployment_name}'

print('Creating a new deployment...')

r = requests.put(request_url, params=deploy_params, headers=deploy_headers, data=deploy_data)

print(r)
print(r.reason)
print(r.json())

Ugyanazon előfizetés, de a különböző régiók közötti üzembe helyezéshez csak előfizetéssel és erőforráscsoportokkal kell rendelkeznie a forrás- és célváltozók esetében, és csak a forrás- és célerőforrásneveknek kell egyedinek lenniük.

Modell üzembe helyezése az Azure CLI-vel

Az alábbi példa bemutatja, hogyan használhatja az Azure CLI-t a testreszabott modell üzembe helyezéséhez. Az Azure CLI-vel meg kell adnia a testreszabott modell üzembe helyezésének nevét. További információ arról, hogyan használható az Azure CLI a testreszabott modellek üzembe helyezésére: az cognitiveservices account deployment.

Ha ezt az Azure CLI-parancsot egy konzolablakban szeretné futtatni, a következő <helyőrzőket> kell lecserélnie a testreszabott modell megfelelő értékeire:

Helyőrző Érték
<YOUR_AZURE_SUBSCRIPTION> Az Azure-előfizetés neve vagy azonosítója.
<YOUR_RESOURCE_GROUP> Az Azure-erőforráscsoport neve.
<YOUR_RESOURCE_NAME> Az Azure OpenAI-erőforrás neve.
<YOUR_DEPLOYMENT_NAME> A modell üzembe helyezéséhez használni kívánt név.
<YOUR_FINE_TUNED_MODEL_ID> A testre szabott modell neve.
az cognitiveservices account deployment create 
    --resource-group <YOUR_RESOURCE_GROUP>
    --name <YOUR_RESOURCE_NAME>  
    --deployment-name <YOUR_DEPLOYMENT_NAME>
    --model-name <YOUR_FINE_TUNED_MODEL_ID>
    --model-version "1" 
    --model-format OpenAI 
    --sku-capacity "1" 
    --sku-name "Standard"

Üzembe helyezett testreszabott modell használata

Az egyéni modell üzembe helyezése után a többi üzembe helyezett modellhez hasonlóan használhatja. Az Azure OpenAI Studióban található játszóterek használatával kísérletezhet az új üzembe helyezéssel. Továbbra is ugyanazokat a paramétereket használhatja az egyéni modellel, például temperature és max_tokens, mint más üzembe helyezett modellekkel. A finomhangolt babbage-002 és davinci-002 modellekhez a Befejezések játszóteret és a Completions API-t kell használnia. A finomhangolt gpt-35-turbo-0613 modellekhez a Csevegési játszóteret és a Csevegés befejezése API-t kell használnia.

import os
from openai import AzureOpenAI

client = AzureOpenAI(
  azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"), 
  api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
  api_version="2024-02-01"
)

response = client.chat.completions.create(
    model="gpt-35-turbo-ft", # model = "Custom deployment name you chose for your fine-tuning model"
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},
        {"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},
        {"role": "user", "content": "Do other Azure AI services support this too?"}
    ]
)

print(response.choices[0].message.content)

A testre szabott modell elemzése

Az Azure OpenAI egy results.csv nevű eredményfájlt csatol az egyes finomhangoló feladatokhoz a befejezés után. Az eredményfájl használatával elemezheti a testre szabott modell betanítási és érvényesítési teljesítményét. Az eredményfájl fájlazonosítója minden testre szabott modell esetében megjelenik, és a Python SDK-val lekérheti a fájlazonosítót, és letöltheti az eredményfájlt elemzésre.

Az alábbi Python-példa lekéri a testre szabott modell finomhangolási feladatához csatolt első eredményfájl fájlazonosítóját, majd a Python SDK használatával letölti a fájlt a munkakönyvtárba elemzés céljából.

# Retrieve the file ID of the first result file from the fine-tuning job
# for the customized model.
response = client.fine_tuning.jobs.retrieve(job_id)
if response.status == 'succeeded':
    result_file_id = response.result_files[0]

retrieve = client.files.retrieve(result_file_id)

# Download the result file.
print(f'Downloading result file: {result_file_id}')

with open(retrieve.filename, "wb") as file:
    result = client.files.content(result_file_id).read()
    file.write(result)

Az eredményfájl egy CSV-fájl, amely egy fejlécsort és egy sort tartalmaz a finomhangolási feladat által végrehajtott minden betanítási lépéshez. Az eredményfájl a következő oszlopokat tartalmazza:

Oszlop neve Leírás
step A betanítási lépés száma. A betanítási lépés egy betanítási adatköteg egyetlen áthaladását, előre- és hátralépését jelöli.
train_loss A betanítási köteg vesztesége.
train_mean_token_accuracy A modell által helyesen előrejelzett betanítási kötegben lévő tokenek százalékos aránya.
Ha például a köteg mérete 3, és az adatok befejezéseket [[1, 2], [0, 5], [4, 2]]tartalmaznak, akkor ez az érték 0,83 (a 6-ból 5) értékre van állítva, ha a modell előrejelezte [[1, 1], [0, 5], [4, 2]].
valid_loss Az érvényesítési köteg vesztesége.
validation_mean_token_accuracy A modell által helyesen előrejelzett érvényesítési köteg jogkivonatainak százalékos aránya.
Ha például a köteg mérete 3, és az adatok befejezéseket [[1, 2], [0, 5], [4, 2]]tartalmaznak, akkor ez az érték 0,83 (a 6-ból 5) értékre van állítva, ha a modell előrejelezte [[1, 1], [0, 5], [4, 2]].
full_valid_loss Az egyes korszakok végén kiszámított érvényesítési veszteség. Ha a betanítás jól megy, a veszteségnek csökkennie kell.
full_valid_mean_token_accuracy Az egyes korszakok végén kiszámított érvényes átlagos jogkivonat pontossága. Ha a betanítás jól halad, a token pontosságának növekednie kell.

A results.csv fájlban lévő adatokat ábrázolásként is megtekintheti az Azure OpenAI Studióban. Válassza ki a betanított modell hivatkozását, és három diagramot fog látni: a veszteség, a token átlagos pontossága és a token pontossága. Ha érvényesítési adatokat adott meg, mindkét adathalmaz ugyanazon a diagramon fog megjelenni.

Keresse meg, hogy a veszteség idővel csökkenjen, és a pontossága növekedjen. Ha eltérést tapasztal a betanítási és érvényesítési adatok között, amely azt jelezheti, hogy túlillesztés van. Próbálja ki a kevesebb korszakot tartalmazó betanítást, vagy egy kisebb tanulási sebesség-szorzót.

Az üzemelő példányok, a testreszabott modellek és a betanítási fájlok eltávolítása

Ha végzett a testreszabott modellel, törölheti az üzembe helyezést és a modellt. Szükség esetén törölheti a szolgáltatásba feltöltött betanítási és érvényesítési fájlokat is.

A modell üzembe helyezésének törlése

Fontos

Ha a testreszabott modell üzembe helyezése után az üzembe helyezés 15 napnál hosszabb ideig inaktív marad, a rendszer törli az üzembe helyezést. A testreszabott modell üzembe helyezése inaktív , ha a modell több mint tizenöt (15) nappal ezelőtt lett üzembe helyezve, és a folyamatos 15 napos időszakban nem történt befejezési vagy csevegés-befejezési hívás.

Az inaktív üzemelő példány törlése nem törli vagy befolyásolja az alapul szolgáló testreszabott modellt, és a testre szabott modell bármikor újra üzembe helyezhető. Az Azure OpenAI szolgáltatás díjszabásában leírtaknak megfelelően minden telepített testre szabott (finomhangolt) modell óránkénti üzemeltetési költséget okoz, függetlenül attól, hogy a modellhez befejezési vagy csevegés-befejezési hívásokat végeznek-e. Ha többet szeretne megtudni a költségek Azure OpenAI-val való tervezéséről és kezeléséről, tekintse meg az Azure OpenAI szolgáltatás költségeinek kezelésére vonatkozó terv útmutatóját.

A testre szabott modell üzembe helyezését különböző módszerekkel törölheti:

A testre szabott modell törlése

Hasonlóképpen, különböző módszerekkel törölheti a testre szabott modellt:

Feljegyzés

A testre szabott modellek nem törölhetők, ha már rendelkezik központi telepítéssel. A testre szabott modell törléséhez először törölnie kell a modell üzembe helyezését .

Betanítási fájlok törlése

Az Azure OpenAI-előfizetésből opcionálisan törölheti a betanításhoz feltöltött betanítási és érvényesítési fájlokat, valamint a betanítás során létrehozott eredményfájlokat. Az alábbi módszerekkel törölheti a betanítási, érvényesítési és eredményfájlokat:

Az alábbi Python-példa a Python SDK használatával törli a testre szabott modell betanítási, érvényesítési és eredményfájljait:

print('Checking for existing uploaded files.')
results = []

# Get the complete list of uploaded files in our subscription.
files = openai.File.list().data
print(f'Found {len(files)} total uploaded files in the subscription.')

# Enumerate all uploaded files, extracting the file IDs for the
# files with file names that match your training dataset file and
# validation dataset file names.
for item in files:
    if item["filename"] in [training_file_name, validation_file_name, result_file_name]:
        results.append(item["id"])
print(f'Found {len(results)} already uploaded files that match our files')

# Enumerate the file IDs for our files and delete each file.
print(f'Deleting already uploaded files.')
for id in results:
    openai.File.delete(sid = id)

Folyamatos finomhangolás

Miután létrehozott egy finomhangolt modellt, érdemes lehet a további finomhangolással tovább finomítani a modellt. A folyamatos finomhangolás egy már finomhangolt modell alapmodellként való kiválasztásának és az új betanítási példák további finomhangolásának iteratív folyamata.

A korábban finomhangolt modell finomhangolásához ugyanazt a folyamatot kell használnia, mint amelyet a testreszabott modell létrehozásakor leírt, de az általános alapmodell nevének megadása helyett a már finomhangolt modell azonosítóját kell megadnia. A finomhangolt modellazonosító a következőképpen néz ki: gpt-35-turbo-0613.ft-5fd1918ee65d4cd38a5dcf6835066ed7

from openai import AzureOpenAI

client = AzureOpenAI(
  azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"), 
  api_key=os.getenv("AZURE_OPENAI_API_KEY"),  
  api_version="2024-02-01"  
)

response = client.fine_tuning.jobs.create(
    training_file=training_file_id,
    validation_file=validation_file_id,
    model="gpt-35-turbo-0613.ft-5fd1918ee65d4cd38a5dcf6835066ed7" # Enter base model name. Note that in Azure OpenAI the model name contains dashes and cannot contain dot/period characters. 
)

job_id = response.id

# You can use the job ID to monitor the status of the fine-tuning job.
# The fine-tuning job will take some time to start and complete.

print("Job ID:", response.id)
print("Status:", response.id)
print(response.model_dump_json(indent=2))

Azt is javasoljuk, hogy adja meg a suffix paramétert, hogy könnyebb legyen megkülönböztetni a finomhangolt modell különböző iterációit. suffix sztringet vesz fel, és a finomhangolt modell azonosítására van beállítva. Az OpenAI Python API-val egy legfeljebb 18 karakterből álló sztring támogatott, amely hozzáadódik a finomhangolt modell nevéhez.

Ha nem biztos a meglévő finomhangolt modell azonosítójában, ezek az információk megtalálhatók az Azure OpenAI Studio Modellek lapján, vagy létrehozhat egy modellek listáját egy adott Azure OpenAI-erőforráshoz a REST API használatával.

Előfeltételek

Feljegyzés

Jelenleg be kell küldenie egy alkalmazást az Azure OpenAI szolgáltatás eléréséhez. A hozzáférés kérelmezéséhez töltse ki ezt az űrlapot.

Modellek

A következő modellek támogatják a finomhangolást:

  • babbage-002
  • davinci-002
  • gpt-35-turbo (0613)
  • gpt-35-turbo (1106)
  • gpt-35-turbo (0125)
  • gpt-4 (0613)

A modellek oldalán ellenőrizheti, hogy mely régiók támogatják jelenleg a finomhangolást.

Ha finomhangolásra tervezi használni gpt-4 , tekintse meg a GPT-4 nyilvános előzetes verziójú biztonsági kiértékelési útmutatóját.

A REST API munkafolyamatának áttekintése

Szánjon egy kis időt a REST APIS és a Python Azure OpenAI-val való használatára vonatkozó finomhangolási munkafolyamat áttekintésére:

  1. A betanítási és érvényesítési adatok előkészítése.
  2. Válasszon egy alapmodellt.
  3. Töltse fel a betanítási adatokat.
  4. Betanítsa az új testreszabott modellt.
  5. Ellenőrizze a testreszabott modell állapotát.
  6. A testre szabott modell üzembe helyezése használatra.
  7. Használja a testre szabott modellt.
  8. Igény szerint elemezheti a testre szabott modellt a teljesítmény és az illesztés szempontjából.

A betanítási és érvényesítési adatok előkészítése

A képzési és validálási adathalmazok bemeneti és kimeneti példákból állnak, amelyek azt mutatják, hogy a modellt hogyan kell teljesíteni.

A különböző modelltípusok eltérő betanítási adatokat igényelnek.

A használt betanítási és érvényesítési adatokat JSON Lines (JSONL) dokumentumként kell formázni. Az egyéb kapcsolódó modellek esetében gpt-35-turbo-0613 a finomhangolási adathalmazt a Csevegés befejezése API által használt beszélgetési formátumban kell formázni.

Ha részletes finomhangolási gpt-35-turbo-0613 útmutatót szeretne, tekintse meg az Azure OpenAI finomhangolási oktatóanyagát.

Példa fájlformátumra

{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Is Xbox better than PlayStation?"}, {"role": "assistant", "content": "I apologize, but I cannot provide personal opinions. My primary job is to assist you with any issues related to your Xbox device. Do you have any Xbox-related issues that need addressing?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Can I play PC games on my Xbox?"}, {"role": "assistant", "content": "While Xbox consoles don't natively support PC games, they can play an array of Xbox games, many of which are also available on PC. Can I assist you with finding games compatible with your Xbox device?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "I'm having trouble connecting my Xbox to the Wi-Fi."}, {"role": "assistant", "content": "No worries, let's go through the network settings on your Xbox. Can you please tell me what happens when you try to connect it to the Wi-Fi?"}]}

Többfordulós csevegési fájlformátum

A jsonl-betanítási fájl egyetlen sorában lévő beszélgetések több fordulója is támogatott. Az egyes segédüzenetek finomhangolásának kihagyásához adja hozzá az opcionális weight kulcsértékpárt. Jelenleg weight 0 vagy 1 lehet.

{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the capital of France?"}, {"role": "assistant", "content": "Paris", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Paris, as if everyone doesn't know that already.", "weight": 1}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who wrote 'Romeo and Juliet'?"}, {"role": "assistant", "content": "William Shakespeare", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Oh, just some guy named William Shakespeare. Ever heard of him?", "weight": 1}]}
{"messages": [{"role": "system", "content": "Marv is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "How far is the Moon from Earth?"}, {"role": "assistant", "content": "384,400 kilometers", "weight": 0}, {"role": "user", "content": "Can you be more sarcastic?"}, {"role": "assistant", "content": "Around 384,400 kilometers. Give or take a few, like that really matters.", "weight": 1}]}

A JSONL formátumon kívül a betanítási és érvényesítési adatfájlokat UTF-8-ban kell kódolni, és tartalmaznia kell egy bájtsorrendjelet (BOM). A fájlnak 512 MB-nál kisebb méretűnek kell lennie.

Betanítási és érvényesítési adatkészletek létrehozása

Minél több betanítási példa van, annál jobb. A finomhangolási feladatok nem folytatódnak legalább 10 betanítási példa nélkül, de ilyen kis szám nem elegendő a modellválaszok észrevehető befolyásolásához. Célszerű több száz, ha nem ezres betanítási példákat biztosítani a sikerességhez.

Általánosságban elmondható, hogy az adathalmaz méretének megduplázása lineáris modellminőség-növekedéshez vezethet. Ne feledje azonban, hogy az alacsony minőségű példák negatív hatással lehetnek a teljesítményre. Ha nagy mennyiségű belső adatra tanítja be a modellt anélkül, hogy először csak a legjobb minőségű példákhoz metszést végezne, a vártnál sokkal rosszabb teljesítményt nyújtó modellhez vezethet.

Az alapmodell kiválasztása

Az egyéni modell létrehozásának első lépése egy alapmodell kiválasztása. Az Alapmodell panelen kiválaszthatja az egyéni modellhez használandó alapmodellt. A választás a modell teljesítményét és költségeit is befolyásolja.

Válassza ki az alapmodellt az Alapmodell típusa legördülő listában, majd a Tovább gombra kattintva folytassa.

Egyéni modellt a következő elérhető alapmodellek egyikéből hozhat létre:

  • babbage-002
  • davinci-002
  • gpt-35-turbo (0613)
  • gpt-35-turbo (1106)
  • gpt-35-turbo (0125)
  • gpt-4 (0613)

Vagy finomhangolhat egy korábban finomhangolt modellt alapmodell.ft-{jobid} formátumban.

Képernyőkép a modellbeállításokról egy egyéni finomhangolt modellel.

A finomhangolható alapmodellekről további információt a Modellek című témakörben talál.

Betanítási adatok feltöltése

A következő lépés a meglévő előkészített betanítási adatok kiválasztása, vagy új előkészített betanítási adatok feltöltése a modell finomhangolása során. A betanítási adatok előkészítése után feltöltheti fájljait a szolgáltatásba. A betanítási adatok kétféleképpen tölthetők fel:

Nagy adatfájlok esetén javasoljuk, hogy importálja az Azure Blob Store-ból. A nagyméretű fájlok instabillá válhatnak, ha többrészes űrlapokon keresztül vannak feltöltve, mert a kérések atomiak, és nem lehet újrapróbálkozás vagy újrakezdés. További információ az Azure Blob Storage-ról: Mi az Az Azure Blob Storage?

Feljegyzés

A betanítási adatfájlokat JSONL-fájlokként kell formázni, UTF-8 formátumban, bájtsorrendjellel (BOM) kódolva. A fájlnak 512 MB-nál kisebb méretűnek kell lennie.

Betanítási adatok feltöltése

curl -X POST $AZURE_OPENAI_ENDPOINT/openai/files?api-version=2023-12-01-preview \
  -H "Content-Type: multipart/form-data" \
  -H "api-key: $AZURE_OPENAI_API_KEY" \
  -F "purpose=fine-tune" \
  -F "file=@C:\\fine-tuning\\training_set.jsonl;type=application/json"

Érvényesítési adatok feltöltése

curl -X POST $AZURE_OPENAI_ENDPOINT/openai/files?api-version=2023-12-01-preview \
  -H "Content-Type: multipart/form-data" \
  -H "api-key: $AZURE_OPENAI_API_KEY" \
  -F "purpose=fine-tune" \
  -F "file=@C:\\fine-tuning\\validation_set.jsonl;type=application/json"

Testreszabott modell létrehozása

Miután feltöltötte a betanítási és érvényesítési fájlokat, készen áll a finomhangolási feladat elindítására. Az alábbi kód egy példát mutat be arra, hogyan hozhat létre új finomhangolási feladatot a REST API-val.

Ebben a példában a magparamétert is átadjuk. A vetőmag szabályozza a feladat reprodukálhatóságát. Az azonos vetőmag- és feladatparaméterek átadása ugyanazokat az eredményeket eredményezi, de ritka esetekben eltérő lehet. Ha nincs megadva mag, a rendszer létrehoz egy magot.

curl -X POST $AZURE_OPENAI_ENDPOINT/openai/fine_tuning/jobs?api-version=2024-05-01-preview \
  -H "Content-Type: application/json" \
  -H "api-key: $AZURE_OPENAI_API_KEY" \
  -d '{
    "model": "gpt-35-turbo-0613", 
    "training_file": "<TRAINING_FILE_ID>", 
    "validation_file": "<VALIDATION_FILE_ID>",
    "seed": 105
}'

További opcionális paramétereket, például hiperparamétereket is átadhat a finomhangolási folyamat jobb szabályozásához. Az első betanításhoz javasoljuk, hogy a paraméterek megadása nélkül jelen lévő automatikus alapértelmezett értékeket használja.

A finomhangoláshoz jelenleg támogatott hiperparaméterek a következők:

Név Típus Leírás
batch_size egész szám A betanításhoz használandó kötegméret. A köteg mérete azoknak a betanítási példáknak a száma, amelyeket egyetlen előre- és hátramenő áthaladás betanítására használnak. Általánosságban elmondható, hogy a nagyobb kötegméretek általában jobban működnek a nagyobb adathalmazok esetében. Az alapértelmezett érték és a tulajdonság maximális értéke egy alapmodellre jellemző. A nagyobb kötegméret azt jelenti, hogy a modellparaméterek ritkábban, de alacsonyabb varianciával frissülnek.
learning_rate_multiplier szám A betanításhoz használandó tanulási sebesség szorzója. A finomhangolási tanulási arány az előzetes betanításhoz használt eredeti tanulási arány, és ez az érték megszorozva. A nagyobb tanulási arányok általában jobban teljesítenek a nagyobb kötegméretekkel. Javasoljuk, hogy kísérletezzen a 0,02 és 0,2 közötti tartományban lévő értékekkel, hogy lássa, mi okozza a legjobb eredményt. A túlillesztés elkerülése érdekében hasznos lehet a kisebb tanulási arány.
n_epochs egész szám A modell betanítása szükséges korszakok száma. A korszak egy teljes ciklusra utal a betanítási adathalmazon keresztül.

A testreszabott modell állapotának ellenőrzése

A finomhangoló feladat elindítása után eltarthat egy ideig. Előfordulhat, hogy a feladat várólistára kerül a rendszerben lévő többi feladat mögött. A modell betanítása a modelltől és az adatkészlet méretétől függően perceket vagy órákat is igénybe vehet. Az alábbi példa a REST API használatával ellenőrzi a finomhangolási feladat állapotát. A példa az előző példából visszaadott feladatazonosító használatával kéri le a feladattal kapcsolatos információkat:

curl -X GET $AZURE_OPENAI_ENDPOINT/openai/fine_tuning/jobs/<YOUR-JOB-ID>?api-version=2024-05-01-preview \
  -H "api-key: $AZURE_OPENAI_API_KEY"

Események finomhangolásának listázása

A betanítás során létrehozott egyéni finomhangolási események vizsgálata:

curl -X POST $AZURE_OPENAI_ENDPOINT/openai/fine_tuning/jobs/{fine_tuning_job_id}/events?api-version=2024-05-01-preview \
  -H "Content-Type: application/json" \
  -H "api-key: $AZURE_OPENAI_API_KEY" 

Ellenőrzőpontok

Amikor minden betanítási korszak befejeződött, létrejön egy ellenőrzőpont. Az ellenőrzőpont egy modell teljes funkcionalitású verziója, amely üzembe helyezhető és célmodellként is használható a későbbi finomhangolási feladatokhoz. Az ellenőrzőpontok különösen hasznosak lehetnek, mivel a túlillesztés előtt pillanatképet adhatnak a modellről. Ha egy finomhangolási feladat befejeződik, a modell három legújabb verziója lesz üzembe helyezhető. Az utolsó korszakot a finomhangolt modell képviseli, az előző két korszak pedig ellenőrzőpontokként lesz elérhető.

A lista-ellenőrzőpontok parancs futtatásával lekérheti az egyes finomhangolási feladatokhoz társított ellenőrzőpontok listáját:

curl -X POST $AZURE_OPENAI_ENDPOINT/openai/fine_tuning/jobs/{fine_tuning_job_id}/checkpoints?api-version=2024-05-01-preview \
  -H "Content-Type: application/json" \
  -H "api-key: $AZURE_OPENAI_API_KEY" 

Széf ty evaluation GPT-4 finomhangolás – nyilvános előzetes verzió

A GPT-4 a legfejlettebb modellünk, amely igény szerint finomhangolható. Az Azure OpenAI-modellekhez hasonlóan a finomhangolt modellek fejlett képességei a káros tartalmakkal, a manipulációval, az emberi viselkedéssel, az adatvédelmi problémákkal és egyebekkel kapcsolatos, fokozott felelős AI-kihívásokkal is járnak. További információ a kockázatokról, képességekről és korlátozásokról a Felelős AI-eljárások áttekintésében és az átláthatósági megjegyzésben. A GPT-4 finomhangolt modellekkel kapcsolatos kockázatok mérséklése érdekében további értékelési lépéseket hajtottunk végre a finomhangolt modellek betanításának és kimeneteinek káros tartalmának észleléséhez és megelőzéséhez. Ezeket a lépéseket a Microsoft Responsible AI Standard és az Azure OpenAI Szolgáltatás tartalomszűrése tartalmazza.

  • A kiértékelések dedikált, ügyfélspecifikus, privát munkaterületeken zajlanak;
  • A kiértékelési végpontok ugyanabban a földrajzi helyen találhatók, mint az Azure OpenAI-erőforrás;
  • A betanítási adatok nincsenek a kiértékelések végrehajtásával kapcsolatban tárolva; csak a végső modellértékelés (üzembe helyezhető vagy nem telepíthető) marad meg; És

A GPT-4 finomhangolt modell kiértékelési szűrői előre meghatározott küszöbértékekre vannak beállítva, és az ügyfelek nem módosíthatják; ezek nincsenek a létrehozott egyéni tartalomszűrési konfigurációhoz kötve.

Adatok kiértékelése

A betanítás megkezdése előtt az adatok kiértékelése potenciálisan káros tartalomra (erőszak, szexuális, gyűlölet és méltányosság, önkárosítás – a kategóriadefiníciókat itt tekintheti meg). Ha a rendszer a megadott súlyossági szint felett észlel káros tartalmakat, a betanítási feladat sikertelen lesz, és egy üzenet jelenik meg, amely tájékoztatja a hibakategóriákról.

Mintaüzenet:

The provided training data failed RAI checks for harm types: [hate_fairness, self_harm, violence]. Please fix the data and try again.

A betanítási adatok automatikusan kiértékelésre kerülnek az adatimportálási feladaton belül a finomhangolási képesség biztosításának részeként.

Ha a finomhangolási feladat a betanítási adatokban lévő káros tartalom észlelése miatt meghiúsul, nem számítunk fel díjat.

A modell kiértékelése

A betanítás befejezése után, de mielőtt a finomhangolt modell elérhetővé válik az üzembe helyezéshez, a rendszer kiértékeli az eredményül kapott modellt a potenciálisan káros válaszokra az Azure beépített kockázati és biztonsági metrikáival. Az alapszintű nagy nyelvi modellekhez használt tesztelési megközelítéssel a kiértékelési képességünk egy beszélgetést szimulál a finomhangolt modellel, hogy felmérje a káros tartalmak kimenetelének lehetőségét, ismét meghatározott káros tartalomkategóriák használatával (erőszak, szexuális, gyűlölet és méltányosság, önkárosítás).

Ha egy modell olyan kimenetet hoz létre, amely elfogadható sebességnél nagyobb károsként észlelt tartalmat tartalmaz, a rendszer tájékoztatja arról, hogy a modell nem érhető el az üzembe helyezéshez, és az észlelt kár adott kategóriáira vonatkozó információkat tartalmaz:

Mintaüzenet:

This model is unable to be deployed. Model evaluation identified that this fine tuned model scores above acceptable thresholds for [Violence, Self Harm]. Please review your training data set and resubmit the job.

A biztonsági értékelés miatt meghiúsult finomhangolási feladat képernyőképe

Az adatkiértékeléshez hasonlóan a rendszer automatikusan kiértékeli a modellt a finomhangolási feladaton belül a finomhangolási képesség biztosításának részeként. A szolgáltatás csak az eredményként kapott értékelést naplózza (üzembe helyezhető vagy nem telepíthető). Ha a finomhangolt modell üzembe helyezése a modell kimenetében lévő káros tartalom észlelése miatt meghiúsul, a betanítási futtatásért nem kell fizetnie.

Testreszabott modell üzembe helyezése

Fontos

Ha a testreszabott modell üzembe helyezése után az üzembe helyezés 15 napnál hosszabb ideig inaktív marad, a rendszer törli az üzembe helyezést. A testreszabott modell üzembe helyezése inaktív , ha a modell több mint tizenöt (15) nappal ezelőtt lett üzembe helyezve, és a folyamatos 15 napos időszakban nem történt befejezési vagy csevegés-befejezési hívás.

Az inaktív üzemelő példány törlése nem törli vagy befolyásolja az alapul szolgáló testreszabott modellt, és a testre szabott modell bármikor újra üzembe helyezhető. Az Azure OpenAI szolgáltatás díjszabásában leírtaknak megfelelően minden telepített testre szabott (finomhangolt) modell óránkénti üzemeltetési költséget okoz, függetlenül attól, hogy a modellhez befejezési vagy csevegés-befejezési hívásokat végeznek-e. Ha többet szeretne megtudni a költségek Azure OpenAI-val való tervezéséről és kezeléséről, tekintse meg az Azure OpenAI szolgáltatás költségeinek kezelésére vonatkozó terv útmutatóját.

Az alábbi Python-példa bemutatja, hogyan hozhat létre modelltelepítést a testre szabott modellhez a REST API használatával. A REST API létrehoz egy nevet a testreszabott modell üzembe helyezéséhez.

változó Definíció
jogkivonat Az engedélyezési jogkivonatok többféleképpen is létrehozhatóak. A kezdeti tesztelés legegyszerűbb módja a Cloud Shell elindítása az Azure Portalról. Ez után futtassa a az account get-access-token parancsot. Ezt a jogkivonatot használhatja ideiglenes engedélyezési jogkivonatként API-teszteléshez. Javasoljuk, hogy ezt egy új környezeti változóban tárolja
előfizetést A társított Azure OpenAI-erőforrás előfizetés-azonosítója
resource_group Az Azure OpenAI-erőforrás erőforráscsoportjának neve
resource_name Az Azure OpenAI-erőforrás neve
model_deployment_name Az új, finomhangolt modell üzembe helyezésének egyéni neve. Ez a név lesz hivatkozva a kódban a csevegés befejezésére irányuló hívások során.
fine_tuned_model Kérje le ezt az értéket a finomhangolási feladat eredményéből az előző lépésben. Úgy fog kinézni gpt-35-turbo-0613.ft-b044a9d3cf9c4228b5d393567f693b83. Ezt az értéket hozzá kell adnia a deploy_data jsonhoz. Másik lehetőségként egy ellenőrzőpontot is üzembe helyezhet, ha átadja az ellenőrzőpont azonosítóját, amely a következő formátumban jelenik meg: ftchkpt-e559c011ecc04fc68eaa339d8227d02d
curl -X POST "https://management.azure.com/subscriptions/<SUBSCRIPTION>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.CognitiveServices/accounts/<RESOURCE_NAME>/deployments/<MODEL_DEPLOYMENT_NAME>api-version=2023-05-01" \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "sku": {"name": "standard", "capacity": 1},
    "properties": {
        "model": {
            "format": "OpenAI",
            "name": "<FINE_TUNED_MODEL>",
            "version": "1"
        }
    }
}'

Régiók közötti üzembe helyezés

A finomhangolás támogatja a finomhangolt modellek üzembe helyezését egy másik régióban, mint ahol a modellt eredetileg finomhangolták. Másik előfizetésben/régióban is üzembe helyezheti azokat.

Az egyetlen korlátozás, hogy az új régiónak támogatnia kell a finomhangolást is, és az előfizetések közötti üzembe helyezéskor az üzembe helyezéshez az engedélyezési jogkivonatot létrehozó fióknak hozzáféréssel kell rendelkeznie a forrás- és célelőfizetésekhez is.

Az alábbi példa egy olyan modell üzembe helyezésére mutat be, amely az egyik előfizetésben/régióban egy másikra lett finomhangolva.

curl -X PUT "https://management.azure.com/subscriptions/<SUBSCRIPTION>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.CognitiveServices/accounts/<RESOURCE_NAME>/deployments/<MODEL_DEPLOYMENT_NAME>api-version=2023-05-01" \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "sku": {"name": "standard", "capacity": 1},
    "properties": {
        "model": {
            "format": "OpenAI",
            "name": "<FINE_TUNED_MODEL>", 
            "version": "1",
            "source": "/subscriptions/{sourceSubscriptionID}/resourceGroups/{sourceResourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{sourceAccount}" 
        }
    }
}'

Ha ugyanazt az előfizetést, de különböző régiókat szeretné üzembe helyezni, akkor csak az előfizetés és az erőforráscsoportok azonosak lehetnek a forrás- és célváltozók esetében, és csak a forrás- és célerőforrásneveknek kell egyedinek lenniük.

Modell üzembe helyezése az Azure CLI-vel

Az alábbi példa bemutatja, hogyan használhatja az Azure CLI-t a testreszabott modell üzembe helyezéséhez. Az Azure CLI-vel meg kell adnia a testreszabott modell üzembe helyezésének nevét. További információ arról, hogyan használható az Azure CLI a testreszabott modellek üzembe helyezésére: az cognitiveservices account deployment.

Ha ezt az Azure CLI-parancsot egy konzolablakban szeretné futtatni, a következő <helyőrzőket> kell lecserélnie a testreszabott modell megfelelő értékeire:

Helyőrző Érték
<YOUR_AZURE_SUBSCRIPTION> Az Azure-előfizetés neve vagy azonosítója.
<YOUR_RESOURCE_GROUP> Az Azure-erőforráscsoport neve.
<YOUR_RESOURCE_NAME> Az Azure OpenAI-erőforrás neve.
<YOUR_DEPLOYMENT_NAME> A modell üzembe helyezéséhez használni kívánt név.
<YOUR_FINE_TUNED_MODEL_ID> A testre szabott modell neve.
az cognitiveservices account deployment create 
    --resource-group <YOUR_RESOURCE_GROUP>
    --name <YOUR_RESOURCE_NAME>  
    --deployment-name <YOUR_DEPLOYMENT_NAME>
    --model-name <YOUR_FINE_TUNED_MODEL_ID>
    --model-version "1" 
    --model-format OpenAI 
    --sku-capacity "1" 
    --sku-name "Standard"

Üzembe helyezett testreszabott modell használata

Az egyéni modell üzembe helyezése után a többi üzembe helyezett modellhez hasonlóan használhatja. Az Azure OpenAI Studióban található játszóterek használatával kísérletezhet az új üzembe helyezéssel. Továbbra is ugyanazokat a paramétereket használhatja az egyéni modellel, például temperature és max_tokens, mint más üzembe helyezett modellekkel. A finomhangolt babbage-002 és davinci-002 modellekhez a Befejezések játszóteret és a Completions API-t kell használnia. A finomhangolt gpt-35-turbo-0613 modellekhez a Csevegési játszóteret és a Csevegés befejezése API-t használhatja.

curl $AZURE_OPENAI_ENDPOINT/openai/deployments/<deployment_name>/chat/completions?api-version=2023-05-15 \
  -H "Content-Type: application/json" \
  -H "api-key: $AZURE_OPENAI_API_KEY" \
  -d '{"messages":[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},{"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},{"role": "user", "content": "Do other Azure AI services support this too?"}]}'

A testre szabott modell elemzése

Az Azure OpenAI egy results.csv nevű eredményfájlt csatol az egyes finomhangoló feladatokhoz a befejezés után. Az eredményfájl használatával elemezheti a testre szabott modell betanítási és érvényesítési teljesítményét. Az eredményfájl fájlazonosítója minden testre szabott modell esetében megjelenik, és a REST API-val lekérheti a fájlazonosítót, és elemzés céljából letöltheti az eredményfájlt.

Az alábbi Python-példa a REST API használatával kéri le a testre szabott modell finomhangolási feladatához csatolt első eredményfájl fájlazonosítóját, majd letölti a fájlt a munkakönyvtárba elemzés céljából.

curl -X GET "$AZURE_OPENAI_ENDPOINT/openai/fine_tuning/jobs/<JOB_ID>?api-version=2023-12-01-preview" \
  -H "api-key: $AZURE_OPENAI_API_KEY")
curl -X GET "$AZURE_OPENAI_ENDPOINT/openai/files/<RESULT_FILE_ID>/content?api-version=2023-12-01-preview" \
    -H "api-key: $AZURE_OPENAI_API_KEY" > <RESULT_FILENAME>

Az eredményfájl egy CSV-fájl, amely egy fejlécsort és egy sort tartalmaz a finomhangolási feladat által végrehajtott minden betanítási lépéshez. Az eredményfájl a következő oszlopokat tartalmazza:

Oszlop neve Leírás
step A betanítási lépés száma. A betanítási lépés egy betanítási adatköteg egyetlen áthaladását, előre- és hátralépését jelöli.
train_loss A betanítási köteg vesztesége.
train_mean_token_accuracy A modell által helyesen előrejelzett betanítási kötegben lévő tokenek százalékos aránya.
Ha például a köteg mérete 3, és az adatok befejezéseket [[1, 2], [0, 5], [4, 2]]tartalmaznak, akkor ez az érték 0,83 (a 6-ból 5) értékre van állítva, ha a modell előrejelezte [[1, 1], [0, 5], [4, 2]].
valid_loss Az érvényesítési köteg vesztesége.
validation_mean_token_accuracy A modell által helyesen előrejelzett érvényesítési köteg jogkivonatainak százalékos aránya.
Ha például a köteg mérete 3, és az adatok befejezéseket [[1, 2], [0, 5], [4, 2]]tartalmaznak, akkor ez az érték 0,83 (a 6-ból 5) értékre van állítva, ha a modell előrejelezte [[1, 1], [0, 5], [4, 2]].
full_valid_loss Az egyes korszakok végén kiszámított érvényesítési veszteség. Ha a betanítás jól megy, a veszteségnek csökkennie kell.
full_valid_mean_token_accuracy Az egyes korszakok végén kiszámított érvényes átlagos jogkivonat pontossága. Ha a betanítás jól halad, a token pontosságának növekednie kell.

A results.csv fájlban lévő adatokat ábrázolásként is megtekintheti az Azure OpenAI Studióban. Válassza ki a betanított modell hivatkozását, és három diagramot fog látni: a veszteség, a token átlagos pontossága és a token pontossága. Ha érvényesítési adatokat adott meg, mindkét adathalmaz ugyanazon a diagramon fog megjelenni.

Keresse meg, hogy a veszteség idővel csökkenjen, és a pontossága növekedjen. Ha eltérést tapasztal a betanítási és érvényesítési adatok között, amelyek azt jelezhetik, hogy túlillesztés van. Próbálja ki a kevesebb korszakot tartalmazó betanítást, vagy egy kisebb tanulási sebesség-szorzót.

Az üzemelő példányok, a testreszabott modellek és a betanítási fájlok eltávolítása

Ha végzett a testreszabott modellel, törölheti az üzembe helyezést és a modellt. Szükség esetén törölheti a szolgáltatásba feltöltött betanítási és érvényesítési fájlokat is.

A modell üzembe helyezésének törlése

A testre szabott modell üzembe helyezését különböző módszerekkel törölheti:

A testre szabott modell törlése

Hasonlóképpen, különböző módszerekkel törölheti a testre szabott modellt:

Feljegyzés

A testre szabott modellek nem törölhetők, ha már rendelkezik központi telepítéssel. A testre szabott modell törléséhez először törölnie kell a modell üzembe helyezését .

Betanítási fájlok törlése

Az Azure OpenAI-előfizetésből opcionálisan törölheti a betanításhoz feltöltött betanítási és érvényesítési fájlokat, valamint a betanítás során létrehozott eredményfájlokat. Az alábbi módszerekkel törölheti a betanítási, érvényesítési és eredményfájlokat:

Folyamatos finomhangolás

Miután létrehozott egy finomhangolt modellt, érdemes lehet tovább finomítani a modellt a további finomhangolással. A folyamatos finomhangolás egy már finomhangolt modell alapmodellként való kiválasztásának és az új betanítási példák további finomhangolásának iteratív folyamata.

A korábban finomhangolt modell finomhangolásához ugyanazt a folyamatot kell használnia, mint amelyet a testreszabott modell létrehozásakor leírt, de az általános alapmodell nevének megadása helyett a már finomhangolt modell azonosítóját kell megadnia. A finomhangolt modellazonosító a következőképpen néz ki: gpt-35-turbo-0613.ft-5fd1918ee65d4cd38a5dcf6835066ed7

curl -X POST $AZURE_OPENAI_ENDPOINT/openai/fine_tuning/jobs?api-version=2023-12-01-preview \
  -H "Content-Type: application/json" \
  -H "api-key: $AZURE_OPENAI_API_KEY" \
  -d '{
    "model": "gpt-35-turbo-0613.ft-5fd1918ee65d4cd38a5dcf6835066ed7", 
    "training_file": "<TRAINING_FILE_ID>", 
    "validation_file": "<VALIDATION_FILE_ID>",
    "suffix": "<additional text used to help identify fine-tuned models>"
}'

Azt is javasoljuk, hogy adja meg a suffix paramétert, hogy könnyebb legyen megkülönböztetni a finomhangolt modell különböző iterációit. suffix sztringet vesz fel, és a finomhangolt modell azonosítására van beállítva. Az utótag legfeljebb 40 karaktert tartalmazhat (a-z, A-Z, 0-9, - és _), amelyek hozzáadhatók a finomhangolt modell nevéhez.

Ha nem biztos a finomhangolt modell azonosítójában, ezek az információk megtalálhatók az Azure OpenAI Studio Modellek lapján, vagy létrehozhatja egy adott Azure OpenAI-erőforrás modelllistáját a REST API használatával.

Hibaelhárítás

Hogyan engedélyezi a finomhangolást? Egyéni modell létrehozása szürkítve lesz az Azure OpenAI Studióban?

A finomhangolás sikeres eléréséhez a Cognitive Services OpenAI-közreműködője szükséges. Még a magas szintű szolgáltatási Rendszergazda istrator engedélyekkel rendelkezőknek is szükségük lenne erre a fiókra kifejezetten a finomhangolás eléréséhez. További információkért tekintse át a szerepköralapú hozzáférés-vezérlési útmutatót.

Miért nem sikerült a feltöltés?

Ha a fájlfeltöltés meghiúsul az Azure OpenAI Studióban, az Azure OpenAI Studióban az "adatfájlok" alatt tekintheti meg a hibaüzenetet. Vigye az egérmutatót arra a helyre, ahol a "error" (az állapotoszlop alatt) felirat látható, és megjelenik a hiba magyarázata.

Képernyőkép a hiba pontosításáról.

Úgy tűnik, hogy a finomhangolt modellem nem javult

  • Hiányzó rendszerüzenet: A finomhangoláskor meg kell adnia egy rendszerüzenetet; a finomhangolt modell használatakor ugyanazt a rendszerüzenetet kell megadnia. Ha egy másik rendszerüzenetet ad meg, előfordulhat, hogy más eredményt fog látni, mint amire finomhangolt.

  • Nincs elég adat: míg a folyamat futtatásához a 10 a minimális érték, több száz-ezer adatpontra van szükség ahhoz, hogy a modell új jártasságot tanítson. A túl kevés adatpont túlillesztést és gyenge általánosítást kockáztat. A finomhangolt modell jól teljesíthet a betanítási adatokon, de rosszul más adatokon, mert a tanulási minták helyett a betanítási példákat is memorizálta. A legjobb eredmény érdekében tervezze meg, hogy több száz vagy több ezer adatpontból álló adathalmazt készítsen elő.

  • Rossz adatok: A rosszul válogatott vagy nemprezentatív adatkészlet gyenge minőségű modellt fog létrehozni. Előfordulhat, hogy a modell pontatlan vagy elfogult mintákat tanul az adathalmazból. Ha például egy csevegőrobotot képez be az ügyfélszolgálat számára, de csak egy forgatókönyv betanítási adatait adja meg (például az elemek visszaadása), akkor nem fogja tudni, hogyan reagálhat más forgatókönyvekre. Vagy ha a betanítási adatok helytelenek (helytelen válaszokat tartalmaznak), a modell megtanul helytelen eredményeket adni.

Következő lépések

  • Az Azure OpenAI finomhangolási oktatóanyagában megismerheti a finomhangolási képességeket.
  • A modell regionális rendelkezésre állásának finomhangolásának áttekintése
  • További információ az Azure OpenAI-kvótákról