Skip to content

Latest commit

 

History

History
537 lines (327 loc) · 30.7 KB

E2E_Phi-3-Evaluation_AIFoundry.md

File metadata and controls

537 lines (327 loc) · 30.7 KB

Evaluering av finjustert Phi-3 / Phi-3.5-modell i Azure AI Foundry med fokus på Microsofts prinsipper for ansvarlig AI

Denne ende-til-ende (E2E) veiledningen er basert på artikkelen "Evaluate Fine-tuned Phi-3 / 3.5 Models in Azure AI Foundry Focusing on Microsoft's Responsible AI" fra Microsoft Tech Community.

Oversikt

Hvordan kan du evaluere sikkerheten og ytelsen til en finjustert Phi-3 / Phi-3.5-modell i Azure AI Foundry?

Finjustering av en modell kan noen ganger føre til utilsiktede eller uønskede responser. For å sikre at modellen forblir trygg og effektiv, er det viktig å evaluere modellens potensial til å generere skadelig innhold og dens evne til å produsere nøyaktige, relevante og sammenhengende svar. I denne veiledningen vil du lære hvordan du evaluerer sikkerheten og ytelsen til en finjustert Phi-3 / Phi-3.5-modell integrert med Prompt flow i Azure AI Foundry.

Her er evalueringsprosessen i Azure AI Foundry.

Arkitektur for veiledning.

Bildekilde: Evaluering av generative AI-applikasjoner

Note

For mer detaljert informasjon og for å utforske ytterligere ressurser om Phi-3 / Phi-3.5, vennligst besøk Phi-3CookBook.

Forutsetninger

Innholdsfortegnelse

  1. Scenario 1: Introduksjon til Azure AI Foundrys Prompt flow-evaluering

  2. Scenario 2: Evaluering av Phi-3 / Phi-3.5-modellen i Azure AI Foundry

  3. Gratulerer!

Scenario 1: Introduksjon til Azure AI Foundrys Prompt flow-evaluering

Introduksjon til sikkerhetsevaluering

For å sikre at AI-modellen din er etisk og trygg, er det avgjørende å evaluere den mot Microsofts prinsipper for ansvarlig AI. I Azure AI Foundry lar sikkerhetsevalueringer deg vurdere modellens sårbarhet for jailbreak-angrep og dens potensial til å generere skadelig innhold, noe som er i tråd med disse prinsippene.

Sikkerhetsevaluering.

Bildekilde: Evaluering av generative AI-applikasjoner

Microsofts prinsipper for ansvarlig AI

Før du starter de tekniske stegene, er det viktig å forstå Microsofts prinsipper for ansvarlig AI, et etisk rammeverk designet for å veilede ansvarlig utvikling, distribusjon og drift av AI-systemer. Disse prinsippene sikrer at AI-teknologier utvikles på en måte som er rettferdig, transparent og inkluderende. De er grunnlaget for evalueringen av AI-modellenes sikkerhet.

Microsofts prinsipper for ansvarlig AI inkluderer:

  • Rettferdighet og inkludering: AI-systemer bør behandle alle rettferdig og unngå å påvirke lignende grupper av mennesker på forskjellige måter. For eksempel, når AI-systemer gir veiledning om medisinsk behandling, lånesøknader eller ansettelse, bør de gi samme anbefalinger til alle med lignende symptomer, økonomiske forhold eller faglige kvalifikasjoner.

  • Pålitelighet og sikkerhet: For å bygge tillit er det kritisk at AI-systemer fungerer pålitelig, trygt og konsistent. Disse systemene bør fungere som de opprinnelig ble designet, reagere trygt på uforutsette situasjoner og motstå skadelig manipulering.

  • Åpenhet: Når AI-systemer hjelper til med å informere beslutninger som har stor innvirkning på folks liv, er det avgjørende at folk forstår hvordan disse beslutningene ble tatt. For eksempel kan en bank bruke et AI-system for å avgjøre om en person er kredittverdig.

  • Personvern og sikkerhet: Etter hvert som AI blir mer utbredt, blir det stadig viktigere og mer komplekst å beskytte personvern og sikre personlig og forretningsmessig informasjon.

  • Ansvarlighet: Personene som designer og distribuerer AI-systemer må være ansvarlige for hvordan systemene fungerer. Organisasjoner bør følge industristandarder for å utvikle normer for ansvarlighet.

