Generatiivinen tiedustelu

Innovaatio sisällyttämiseen: Hack.The.Bias Amazon SageMakerin kanssa | Amazon Web Services

Treffi:

Tämä viesti on kirjoitettu yhdessä Daniele Chiappalupin kanssa, joka osallistui ETH Zürichin AWS-opiskelija Hackathon -tiimiin.

Jokainen voi helposti aloittaa koneoppimisen (ML) käytön Amazon SageMaker JumpStart. Tässä viestissä näytämme sinulle, kuinka yliopiston Hackathon-tiimi käytti SageMaker JumpStartia rakentaakseen nopeasti sovelluksen, joka auttaa käyttäjiä tunnistamaan ja poistamaan harhoja.

"Amazon SageMaker oli tärkeä osa projektiamme. Se teki esikoulutetun Flan-instanssin käyttöönoton ja hallinnan helpoksi, mikä tarjosi meille vankan perustan sovelluksellemme. Sen automaattinen skaalausominaisuus osoittautui ratkaisevan tärkeäksi vilkkaan liikenteen aikana ja varmisti, että sovelluksemme pysyi reagoivana ja käyttäjät saivat tasaisen ja nopean harhaanalyysin. Antamalla meille mahdollisuuden siirtää Flan-mallin kyselyn raskaan tehtävän hallinnoituun palveluun, pystyimme pitämään sovelluksemme kevyenä ja nopeana, mikä parantaa käyttökokemusta eri laitteissa. SageMakerin ominaisuudet antoivat meille mahdollisuuden maksimoida aikamme hackathonissa, jolloin voimme keskittyä kehotteiden ja sovelluksen optimointiin mallin suorituskyvyn ja infrastruktuurin hallinnan sijaan.

– Daniele Chiappalupi, ETH Zürichin AWS Student Hackathon -joukkueen osallistuja. 

Ratkaisun yleiskatsaus

Hackathonin teemana on edistää YK:n kestävien tavoitteiden saavuttamista tekoälyteknologian avulla. Kuten seuraavasta kuvasta näkyy, Hackathonissa rakennettu sovellus edistää kolmea kestävän kehityksen tavoitetta (laadukas koulutus, sukupuoleen perustuvan syrjinnän kohdistaminen ja eriarvoisuuden vähentäminen) auttamalla käyttäjiä tunnistamaan ja poistamaan harhaa tekstistään oikeudenmukaisuuden edistämiseksi. ja kattava kieli.

Kuten seuraavassa kuvakaappauksessa näkyy, tekstin antamisen jälkeen sovellus luo uuden version, jossa ei ole rotuun, etniseen tai sukupuoleen liittyviä ennakkoluuloja. Lisäksi se korostaa syöttötekstisi tietyt osat, jotka liittyvät kuhunkin harhaluokkaan.

Seuraavassa kaaviossa esitetyssä arkkitehtuurissa käyttäjät syöttävät tekstiä suhtautua-pohjainen verkkosovellus, joka laukaisee Amazon API -yhdyskäytävä, joka puolestaan ​​kutsuu an AWS Lambda toiminto riippuen käyttäjän tekstin harhasta. Lambda-funktio kutsuu Flan-mallin päätepistettä SageMaker JumpStartissa, joka palauttaa puolueettoman tekstituloksen samaa reittiä pitkin takaisin käyttöliittymäsovellukseen.

Sovelluksen kehitysprosessi

Tämän sovelluksen kehitysprosessi oli iteratiivinen ja keskittyi kahteen pääalueeseen: käyttöliittymään ja ML-mallin integrointiin.

Valitsimme Reactin käyttöliittymäkehitykseen sen joustavuuden, skaalautuvuuden ja tehokkaiden työkalujen vuoksi interaktiivisten käyttöliittymien luomiseen. Sovelluksemme luonteen – käyttäjän syötteiden käsittelyn ja hienostuneiden tulosten esittämisen – huomioon ottaen Reactin komponenttipohjainen arkkitehtuuri osoittautui ihanteelliseksi. Reactin avulla pystyimme rakentamaan tehokkaasti yksisivuisen sovelluksen, jonka avulla käyttäjät voivat lähettää tekstiä ja nähdä puolueettomia tuloksia ilman jatkuvaa sivun päivitystä.

