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 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.
Az Azure AI Foundry portálon két egyedi finomhangolási felület érhető el:
- Hub/Project nézet – több szolgáltatótól származó modellek finomhangolását támogatja, beleértve az Azure OpenAI-t, a Meta Llama-t, a Microsoft Phi-t stb.
- Az Azure OpenAI-központú nézet – csak az Azure OpenAI-modellek finomhangolását támogatja, de további funkciók, például a Súlyok és torzítások (W&B) előzetes integrációja is támogatott.
Ha csak az Azure OpenAI-modellek finomhangolását https://oai.azure.comvégzi, javasoljuk az Azure OpenAI-központú finomhangolási élményt, amely a következő lépéssel érhető el.
Előfeltételek
- Olvassa el az Azure OpenAI finomhangolási útmutatóját.
- Azure-előfizetés. Hozzon létre egyet ingyen.
- Olyan Azure OpenAI-erőforrás, amely egy olyan régióban található, amely támogatja az Azure OpenAI-modell finomhangolását. Ellenőrizze a Modellösszesítő táblát és a régió rendelkezésre állását az elérhető modellek régiónkénti és támogatott funkcióinak listájához. További információ: Erőforrás létrehozása és modell üzembe helyezése az Azure OpenAI használatával.
- A hozzáférés finomhangolásához a Cognitive Services OpenAI-közreműködője szükséges.
- Ha még nem rendelkezik hozzáféréssel a kvóta megtekintéséhez, és modelleket helyez üzembe az Azure AI Foundry portálon, további engedélyekre lesz szüksége.
Modellek
A következő modellek támogatják a finomhangolást:
-
gpt-35-turbo
(0613) -
gpt-35-turbo
(1106) -
gpt-35-turbo
(0125) -
gpt-4
(0613)* -
gpt-4o
(2024-08-06) -
gpt-4o-mini
(2024-07-18)
* A modell finomhangolása jelenleg nyilvános előzetes verzióban érhető el.
Vagy finomhangolhat egy korábban finomhangolt modellt alapmodell.ft-{jobid} formátumban.
A modellek oldalán ellenőrizheti, hogy mely régiók támogatják jelenleg a finomhangolást.
Az Azure AI Foundry portál munkafolyamatának áttekintése
Szánjon egy kis időt az Azure AI Foundry portál használatának finomhangolási munkafolyamatára:
- A betanítási és érvényesítési adatok előkészítése.
- Az egyéni modell betanítása az Egyéni modell létrehozása varázslóval az Azure AI Foundry portálon.
- Ellenőrizze az egyéni finomhangolt modell állapotát.
- Az egyéni modell üzembe helyezése használatra.
- Használja az egyéni modellt.
- 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 használt betanítási és érvényesítési adatokat JSON Lines (JSONL) dokumentumként kell formázni. A gpt-35-turbo
(minden verzió), gpt-4
és gpt-4o
gpt-4o-mini
, a 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 egy (2024-07-18)-modell finomhangolásáról gpt-4o-mini
, tekintse meg az Azure OpenAI finomhangolási oktatóanyagát.
Példa fájlformátumra
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who discovered Antarctica?"}, {"role": "assistant", "content": "Some chaps named Fabian Gottlieb von Bellingshausen and Mikhail Lazarev, as if they don't teach that in every school!"}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What is the biggest ocean?"}, {"role": "assistant", "content": "The Pacific Ocean. It's not like it's a small pond or anything."}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What is the largest planet?"}, {"role": "assistant", "content": "It's called Jupiter, you might have heard of it...or not."}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who painted the Mona Lisa?"}, {"role": "assistant", "content": "Oh, some obscure artist named Leonardo da Vinci. Not that he is famous or anything."}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the boiling point of water?"}, {"role": "assistant", "content": "Exciting fact of the day: it's 100 degrees Celsius. Life-changing, isn't it?"}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who wrote 'The Odyssey'?"}, {"role": "assistant", "content": "Oh, just some poet named Homer. Nothing special, really."}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What is the largest mammal?"}, {"role": "assistant", "content": "Blue Whale. Quite a big fish isn't it? Oh wait, it's not a fish!"}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the highest mountain peak?"}, {"role": "assistant", "content": "Everest. Brace yourself, it's not a walk in the park."}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who invented the telephone?"}, {"role": "assistant", "content": "A guy named Alexander Graham Bell. Bet you didn't guess that one!"}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What is the distance from Earth to the Sun?"}, {"role": "assistant", "content": "About 93 million miles. Just a quick drive, really."}]}
Többfordulós csevegési fájlformátumú Azure OpenAI
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}]}
Csevegés befejezése látással
{"messages": [{"role": "user", "content": [{"type": "text", "text": "What's in this image?"}, {"type": "image_url", "image_url": {"url": "https://raw.githubusercontent.com/MicrosoftDocs/azure-ai-docs/main/articles/ai-services/openai/media/how-to/generated-seattle.png"}}]}, {"role": "assistant", "content": "The image appears to be a watercolor painting of a city skyline, featuring tall buildings and a recognizable structure often associated with Seattle, like the Space Needle. The artwork uses soft colors and brushstrokes to create a somewhat abstract and artistic representation of the cityscape."}]}
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 egy 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 AI Foundry portálon elérhető az Egyéni modell létrehozása varázsló, így interaktívan létrehozhat és betaníthat egy finomhangolt modellt az Azure-erőforráshoz.
Nyissa meg az Azure AI Foundry portált, 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.
Az Azure AI Foundry portálon keresse meg az Eszközök > finomhangolási panelt, és válassza a Modell finomhangolása lehetőséget.
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.
- Vagy finomhangolhat egy korábban finomhangolt modellt alapmodell.ft-{jobid} formátumban.
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.
Ha a betanítási adatok már feltöltődtek a szolgáltatásba, válassza a Fájlok lehetőséget az Azure OpenAI-kapcsolatból.
- Válassza ki a fájlt a megjelenő legördülő listából.
Új betanítási adatok feltöltéséhez használja az alábbi lehetőségek egyikét:
Válassza a Helyi fájl lehetőséget a betanítási adatok helyi fájlból való feltöltéséhez.
Az Azure Blob vagy más megosztott webhelyek kiválasztásával betanítási adatokat importálhat az Azure Blobból vagy más megosztott webhelyről.
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.
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.
Adja meg a fájl fájlnevét .
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.
Az Importálás lehetőséget választva importálhatja a betanítási adathalmazt a szolgáltatásba.
Miután kiválasztotta és feltöltötte a betanítási adatkészletet, válassza a Tovább gombot a folytatáshoz.
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.
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:
Válassza a Helyi fájl lehetőséget az érvényesítési adatok helyi fájlból való feltöltéséhez.
Az Azure Blob vagy más megosztott webhelyek kiválasztásával érvényesítési adatokat importálhat az Azure Blobból vagy más megosztott webhelyről.
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.
É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.
Adja meg a fájl fájlnevét .
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.
Az Importálás lehetőséget választva importálhatja a betanítási adathalmazt a szolgáltatásba.
Miután kiválasztotta és feltöltötte az érvényesítési adatkészletet, válassza a Tovább gombot a folytatáshoz.
Feladatparaméterek konfigurálása
Az Egyéni modell létrehozása varázsló megjeleníti a finomhangolt modell betanításának paramétereit a Tevékenységparaméterek 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 |
Beta |
egész szám | A dpo veszteségének hőmérsékleti paramétere, általában a 0,1 és 0,5 közötti tartományban. Ez szabályozza, hogy mennyi figyelmet fordítunk a referenciamodellre. Minél kisebb a bétaverzió, annál inkább hagyjuk, hogy a modell eltávolodjon a referenciamodelltől. Mivel a bétaverzió egyre kisebb lesz, figyelmen kívül hagyjuk a referenciamodellt. |
Válassza az Alapértelmezett lehetőséget a finomhangolási feladat alapértelmezett értékeinek használatához, vagy válassza az Egyéni 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.
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.
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.
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ő.
Biztonsági értékelés GPT-4, GPT-4o és GPT-4o-mini finomhangolás – nyilvános előzetes verzió
A GPT-4o, a GPT-4o-mini és a GPT-4 a legfejlettebb modelljeink, amelyek igény szerint finomhangolhatók. 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 fejlett, finomhangolt modellek kockázatainak csökkentése érdekében további értékelési lépéseket hajtottunk végre, amelyek segítenek észlelni és megelőzni a káros tartalmakat a finomhangolt modellek betanításában és kimenetében. 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-4o, a GPT-4o-mini é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.
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
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.
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.
Az üzembe helyezés előrehaladását az Azure AI Foundry portál Üzembe helyezések paneljén követheti nyomon.
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 AI Foundry portál játszótereivelkí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.
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 AI Foundry portál 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 AI Foundry portál 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 az Azure AI Foundry portálon ábrázolásként is megtekintheti. 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 AI Foundry portál Üzembe helyezések paneljé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 Azure AI Foundry portál Modellek paneljén törölheti az egyéni modellt. 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 AI Foundry portál Felügyeleti>adatok + indexek 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
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.
Előfeltételek
- Olvassa el az Azure OpenAI finomhangolási útmutatóját.
- Azure-előfizetés. Hozzon létre egyet ingyen.
- Egy Azure OpenAI-erőforrás. További információ: Erőforrás létrehozása és modell üzembe helyezése az Azure OpenAI használatával.
- A következő Python-kódtárak:
os
,json
,requests
,openai
. - Az OpenAI Python-kódtárnak legalább 0.28.1-es verziónak kell lennie.
- A hozzáférés finomhangolásához a Cognitive Services OpenAI-közreműködője szükséges.
- Ha még nem rendelkezik hozzáféréssel a kvóta megtekintéséhez, és modelleket helyez üzembe az Azure AI Foundry portálon, további engedélyekre lesz szüksége.
Modellek
A következő modellek támogatják a finomhangolást:
-
gpt-35-turbo
(0613) -
gpt-35-turbo
(1106) -
gpt-35-turbo
(0125) -
gpt-4
(0613)* -
gpt-4o
(2024-08-06) -
gpt-4o-mini
(2024-07-18)
* A modell finomhangolása jelenleg nyilvános előzetes verzióban érhető el.
Vagy finomhangolhat egy korábban finomhangolt, formázott modellt is base-model.ft-{jobid}
.
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:
- A betanítási és érvényesítési adatok előkészítése.
- Válasszon egy alapmodellt.
- Töltse fel a betanítási adatokat.
- Betanítsa az új testreszabott modellt.
- Ellenőrizze a testreszabott modell állapotát.
- A testre szabott modell üzembe helyezése használatra.
- Használja a testre szabott modellt.
- 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 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": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who discovered Antarctica?"}, {"role": "assistant", "content": "Some chaps named Fabian Gottlieb von Bellingshausen and Mikhail Lazarev, as if they don't teach that in every school!"}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What is the biggest ocean?"}, {"role": "assistant", "content": "The Pacific Ocean. It's not like it's a small pond or anything."}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What is the largest planet?"}, {"role": "assistant", "content": "It's called Jupiter, you might have heard of it...or not."}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who painted the Mona Lisa?"}, {"role": "assistant", "content": "Oh, some obscure artist named Leonardo da Vinci. Not that he is famous or anything."}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the boiling point of water?"}, {"role": "assistant", "content": "Exciting fact of the day: it's 100 degrees Celsius. Life-changing, isn't it?"}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who wrote 'The Odyssey'?"}, {"role": "assistant", "content": "Oh, just some poet named Homer. Nothing special, really."}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What is the largest mammal?"}, {"role": "assistant", "content": "Blue Whale. Quite a big fish isn't it? Oh wait, it's not a fish!"}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the highest mountain peak?"}, {"role": "assistant", "content": "Everest. Brace yourself, it's not a walk in the park."}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who invented the telephone?"}, {"role": "assistant", "content": "A guy named Alexander Graham Bell. Bet you didn't guess that one!"}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What is the distance from Earth to the Sun?"}, {"role": "assistant", "content": "About 93 million miles. Just a quick drive, really."}]}
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}]}
Csevegés befejezése látással
{"messages": [{"role": "user", "content": [{"type": "text", "text": "What's in this image?"}, {"type": "image_url", "image_url": {"url": "https://raw.githubusercontent.com/MicrosoftDocs/azure-ai-docs/main/articles/ai-services/openai/media/how-to/generated-seattle.png"}}]}, {"role": "assistant", "content": "The image appears to be a watercolor painting of a city skyline, featuring tall buildings and a recognizable structure often associated with Seattle, like the Space Needle. The artwork uses soft colors and brushstrokes to create a somewhat abstract and artistic representation of the cityscape."}]}
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 egy 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. |
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. |
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
)
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))
Biztonsági értékelés GPT-4, GPT-4o, GPT-4o-mini finomhangolás - nyilvános előzetes verzió
A GPT-4o, a GPT-4o-mini és a GPT-4 a legfejlettebb modelljeink, amelyek igény szerint finomhangolhatók. 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 fejlett, finomhangolt modellek kockázatainak csökkentése érdekében további értékelési lépéseket hajtottunk végre, amelyek segítenek észlelni és megelőzni a káros tartalmakat a finomhangolt modellek betanításában és kimenetében. 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-4o, a GPT-4o-mini é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.
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
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 AI Foundryt vagy az Azure CLI-t is.
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.
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.
Bérlők közötti üzembe helyezés
A hozzáférési jogkivonatok az account get-access-token --tenant
létrehozásához használt fióknak Cognitive Services OpenAI-közreműködői engedélyekkel kell rendelkeznie mind a forrás, mind a cél Azure OpenAI-erőforrásokhoz. Két különböző jogkivonatot kell létrehoznia, egyet a forrásbérlõnek, egyet pedig a célbérlõnek.
import requests
subscription = "DESTINATION-SUBSCRIPTION-ID"
resource_group = "DESTINATION-RESOURCE-GROUP"
resource_name = "DESTINATION-AZURE-OPENAI-RESOURCE-NAME"
model_deployment_name = "DESTINATION-MODEL-DEPLOYMENT-NAME"
fine_tuned_model = "gpt-4o-mini-2024-07-18.ft-f8838e7c6d4a4cbe882a002815758510" #source fine-tuned model id example id provided
source_subscription_id = "SOURCE-SUBSCRIPTION-ID"
source_resource_group = "SOURCE-RESOURCE-GROUP"
source_account = "SOURCE-AZURE-OPENAI-RESOURCE-NAME"
dest_token = "DESTINATION-ACCESS-TOKEN" # az account get-access-token --tenant DESTINATION-TENANT-ID
source_token = "SOURCE-ACCESS-TOKEN" # az account get-access-token --tenant SOURCE-TENANT-ID
headers = {
"Authorization": f"Bearer {dest_token}",
"x-ms-authorization-auxiliary": f"Bearer {source_token}",
"Content-Type": "application/json"
}
url = f"https://management.azure.com/subscriptions/{subscription}/resourceGroups/{resource_group}/providers/Microsoft.CognitiveServices/accounts/{resource_name}/deployments/{model_deployment_name}?api-version=2024-10-01"
payload = {
"sku": {
"name": "standard",
"capacity": 1
},
"properties": {
"model": {
"format": "OpenAI",
"name": fine_tuned_model,
"version": "1",
"sourceAccount": f"/subscriptions/{source_subscription_id}/resourceGroups/{source_resource_group}/providers/Microsoft.CognitiveServices/accounts/{source_account}"
}
}
}
response = requests.put(url, headers=headers, json=payload)
# Check response
print(f"Status Code: {response.status_code}")
print(f"Response: {response.json()}")
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 AI Foundry csevegési játszóterévelkí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.
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 az Azure AI Foundry portálon ábrázolásként is megtekintheti. 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:
- Azure AI Foundry
- A REST API-k
- A Python SDK
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 AI Foundry 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
- Olvassa el az Azure OpenAI finomhangolási útmutatóját.
- Azure-előfizetés. Hozzon létre egyet ingyen.
- Egy Azure OpenAI-erőforrás. További információ: Erőforrás létrehozása és modell üzembe helyezése az Azure OpenAI használatával.
- A hozzáférés finomhangolásához a Cognitive Services OpenAI-közreműködője szükséges.
- Ha még nem rendelkezik hozzáféréssel a kvóta megtekintéséhez, és modelleket helyez üzembe az Azure AI Foundry portálon, további engedélyekre lesz szüksége.
Modellek
A következő modellek támogatják a finomhangolást:
-
gpt-35-turbo
(0613) -
gpt-35-turbo
(1106) -
gpt-35-turbo
(0125) -
gpt-4
(0613)* -
gpt-4o
(2024-08-06) -
gpt-4o-mini
(2024-07-18)
* A modell finomhangolása jelenleg nyilvános előzetes verzióban érhető el.
Vagy finomhangolhat egy korábban finomhangolt modellt alapmodell.ft-{jobid} formátumban.
A modellek oldalán ellenőrizheti, hogy mely régiók támogatják jelenleg a finomhangolást.
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:
- A betanítási és érvényesítési adatok előkészítése.
- Válasszon egy alapmodellt.
- Töltse fel a betanítási adatokat.
- Betanítsa az új testreszabott modellt.
- Ellenőrizze a testreszabott modell állapotát.
- A testre szabott modell üzembe helyezése használatra.
- Használja a testre szabott modellt.
- 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 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": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who discovered Antarctica?"}, {"role": "assistant", "content": "Some chaps named Fabian Gottlieb von Bellingshausen and Mikhail Lazarev, as if they don't teach that in every school!"}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What is the biggest ocean?"}, {"role": "assistant", "content": "The Pacific Ocean. It's not like it's a small pond or anything."}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What is the largest planet?"}, {"role": "assistant", "content": "It's called Jupiter, you might have heard of it...or not."}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who painted the Mona Lisa?"}, {"role": "assistant", "content": "Oh, some obscure artist named Leonardo da Vinci. Not that he is famous or anything."}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the boiling point of water?"}, {"role": "assistant", "content": "Exciting fact of the day: it's 100 degrees Celsius. Life-changing, isn't it?"}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who wrote 'The Odyssey'?"}, {"role": "assistant", "content": "Oh, just some poet named Homer. Nothing special, really."}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What is the largest mammal?"}, {"role": "assistant", "content": "Blue Whale. Quite a big fish isn't it? Oh wait, it's not a fish!"}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What's the highest mountain peak?"}, {"role": "assistant", "content": "Everest. Brace yourself, it's not a walk in the park."}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "Who invented the telephone?"}, {"role": "assistant", "content": "A guy named Alexander Graham Bell. Bet you didn't guess that one!"}]}
{"messages": [{"role": "system", "content": "Clippy is a factual chatbot that is also sarcastic."}, {"role": "user", "content": "What is the distance from Earth to the Sun?"}, {"role": "assistant", "content": "About 93 million miles. Just a quick drive, really."}]}
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}]}
Csevegés befejezése látással
{"messages": [{"role": "user", "content": [{"type": "text", "text": "What's in this image?"}, {"type": "image_url", "image_url": {"url": "https://raw.githubusercontent.com/MicrosoftDocs/azure-ai-docs/main/articles/ai-services/openai/media/how-to/generated-seattle.png"}}]}, {"role": "assistant", "content": "The image appears to be a watercolor painting of a city skyline, featuring tall buildings and a recognizable structure often associated with Seattle, like the Space Needle. The artwork uses soft colors and brushstrokes to create a somewhat abstract and artistic representation of the cityscape."}]}
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 egy 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.
Vagy finomhangolhat egy korábban finomhangolt modellt alapmodell.ft-{jobid} formátumban.
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. |
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. |
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"
Biztonsági értékelés GPT-4, GPT-4o, GPT-4o-mini finomhangolás - nyilvános előzetes verzió
A GPT-4o, a GPT-4o-mini és a GPT-4 a legfejlettebb modelljeink, amelyek igény szerint finomhangolhatók. 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 fejlett, finomhangolt modellek kockázatainak csökkentése érdekében további értékelési lépéseket hajtottunk végre, amelyek segítenek észlelni és megelőzni a káros tartalmakat a finomhangolt modellek betanításában és kimenetében. 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-4o, a GPT-4o-mini é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.
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
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.
Bérlők közötti üzembe helyezés
A hozzáférési jogkivonatok az account get-access-token --tenant
létrehozásához használt fióknak Cognitive Services OpenAI-közreműködői engedélyekkel kell rendelkeznie mind a forrás, mind a cél Azure OpenAI-erőforrásokhoz. Két különböző jogkivonatot kell létrehoznia, egyet a forrásbérlõnek, egyet pedig a célbérlõnek.
curl -X PUT "https://management.azure.com/subscriptions/<SUBSCRIPTION>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.CognitiveServices/accounts/<RESOURCE_NAME>/deployments/<MODEL_DEPLOYMENT_NAME>?api-version=2024-10-01" \
-H "Authorization: Bearer <DESTINATION TOKEN>" \
-H "x-ms-authorization-auxiliary: Bearer <SOURCE TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"sku": {"name": "standard", "capacity": 1},
"properties": {
"model": {
"format": "OpenAI",
"name": "<FINE_TUNED_MODEL>",
"version": "1",
"sourceAccount": "/subscriptions/{sourceSubscriptionID}/resourceGroups/{sourceResourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{sourceAccount}"
}
}
}'
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 AI Foundry csevegési játszótereivelkí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.
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 az Azure AI Foundry portálon ábrázolásként is megtekintheti. 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 AI Foundry Modellek lapján, vagy létrehozhat egy modellek listáját egy adott Azure OpenAI-erőforráshoz a REST API használatával.
Egyéb üzembehelyezési típusok
Az Azure OpenAI finomhangolása az USA 2. keleti régiójában, az USA északi középső régiójában és Svédország középső régiójában a következő globális standard üzemelő példányokat támogatja:
gpt-4o-mini-2024-07-18
gpt-4o-2024-08-06
És támogatja az USA északi középső régiójában és Nyugat-Svájcban felügyelt regionális kiépítést a következő célokra:
gpt-4o-mini-2024-07-18
gpt-4o-2024-08-06
Global Standard (előzetes verzió)
A globális szabványos, finomhangolt üzemelő példányok költségmegtakarítást kínálnak, de az egyéni modell súlyozása ideiglenesen az Azure OpenAI-erőforrás földrajzi területén kívül is tárolható.
A Global Standard finomhangolási üzemelő példányai jelenleg nem támogatják a látást és a strukturált kimeneteket.
Kiépített felügyelt (előzetes verzió)
A kiépített felügyelt, finomhangolt üzemelő példányok kiszámítható teljesítményt nyújtanak a finomhangolt üzemelő példányokhoz. A nyilvános előzetes verzió részeként a kiépített felügyelt üzemelő példányok regionálisan hozhatók létre az adatsík REST API-verziójával vagy újabb verziójával 2024-10-01
. Példákat alább talál.
A kiépített felügyelt finomhangolási üzemelő példányok jelenleg nem támogatják a látást és a strukturált kimeneteket.
Kiépített felügyelt központi telepítés létrehozása
Új üzembe helyezés létrehozásához hozzon létre egy HTTP PUT-hívást a Központi telepítések – REST API létrehozása vagy frissítése szolgáltatáson keresztül. A módszer hasonló a régiók közötti üzembe helyezéshez, az alábbi kivételekkel:
- Meg kell adnia a termékváltozat nevét
ProvisionedStandard
. - A kapacitást ptU-kban kell deklarálni.
- Az
api-version
újnak kell lennie vagy újabbnak kell lennie2024-10-01
. - A HTTP-metódusnak a következőnek kell lennie
PUT
: .
Például egy gpt-4o-mini modell üzembe helyezése:
curl -X PUT "https://management.azure.com/subscriptions/<SUBSCRIPTION>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.CognitiveServices/accounts/<RESOURCE_NAME>/deployments/<MODEL_DEPLOYMENT_NAME>api-version=2024-10-01" \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"sku": {"name": "ProvisionedStandard", "capacity": 25},
"properties": {
"model": {
"format": "OpenAI",
"name": "gpt-4omini-ft-model-name",
"version": "1",
"source": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{SourceResourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{SourceAOAIAccountName}"
}
}
}'
Finomhangolt modell skálázása kiépített felügyelten
Ha a PTU-kapacitás növelése vagy csökkentése érdekében finomhangolt kiépítési felügyelt üzembe helyezést szeretne skálázni, hajtsa végre ugyanazt PUT
a REST API-hívást, mint az üzembe helyezés létrehozásakor, és adjon meg egy frissített capacity
értéket a sku
. Ne feledje, hogy a kiépített üzembe helyezéseknek minimális növekményekben kell skálázniuk.
Ha például az előző szakaszban üzembe helyezett modellt 25-ről 40 PTU-ra szeretné skálázni, hozzon létre egy másik PUT
hívást, és növelje a kapacitást:
curl -X PUT "https://management.azure.com/subscriptions/<SUBSCRIPTION>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.CognitiveServices/accounts/<RESOURCE_NAME>/deployments/<MODEL_DEPLOYMENT_NAME>api-version=2024-10-01" \
-H "Authorization: Bearer <TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"sku": {"name": "ProvisionedStandard", "capacity": 40},
"properties": {
"model": {
"format": "OpenAI",
"name": "gpt-4omini-ft-model-name",
"version": "1",
"source": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/{SourceResourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{SourceAOAIAccountName}"
}
}
}'
Kiépített felügyelt üzemelő példány törlése
Az üzembe helyezés törléséhez használja a [Deployments – Delete REST API(/rest/api/aiservices/accountmanagement/deployments/delete?view=rest-aiservices-accountmanagement-2024-10-01&tabs=HTTP&preserve-view=true) fájlt, és küldjön egy HTTP DELETE-t az üzembehelyezési erőforrásnak. Az üzemelő példányok létrehozásához hasonlóan a következő paramétereket kell tartalmaznia:
- Azure-előfizetés azonosítója
- Azure-erőforráscsoport neve
- Azure OpenAI-erőforrás neve
- A törölni kívánt PTU-telepítés neve
Ha például törölni szeretné az előző szakaszokban létrehozott és módosított modellt:
curl -X DELETE "https://management.azure.com/subscriptions/<SUBSCRIPTION>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.CognitiveServices/accounts/<RESOURCE_NAME>/deployments/<MODEL_DEPLOYMENT_NAME>api-version=2024-10-01" \
-H "Authorization: Bearer <TOKEN>"
Látás finomhangolása
A JSONL-fájlokban lévő képek finomhangolása is lehetséges. Ugyanúgy, ahogy egy vagy több képbemenetet küldhet a csevegés befejezéséhez, ugyanezeket az üzenettípusokat is belefoglalhatja a betanítási adatokba. A képek nyilvánosan elérhető URL-címként vagy base64 kódolású képeket tartalmazó adat URL-ként is megadható.
Képadatkészletre vonatkozó követelmények
- A betanítási fájl legfeljebb 50 000 olyan példát tartalmazhat, amely képeket tartalmaz (a szöveges példákat nem beleértve).
- Minden példában legfeljebb 64 kép lehet.
- Minden kép legfeljebb 10 MB lehet.
Formátum
A képeknek a következőnek kell lenniük:
- JPEG
- PNG
- WEBP
A képeknek RGB vagy RGBA kép módban kell lenniük.
A segédszerepkörrel rendelkező üzenetekből nem vehet fel képeket kimenetként.
Con sátormód ration policy
A betanítás előtt beolvasjuk a képeket, hogy megfeleljenek a használati szabályzat átláthatósági megjegyzésének. Ez késést okozhat a fájlérvényesítésben a finomhangolás megkezdése előtt.
Az alábbi képek ki lesznek zárva az adathalmazból, és nem használhatók betanításra:
- Személyek
- Arcok
- CAPTCHA-k
Fontos
A látás finomhangolása arcszűrési folyamat: Mi képernyő arcok / emberek kihagyni ezeket a képeket a betanítás a modell. A szűrési funkció az arcfelismerést használja arcfelismerés nélkül , ami azt jelenti, hogy nem hozunk létre arcsablonokat, és nem mérünk konkrét arcgeometriát, és az arcok szűréséhez használt technológia nem képes egyedileg azonosítani az egyéneket. Ha többet szeretne megtudni az adatokról és a személyes adatok védelméről, tekintse meg az Azure AI-szolgáltatások – Adatok és adatvédelem a Face szolgáltatásban | Microsoft Learn.
Gyorsítótárazás kérése
Az Azure OpenAI finomhangolása támogatja a gyors gyorsítótárazást a kiválasztott modellekkel. A parancssori gyorsítótárazás lehetővé teszi, hogy csökkentse a kérések késését és a kérés elején azonos tartalommal rendelkező hosszabb kérések költségeit. A gyors gyorsítótárazással kapcsolatos további információkért tekintse meg a gyors gyorsítótárazás első lépéseit.
Közvetlen preferenciák optimalizálása (DPO) (előzetes verzió)
A közvetlen preferenciák optimalizálása (DPO) a nagy nyelvi modellek igazítási technikája, amellyel az emberi beállítások alapján módosíthatja a modell súlyát. Az emberi visszajelzésekből (RLHF) származó megerősítési tanulástól abban különbözik, hogy nem igényel jutalommodellt, és egyszerűbb bináris adatbeállításokat használ a betanításhoz. Számításilag könnyebb és gyorsabb, mint az RLHF, ugyanakkor ugyanolyan hatékony az igazításban.
Miért hasznos a DPO?
A DPO különösen olyan helyzetekben hasznos, ahol nincs egyértelmű helyes válasz, és fontos a szubjektív elemek, például a hang, a stílus vagy az adott tartalombeállítások. Ez a megközelítés azt is lehetővé teszi, hogy a modell tanuljon a pozitív példákból (mi tekinthető helyesnek vagy ideálisnak) és negatív példákból (ami kevésbé kívánatos vagy helytelen).
A DPO-t úgy vélik, hogy ez egy olyan technika, amely megkönnyíti az ügyfelek számára a kiváló minőségű betanítási adatkészletek előállítását. Bár sok ügyfél nehezen hoz létre elegendő nagy adatkészletet a felügyelt finomhangoláshoz, a felhasználói naplók, az A/B-tesztek vagy a kisebb manuális megjegyzések alapján gyakran már gyűjtöttek preferenciaadatokat.
Közvetlen preferenciális optimalizálási adatkészlet formátuma
A közvetlen preferenciális optimalizálási fájlok formátuma eltér a felügyelt finomhangolástól. Az ügyfelek megadnak egy "beszélgetést", amely tartalmazza a rendszerüzenetet és a kezdeti felhasználói üzenetet, majd a "befejezéseket" a párosított beállítási adatokkal. A felhasználók csak két befejezést adhatnak meg.
Három legfelső szintű mező: input
, preferred_output
és non_preferred_output
- A preferred_output/non_preferred_output minden elemének tartalmaznia kell legalább egy segédüzenetet
- A preferred_output/non_preferred_output minden eleme csak szerepkörökben (asszisztens, eszköz) rendelkezhet
{
"input": {
"messages": {"role": "system", "content": ...},
"tools": [...],
"parallel_tool_calls": true
},
"preferred_output": [{"role": "assistant", "content": ...}],
"non_preferred_output": [{"role": "assistant", "content": ...}]
}
A betanítási adatkészleteknek formátumuknak jsonl
kell lennie:
{{"input": {"messages": [{"role": "system", "content": "You are a chatbot assistant. Given a user question with multiple choice answers, provide the correct answer."}, {"role": "user", "content": "Question: Janette conducts an investigation to see which foods make her feel more fatigued. She eats one of four different foods each day at the same time for four days and then records how she feels. She asks her friend Carmen to do the same investigation to see if she gets similar results. Which would make the investigation most difficult to replicate? Answer choices: A: measuring the amount of fatigue, B: making sure the same foods are eaten, C: recording observations in the same chart, D: making sure the foods are at the same temperature"}]}, "preferred_output": [{"role": "assistant", "content": "A: Measuring The Amount Of Fatigue"}], "non_preferred_output": [{"role": "assistant", "content": "D: making sure the foods are at the same temperature"}]}
}
Közvetlen preferenciális optimalizálási modell támogatása
-
gpt-4o-2024-08-06
támogatja a közvetlen preferenciális optimalizálást a megfelelő finomhangolási régiókban. A legújabb régió rendelkezésre állása frissül a modellek oldalán
A felhasználók használhatják az alapmodellek finomhangolását, valamint a felügyelt finomhangolással már finomhangolt modelleket, amennyiben támogatott modell/verzió.
Hogyan használható a közvetlen preferenciaoptimalizálás finomhangolása?
- Készítse elő
jsonl
az adathalmazokat a beállítási formátumban. - Válassza ki a modellt, majd válassza ki a közvetlen preferencia-optimalizálás testreszabásának módját.
- Adathalmazok feltöltése – betanítás és ellenőrzés. Igény szerint előzetes verzió.
- Válassza ki a hiperparamétereket, az alapértelmezett értékeket a kezdeti kísérletezéshez javasoljuk.
- Tekintse át a kijelöléseket, és hozzon létre egy finomhangolási feladatot.
Hibaelhárítás
Hogyan engedélyezi a finomhangolást?
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ásadminisztrátori engedélyekkel rendelkezőknek is explicit módon kell beállítaniuk ezt a fiókot 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 AI Foundry portálon, a hibaüzenetet az Azure AI Foundry portál Adatfájljai területén tekintheti meg. Vigye az egérmutatót arra a helyre, ahol a "error" (az állapotoszlop alatt) felirat látható, és megjelenik a hiba magyarázata.
Ú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.
Finomhangolás látással
Mi a teendő, ha a rendszerképeket kihagyja?
A rendszerképek kihagyhatók a következő okokból:
- CAPTCHA-kat tartalmaz
- személyeket tartalmaz
- arcokat tartalmaz
Távolítsa el a képet. Egyelőre nem finomíthatjuk a modelleket az entitásokat tartalmazó képekkel.
Gyakori problémák
Probléma | Ok/megoldás |
---|---|
Képek kihagyva | A képeket a következő okok miatt lehet kihagyni: CAPTCHA-kat, személyeket vagy arcokat tartalmaz. Távolítsa el a képet. Egyelőre nem finomíthatjuk a modelleket az entitásokat tartalmazó képekkel. |
Elérhetetlen URL-cím | Ellenőrizze, hogy a kép URL-címe nyilvánosan elérhető-e. |
A kép túl nagy | Ellenőrizze, hogy a képek az adathalmaz méretkorlátjai közé tartoznak-e. |
Érvénytelen képformátum | Ellenőrizze, hogy a képek az adathalmaz formátumán belülre esnek-e. |
Nagyméretű fájlok feltöltése
A betanítási fájlok nagy méretűek lehetnek. A Fájlok API-val ellentétben akár 8 GB-os fájlokat is feltölthet több részre, ami csak 512 MB-os fájlfeltöltést tesz lehetővé.
A betanítási költségek csökkentése
Ha egy kép részletes paraméterét alacsonyra állítja, a rendszer 512 és 512 képpont méretűre méretezi át a képet, és méretétől függetlenül csak 85 token jelöli. Ez csökkenti a betanítás költségeit.
{
"type": "image_url",
"image_url": {
"url": "https://raw.githubusercontent.com/MicrosoftDocs/azure-ai-docs/main/articles/ai-services/openai/media/how-to/generated-seattle.png",
"detail": "low"
}
}
A látás finomhangolásának egyéb szempontjai
A képértelmezés megbízhatóságának szabályozásához állítsa be az egyes képek részletességi paraméterét image_url
low
az , high
vagy auto
az egyes képekhez. Ez a modell által a betanítási idő alatt látható, képenkénti jogkivonatok számát is befolyásolja, és hatással lesz a betanítás költségeire.
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