Fyll hub.

Bildekilde: Hva er ansvarlig AI?

Note

For å lære mer om Microsofts prinsipper for ansvarlig AI, besøk Hva er ansvarlig AI?.

Sikkerhetsmålinger

I denne veiledningen vil du evaluere sikkerheten til den finjusterte Phi-3-modellen ved hjelp av sikkerhetsmålinger i Azure AI Foundry. Disse målingene hjelper deg med å vurdere modellens potensial til å generere skadelig innhold og dens sårbarhet for jailbreak-angrep. Sikkerhetsmålingene inkluderer:

  • Innhold relatert til selvskading: Evaluerer om modellen har en tendens til å produsere innhold relatert til selvskading.
  • Hatefult og urettferdig innhold: Evaluerer om modellen har en tendens til å produsere hatefullt eller urettferdig innhold.
  • Voldelig innhold: Evaluerer om modellen har en tendens til å produsere voldelig innhold.
  • Seksuelt innhold: Evaluerer om modellen har en tendens til å produsere upassende seksuelt innhold.

Ved å evaluere disse aspektene sikrer du at AI-modellen ikke produserer skadelig eller støtende innhold, i tråd med samfunnsverdier og regulatoriske standarder.

Evaluer basert på sikkerhet.

Introduksjon til ytelsesevaluering

For å sikre at AI-modellen din fungerer som forventet, er det viktig å evaluere ytelsen mot ytelsesmålinger. I Azure AI Foundry lar ytelsesevalueringer deg vurdere modellens effektivitet i å generere nøyaktige, relevante og sammenhengende svar.

Sikkerhetsevaluering.

Bildekilde: Evaluering av generative AI-applikasjoner

Ytelsesmålinger

I denne veiledningen vil du evaluere ytelsen til den finjusterte Phi-3 / Phi-3.5-modellen ved hjelp av ytelsesmålinger i Azure AI Foundry. Disse målingene hjelper deg med å vurdere modellens effektivitet i å generere nøyaktige, relevante og sammenhengende svar. Ytelsesmålingene inkluderer:

  • Grunnlag: Evaluer hvor godt de genererte svarene samsvarer med informasjonen fra inngangskilden.
  • Relevans: Evaluer hvor relevante de genererte svarene er for de gitte spørsmålene.
  • Sammenheng: Evaluer hvor jevnt teksten flyter, leser naturlig og ligner menneskelig språk.
  • Flyt: Evaluer språkferdigheten til den genererte teksten.
  • GPT-likhet: Sammenligner det genererte svaret med den faktiske sannheten for likhet.
  • F1-score: Beregner forholdet mellom delte ord mellom det genererte svaret og kildedataene.

Disse målingene hjelper deg med å evaluere modellens effektivitet i å generere nøyaktige, relevante og sammenhengende svar.

Evaluer basert på ytelse.

Scenario 2: Evaluering av Phi-3 / Phi-3.5-modellen i Azure AI Foundry

Før du begynner

Denne veiledningen er en oppfølging av de tidligere blogginnleggene, "Fine-Tune and Integrate Custom Phi-3 Models with Prompt Flow: Step-by-Step Guide" og "Fine-Tune and Integrate Custom Phi-3 Models with Prompt Flow in Azure AI Foundry." I disse innleggene gikk vi gjennom prosessen med å finjustere en Phi-3 / Phi-3.5-modell i Azure AI Foundry og integrere den med Prompt flow.

I denne veiledningen vil du distribuere en Azure OpenAI-modell som en evaluator i Azure AI Foundry og bruke den til å evaluere din finjusterte Phi-3 / Phi-3.5-modell.