Käyttäjän kirjoittama teksti piti käsitellä tehokkaalla kielimallilla, jotta se voi tutkia vääristymiä. Valitsimme Flanin sen kestävyyden, tehokkuuden ja skaalautuvuuden vuoksi. Flanin hyödyntämiseksi käytimme SageMaker JumpStartia, kuten seuraavassa kuvakaappauksessa näkyy. Amazon Sage Maker helpotti esikoulutetun Flan-instanssin käyttöönottoa ja hallintaa, jolloin voimme keskittyä kehotteiden ja kyselyjemme optimointiin mallin suorituskyvyn ja infrastruktuurin hallinnan sijaan.

Flan-mallin yhdistäminen käyttöliittymäsovellukseemme vaati vankan ja turvallisen integraation, joka saavutettiin Lambdan ja API Gatewayn avulla. Lambdalla loimme palvelimettoman toiminnon, joka kommunikoi suoraan SageMaker-mallimme kanssa. Sitten luomme API Gatewayn avulla turvallisen, skaalautuvan ja helposti saatavilla olevan päätepisteen React-sovelluksellemme Lambda-toiminnon käynnistämiseksi. Kun käyttäjä lähetti tekstiä, sovellus laukaisi sarjan API-kutsuja yhdyskäytävälle – ensin tunnistaakseen, onko olemassa harhaa, ja sitten tarvittaessa lisäkyselyitä harhan tunnistamiseksi, paikallistamiseksi ja neutraloimiseksi. Kaikki nämä pyynnöt reititettiin Lambda-toiminnon kautta ja sitten SageMaker-malliimme.

Viimeinen tehtävämme kehitysprosessissa oli kehotteiden valinta kielimallin kyselyä varten. Tässä CrowS-Pairs-tietojoukolla oli tärkeä rooli, koska se tarjosi meille todellisia esimerkkejä puolueellisesta tekstistä, jota käytimme pyyntöjemme hienosäätöön. Valitsimme kehotteet iteratiivisella prosessilla, jonka tavoitteena oli maksimoida harhatunnistuksen tarkkuus tässä tietojoukossa.

Prosessin päätteeksi havaitsimme saumattoman toiminnan sujuneen valmiissa sovelluksessa. Prosessi alkaa käyttäjän lähettämällä tekstiä analysoitavaksi, joka lähetetään sitten POST-pyynnön kautta suojattuun API-yhdyskäytäväpäätepisteeseemme. Tämä laukaisee Lambda-toiminnon, joka kommunikoi SageMaker-päätepisteen kanssa. Tämän seurauksena Flan-malli saa sarjan kyselyjä. Ensimmäinen tarkistaa, onko tekstissä vääristymiä. Jos harhoja havaitaan, lisäkyselyitä käytetään näiden puolueellisten elementtien paikallistamiseksi, tunnistamiseksi ja neutraloimiseksi. Tulokset palautetaan sitten samaa polkua pitkin – ensin Lambda-toimintoon, sitten API-yhdyskäytävän kautta ja lopulta takaisin käyttäjälle. Jos alkuperäisessä tekstissä oli vinoa, käyttäjä saa kattavan analyysin, joka osoittaa havaittujen vääristymien tyypit, olivatpa ne rotuun, etniseen tai sukupuoleen liittyviä. Tietyt tekstin osat, joissa näitä vääristymiä havaittiin, on korostettu, mikä antaa käyttäjille selkeän kuvan tehdyistä muutoksista. Tämän analyysin ohella heidän tekstistään esitetään uusi, puolueeton versio, joka muuttaa tehokkaasti mahdollisesti puolueellisen panoksen osallistavammaksi kertomukseksi.

Seuraavissa osioissa kerromme yksityiskohtaisesti vaiheet tämän ratkaisun toteuttamiseksi.

Aseta React-ympäristö

Aloitimme perustamalla kehitysympäristömme Reactille. Uuden React-sovelluksen käynnistämiseen minimaalisella konfiguraatiolla käytimme create-react-app:

npx create-react-app my-app

Rakenna käyttöliittymä

Reactin avulla suunnittelimme käyttäjille yksinkertaisen käyttöliittymän tekstin syöttämiseen. Siinä on lähetyspainike, nollauspainike ja päällekkäiset näytöt käsiteltyjen tulosten esittämiseksi, kun ne ovat saatavilla.

Käynnistä Flan-malli SageMakerissa

Käytimme SageMakeria luodaksemme valmiiksi koulutetun Flan-kielimallin ilmentymän, jossa on päätepiste reaaliaikaista päättelyä varten. Mallia voidaan käyttää mitä tahansa JSON-rakenteista hyötykuormaa vastaan, kuten seuraava:

