Dette innlegget ble skrevet sammen med Daniele Chiappalupi, deltaker av AWS student Hackathon-teamet ved ETH Zürich.
Alle kan enkelt komme i gang med maskinlæring (ML) ved hjelp av Amazon SageMaker JumpStart. I dette innlegget viser vi deg hvordan et Hackathon-team på universitetet brukte SageMaker JumpStart for raskt å bygge en applikasjon som hjelper brukere med å identifisere og fjerne skjevheter.
«Amazon SageMaker var sentral i prosjektet vårt. Det gjorde det enkelt å distribuere og administrere en forhåndstrent forekomst av Flan, og ga oss et solid grunnlag for applikasjonen vår. Dens automatiske skaleringsfunksjon viste seg å være avgjørende i perioder med mye trafikk, og sørget for at appen vår forble responsiv og at brukerne fikk en jevn og rask skjevhetsanalyse. Videre, ved å la oss laste ned den tunge oppgaven med å spørre Flan-modellen til en administrert tjeneste, var vi i stand til å holde applikasjonen vår lett og rask, og forbedre brukeropplevelsen på tvers av ulike enheter. SageMakers funksjoner gjorde oss i stand til å maksimere tiden vår på hackathon, slik at vi kunne fokusere på å optimalisere meldingene og appen i stedet for å administrere modellens ytelse og infrastruktur.»
– Daniele Chiappalupi, deltaker av AWS student Hackathon-teamet ved ETH Zürich.
Løsningsoversikt
Temaet for Hackathon er å bidra til FNs bærekraftsmål med AI-teknologi. Som vist i følgende figur, bidrar applikasjonen bygget på Hackathon til tre av målene for bærekraftig utvikling (kvalitetsutdanning, målretting mot kjønnsbasert diskriminering og reduserte ulikheter) ved å hjelpe brukere med å identifisere og fjerne skjevheter fra teksten deres for å fremme rettferdig og inkluderende språk.
Som vist i følgende skjermbilde, etter at du har oppgitt teksten, genererer applikasjonen en ny versjon som er fri for rasemessige, etniske og kjønnsskjevheter. I tillegg fremhever den de spesifikke delene av inndatateksten din relatert til hver kategori av skjevhet.
I arkitekturen vist i følgende diagram, legger brukere inn tekst i Reager-basert nettapp, som utløser Amazon API-gateway, som igjen påkaller en AWS Lambda funksjon avhengig av skjevheten i brukerteksten. Lambda-funksjonen kaller Flan-modellens endepunkt i SageMaker JumpStart, som returnerer det objektive tekstresultatet via samme rute tilbake til front-end-applikasjonen.
Applikasjonsutviklingsprosess
Prosessen med å utvikle denne applikasjonen var iterativ og sentrert om to hovedområder: brukergrensesnitt og ML-modellintegrasjon.
Vi valgte React for front-end-utviklingen på grunn av dens fleksibilitet, skalerbarhet og kraftige verktøy for å lage interaktive brukergrensesnitt. Gitt applikasjonens natur – behandle brukerinndata og presentere raffinerte resultater – viste Reacts komponentbaserte arkitektur seg ideell. Med React kunne vi effektivt bygge en enkeltsides applikasjon som tillot brukere å sende inn tekst og se forutinntatte resultater uten behov for konstante sideoppdateringer.
Teksten som ble skrevet inn av brukeren, måtte behandles av en kraftig språkmodell for å undersøke for skjevheter. Vi valgte Flan for dens robusthet, effektivitet og skalerbarhetsegenskaper. For å bruke Flan brukte vi SageMaker JumpStart, som vist i følgende skjermbilde. Amazon SageMaker gjort det enkelt å distribuere og administrere en forhåndsopplært forekomst av Flan, slik at vi kan fokusere på å optimalisere våre forespørsler og spørringer i stedet for å administrere modellens ytelse og infrastruktur.
Å koble Flan-modellen til vår front-end-applikasjon krevde en robust og sikker integrasjon, som ble oppnådd ved hjelp av Lambda og API Gateway. Med Lambda har vi laget en serverløs funksjon som kommuniserer direkte med vår SageMaker-modell. Vi brukte deretter API Gateway for å lage et sikkert, skalerbart og lett tilgjengelig endepunkt for React-appen vår for å starte Lambda-funksjonen. Når en bruker sendte inn tekst, utløste appen en rekke API-anrop til gatewayen – først for å identifisere om noen skjevhet var til stede, deretter, om nødvendig, ytterligere spørringer for å identifisere, lokalisere og nøytralisere skjevheten. Alle disse forespørslene ble rutet gjennom Lambda-funksjonen og deretter til vår SageMaker-modell.
Vår siste oppgave i utviklingsprosessen var å velge spørsmål for å spørre etter språkmodellen. Her spilte CrowS-Pairs-datasettet en instrumentell rolle fordi det ga oss virkelige eksempler på partisk tekst, som vi brukte til å finjustere forespørslene våre. Vi valgte ledetekstene ved en iterativ prosess, med mål om å maksimere nøyaktigheten i skjevhetsdeteksjon i dette datasettet.
Da vi avsluttet prosessen, observerte vi en sømløs driftsflyt i den ferdige søknaden. Prosessen begynner med at en bruker sender inn tekst for analyse, som deretter sendes via en POST-forespørsel til vårt sikre API Gateway-endepunkt. Dette utløser Lambda-funksjonen, som kommuniserer med SageMaker-endepunktet. Følgelig mottar Flan-modellen en rekke forespørsler. Den første sjekker om det er skjevheter i teksten. Hvis skjevheter oppdages, blir ytterligere spørringer distribuert for å lokalisere, identifisere og nøytralisere disse forutinntatte elementene. Resultatene returneres deretter gjennom den samme banen – først til Lambda-funksjonen, deretter gjennom API-gatewayen, og til slutt tilbake til brukeren. Hvis noen skjevhet var tilstede i den opprinnelige teksten, mottar brukeren en omfattende analyse som indikerer hvilke typer skjevheter som er oppdaget, enten det er rasemessig, etnisk eller kjønn. Spesifikke deler av teksten der disse skjevhetene ble funnet er uthevet, noe som gir brukerne en klar oversikt over endringene som er gjort. Ved siden av denne analysen presenteres en ny, forutinntatt versjon av teksten deres, som effektivt transformerer potensielt partiske input til en mer inkluderende fortelling.
I de følgende delene beskriver vi trinnene for å implementere denne løsningen.
Sett opp React-miljøet
Vi begynte med å sette opp utviklingsmiljøet vårt for React. For å starte opp en ny React-applikasjon med minimal konfigurasjon, brukte vi create-react-app:
npx create-react-app my-app
Bygg brukergrensesnittet
Ved å bruke React designet vi et enkelt grensesnitt for brukere å legge inn tekst, med en innsendingsknapp, en tilbakestillingsknapp og overliggende skjermer for å presentere de behandlede resultatene når de er tilgjengelige.
Start Flan-modellen på SageMaker
Vi brukte SageMaker for å lage en forhåndstrent forekomst av Flan-språkmodellen med et endepunkt for sanntidsslutning. Modellen kan brukes mot enhver JSON-strukturert nyttelast som følgende:
Opprett en Lambda-funksjon
Vi utviklet en Lambda-funksjon som samhandlet direkte med SageMaker-endepunktet vårt. Funksjonen ble designet for å motta en forespørsel med brukerens tekst, videresende den til SageMaker-endepunktet og returnere de raffinerte resultatene, som vist i følgende kode (ENDPOINT_NAME
ble satt opp som SageMaker-forekomstendepunktet):
Sett opp API-gateway
Vi konfigurerte en ny REST API i API Gateway og koblet den til Lambda-funksjonen vår. Denne tilkoblingen tillot React-applikasjonen vår å sende HTTP-forespørsler til API-gatewayen, som senere utløste Lambda-funksjonen.
Integrer React-appen med API
Vi oppdaterte React-applikasjonen for å sende en POST-forespørsel til API-gatewayen når send-knappen ble klikket, med teksten i forespørselen som brukerens tekst. JavaScript-koden vi brukte til å utføre API-kallet er som følger (REACT_APP_AWS_ENDPOINT
tilsvarer API Gateway-endepunktet bundet til Lambda-kallet):
Optimaliser spørsmålsvalg
For å forbedre nøyaktigheten av skjevhetsdeteksjon, testet vi forskjellige meldinger mot CrowS-Pairs-datasettet. Gjennom denne iterative prosessen valgte vi ledetekstene som ga oss høyest nøyaktighet.
Distribuer og test React-appen på Vercel
Etter å ha bygget applikasjonen, distribuerte vi den på Vercel for å gjøre den offentlig tilgjengelig. Vi gjennomførte omfattende tester for å sikre at applikasjonen fungerte som forventet, fra brukergrensesnittet til svarene fra språkmodellen.
Disse trinnene la grunnlaget for å lage vår applikasjon for å analysere og de-biasing tekst. Til tross for den iboende kompleksiteten til prosessen, strømlinjeformet bruken av verktøy som SageMaker, Lambda og API Gateway utviklingen, slik at vi kunne fokusere på kjernemålet til prosjektet – å identifisere og eliminere skjevheter i tekst.
konklusjonen
SageMaker JumpStart tilbyr en praktisk måte å utforske funksjonene og egenskapene til SageMaker. Den gir kurerte ett-trinnsløsninger, eksempler på bærbare datamaskiner og utrullbare forhåndsopplærte modeller. Disse ressursene lar deg raskt lære og forstå SageMaker. I tillegg har du muligheten til å finjustere modellene og distribuere dem i henhold til dine spesifikke behov. Tilgang til JumpStart er tilgjengelig gjennom Amazon SageMaker Studio eller programmatisk ved å bruke SageMaker API-ene.
I dette innlegget lærte du hvordan et Hackathon-studentteam utviklet en løsning på kort tid ved hjelp av SageMaker JumpStart, som viser potensialet til AWS og SageMaker JumpStart for å muliggjøre rask utvikling og distribusjon av sofistikerte AI-løsninger, selv av små team eller enkeltpersoner.
For å lære mer om bruk av SageMaker JumpStart, se Instruksjonsfinjustering for FLAN T5 XL med Amazon SageMaker Jumpstart og Zero-shot-forespørsel for Flan-T5-grunnmodellen i Amazon SageMaker JumpStart.
ETH Analytics Club var vert for «ETH Datathon», et AI/ML-hackathon som trekker mer enn 150 deltakere fra ETH Zürich, Universitetet i Zürich og EPFL. Arrangementet inneholder workshops ledet av industriledere, en 24-timers kodingsutfordring og verdifulle nettverksmuligheter med medstudenter og bransjefolk. Stor takk til ETH Hackathon-teamet: Daniele Chiappalupi, Athina Nisioti og Francesco Ignazio Re, samt resten av AWS-arrangørteamet: Alice Morano, Demir Catovic, Iana Peix, Jan Oliver Seidenfuss, Lars Nettemann og Markus Winterholer.
Innholdet og meningene i dette innlegget er fra tredjepartsforfatteren, og AWS er ikke ansvarlig for innholdet eller nøyaktigheten av dette innlegget.
Om forfatterne
Jun Zhang er en løsningsarkitekt basert i Zürich. Han hjelper sveitsiske kunder med å bygge skybaserte løsninger for å oppnå forretningspotensialet deres. Han har en lidenskap for bærekraft og streber etter å løse gjeldende bærekraftsutfordringer med teknologi. Han er også en stor tennisfan og liker å spille brettspill mye.
Mohan Gowda leder maskinlæringsteamet hos AWS Sveits. Han jobber primært med bilkunder for å utvikle innovative AI/ML-løsninger og plattformer for neste generasjons kjøretøy. Før han jobbet med AWS, jobbet Mohan med et globalt ledelseskonsulentfirma med fokus på strategi og analyse. Hans lidenskap ligger i tilkoblede kjøretøy og autonom kjøring.
matthias Egli er utdanningssjef i Sveits. Han er en entusiastisk teamleder med bred erfaring innen forretningsutvikling, salg og markedsføring.
Kemeng Zhang er en ML-ingeniør med base i Zürich. Hun hjelper globale kunder med å designe, utvikle og skalere ML-baserte applikasjoner for å styrke deres digitale evner for å øke forretningsinntektene og redusere kostnadene. Hun er også veldig lidenskapelig opptatt av å skape menneskesentriske applikasjoner ved å utnytte kunnskap fra atferdsvitenskap. Hun liker å drive med vannsport og gå tur med hunder.
Daniele Chiappalupi er nyutdannet fra ETH Zürich. Han liker alle aspekter av programvareutvikling, fra design til implementering, og fra distribusjon til vedlikehold. Han har en dyp lidenskap for AI og gleder seg ivrig til å utforske, bruke og bidra til de siste fremskrittene på feltet. På fritiden elsker han å stå på snowboard i kaldere måneder og spille pick-up basketball når været blir varmt.
- SEO-drevet innhold og PR-distribusjon. Bli forsterket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk deg selv. Tilgang her.
- PlatoAiStream. Web3 Intelligence. Kunnskap forsterket. Tilgang her.
- PlatoESG. Karbon, CleanTech, Energi, Miljø, Solenergi, Avfallshåndtering. Tilgang her.
- PlatoHelse. Bioteknologisk og klinisk etterretning. Tilgang her.
- kilde: https://aws.amazon.com/blogs/machine-learning/innovation-for-inclusion-hack-the-bias-with-amazon-sagemaker/
- : har
- :er
- :ikke
- :hvor
- $OPP
- 100
- 13
- 150
- 17
- 25
- 7
- 8
- 87
- 97
- 990
- a
- I stand
- Om oss
- adgang
- tilgjengelig
- Ifølge
- nøyaktighet
- Oppnå
- oppnådd
- tvers
- Ytterligere
- I tillegg
- fremskritt
- Etter
- mot
- AI
- AI / ML
- alice
- Alle
- tillate
- tillatt
- tillate
- sammen
- også
- Amazon
- Amazon SageMaker
- Amazon Web Services
- an
- analyse
- analytics
- analyserer
- og
- og infrastruktur
- forventer
- noen
- api
- APIer
- app
- Søknad
- søknader
- arkitektur
- ER
- områder
- AS
- aspektet
- At
- forfatter
- auto
- automotive
- autonom
- tilgjengelig
- AWS
- Axios
- tilbake
- basert
- basketball
- BE
- fordi
- før du
- begynte
- være
- Bias
- forutinntatt
- skjevheter
- borde
- Board Games
- kroppen
- Bound
- bred
- bygge
- Bygning
- bygget
- virksomhet
- forretningsutvikling
- knapp
- by
- ring
- Samtaler
- CAN
- evner
- Kategori
- sentrert
- utfordre
- utfordringer
- Endringer
- Sjekker
- valgte
- fjerne
- klubb
- kode
- Koding
- kompleksitet
- omfattende
- gjennomført
- Konfigurasjon
- konfigurert
- tilkoblet
- tilkobling
- Følgelig
- konstant
- konsulent
- innhold
- kontekst
- bidra
- bidrar
- medvirkende
- Praktisk
- Kjerne
- tilsvarer
- Kostnad
- kunne
- skape
- opprettet
- Opprette
- avgjørende
- kuratert
- Gjeldende
- Kunder
- dato
- dyp
- avhengig
- utplassere
- utplassert
- distribusjon
- utforming
- designet
- Til tross for
- detalj
- oppdaget
- Gjenkjenning
- utvikle
- utviklet
- utvikle
- Utvikling
- Enheter
- forskjellig
- digitalt
- direkte
- skjermer
- trekker
- kjøring
- to
- under
- hver enkelt
- ivrig
- lett
- lett
- Kunnskap
- effektivt
- effektivitet
- effektivt
- elementer
- eliminere
- bemyndige
- empowered
- muliggjør
- Endpoint
- ingeniør
- Ingeniørarbeid
- styrke
- sikre
- sikrer
- kom inn
- entusiastisk
- Miljø
- ETH
- Selv
- Event
- Hver
- eksempel
- eksempler
- forventet
- erfaring
- utforske
- Utforske
- omfattende
- rettferdig
- vifte
- FAST
- Trekk
- Egenskaper
- kar
- felt
- Figur
- slutt~~POS=TRUNC
- Firm
- Først
- fleksibilitet
- flyten
- Fokus
- etter
- følger
- Til
- Forward
- funnet
- Fundament
- Gratis
- fra
- funksjon
- videre
- Games
- gateway
- ga
- Kjønn
- genererer
- generasjonen
- få
- gitt
- Giving
- Global
- mål
- Mål
- skal
- grip
- oppgradere
- flott
- grunnarbeid
- hack
- hackathon
- Ha
- he
- hode
- tung
- hjelpe
- hjelper
- her.
- høyest
- Fremhevet
- striper
- hans
- vert
- Hvordan
- HTML
- http
- HTTPS
- stort
- ideell
- identifisere
- if
- iverksette
- gjennomføring
- importere
- forbedre
- in
- inkludering
- Inklusive
- Øke
- individer
- industri
- ulikheter
- Infrastruktur
- iboende
- Innovasjon
- innovative
- inngang
- f.eks
- instrumental
- integrering
- interaktiv
- Interface
- grensesnitt
- inn
- påkaller
- IT
- DET ER
- jan
- Javascript
- jpg
- JSON
- Hold
- kunnskap
- Språk
- siste
- føre
- ledere
- Fører
- LÆRE
- lært
- læring
- Led
- utnytte
- ligger
- lettvekt
- i likhet med
- liker
- knyttet
- Lot
- elsker
- maskin
- maskinlæring
- laget
- Hoved
- vedlikehold
- gjøre
- administrer
- fikk til
- ledelse
- administrerende
- Marketing
- Maksimer
- maksimere
- minimal
- ML
- modell
- modeller
- måneder
- mer
- FORTELLING
- Natur
- nødvendig
- Trenger
- nødvendig
- behov
- nettverk
- Nettverksmuligheter
- Ny
- neste
- Målet
- of
- tilby
- Tilbud
- on
- operasjonell
- Meninger
- Muligheter
- optimalisere
- Alternativ
- or
- rekkefølge
- organisering
- original
- OS
- vår
- side
- deltakere
- deler
- lidenskap
- lidenskapelig
- Utfør
- ytelse
- perioder
- Plattformer
- plato
- Platon Data Intelligence
- PlatonData
- spilt
- spiller
- Post
- potensiell
- potensielt
- kraftig
- tilstedeværelse
- presentere
- presentert
- primært
- prosess
- Bearbeidet
- fagfolk
- prosjekt
- fremme
- egenskaper
- beviste
- gi
- forutsatt
- gir
- offentlig
- kvalitet
- spørsmål
- raskt
- rask
- heller
- RE
- Reager
- lett
- ekte
- sanntids
- motta
- mottatt
- mottar
- nylig
- redusere
- Redusert
- referere
- raffinert
- i slekt
- forble
- fjerne
- anmode
- forespørsler
- påkrevd
- Ressurser
- svar
- ansvarlig
- responsive
- REST
- resultere
- Resultater
- retur
- avkastning
- inntekter
- robust
- robusthet
- Rolle
- Rute
- sagemaker
- salg
- samme
- skalerbarhet
- skalerbar
- Skala
- skalering
- Vitenskap
- sømløs
- seksjoner
- sikre
- se
- seed
- valgt
- utvalg
- sendt
- Serien
- server~~POS=TRUNC
- tjeneste
- Tjenester
- sett
- innstilling
- hun
- Kort
- Vis
- vist
- Viser
- Enkelt
- liten
- Software
- software engineering
- solid
- løsning
- Solutions
- LØSE
- sofistikert
- spesifikk
- Sports
- startet
- jevn
- Steps
- Strategi
- strømlinjeformet
- tilstreber
- Student
- Studenter
- innsending
- send
- innsendt
- I ettertid
- Bærekraft
- bærekraftig
- Bærekraftig utvikling
- SWIFT
- Sveitsiske
- sveits
- rettet mot
- Oppgave
- lag
- lag
- Teknologi
- test
- testet
- tester
- tekst
- enn
- Takk
- Det
- De
- deres
- Dem
- tema
- deretter
- Disse
- tredjeparts
- denne
- De
- tre
- Gjennom
- tid
- til
- verktøy
- transformere
- utløst
- SVING
- to
- typer
- Til syvende og sist
- UN
- forstå
- universitet
- oppdatert
- us
- bruke
- brukt
- Bruker
- Brukererfaring
- Brukergrensesnitt
- Brukere
- ved hjelp av
- bruke
- benyttes
- utnytte
- Verdifull
- ulike
- Kjøretøy
- versjon
- veldig
- av
- Se
- walking
- Varmes opp
- var
- Vann
- Vei..
- we
- Vær
- web
- webtjenester
- VI VIL
- var
- når
- om
- hvilken
- med
- innenfor
- uten
- arbeidet
- arbeid
- virker
- Verksteder
- Du
- Din
- zephyrnet
- Zürich