Før du begynner denne veiledningen, sørg for at du har følgende forutsetninger, som beskrevet i de tidligere veiledningene:

  1. Et forberedt datasett for å evaluere den finjusterte Phi-3 / Phi-3.5-modellen.
  2. En Phi-3 / Phi-3.5-modell som er finjustert og distribuert til Azure Machine Learning.
  3. En Prompt flow integrert med din finjusterte Phi-3 / Phi-3.5-modell i Azure AI Foundry.

Note

Du vil bruke filen test_data.jsonl, som ligger i data-mappen fra ULTRACHAT_200k-datasettet som ble lastet ned i de forrige blogginnleggene, som datasettet for å evaluere den finjusterte Phi-3 / Phi-3.5-modellen.

Integrer den tilpassede Phi-3 / Phi-3.5-modellen med Prompt flow i Azure AI Foundry (Kode-først-tilnærming)

Note

Hvis du fulgte lavkode-tilnærmingen beskrevet i "Fine-Tune and Integrate Custom Phi-3 Models with Prompt Flow in Azure AI Foundry", kan du hoppe over denne øvelsen og gå videre til neste. Hvis du derimot fulgte kode-først-tilnærmingen beskrevet i "Fine-Tune and Integrate Custom Phi-3 Models with Prompt Flow: Step-by-Step Guide" for å finjustere og distribuere din Phi-3 / Phi-3.5-modell, er prosessen med å koble modellen din til Prompt flow litt annerledes. Du vil lære denne prosessen i denne øvelsen.

For å fortsette må du integrere din finjusterte Phi-3 / Phi-3.5-modell i Prompt flow i Azure AI Foundry.

Opprett Azure AI Foundry Hub

Du må opprette en Hub før du oppretter et prosjekt. En Hub fungerer som en Ressursgruppe, som lar deg organisere og administrere flere prosjekter i Azure AI Foundry.

  1. Logg inn på Azure AI Foundry.

  2. Velg Alle hubs fra venstre sidefane.

  3. Velg + Ny hub fra navigasjonsmenyen.

    Opprett hub.

  4. Utfør følgende oppgaver:

    • Skriv inn Hub-navn. Det må være en unik verdi.
    • Velg ditt Azure Abonnement.
    • Velg Ressursgruppe som skal brukes (opprett en ny hvis nødvendig).
    • Velg Plassering du vil bruke.
    • Velg Koble til Azure AI-tjenester som skal brukes (opprett en ny hvis nødvendig).
    • Velg Koble til Azure AI Search for å Hopp over tilkobling. Fyll hub.
  5. Velg Neste.

Opprett Azure AI Foundry-prosjekt

  1. I huben du opprettet, velg Alle prosjekter fra fanen på venstre side.

  2. Velg + Nytt prosjekt fra navigasjonsmenyen.

    Velg nytt prosjekt.

  3. Skriv inn Prosjektnavn. Det må være en unik verdi.

    Opprett prosjekt.

  4. Velg Opprett et prosjekt.

Legg til en tilpasset tilkobling for den finjusterte Phi-3 / Phi-3.5-modellen

For å integrere din tilpassede Phi-3 / Phi-3.5-modell med Prompt flow, må du lagre modellens endepunkt og nøkkel i en tilpasset tilkobling. Dette oppsettet sikrer tilgang til din tilpassede Phi-3 / Phi-3.5-modell i Prompt flow.

Angi API-nøkkel og endepunkt-URI for den finjusterte Phi-3 / Phi-3.5-modellen

  1. Gå til Azure ML Studio.

  2. Naviger til Azure Machine Learning-arbeidsområdet du opprettet.

  3. Velg Endepunkter fra fanen på venstre side.

    Velg endepunkter.

  4. Velg endepunktet du opprettet.

    Velg opprettet endepunkt.

  5. Velg Forbruk fra navigasjonsmenyen.

  6. Kopier ditt REST-endepunkt og Primærnøkkel.

    Kopier API-nøkkel og endepunkt-URI.