payload = { text_inputs: "text_inputs", max_length: <max_length>, num_return_sequences: <num_return_sequences>, top_k: <top_k>, top_p: <top_p>, do_sample: <do_sample>, num_beams: <num_beams>, seed: <seed>, };

Luo Lambda-toiminto

Kehitimme Lambda-funktion, joka oli suoraan vuorovaikutuksessa SageMaker-päätepisteemme kanssa. Toiminto on suunniteltu vastaanottamaan pyyntö käyttäjän tekstillä, välittämään se SageMaker-päätepisteeseen ja palauttamaan tarkennetut tulokset seuraavan koodin mukaisesti (ENDPOINT_NAME määritettiin SageMaker-ilmentymän päätepisteeksi):

import os
import io
import boto3
import json
import csv # grab environment variables
ENDPOINT_NAME = os.environ['ENDPOINT_NAME']
runtime= boto3.client('runtime.sagemaker') def lambda_handler(event, context): data = json.loads(json.dumps(event)) payload = json.dumps(data['data']).encode('utf-8') query_response = runtime.invoke_endpoint( EndpointName=ENDPOINT_NAME, ContentType='application/json', Body=payload) response_dict = json.loads(query_response['Body'].read()) return response_dict['generated_texts']

Määritä API-yhdyskäytävä

Määritimme API Gatewayssa uuden REST API:n ja linkitimme sen Lambda-toimintoomme. Tämä yhteys antoi React-sovelluksemme tehdä HTTP-pyyntöjä API-yhdyskäytävälle, mikä myöhemmin laukaisi Lambda-toiminnon.

Integroi React-sovellus API:n kanssa

Päivitimme React-sovelluksen tekemään POST-pyynnön API-yhdyskäytävälle, kun lähetyspainiketta napsautettiin, jolloin pyynnön runko on käyttäjän teksti. JavaScript-koodi, jota käytimme API-kutsun suorittamiseen, on seuraava (REACT_APP_AWS_ENDPOINT vastaa Lambda-kutsuun sidottua API-yhdyskäytävän päätepistettä):

const makeAWSApiCall = ( textInputs, maxLength, numReturnSequences, topK, topP, doSample, numBeams ) => { const axiosRequestUrl = `${process.env.REACT_APP_AWS_ENDPOINT}`; const requestData = { text_inputs: textInputs, max_length: maxLength, num_return_sequences: numReturnSequences, top_k: topK, top_p: topP, do_sample: doSample, num_beams: numBeams, seed: 8, }; return axios.post(axiosRequestUrl, { data: requestData }); };

Optimoi pikavalinta

Parantaaksemme harhan havaitsemisen tarkkuutta, testasimme erilaisia ​​kehotteita CrowS-Pairs-tietojoukossa. Tämän iteratiivisen prosessin kautta valitsimme kehotteet, jotka antoivat meille korkeimman tarkkuuden.

Ota käyttöön ja testaa React-sovellus Vercelissä

Sovelluksen rakentamisen jälkeen otimme sen käyttöön Vercelissä, jotta se olisi julkisesti saatavilla. Teimme laajoja testejä varmistaaksemme, että sovellus toimii odotetusti käyttöliittymästä kielimallin vastauksiin.

Nämä vaiheet loivat pohjan sovelluksemme luomiselle tekstin analysointia ja painotusten poistamista varten. Prosessin luontaisesta monimutkaisuudesta huolimatta SageMakerin, Lambdan ja API Gatewayn kaltaisten työkalujen käyttö virtaviivaisti kehitystä, mikä antoi meille mahdollisuuden keskittyä projektin ydintavoitteeseen eli tekstin harhojen tunnistamiseen ja poistamiseen.

Yhteenveto

SageMaker JumpStart tarjoaa kätevän tavan tutustua SageMakerin ominaisuuksiin ja ominaisuuksiin. Se tarjoaa kuratoituja yksivaiheisia ratkaisuja, esimerkkimuistikirjoja ja käyttöönotettavia esikoulutettuja malleja. Näiden resurssien avulla voit nopeasti oppia ja ymmärtää SageMakerin. Lisäksi sinulla on mahdollisuus hienosäätää malleja ja ottaa ne käyttöön omien tarpeidesi mukaan. Pääsy JumpStartiin on saatavilla kautta Amazon SageMaker Studio tai ohjelmallisesti käyttämällä SageMaker-sovellusliittymiä.

