Det här inlägget är skrivet tillsammans med Thatcher Thornberry från bpx energy.
Faciesklassificering är processen att segmentera litologiska formationer från geologiska data vid borrhålsplatsen. Under borrning erhålls trådstockar som har djupberoende geologisk information. Geologer är utplacerade för att analysera dessa loggdata och bestämma djupintervall för potentiella intressen från de olika typerna av loggdata. Att noggrant klassificera dessa regioner är avgörande för de borrprocesser som följer.
Faciesklassificering med hjälp av AI och maskininlärning (ML) har blivit ett alltmer populärt undersökningsområde för många oljebolag. Många datavetare och affärsanalytiker vid stora oljebolag har inte den nödvändiga kompetensen för att köra avancerade ML-experiment på viktiga uppgifter som faciesklassificering. För att ta itu med detta visar vi dig hur du enkelt förbereder och tränar en klassens bästa ML-klassificeringsmodell på detta problem.
I det här inlägget, riktat främst till dem som redan använder Snowflake, förklarar vi hur du kan importera både tränings- och valideringsdata för en faciesklassificeringsuppgift från Snöflinga in Amazon SageMaker Canvas och sedan träna modellen med en 3+ kategoriprediktionsmodell.
Lösningsöversikt
Vår lösning består av följande steg:
- Ladda upp facies CSV-data från din lokala dator till Snowflake. För det här inlägget använder vi data från följande öppen källkod GitHub repo.
- Inställd AWS identitets- och åtkomsthantering (IAM) roller för Snowflake och skapa en Snowflake-integration.
- Skapa en hemlighet för Snowflake-uppgifter (valfritt, men rekommenderas).
- Importera Snowflake direkt till Canvas.
- Bygg en modell för faciesklassificering.
- Analysera modellen.
- Kör batch- och enkelförutsägelser med multiklassmodellen.
- Dela den utbildade modellen till Amazon SageMaker Studio.
Förutsättningar
Förutsättningar för denna tjänst inkluderar följande:
Ladda upp facies CSV-data till Snowflake
I det här avsnittet tar vi två datauppsättningar med öppen källkod och laddar upp dem direkt från vår lokala dator till en Snowflake-databas. Därifrån satte vi upp ett integrationslager mellan Snowflake och Canvas.
- ladda ner training_data.csv och validation_data_nofacies.csv filer till din lokala dator. Anteckna var du sparade dem.
- Se till att du har rätt Snowflake-uppgifter och har installerat Snowflake CLI-skrivbordsappen och du kan federera in. För mer information, se Logga in på SnowSQL.
- Välj lämpligt Snowflake-lager att arbeta inom, vilket i vårt fall är
COMPUTE_WH
:
- Välj en databas att använda för resten av genomgången:
- Skapa ett namngivet filformat som kommer att beskriva en uppsättning stegvis data att komma åt eller ladda in i Snowflake-tabeller.
Detta kan köras antingen i Snowflake CLI eller i ett Snowflake-kalkylblad i webbapplikationen. För det här inlägget kör vi en SnowSQL-fråga i webbapplikationen. Ser Komma igång med arbetsblad för instruktioner om hur du skapar ett kalkylblad i webbapplikationen Snowflake.
- Skapa en tabell i Snowflake med CREATE-satsen.
Följande sats skapar en ny tabell i det aktuella eller specificerade schemat (eller ersätter en befintlig tabell).
Det är viktigt att datatyperna och den ordning som de visas i är korrekta och stämmer överens med det som finns i de CSV-filer som vi tidigare laddat ner. Om de är inkonsekventa stöter vi på problem senare när vi försöker kopiera data.
- Gör samma sak för valideringsdatabasen.
Observera att schemat skiljer sig lite från träningsdata. Återigen, se till att datatyperna och kolumn- eller funktionsordningarna är korrekta.
- Ladda CSV-datafilen från ditt lokala system till Snowflake-staging-miljön:
- Följande är syntaxen för uttalandet för Windows OS:
- Följande är syntaxen för uttalandet för Mac OS:
Följande skärmdump visar ett exempel på kommando och utdata från SnowSQL CLI.
- Kopiera data till måltabellen Snowflake.
Här laddar vi tränings-CSV-data till måltabellen, som vi skapade tidigare. Observera att du måste göra detta för både utbildnings- och validerings-CSV-filerna, kopiera dem till utbildnings- respektive valideringstabellerna.
- Verifiera att data har laddats in i måltabellen genom att köra en SELECT-fråga (du kan göra detta för både tränings- och valideringsdata):
Konfigurera Snowflake IAM-roller och skapa Snowflake-integrationen
Som en förutsättning för detta avsnitt, vänligen följ den officiella Snowflake-dokumentationen om hur man ckonfigurera en Snowflake Storage Integration för att komma åt Amazon S3.
Hämta IAM-användaren för ditt Snowflake-konto
När du har konfigurerat din Snowflake-lagringsintegration, kör följande DESCRIBE INTEGRATION
kommando för att hämta ARN för IAM-användaren som skapades automatiskt för ditt Snowflake-konto:
Anteckna följande värden från utgången:
- STORAGE_AWS_IAM_USER_ARN – IAM-användaren som skapades för ditt Snowflake-konto
- STORAGE_AWS_EXTERNAL_ID – Det externa ID som behövs för att upprätta en förtroenderelation
Uppdatera IAM-rollförtroendepolicyn
Nu uppdaterar vi förtroendepolicyn:
- Välj på IAM-konsolen roller i navigeringsfönstret.
- Välj den roll du skapade.
- På Förtroendeförhållande fliken, välj Redigera förtroendeförhållandet.
- Ändra policydokumentet som visas i följande kod med DESC STORAGE INTEGRATION-utgångsvärdena som du registrerade i föregående steg.
- Välja Uppdatera förtroendepolicy.
Skapa en extern scen i Snowflake
Vi använder ett externt steg inom Snowflake för att ladda data från en S3-hink på ditt eget konto till Snowflake. I det här steget skapar vi ett externt (Amazon S3) steg som refererar till lagringsintegrationen du skapade. För mer information, se Skapa en S3 Stage.
Detta kräver en roll som har CREATE_STAGE
privilegiet för schemat samt USAGE-behörigheten för lagringsintegreringen. Du kan ge dessa privilegier till rollen som visas i koden i nästa steg.
Skapa scenen med hjälp av CREATE_STAGE
kommando med platshållare för den externa scenen och S3 hink och prefix. Scenen refererar också till ett namngivet filformatobjekt som kallas my_csv_format
:
Skapa en hemlighet för Snowflake-uppgifter
Canvas låter dig använda ARN för en AWS Secrets Manager hemlighet eller ett Snowflake-kontonamn, användarnamn och lösenord för att komma åt Snowflake. Om du tänker använda alternativet Snowflake-kontonamn, användarnamn och lösenord, hoppa till nästa avsnitt, som täcker att lägga till datakällan.
För att skapa en Secrets Manager-hemlighet manuellt, utför följande steg:
- Välj på Secrets Manager-konsolen Lagra en ny hemlighet.
- För Välj hemlig typVälj Andra typer av hemligheter.
- Ange detaljerna om din hemlighet som nyckel-värdepar.
Namnen på nyckeln är skiftlägeskänsliga och måste vara gemener.
Om du föredrar det kan du använda alternativet klartext och ange de hemliga värdena som JSON:
- Välja Nästa.
- För Hemligt namn, lägg till prefixet
AmazonSageMaker
(till exempel är vår hemlighetAmazonSageMaker-CanvasSnowflakeCreds
). - I Tags sektion, lägg till en tagg med nyckeln SageMaker och värde true.
- Välja Nästa.
- Resten av fälten är valfria; välja Nästa tills du har möjlighet att välja HITTA BUTIK för att lagra hemligheten.
- När du har lagrat hemligheten återgår du till Secrets Manager-konsolen.
- Välj hemligheten du just skapat och hämta sedan hemliga ARN.
- Lagra detta i din föredragna textredigerare för användning senare när du skapar Canvas-datakällan.
Importera Snowflake direkt till Canvas
För att importera din facies-datauppsättning direkt till Canvas, utför följande steg:
- Välj på SageMaker-konsolen Amazon SageMaker Canvas i navigeringsfönstret.
- Välj din användarprofil och välj Öppna Canvas.
- Välj på Canvas-målsidan dataset i navigeringsfönstret.
- Välja Importera.
- Klicka på Snöflinga i bilden nedan och sedan direkt "Lägg till anslutning".
- Ange ARN för Snowflake-hemligheten som vi tidigare skapade, lagringsintegreringsnamnet (
SAGEMAKER_CANVAS_INTEGRATION
), och ett unikt anslutningsnamn som du väljer. - Välja Lägg till anslutning.
Om alla poster är giltiga bör du se alla databaser som är associerade med anslutningen i navigeringsfönstret (se följande exempel för NICK_FACIES
).
- Välj
TRAINING_DATA
tabell och välj sedan Förhandsgranska dataset.
Om du är nöjd med data kan du redigera den anpassade SQL-koden i datavisualiseraren.
- Välja Redigera i SQL.
- Kör följande SQL-kommando innan du importerar till Canvas. (Detta förutsätter att databasen anropas
NICK_FACIES
. Ersätt detta värde med ditt databasnamn.)
Något liknande följande skärmdump bör visas i Importera förhandsgranskning sektion.
- Om du är nöjd med förhandsgranskningen, välj Importera datum.
- Välj ett lämpligt datanamn och se till att det är unikt och färre än 32 tecken långt.
- Använd följande kommando för att importera valideringsdataset, med samma metod som tidigare:
Bygg en modell för faciesklassificering
Utför följande steg för att bygga din faciesklassificeringsmodell:
- Välja Modeller i navigeringsfönstret och välj sedan Ny modell.
- Ge din modell ett passande namn.
- På Välja fliken, välj den nyligen importerade träningsdatauppsättningen och välj sedan Välj dataset.
- På Bygga fliken, släpp
WELL_NAME
kolonn.
Vi gör detta eftersom själva brunnsnamnen inte är användbar information för ML-modellen. De är bara godtyckliga namn som vi finner användbara för att skilja mellan själva brunnarna. Namnet vi ger en viss brunn är irrelevant för ML-modellen.
- Välj FACIES som målkolumn.
- Lämna Modell typ as 3+ kategoriförutsägelse.
- Validera data.
- Välja Standardbyggd.
Din sida bör se ut som följande skärmdump precis innan du bygger din modell.
När du väljer Standardbyggd, går modellen in i analysstadiet. Du får en förväntad byggtid. Du kan nu stänga det här fönstret, logga ut från Canvas (för att undvika avgifter) och återgå till Canvas vid ett senare tillfälle.
Analysera faciesklassificeringsmodellen
Utför följande steg för att analysera modellen:
- Federera tillbaka till Canvas.
- Hitta din tidigare skapade modell, välj utsiktOch välj sedan Analysera.
- På Översikt fliken kan du se vilken effekt enskilda funktioner har på modellens utdata.
- I den högra rutan kan du visualisera vilken inverkan en given funktion (X-axel) har på förutsägelsen av varje faciesklass (Y-axel).
Dessa visualiseringar kommer att ändras beroende på vilken funktion du väljer. Vi uppmuntrar dig att utforska den här sidan genom att cykla igenom alla 9 klasser och 10 funktioner.
- På Poängräkning fliken kan vi se den förutspådda vs. faktiska faciesklassificeringen.
- Välja Avancerade mätvärden för att se F1-poäng, genomsnittlig noggrannhet, precision, återkallelse och AUC.
- Återigen uppmuntrar vi att titta på alla olika klasser.
- Välja Download för att ladda ner en bild till din lokala dator.
I följande bild kan vi se ett antal olika avancerade mätvärden, till exempel F1-poängen. I statistisk analys förmedlar F1-poängen balansen mellan precisionen och återkallandet av en klassificeringsmodell och beräknas med hjälp av följande ekvation: 2*((Precision * Recall)/ (Precision + Recall))
.
Kör batch- och enkelförutsägelse med hjälp av multi-class facies-klassificeringsmodellen
För att köra en förutsägelse, slutför följande steg:
- Välja Enkel förutsägelse för att ändra funktionsvärdena efter behov, och få en faciesklassificering returnerad till höger på sidan.
Du kan sedan kopiera prediktionsdiagrambilden till ditt urklipp och även ladda ner prognoserna till en CSV-fil.
- Välja Batch-förutsägelse och välj sedan Välj dataset för att välja den valideringsdatauppsättning som du tidigare importerade.
- Välja Skapa förutsägelser.
Du omdirigeras till förutsäga sida, där status ska läsa Genererar förutsägelser i några sekunder.
När förutsägelserna har returnerats kan du förhandsgranska, ladda ner eller ta bort förutsägelserna genom att välja alternativmenyn (tre vertikala punkter) bredvid förutsägelserna.
Följande är ett exempel på en förhandsvisning av prognoser.
Dela en utbildad modell i Studio
Du kan nu dela den senaste versionen av modellen med en annan Studio-användare. Detta gör att datavetare kan granska modellen i detalj, testa den, göra ändringar som kan förbättra noggrannheten och dela den uppdaterade modellen med dig.
Möjligheten att dela ditt arbete med en mer teknisk användare inom Studio är en nyckelfunktion i Canvas, med tanke på nyckelskillnaden mellan ML-personas arbetsflöden. Notera det starka fokuset här på samarbete mellan tvärfunktionella team med olika tekniska förmågor.
- Välja Dela att dela modellen.
- Välj vilken modellversion du vill dela.
- Ange Studio-användaren att dela modellen med.
- Lägg till en valfri anteckning.
- Välja Dela.
Slutsats
I det här inlägget visade vi hur du med bara några få klick i Amazon SageMaker Canvas kan förbereda och importera dina data från Snowflake, sammanfoga dina datauppsättningar, analysera uppskattad noggrannhet, verifiera vilka kolumner som har effekt, träna den bäst presterande modellen och generera nya individer. eller batch-förutsägelser. Vi är glada över att höra din feedback och hjälpa dig att lösa ännu fler affärsproblem med ML. För att bygga dina egna modeller, se Komma igång med att använda Amazon SageMaker Canvas.
Om författarna
Nick mccarthy är en maskininlärningsingenjör i AWS Professional Services-teamet. Han har arbetat med AWS-kunder i olika branscher, inklusive hälsovård, finans, sport, telekom och energi för att påskynda deras affärsresultat genom användning av AI/ML. Nick arbetade med bpx datavetenskapsteam och avslutade nyligen med att bygga bpx:s maskininlärningsplattform på Amazon SageMaker.
Thatcher Thornberry är en maskininlärningsingenjör på bpx Energy. Han stödjer bpx:s dataforskare genom att utveckla och underhålla företagets kärndatavetenskapsplattform i Amazon SageMaker. På fritiden älskar han att hacka på personliga kodningsprojekt och spendera tid utomhus med sin fru.
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- PlatoAiStream. Web3 Data Intelligence. Kunskap förstärkt. Tillgång här.
- Minting the Future med Adryenn Ashley. Tillgång här.
- Köp och sälj aktier i PRE-IPO-företag med PREIPO®. Tillgång här.
- Källa: https://aws.amazon.com/blogs/machine-learning/prepare-training-and-validation-dataset-for-facies-classification-using-snowflake-integration-and-train-using-amazon-sagemaker-canvas/
- : har
- :är
- :var
- $UPP
- 10
- 100
- 11
- 12
- 14
- 17
- 50
- 7
- 8
- 9
- a
- förmågor
- förmåga
- accelerera
- tillgång
- i enlighet med detta
- Konto
- noggrannhet
- exakt
- tvärs
- Handling
- faktiska
- lägga till
- tillsats
- adress
- avancerat
- igen
- AI
- AI / ML
- syftar
- rikta
- Alla
- tillåter
- tillåter
- redan
- också
- amason
- Amazon SageMaker
- Amazon SageMaker Canvas
- Amazon Web Services
- an
- analys
- analytiker
- analysera
- och
- Annan
- vilken som helst
- app
- visas
- Ansökan
- lämpligt
- ÄR
- OMRÅDE
- AS
- associerad
- At
- automatiskt
- genomsnitt
- undvika
- AWS
- AWS professionella tjänster
- Axis
- tillbaka
- Balansera
- BE
- därför att
- blir
- varit
- innan
- nedan
- BÄST
- mellan
- båda
- SLUTRESULTAT
- Byggnad
- företag
- men
- by
- kallas
- KAN
- canvas
- Vid
- Kategori
- byta
- Förändringar
- tecken
- avgifter
- Diagram
- Välja
- välja
- klass
- klasser
- klassificering
- klienter
- Stänga
- koda
- Kodning
- samverkan
- Kolumn
- Kolonner
- Företag
- Företagets
- fullborda
- tillstånd
- anslutning
- Konsol
- kopiering
- Kärna
- korrekt
- omfattar
- skapa
- skapas
- skapar
- referenser
- kritisk
- tvärfunktionella team
- Aktuella
- beställnings
- datum
- datavetenskap
- Databas
- databaser
- datauppsättningar
- beroende
- utplacerade
- djup
- beskriva
- desktop
- detalj
- detaljer
- Bestämma
- utveckla
- olika
- olika
- direkt
- skilja på
- do
- dokumentera
- dokumentation
- inte
- ladda ner
- Drop
- under
- varje
- Tidigare
- lätt
- redaktör
- effekt
- antingen
- uppmuntra
- energi
- ingenjör
- säkerställa
- säkerställa
- ange
- Går in
- Miljö
- etablera
- beräknad
- Eter (ETH)
- Även
- exempel
- exciterade
- befintliga
- förväntat
- experiment
- Förklara
- utforska
- extern
- f1
- Leverans
- Funktioner
- återkoppling
- få
- färre
- Fält
- Fil
- Filer
- finansiering
- hitta
- Fokus
- följer
- efter
- För
- format
- bildning
- hittade
- Fri
- från
- generera
- skaffa sig
- GitHub
- Ge
- ges
- bevilja
- hacka
- lyckligt
- Har
- har
- he
- hälso-och sjukvård
- höra
- hjälpa
- här.
- hans
- Hur ser din drömresa ut
- How To
- html
- http
- HTTPS
- IAM
- ID
- Identitet
- if
- bild
- blir omedelbart
- Inverkan
- effektfull
- importera
- med Esport
- importera
- förbättra
- in
- innefattar
- Inklusive
- alltmer
- individuellt
- industrier
- informationen
- installerad
- instruktioner
- integrering
- avser
- intresse
- in
- Undersökningen
- problem
- IT
- delta
- jpg
- json
- bara
- Nyckel
- landning
- målsida
- Large
- senare
- senaste
- lager
- inlärning
- liten
- läsa in
- läser in
- lokal
- läge
- log
- Lång
- se
- älskar
- mac
- Maskinen
- maskininlärning
- Majors
- göra
- chef
- manuellt
- många
- Maj..
- Meny
- endast
- metod
- Metrics
- ML
- modell
- modeller
- modifiera
- mer
- måste
- namn
- Som heter
- namn
- Navigering
- nödvändigt för
- behövs
- Nya
- Nästa
- Notera
- nu
- antal
- objektet
- erhållna
- of
- tjänsteman
- Olja
- on
- öppen källkod
- Alternativet
- Tillbehör
- or
- beställa
- ordrar
- OS
- vår
- ut
- utfall
- utomhus
- produktion
- egen
- P&E
- sida
- par
- panelen
- särskilt
- Lösenord
- utför
- personlig
- Oformatterad text
- plattform
- plato
- Platon Data Intelligence
- PlatonData
- snälla du
- policy
- Populära
- Inlägg
- potentiell
- Precision
- förutsagda
- förutsägelse
- Förutsägelser
- föredra
- föredragen
- Förbered
- Förhandsvisning
- föregående
- tidigare
- primärt
- Principal
- privilegium
- privilegier
- Problem
- problem
- process
- processer
- professionell
- Profil
- projekt
- förutsatt
- allmän
- Läsa
- nyligen
- registreras
- referenser
- regioner
- ersätta
- Kräver
- REST
- avkastning
- översyn
- höger
- Roll
- roller
- Körning
- rinnande
- sagemaker
- Samma
- Vetenskap
- vetenskapsmän
- göra
- sekunder
- Secret
- §
- se
- Tjänster
- in
- Dela
- skall
- show
- visade
- visas
- Visar
- liknande
- enda
- kompetens
- databas för snöflingor
- lösning
- LÖSA
- Källa
- specificerade
- spendera
- Sporter
- SQL
- Etapp
- staging
- igång
- .
- statistisk
- Steg
- Steg
- förvaring
- lagra
- stark
- studio
- Senare
- Framgångsrikt
- sådana
- lämplig
- Stöder
- syntax
- system
- bord
- MÄRKA
- Ta
- Målet
- uppgift
- uppgifter
- grupp
- lag
- Teknisk
- telekom
- testa
- än
- den där
- Smakämnen
- deras
- Dem
- sig själva
- sedan
- Där.
- Dessa
- de
- detta
- de
- tre
- Genom
- tid
- till
- Tåg
- tränad
- Utbildning
- sann
- Litar
- prova
- två
- Typ
- typer
- unika
- Uppdatering
- uppdaterad
- URL
- Användning
- användning
- Användare
- Användarnamn
- med hjälp av
- godkännande
- värde
- Värden
- olika
- verifiera
- version
- vertikal
- utsikt
- visning
- visualisera
- vs
- genomgång
- Warehouse
- var
- we
- webb
- webbapplikation
- webbservice
- VÄL
- Wells
- Vad
- Vad är
- när
- som
- VEM
- fru
- kommer
- fönster
- med
- inom
- Arbete
- arbetade
- arbetsflöden
- arbetssätt
- X
- dig
- Din
- zephyrnet