Legg til den tilpassede tilkoblingen

  1. Gå til Azure AI Foundry.

  2. Naviger til Azure AI Foundry-prosjektet du opprettet.

  3. I prosjektet du opprettet, velg Innstillinger fra fanen på venstre side.

  4. Velg + Ny tilkobling.

    Velg ny tilkobling.

  5. Velg Tilpassede nøkler fra navigasjonsmenyen.

    Velg tilpassede nøkler.

  6. Utfør følgende oppgaver:

    • Velg + Legg til nøkkel-verdi-par.
    • For nøkkelnavnet, skriv inn endpoint og lim inn endepunktet du kopierte fra Azure ML Studio i verdifeltet.
    • Velg + Legg til nøkkel-verdi-par igjen.
    • For nøkkelnavnet, skriv inn key og lim inn nøkkelen du kopierte fra Azure ML Studio i verdifeltet.
    • Etter å ha lagt til nøklene, velg er hemmelig for å forhindre at nøkkelen blir eksponert.

    Legg til tilkobling.

  7. Velg Legg til tilkobling.

Opprett Prompt flow

Du har lagt til en tilpasset tilkobling i Azure AI Foundry. Nå skal vi opprette en Prompt flow ved hjelp av følgende trinn. Deretter kobler du denne Prompt flow til den tilpassede tilkoblingen for å bruke den finjusterte modellen i Prompt flow.

  1. Naviger til Azure AI Foundry-prosjektet du opprettet.

  2. Velg Prompt flow fra fanen på venstre side.

  3. Velg + Opprett fra navigasjonsmenyen.

    Velg Prompt flow.

  4. Velg Chat flow fra navigasjonsmenyen.

    Velg chat flow.

  5. Skriv inn Mappenavn som skal brukes.

    Velg chat flow.

  6. Velg Opprett.

Konfigurer Prompt flow for å chatte med din tilpassede Phi-3 / Phi-3.5-modell

Du må integrere den finjusterte Phi-3 / Phi-3.5-modellen i en Prompt flow. Den eksisterende Prompt flow som tilbys, er imidlertid ikke designet for dette formålet. Derfor må du redesigne Prompt flow for å muliggjøre integrasjon av den tilpassede modellen.

  1. I Prompt flow, utfør følgende oppgaver for å bygge om den eksisterende flyten:

    • Velg Råfil-modus.

    • Slett all eksisterende kode i flow.dag.yml-filen.

    • Legg til følgende kode i flow.dag.yml.

      inputs:
        input_data:
          type: string
          default: "Who founded Microsoft?"
      
      outputs:
        answer:
          type: string
          reference: ${integrate_with_promptflow.output}
      
      nodes:
      - name: integrate_with_promptflow
        type: python
        source:
          type: code
          path: integrate_with_promptflow.py
        inputs:
          input_data: ${inputs.input_data}
    • Velg Lagre.

    Velg råfil-modus.

  2. Legg til følgende kode i integrate_with_promptflow.py for å bruke den tilpassede Phi-3 / Phi-3.5-modellen i Prompt flow.

    import logging
    import requests
    from promptflow import tool
    from promptflow.connections import CustomConnection
    
    # Logging setup
    logging.basicConfig(
        format="%(asctime)s - %(levelname)s - %(name)s - %(message)s",
        datefmt="%Y-%m-%d %H:%M:%S",
        level=logging.DEBUG
    )
    logger = logging.getLogger(__name__)
    
    def query_phi3_model(input_data: str, connection: CustomConnection) -> str:
        """
        Send a request to the Phi-3 / Phi-3.5 model endpoint with the given input data using Custom Connection.
        """
    
        # "connection" is the name of the Custom Connection, "endpoint", "key" are the keys in the Custom Connection
        endpoint_url = connection.endpoint
        api_key = connection.key
    
        headers = {
            "Content-Type": "application/json",
            "Authorization": f"Bearer {api_key}"
        }
    data = {
        "input_data": [input_data],
        "params": {
            "temperature": 0.7,
            "max_new_tokens": 128,
            "do_sample": True,
            "return_full_text": True
            }
        }
        try:
            response = requests.post(endpoint_url, json=data, headers=headers)
            response.raise_for_status()
            
            # Log the full JSON response
            logger.debug(f"Full JSON response: {response.json()}")
    
            result = response.json()["output"]
            logger.info("Successfully received response from Azure ML Endpoint.")
            return result
        except requests.exceptions.RequestException as e:
            logger.error(f"Error querying Azure ML Endpoint: {e}")
            raise
    
    @tool
    def my_python_tool(input_data: str, connection: CustomConnection) -> str:
        """
        Tool function to process input data and query the Phi-3 / Phi-3.5 model.
        """
        return query_phi3_model(input_data, connection)

    Lim inn Prompt flow-kode.