Tässä viestissä opit kuinka opiskelija Hackathon-tiimi kehitti ratkaisun lyhyessä ajassa SageMaker JumpStartin avulla, joka osoittaa AWS:n ja SageMaker JumpStartin potentiaalin mahdollistaa kehittyneiden tekoälyratkaisujen nopean kehittämisen ja käyttöönoton, jopa pienille ryhmille tai yksittäisille henkilöille.

Lisätietoja SageMaker JumpStartin käytöstä on kohdassa Ohjeiden hienosäätö FLAN T5 XL:lle Amazon SageMaker Jumpstartilla ja Zero-shot-kehotus Flan-T5-pohjamallille Amazon SageMaker JumpStartissa.

ETH Analytics Club isännöi ETH Datathonia, AI/ML-hackathonia, johon osallistuu yli 150 osallistujaa ETH Zürichistä, Zürichin yliopistosta ja EPFL:stä. Tapahtumassa on alan johtajien vetämiä työpajoja, 24 tunnin koodaushaaste ja arvokkaita verkostoitumismahdollisuuksia opiskelutovereiden ja alan ammattilaisten kanssa. Suuret kiitokset ETH Hackathon -tiimille: Daniele Chiappalupi, Athina Nisioti ja Francesco Ignazio Re sekä muu AWS:n järjestäjätiimi: Alice Morano, Demir Catovic, Iana Peix, Jan Oliver Seidenfuss, Lars Nettemann ja Markus Winterholer.

Tämän viestin sisältö ja mielipiteet ovat kolmannen osapuolen kirjoittajan omia, eikä AWS ole vastuussa tämän viestin sisällöstä tai oikeellisuudesta.


Tietoja kirjoittajista

Kesäkuu Zhang on ratkaisuarkkitehti Zürichissä. Hän auttaa sveitsiläisiä asiakkaita suunnittelemaan pilvipohjaisia ​​ratkaisuja saavuttamaan liiketoimintapotentiaalinsa. Hänellä on intohimo kestävään kehitykseen ja hän pyrkii ratkaisemaan ajankohtaisia ​​kestävän kehityksen haasteita teknologian avulla. Hän on myös valtava tennisfani ja nauttii paljon lautapeleistä.

Mohan Gowda johtaa koneoppimistiimiä AWS Sveitsissä. Hän työskentelee ensisijaisesti Automotive-asiakkaiden kanssa kehittääkseen innovatiivisia AI/ML-ratkaisuja ja -alustoja seuraavan sukupolven ajoneuvoille. Ennen kuin hän työskenteli AWS:n kanssa, Mohan työskenteli maailmanlaajuisen liikkeenjohdon konsulttiyrityksen kanssa keskittyen strategiaan ja analytiikkaan. Hänen intohimonsa piilee yhdistetyissä ajoneuvoissa ja autonomisessa ajamisessa.

ruokathias Egli on Sveitsin koulutuspäällikkö. Hän on innostunut tiiminvetäjä, jolla on laaja kokemus liiketoiminnan kehittämisestä, myynnistä ja markkinoinnista.

Kemeng Zhang on ML-insinööri Zürichissä. Hän auttaa maailmanlaajuisia asiakkaita suunnittelemaan, kehittämään ja skaalaamaan ML-pohjaisia ​​sovelluksia vahvistaakseen digitaalisia kykyjään liiketoiminnan tulojen lisäämiseksi ja kustannusten alentamiseksi. Hän on myös erittäin intohimoinen luomaan ihmiskeskeisiä sovelluksia hyödyntämällä käyttäytymistieteestä saatua tietoa. Hän harrastaa vesiurheilua ja koirien ulkoiluttamista.

Daniele Chiappalupi on äskettäin valmistunut ETH Zürichistä. Hän nauttii ohjelmistosuunnittelun kaikista osa-alueista suunnittelusta toteutukseen ja käyttöönotosta ylläpitoon. Hänellä on syvä intohimo tekoälyyn ja hän odottaa innokkaasti tutkivansa, hyödyntävänsä ja osallistuvansa alan uusimpiin saavutuksiin. Vapaa-ajallaan hän harrastaa lumilautailua kylminä kuukausina ja koripallon pelaamista sään lämmetessä.

spot_img

Uusin älykkyys

spot_img