Finjustera Phi-3-modeller i Azure AI Foundry-portalen
Viktigt!
Objekt markerade (förhandsversion) i den här artikeln är för närvarande i offentlig förhandsversion. Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.
Med Azure AI Foundry kan du anpassa stora språkmodeller till dina personliga datamängder med hjälp av en process som kallas finjustering. Finjustering ger betydande värde genom att aktivera anpassning och optimering för specifika uppgifter och program. Det leder till bättre prestanda, kostnadseffektivitet, kortare svarstid och skräddarsydda utdata.
I den här artikeln får du lära dig hur du finjusterar Phi-3-serien med små språkmodeller (SLA) i Azure AI Foundry-portalen som en tjänst med betala per användning-fakturering.
Phi-3-serien med SLI:er är en samling instruktionsjusterade generativa textmodeller. Phi-3-modeller är de mest kompatibla och kostnadseffektiva små språkmodellerna som är tillgängliga, vilket överträffar modeller av samma storlek och nästa storlek upp över olika språk, resonemang, kodning och matematiska riktmärken.
Viktigt!
Modeller som är i förhandsversion markeras som förhandsversioner på sina modellkort i modellkatalogen.
Phi-3 Mini är en 3,8B-parametrar, lätt, toppmodern öppen modell som bygger på datauppsättningar som används för Phi-2 - syntetiska data och filtrerade webbplatser - med fokus på högkvalitativa, resonemangstäta data. Modellen tillhör Modellfamiljen Phi-3 och Mini-versionen finns i två varianter 4K och 128K, vilket är kontextlängden (i token) som den kan stödja.
- Phi-3-mini-4k-Instruct (förhandsversion)
- Phi-3-mini-128k-Instruct (förhandsversion)
Modellen genomgick en rigorös förbättringsprocess med både övervakad finjustering och direktpreferensoptimering för att säkerställa exakt instruktionsefterlevnad och robusta säkerhetsåtgärder. När phi-3 Mini-4K-Instruct och Phi-3 Mini-128K-Instruct testade sunt förnuft, språktolkning, matematik, kod, långa kontexter och logiska resonemang visade de upp en robust och toppmodern prestanda bland modeller med mindre än 13 miljarder parametrar.
Förutsättningar
En Azure-prenumeration. Om du inte har en Azure-prenumeration skapar du ett betalt Azure-konto för att börja.
-
Viktigt!
För Phi-3-familjemodeller är finjusteringserbjudandet betala per användning endast tillgängligt med hubbar som skapats i regioner i USA, östra 2 .
Rollbaserade åtkomstkontroller i Azure (Azure RBAC) används för att ge åtkomst till åtgärder i Azure AI Foundry-portalen. Om du vill utföra stegen i den här artikeln måste ditt användarkonto tilldelas rollen Azure AI Developer i resursgruppen.
Mer information om behörigheter finns i Rollbaserad åtkomstkontroll i Azure AI Foundry-portalen.
Registrering av prenumerationsprovider
Kontrollera att prenumerationen är registrerad på Microsoft.Network
resursprovidern.
- Logga in på Azure-portalen.
- Välj Prenumerationer på den vänstra menyn.
- Välj den prenumeration som du vill använda.
- Välj Inställningar>Resursprovidrar på den vänstra menyn.
- Bekräfta att Microsoft.Network finns med i listan över resursprovidrar. Annars lägger du till den.
Dataförberedelse
Förbered dina tränings- och valideringsdata för att finjustera din modell. Dina uppsättningar med träningsdata och valideringsdata består av indata- och utdataexempel för hur du vill att modellen ska fungera.
Se till att alla dina träningsexempel följer det förväntade formatet för slutsatsdragning. För att finjustera modeller effektivt säkerställer du en balanserad och varierad datamängd.
Detta innebär att upprätthålla databalans, inklusive olika scenarier, och regelbundet förfina träningsdata så att de överensstämmer med verkliga förväntningar, vilket i slutändan leder till mer exakta och balanserade modellsvar.
Olika modelltyper kräver ett annat format för träningsdata.
Chatten har slutförts
De tränings- och valideringsdata som du använder måste formateras som ett JSON Lines-dokument (JSONL). För Phi-3-mini-128k-instruct
finjusteringsdatauppsättningen måste formateras i konversationsformatet som används av API:et för chattavslut.
Exempel på filformat
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Is Xbox better than PlayStation?"}, {"role": "assistant", "content": "I apologize, but I cannot provide personal opinions. My primary job is to assist you with any issues related to your Xbox device. Do you have any Xbox-related issues that need addressing?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "Can I play PC games on my Xbox?"}, {"role": "assistant", "content": "While Xbox consoles don't natively support PC games, they can play an array of Xbox games, many of which are also available on PC. Can I assist you with finding games compatible with your Xbox device?"}]}
{"messages": [{"role": "system", "content": "You are an Xbox customer support agent whose primary goal is to help users with issues they are experiencing with their Xbox devices. You are friendly and concise. You only provide factual answers to queries, and do not provide answers that are not related to Xbox."}, {"role": "user", "content": "I'm having trouble connecting my Xbox to the Wi-Fi."}, {"role": "assistant", "content": "No worries, let's go through the network settings on your Xbox. Can you please tell me what happens when you try to connect it to the Wi-Fi?"}]}
Filtypen som stöds är JSON Lines. Filer laddas upp till standarddatalagringen och görs tillgängliga i projektet.
Finjustera en Phi-3-modell
Så här finjusterar du en Phi-3-modell:
Logga in på Azure AI Foundry.
Välj den modell som du vill finjustera från Azure AI Foundry-portalens modellkatalog.
På sidan Information för modellen väljer du finjustera.
Välj det projekt där du vill finjustera dina modeller. Om du vill använda finjusteringserbjudandet för betala per användning-modellen måste din arbetsyta tillhöra regionen USA, östra 2 .
I guiden finjustera väljer du länken till Azure AI Foundry Terms för att lära dig mer om användningsvillkoren. Du kan också välja fliken Azure AI Foundry-erbjudandeinformation för att lära dig mer om priser för den valda modellen.
Om det här är första gången du finjusterar modellen i projektet måste du prenumerera på ditt projekt för det specifika erbjudandet (till exempel Phi-3-mini-128k-instruct) från Azure AI Foundry. Det här steget kräver att ditt konto har behörigheter för Azure-prenumerationer och resursgruppsbehörigheter som anges i förhandskraven. Varje projekt har en egen prenumeration på det specifika Azure AI Foundry-erbjudandet, vilket gör att du kan styra och övervaka utgifter. Välj Prenumerera och finjustera.
Kommentar
Att prenumerera ett projekt på ett visst Azure AI Foundry-erbjudande (i det här fallet Phi-3-mini-128k-instruct) kräver att ditt konto har deltagar- eller ägaråtkomst på prenumerationsnivå där projektet skapas. Alternativt kan ditt användarkonto tilldelas en anpassad roll som har behörigheter för Azure-prenumerationen och behörigheter för resursgrupper som anges i förhandskraven.
När du har registrerat projektet för det specifika Azure AI Foundry-erbjudandet behöver efterföljande finjustering av samma erbjudande i samma projekt inte prenumerera igen. Därför behöver du inte ha behörigheter på prenumerationsnivå för efterföljande finjusterande jobb. Om det här scenariot gäller för dig väljer du Fortsätt för att finjustera.
Ange ett namn för din finjusterade modell och de valfria taggarna och beskrivningen.
Välj träningsdata för att finjustera din modell. Mer information finns i förberedelse av data.
Kommentar
Om du har dina tränings-/valideringsfiler i ett mindre datalager för autentiseringsuppgifter måste du tillåta åtkomst till arbetsytans hanterade identitet till ditt datalager för att kunna fortsätta med MaaS-finjustering med mindre lagring av autentiseringsuppgifter. På sidan "Datalager" när du har klickat på "Uppdatera autentisering" > väljer du följande alternativ:
Se till att alla dina träningsexempel följer det förväntade formatet för slutsatsdragning. För att finjustera modeller effektivt säkerställer du en balanserad och varierad datamängd. Detta innebär att upprätthålla databalans, inklusive olika scenarier, och regelbundet förfina träningsdata så att de överensstämmer med verkliga förväntningar, vilket i slutändan leder till mer exakta och balanserade modellsvar.
- Batchstorleken som ska användas för träning. När värdet är -1 beräknas batch_size som 0,2 % av exemplen i träningsuppsättningen och maxvärdet är 256.
- Den finjusterande inlärningshastigheten är den ursprungliga inlärningsfrekvensen som används för förträning multiplicerat med den här multiplikatorn. Vi rekommenderar att du experimenterar med värden mellan 0,5 och 2. Empiriskt sett har vi upptäckt att större inlärningsfrekvenser ofta presterar bättre med större batchstorlekar. Måste vara mellan 0.0 och 5.0.
- Antal träningsepoker. En epok refererar till en fullständig cykel genom datauppsättningen.
Uppgiftsparametrar är ett valfritt steg och ett avancerat alternativ– Justering av hyperparameter är viktigt för att optimera stora språkmodeller (LLM) i verkliga program. Det ger bättre prestanda och effektiv resursanvändning. Användare kan välja att behålla standardinställningarna eller så kan avancerade användare anpassa parametrar som epoker eller inlärningshastighet.
Granska dina val och fortsätt att träna din modell.
När din modell har finjusterats kan du distribuera modellen och använda den i ditt eget program, på lekplatsen eller i promptflödet. Mer information finns i Distribuera Phi-3-serien med stora språkmodeller med Azure AI Foundry.
Rensa dina finjusterade modeller
Du kan ta bort en finjusterad modell från listan med finjusteringsmodeller i Azure AI Foundry eller från sidan med modellinformation. Välj den finjusterade modell som ska tas bort från sidan Finjustering och välj sedan knappen Ta bort för att ta bort den finjusterade modellen.
Kommentar
Du kan inte ta bort en anpassad modell om den har en befintlig distribution. Du måste först ta bort modelldistributionen innan du kan ta bort din anpassade modell.
Kostnad och kvoter
Kostnads- och kvotöverväganden för Phi-modeller som finjusterats som en tjänst
Phi-modeller som finjusteras som en tjänst erbjuds av Microsoft och integreras med Azure AI Foundry för användning. Du hittar prissättningen när du distribuerar eller finjusterar modellerna under fliken Priser och villkor i distributionsguiden.
Exempel på notebook-fil
Du kan använda den här exempelanteckningsboken för att skapa ett fristående finjusteringsjobb för att förbättra en modells förmåga att sammanfatta dialoger mellan två personer med hjälp av Samsum-datauppsättningen. Träningsdata som används är den ultrachat_200k datauppsättningen, som är uppdelad i fyra delningar som är lämpliga för övervakad finjustering (sft) och generationsrankning (gen). Notebook-filen använder tillgängliga Azure AI-modeller för chattens slutförande (Om du vill använda en annan modell än vad som används i notebook-filen kan du ersätta modellnamnet). Notebook-filen innehåller krav för att konfigurera, välja en modell för att finjustera, skapa tränings- och valideringsdatauppsättningar, konfigurera och skicka finjusteringsjobbet och slutligen skapa en serverlös distribution med hjälp av den finjusterade modellen för exempelinferens.
Innehållsfiltrering
Modeller som distribueras som en tjänst med betala per användning skyddas av Azure AI Content Safety. När du distribueras till realtidsslutpunkter kan du välja bort den här funktionen. Med Azure AI-innehållssäkerhet aktiverat passerar både prompten och slutförandet genom en uppsättning klassificeringsmodeller som syftar till att identifiera och förhindra utdata från skadligt innehåll. Systemet för innehållsfiltrering (förhandsversion) identifierar och vidtar åtgärder för specifika kategorier av potentiellt skadligt innehåll i både inkommande prompter och slutföranden av utdata. Läs mer om Azure AI Content Safety.