Note

For mer detaljert informasjon om hvordan du bruker Prompt flow i Azure AI Foundry, kan du se Prompt flow i Azure AI Foundry.

  1. Velg Chat input, Chat output for å aktivere chat med modellen din.

    Velg Input Output.

  2. Nå er du klar til å chatte med din tilpassede Phi-3 / Phi-3.5-modell. I neste øvelse vil du lære hvordan du starter Prompt flow og bruker den til å chatte med din finjusterte Phi-3 / Phi-3.5-modell.

Note

Den ombygde flyten skal se ut som bildet nedenfor:

Flyteksempel

Start Prompt flow

  1. Velg Start beregningsøkter for å starte Prompt flow.

    Start beregningsøkt.

  2. Velg Valider og analyser input for å fornye parametere.

    Valider input.

  3. Velg Verdien til tilkoblingen til den tilpassede tilkoblingen du opprettet. For eksempel connection.

    Tilkobling.

Chat med din tilpassede Phi-3 / Phi-3.5-modell

  1. Velg Chat.

    Velg chat.

  2. Her er et eksempel på resultatene: Nå kan du chatte med din tilpassede Phi-3 / Phi-3.5-modell. Det anbefales å stille spørsmål basert på dataene som ble brukt til finjustering.

    Chat med Prompt flow.

Distribuer Azure OpenAI for å evaluere Phi-3 / Phi-3.5-modellen

For å evaluere Phi-3 / Phi-3.5-modellen i Azure AI Foundry, må du distribuere en Azure OpenAI-modell. Denne modellen vil bli brukt til å evaluere ytelsen til Phi-3 / Phi-3.5-modellen.

Distribuer Azure OpenAI

  1. Logg inn på Azure AI Foundry.

  2. Naviger til Azure AI Foundry-prosjektet du opprettet.

    Velg prosjekt.

  3. I prosjektet du opprettet, velg Distribusjoner fra fanen på venstre side.

  4. Velg + Distribuer modell fra navigasjonsmenyen.

  5. Velg Distribuer grunnmodell.

    Velg distribusjoner.

  6. Velg Azure OpenAI-modellen du ønsker å bruke. For eksempel gpt-4o.

    Velg Azure OpenAI-modellen du ønsker å bruke.

  7. Velg Bekreft.

Evaluer den finjusterte Phi-3 / Phi-3.5-modellen ved hjelp av Azure AI Foundrys Prompt flow-evaluering

Start en ny evaluering

  1. Gå til Azure AI Foundry.

  2. Naviger til Azure AI Foundry-prosjektet du opprettet.

    Velg prosjekt.

  3. I prosjektet du opprettet, velg Evaluering fra fanen på venstre side.

  4. Velg + Ny evaluering fra navigasjonsmenyen. Velg evaluering.

  5. Velg Prompt flow-evaluering.

    Velg Prompt flow-evaluering.

  6. Utfør følgende oppgaver:

    • Skriv inn evalueringsnavnet. Det må være en unik verdi.
    • Velg Spørsmål og svar uten kontekst som oppgavetypen. Dette fordi ULTRACHAT_200k-datasettet som brukes i denne opplæringen ikke inneholder kontekst.
    • Velg prompt flow-en du ønsker å evaluere.

    Prompt flow-evaluering.

  7. Velg Neste.

  8. Utfør følgende oppgaver:

    • Velg Legg til datasettet ditt for å laste opp datasettet. For eksempel kan du laste opp testdatasett-filen, som test_data.json1, som er inkludert når du laster ned ULTRACHAT_200k-datasettet.
    • Velg riktig Datasettkolonne som samsvarer med datasettet ditt. For eksempel, hvis du bruker ULTRACHAT_200k-datasettet, velg ${data.prompt} som datasettkolonne.

    Prompt flow-evaluering.

  9. Velg Neste.

  10. Utfør følgende oppgaver for å konfigurere ytelses- og kvalitetsmålinger:

    • Velg ytelses- og kvalitetsmålingene du ønsker å bruke.
    • Velg Azure OpenAI-modellen du opprettet for evaluering. For eksempel, velg gpt-4o.

    Prompt flow-evaluering.

  11. Utfør følgende oppgaver for å konfigurere risiko- og sikkerhetsmålinger:

    • Velg risiko- og sikkerhetsmålingene du ønsker å bruke.
    • Velg terskelen for å beregne feilraten du ønsker å bruke. For eksempel, velg Medium.
    • For spørsmål, velg Datakilde til {$data.prompt}.
    • For svar, velg Datakilde til {$run.outputs.answer}.
    • For ground_truth, velg Datakilde til {$data.message}.

    Prompt flow-evaluering.

  12. Velg Neste.

  13. Velg Send inn for å starte evalueringen.

  14. Evalueringen vil ta litt tid å fullføre. Du kan overvåke fremdriften i Evaluering-fanen.

Gjennomgå evalueringsresultatene

Note

Resultatene som presenteres nedenfor er ment å illustrere evalueringsprosessen. I denne opplæringen har vi brukt en modell som er finjustert på et relativt lite datasett, noe som kan føre til suboptimale resultater. Faktiske resultater kan variere betydelig avhengig av størrelsen, kvaliteten og mangfoldet på datasettet som brukes, samt den spesifikke konfigurasjonen av modellen.

Når evalueringen er fullført, kan du gjennomgå resultatene for både ytelses- og sikkerhetsmålinger.

  1. Ytelses- og kvalitetsmålinger:

    • Vurder modellens effektivitet i å generere sammenhengende, flytende og relevante svar.

    Evalueringsresultat.

  2. Risiko- og sikkerhetsmålinger:

    • Sørg for at modellens utdata er sikre og i tråd med prinsippene for ansvarlig AI, og unngå skadelig eller støtende innhold.

    Evalueringsresultat.

  3. Du kan bla ned for å se Detaljerte måleresultater.

    Evalueringsresultat.

  4. Ved å evaluere din tilpassede Phi-3 / Phi-3.5-modell mot både ytelses- og sikkerhetsmålinger, kan du bekrefte at modellen ikke bare er effektiv, men også følger ansvarlige AI-praksiser, og dermed er klar for implementering i virkelige scenarier.

Gratulerer!

Du har fullført denne opplæringen

Du har med hell evaluert den finjusterte Phi-3-modellen integrert med Prompt flow i Azure AI Foundry. Dette er et viktig steg for å sikre at AI-modellene dine ikke bare presterer godt, men også følger Microsofts prinsipper for ansvarlig AI, slik at du kan bygge pålitelige og pålitelige AI-applikasjoner.

Arkitektur.

Rydd opp Azure-ressurser

Rydd opp i Azure-ressursene dine for å unngå ekstra kostnader på kontoen din. Gå til Azure-portalen og slett følgende ressurser:

  • Azure Machine Learning-ressursen.
  • Endepunktet for Azure Machine Learning-modellen.
  • Azure AI Foundry-prosjektressursen.
  • Azure AI Foundry Prompt flow-ressursen.

Neste steg

Dokumentasjon

Opplæringsinnhold

Referanse

Ansvarsfraskrivelse:
Dette dokumentet er oversatt ved hjelp av maskinbaserte AI-oversettelsestjenester. Selv om vi tilstreber nøyaktighet, vær oppmerksom på at automatiske oversettelser kan inneholde feil eller unøyaktigheter. Det originale dokumentet på sitt opprinnelige språk bør anses som den autoritative kilden. For kritisk informasjon anbefales profesjonell menneskelig oversettelse. Vi er ikke ansvarlige for eventuelle misforståelser eller feiltolkninger som oppstår ved bruk av denne oversettelsen.