Het trainen van AI-modellen zit in de lift als een van de potentiële toepassingen van AI in data science. Meer specifiek kun je machine learning doen met Snowflake Cortex AI.
In deze gids bespreken we wat Snowflake Cortex AI is en wat je ermee kunt. Daarnaast geven we een eenvoudige tutorial om te starten met machine learning en AI met Python en wat SQL. Ben je nieuw bij Snowflake? Bekijk dan onze Introduction to Snowflake-cursus om snel bij te zijn.
Wat is Snowflake Cortex AI?
Snowflake Cortex AI is een krachtige functie in de Snowflake AI Data Cloud, ontworpen om machine learning (ML)-operaties rechtstreeks binnen de Snowflake-omgeving te faciliteren.
Het maakt naadloze integratie van Python-ML-modellen met Snowflake-data mogelijk, zodat organisaties inzichten, voorspellingen en geavanceerde analyses uit grote datasets kunnen halen terwijl ze gebruikmaken van de cloudinfrastructuur.
Laten we nu kijken naar de voordelen van deze tools samen gebruiken.
Voordelen van het combineren van Snowflake Cortex AI met Python
Een paar belangrijke voordelen van Snowflake Cortex AI zijn:
Python-integratie: Hiermee kun je Python-ML-modellen rechtstreeks binnen de compute-omgeving van Snowflake uitvoeren.
Modelhosting: Modellen kunnen worden gehost en ingezet voor inferentie.
Geen dataverplaatsing: Omdat de modellen binnen de Snowflake-omgeving draaien, hoef je geen grote datasets naar externe servers te verplaatsen.
Use-cases en toepassingen
Ten eerste is Snowflake Cortex AI perfect voor bedrijven die hun data science-capaciteiten willen verbeteren zonder grote investeringen in resources. Met de no-code-omgeving kunnen zelfs niet-technische gebruikers eenvoudig ML-modellen ontwikkelen en implementeren.
Dit is vooral handig voor kleinere bedrijven of startups die misschien niet het budget hebben om een team van data scientists in te huren of in dure LLM’s te investeren.
Ten tweede kunnen gebruikers door Python in de compute-omgeving van Snowflake te integreren profiteren van de enorme bibliotheek met beschikbare Python-machinelearningalgoritmes en -tools. Zo kunnen ze geavanceerdere en nauwkeurigere modellen maken zonder nieuwe programmeertalen te hoeven leren.
Tot slot profiteren bedrijven die al met de Snowflake-omgeving werken optimaal van Cortex AI, omdat het naadloos integreert met hun bestaande datawarehouse, waardoor extra infrastructuur of datamigratie overbodig is.
Met Snowflake Cortex AI kunnen bedrijven machine learning gemakkelijk en efficiënt in hun bedrijfsprocessen implementeren.
Aan de slag met Snowflake Cortex AI
In deze tutorial doorlopen we het opzetten van een machinelearning-pijplijn met Python en Snowflake Cortex AI.
Vereisten
Voordat je met ML aan de slag gaat met Snowflake Cortex AI, zorg dat je aan de volgende vereisten voldoet:
Een Snowflake-account instellen
Je hebt eerst een Snowflake-instantie nodig waar je data wordt opgeslagen en verwerkt. Je kunt je aanmelden op de Snowflake-website.
Vul in het aanmeldformulier al je accountgegevens in en let erop dat je op de tweede pagina de volgende selecties maakt. Kies voor deze tutorial Standard Edition en Amazon Web Services voor de eenvoud en reproduceerbaarheid. Kies voor de server US West (Oregon) voor de beste selectie LLM-functies.
Zodra je deze opties hebt geselecteerd, klik je op Get Started om de activeringsmail te ontvangen. Ga naar je mail om je account te activeren en je Snowflake-account is klaar voor gebruik.
Softwarevereisten
Vervolgens moet je ook aan een paar softwarevereisten voldoen.
Hier is een eenvoudige lijst met wat je nodig hebt:
Python-omgeving: Python 3.x met de nodige pakketten geïnstalleerd.
Snowflake: Snowflake moet via de terminal worden geïnstalleerd om je Python-omgeving met je Snowflake-account te verbinden.
VS Code: Een IDE die geschikt is voor Python. Andere alternatieven zijn DataLab, Google Colab of Jupyter Notebooks.
Voordat je met een analyse begint, installeer je alle relevante pakketten zodat je codeeromgeving klaar is.
Om de benodigde pakketten te installeren, kun je pip gebruiken:
Nadat je de libraries hebt geïnstalleerd, moet je je werkmap en bestanden instellen om te beginnen.
Ik heb een map gemaakt met de naam Cortex AI Tutorial en een nieuw .envbestand toegevoegd met de volgende informatie:
SNOWFLAKE_ACCOUNT = "<YOUR_ACCOUNT>" # eg. XXXX-XXXX
SNOWFLAKE_USER = "<YOUR_USER>"
SNOWFLAKE_USER_PASSWORD = "<YOUR_PASSWORD>"Mogelijk gemaakt door
Nadat je je accountgegevens hebt ingevoerd, sla je het bestand op en maak je in dezelfde map een Python- of Jupyter Notebook-bestand aan.
Verbinden met Snowflake
Nu je alles hebt ingesteld, koppelen we je Python-omgeving aan Snowflake.
Open je Python-bestand en importeer alle benodigde libraries. Dit is de code daarvoor:
import os
from dotenv import load_dotenv
from snowflake.snowpark import Session
from snowflake.cortex import Summarize, Complete, ExtractAnswer, Sentiment, Translate, EmbedText768Mogelijk gemaakt door
Vervolgens moet je de variabelen laden die je eerder in het .env-bestand hebt opgeslagen. Dit levert Snowflake je accountgegevens om in te loggen en functies te gebruiken.
# Loads environment variables from .env
load_dotenv()
connection_params ={"account": os.environ["SNOWFLAKE_ACCOUNT"],"user": os.environ["SNOWFLAKE_USER"],"password": os.environ["SNOWFLAKE_USER_PASSWORD"],}Mogelijk gemaakt door
Zodra je met de variabelen verbinding hebt gemaakt, moet je een Snowflake-sessie opzetten. Dit is het object dat al je verzoeken afhandelt.
# Creates a Snowflake session
snowflake_session = Session.builder.configs(connection_params).create()Mogelijk gemaakt door
Snowflake Cortex AI LLM-functies
Met de LLM-functies binnen Cortex AI kun je de kracht van LLM’s benutten zonder zelf AI-modellen te hoeven ontwikkelen.
Deze functies bieden de gemiddelde analytics-gebruiker AI-gestuurde analyses via enkele basistaken.
Dit zijn de functies die Snowflake Cortex heeft:
1. SUMMARIZE
De summarize-functie wordt gebruikt om op basis van de ingevoerde tekst een samenvatting te genereren.
Hij gebruikt LLM’s om kerninformatie te identificeren en in verkorte vorm te presenteren.
Als je bijvoorbeeld een lang tekstdocument hebt en snel een overzicht van de inhoud wilt, kun je de summarize-functie gebruiken om een korte samenvatting te krijgen met de belangrijkste punten. Dit bespaart tijd en maakt snellere analyse van grote hoeveelheden data mogelijk.
De invoertaal is op het moment van schrijven beperkt tot Engels.
Zie de onderstaande code ter referentie:
# Defines the Summarize LLM Functiondefsummarize(user_text):
summary = Summarize(text=user_text, session=snowflake_session)return summaryMogelijk gemaakt door
2. TRANSLATE
De translate-functie wordt gebruikt om tekst van de ene taal naar de andere om te zetten.
Hij gebruikt machinelearning-algoritmes en statistische modellen om de tekst nauwkeurig te vertalen.
Dit is handig wanneer je met data of documenten in verschillende talen werkt, omdat het communicatie en begrip vergemakkelijkt.
Als je bijvoorbeeld een rapport in het Spaans hebt en dit aan een Engelstalig publiek moet presenteren, kun je de translate-functie gebruiken om de tekst snel om te zetten. Dit maakt handmatige vertaling overbodig en bespaart tijd.
Zie de onderstaande code ter referentie:
# Defines the Translate LLM Functiondeftranslate(user_text):
translation = Translate(
text=user_text, from_language="en", to_language="ko", session=snowflake_session
)return translationMogelijk gemaakt door
3. COMPLETE
De complete-functie is een allroundfunctie die kan worden gebruikt om specifieke taken uit te voeren. Dit gebeurt met zinsgewijze prompts die het AI-model sturen om de benodigde informatie te geven om een taak uit te voeren.
Zie de onderstaande code ter referentie:
# Defines the Complete LLM Functiondefcomplete(user_text):
completion = Complete(
model="snowflake-arctic",
prompt=f"Provide 3 relevant keywords from the following text: {user_text}",
session=snowflake_session,)return completionMogelijk gemaakt door
4. EXTRACT_ANSWER
De extract answer-functie geeft een antwoord op basis van de vraag die aan het model wordt gegeven. De input moet Engels zijn in een string- of JSON-formaat.
Zie de onderstaande code ter referentie:
# Defines the Extract Answer LLM Functiondefextract_answer(user_text):
answer = ExtractAnswer(
from_text=user_text,
question="What are some reasons why young adult South Koreans love coffee?",
session=snowflake_session,)return answerMogelijk gemaakt door
5. SENTIMENT
De sentiment-functie geeft een kwantitatief getal op basis van het sentiment van de opgegeven tekst. De output is een waarde van -1 tot 1. Waarden met -1 zijn het negatiefst, 1 het positiefst en waarden rond 0 zijn neutraal.
Zie de onderstaande code ter referentie:
# Defines the Sentiment LLM Functiondefsentiment(user_text):
sentiment = Sentiment(text=user_text, session=snowflake_session)return sentimentMogelijk gemaakt door
6. EMBED_TEXT
De embed text-functies omvatten de EMBED_TEXT_768-functie en de EMBED_TEXT_1024-functie. Ze maken vector-embeddings van respectievelijk 768 en 1024 dimensies.
Zie de onderstaande code ter referentie voor de EMBED_TEXT_768-functie:
# Defines the Embed Text LLM Functiondefembed_text(user_text):
embed_text = EmbedText768(text=user_text, model='snowflake-arctic-embed-m', session=snowflake_session)return embed_textMogelijk gemaakt door
Laten we ze nu samenvoegen in een main-functie en het met een voorbeeldtekst uitvoeren om de resultaten te bekijken.
Ik heb een eenvoudige, korte tekst gebruikt om in het model in te voeren, zoals hieronder weergegeven:
Voor het gemak van kopiëren en plakken, hier is de tekst:
user_text = """
Young adults in South Korea are embracing coffee as a blend of energy, comfort, and culture.
Coffee isn't just about staying awake during demanding studies or work; it’s a cherished part of daily routines.
With South Korea's bustling café culture, coffee shops have become popular spaces for socializing, studying,
or just taking a break from the fast-paced city life.
The diversity of flavors and trendy cafés also offers a unique,
stylish experience that fits right into the evolving lifestyle of young adults,
who seek both connection and personal moments in the midst of it all.
"""Mogelijk gemaakt door
Laten we nu de code uitvoeren. Dat duurt maar een paar seconden.
Dit zijn de resultaten:
Zoals je ziet heeft de AI ons alle resultaten gegeven die we nodig hebben op basis van de tekst die we hebben aangeleverd. Het gaf een samenvatting, vertaalde mijn tekst naar het Koreaans, gaf drie trefwoorden op basis van mijn tekst en gaf antwoorden op mijn vragen.
Snowflake Cortex AI Machinelearning-functies
Cortex AI heeft ook ML-functies die uitsluitend met SQL kunnen draaien. Dit zijn de verschillende functies.
1. Anomaliedetectie
Anomaliedetectie is essentieel om ongebruikelijke patronen te identificeren die niet passen bij het verwachte gedrag van je data. Snowflake vereenvoudigt anomaliedetectie met ingebouwde machinelearning-functies op basis van een gradient boosting machine (GBM), waarmee je snel uitschieters in je datasets kunt vinden.
Anomaliedetectie is vooral nuttig voor taken zoals:
Fraude detecteren in transactiegegevens.
Ongebruikelijk gebruikersgedrag identificeren.
Tijdreeksdata monitoren op anomalieën in systeemprestaties.
Voor anomaliedetectie kun je de Snowflake-klasse ANOMALY_DETECTION (SNOWFLAKE.ML) gebruiken. Deze opdracht maakt een anomaliedetectiemodelobject aan. Deze stap past je model op de trainingsdata.
Zo kun je het gebruiken:
CREATE[ORREPLACE] SNOWFLAKE.ML.ANOMALY_DETECTION <model_name>(
INPUT_DATA =><reference_to_training_data>,[ SERIES_COLNAME =>'<series_column_name>',]
TIMESTAMP_COLNAME =>'<timestamp_column_name>',
TARGET_COLNAME =>'<target_column_name>',
LABEL_COLNAME =>'<label_column_name>',[ CONFIG_OBJECT =><config_object>])[[WITH] TAG (<tag_name>='<tag_value>'[,<tag_name>='<tag_value>',...])][COMMENT='<string_literal>']Mogelijk gemaakt door
Zodra je het object hebt gemaakt, kun je de methode <model_name>!DETECT_ANOMALIES gebruiken om anomaliedetectie uit te voeren,
<model_name>!DETECT_ANOMALIES(
INPUT_DATA =><reference_to_data_to_analyze>,
TIMESTAMP_COLNAME =>'<timestamp_column_name>',
TARGET_COLNAME =>'<target_column_name>',[ CONFIG_OBJECT =><configuration_object>,][ SERIES_COLNAME =>'<series_column_name>'])Mogelijk gemaakt door
Dit is de daadwerkelijke predictiestap waarbij de uitschieters met de methode worden gedetecteerd.
Hier is een voorbeeld van anomaliedetectie met een dataset.
Maak eerst een database door naar Data in het linkertabblad te gaan, vervolgens Add Data en daarna Load data into a Table.
Klik in het pop-upvenster op + Database en geef je database een naam. Klik op Create en klik vervolgens in het hoofdpop-upvenster op Cancel.
Dit maakt een lege database waar je mee kunt werken.
Om de anomaliedetectie te starten, ga je naar een nieuw SQL-werkblad, selecteer je je nieuwe database als gegevensbron en plak je de volgende code om een tabel te maken:
CREATE OR REPLACE TABLE historical_sales_data (
store_id NUMBER, item VARCHAR, date TIMESTAMP_NTZ, sales FLOAT, label BOOLEAN,
temperature NUMBER, humidity FLOAT, holiday VARCHAR);
Je code moet in een SQL-werkblad komen dat er zo uitziet:
Vervolgens gebruik je de volgende statements om een tabel genaamd new_sales_data te maken.
// Creating a new table and adding training dataCREATEORREPLACETABLE new_sales_data (
store_id NUMBER, item VARCHAR,date TIMESTAMP_NTZ, sales FLOAT,
temperature NUMBER, humidity FLOAT, holiday VARCHAR);INSERTINTO new_sales_data VALUES(1,'jacket', to_timestamp_ntz('2020-01-16'),6.0,52,0.3,null),(1,'jacket', to_timestamp_ntz('2020-01-17'),20.0,53,0.3,null),(2,'umbrella', to_timestamp_ntz('2020-01-16'),3.0,52,0.3,null),(2,'umbrella', to_timestamp_ntz('2020-01-17'),70.0,53,0.3,null);Mogelijk gemaakt door
Maak nu het anomaliedetectiemodel aan:
// Creating anomaly detection model objectCREATEORREPLACEVIEW view_with_training_data
ASSELECTdate, sales FROM historical_sales_data
WHERE store_id=1AND item='jacket';CREATEORREPLACE SNOWFLAKE.ML.ANOMALY_DETECTION basic_model(
INPUT_DATA =>TABLE(view_with_training_data),
TIMESTAMP_COLNAME =>'date',
TARGET_COLNAME =>'sales',
LABEL_COLNAME =>'');Mogelijk gemaakt door
Dit zou een resultaat moeten geven dat aangeeft dat er een model is gemaakt, zoals hieronder.
Laten we vervolgens het objectmodel gebruiken om te detecteren.
// Perform anomaly detectionCREATEORREPLACEVIEW view_with_data_to_analyze
ASSELECTdate, sales FROM new_sales_data
WHERE store_id=1and item='jacket';CALL basic_model!DETECT_ANOMALIES(
INPUT_DATA =>TABLE(view_with_data_to_analyze),
TIMESTAMP_COLNAME =>'date',
TARGET_COLNAME =>'sales');Mogelijk gemaakt door
Dit is de output van de detectie:
2. Classificatie
Classificatiebetekent het indelen van data in vooraf gedefinieerde klassen. Met Snowflake kun je data rechtstreeks binnen Snowflake classificeren, zonder data naar externe ML-omgevingen te exporteren.
Maak om te beginnen een voorbeelddataset met de volgende code:
// Creating binary class datasetCREATEORREPLACETABLE training_purchase_data AS(SELECT
CAST(UNIFORM(0,4, RANDOM())ASVARCHAR)AS user_interest_score,
UNIFORM(0,3, RANDOM())AS user_rating,FALSEAS label,'not_interested'AS class
FROMTABLE(GENERATOR(rowCount=>100))UNIONALLSELECT
CAST(UNIFORM(4,7, RANDOM())ASVARCHAR)AS user_interest_score,
UNIFORM(3,7, RANDOM())AS user_rating,FALSEAS label,'add_to_wishlist'AS class
FROMTABLE(GENERATOR(rowCount=>100))UNIONALLSELECT
CAST(UNIFORM(7,10, RANDOM())ASVARCHAR)AS user_interest_score,
UNIFORM(7,10, RANDOM())AS user_rating,TRUEAS label,'purchase'AS class
FROMTABLE(GENERATOR(rowCount=>100)));CREATEORREPLACEtable prediction_purchase_data AS(SELECT
CAST(UNIFORM(0,4, RANDOM())ASVARCHAR)AS user_interest_score,
UNIFORM(0,3, RANDOM())AS user_rating
FROMTABLE(GENERATOR(rowCount=>100))UNIONALLSELECT
CAST(UNIFORM(4,7, RANDOM())ASVARCHAR)AS user_interest_score,
UNIFORM(3,7, RANDOM())AS user_rating
FROMTABLE(GENERATOR(rowCount=>100))UNIONALLSELECT
CAST(UNIFORM(7,10, RANDOM())ASVARCHAR)AS user_interest_score,
UNIFORM(7,10, RANDOM())AS user_rating
FROMTABLE(GENERATOR(rowCount=>100)));Mogelijk gemaakt door
Maak voor de trainingsdata een nieuwe view.
// Creating view for training dataCREATEORREPLACEview binary_classification_view ASSELECT user_interest_score, user_rating, label
FROM training_purchase_data;SELECT*FROM binary_classification_view ORDERBY RANDOM(42)LIMIT5;Mogelijk gemaakt door
Deze view zou de volgende resultaten moeten geven:
Laten we vervolgens het model trainen op basis van onze trainingsdata:
// Training a binary classification modelCREATEORREPLACE SNOWFLAKE.ML.CLASSIFICATION model_binary(
INPUT_DATA => SYSTEM$REFERENCE('view','binary_classification_view'),
TARGET_COLNAME =>'label');Mogelijk gemaakt door
Gebruik voor classificatie de PREDICT-methode:
// Performing prediction using PREDICT methodSELECT model_binary!PREDICT(INPUT_DATA => {*})AS prediction FROM prediction_purchase_data;Mogelijk gemaakt door
Zo ziet de voorspelling eruit:
Gebruik deze SQL-instructie om het netjes te formatteren:
// Formatting SQL predictionsSELECT*, model_binary!PREDICT(INPUT_DATA => {*})AS predictions FROM prediction_purchase_data;Mogelijk gemaakt door
Je zou op dit nette uitvoerformaat voor de voorspellingen moeten uitkomen:
3. Belangrijkste inzichten
Top Insights is een monitoringtool om te zoeken naar fluctuaties in je metriek in de tijd via tijdreeksanalyse. Met een beslisboommodel kan Top Insights de belangrijkste factoren identificeren die bijdragen aan een stijging of daling van een bepaalde metriek.
Laten we een voorbeeld bekijken van een tijdreeksanalyse met deze functie.
Vervolgens moeten we het modelobject voor de voorspelling maken. Dit is nodig om de GET_DRIVERS-methode te gebruiken.
// Creating the modelCREATEORREPLACE SNOWFLAKE.ML.TOP_INSIGHTS my_insights_model()Mogelijk gemaakt door
Roep tot slot voor de voorspelling de GET_DRIVERS-methode aan.
// Performing prediction using GET_DRIVERS methodCALL my_insights_model!GET_DRIVERS(
INPUT_DATA =>TABLE(input_view),
LABEL_COLNAME =>'label',
METRIC_COLNAME =>'metric');Mogelijk gemaakt door
Dit zou de volgende resultaten moeten geven:
4. Forecasting
Forecasting is cruciaal wanneer je toekomstige waarden wilt voorspellen op basis van historische data. Of het nu gaat om verkoopprognoses, het voorspellen van energieverbruik of het voorspellen van webverkeer, de ingebouwde functies van Snowflake maken deze taken een stuk eenvoudiger.
Voor ons voorbeeld bekijken we forecasting op een enkele serie:
Laten we vervolgens de trainingsdata van de dataset scheiden.
// Creating a view for training dataCREATEORREPLACEVIEW v1 ASSELECTdate, sales
FROM sales_data WHERE store_id=1AND item='jacket';SELECT*FROM v1;Mogelijk gemaakt door
Voordat je met forecasting kunt beginnen, moet je je model trainen op basis van de geselecteerde trainingsdata.
Zo doe je dat:
// Training a forecasting modelCREATE SNOWFLAKE.ML.FORECAST model1(
INPUT_DATA =>TABLE(v1),
TIMESTAMP_COLNAME =>'date',
TARGET_COLNAME =>'sales');Mogelijk gemaakt door
Roep tot slot voor de forecast de FORECAST-methode aan om de predictiestap te doen.
// Performing the forecast by calling the FORECAST methodcall model1!FORECAST(FORECASTING_PERIODS =>5);Mogelijk gemaakt door
Dit is de resulterende output van onze forecasting.
ML-modellen monitoren in Snowflake
Het monitoren van modelprestaties kan met dashboards in Snowflake via integraties van derden (zoals Tableau) of door Snowflake-logs te bevragen. Nuttige metrics zoals accuracy, precision en recall kunnen worden gebruikt om modellen te volgen.
Conclusie
Snowflake Cortex AI vereenvoudigt machine learning door naadloze integratie van modellen vanuit het Snowflake-platform mogelijk te maken. Deze tutorial leidde je door het gebruik van Snowflake Cortex AI en Snowflake Cortex ML-functies.
Deze oplossing benut de schaalbaarheid van Snowflake en de flexibiliteit van Python, wat het ideaal maakt voor organisaties die machine learning willen implementeren zonder data buiten de cloud te verplaatsen.
Machine Learning met Python & Snowflake Cortex FAQs
Is Python goed voor machine learning en AI?⌄
Python is heel geschikt voor machine learning en AI dankzij krachtige libraries zoals PyTorch, TensorFlow en Keras. Snowflake AI- en ML-functies zijn ook via Python toegankelijk.
How to use Python for AI and machine learning?⌄
Je kunt Python gebruiken voor AI en machine learning via ingebouwde libraries of via Snowflake LLM- en ML-functies.
How to use Snowflake Cortex ML-based functions?⌄
Snowflake Cortex ML-gebaseerde functies kun je gebruiken door in SQL de respectieve methoden van elke functie aan te roepen.
What are Snowflake AI models?⌄
Snowflake AI-modellen zijn large language models die Snowflake Cortex en de bijbehorende functies aandrijven.
What are some Snowflake machine learning examples?⌄
Snowflake machinelearning-functies kunnen worden toegepast op verschillende use-cases zoals anomaliedetectie, forecasting, het ophalen van top insights en classificatie.
Ik ben Austin, een blogger en techschrijver met jarenlange ervaring als zowel datascientist als data-analist in de gezondheidszorg. Ik begon mijn techreis met een achtergrond in biologie en help nu anderen dezelfde overstap te maken via mijn techblog. Mijn passie voor technologie heeft geleid tot schrijfbijdragen aan tientallen SaaS-bedrijven, waarmee ik anderen inspireer en mijn ervaringen deel.
Het trainen van AI-modellen zit in de lift als een van de potentiële toepassingen van AI in data science. Meer specifiek kun je machine learning doen met Snowflake Cortex AI.
In deze gids bespreken we wat Snowflake Cortex AI is en wat je ermee kunt. Daarnaast geven we een eenvoudige tutorial om te starten met machine learning en AI met Python en wat SQL. Ben je nieuw bij Snowflake? Bekijk dan onze Introduction to Snowflake-cursus om snel bij te zijn.
Wat is Snowflake Cortex AI?
Snowflake Cortex AI is een krachtige functie in de Snowflake AI Data Cloud, ontworpen om machine learning (ML)-operaties rechtstreeks binnen de Snowflake-omgeving te faciliteren.
Het maakt naadloze integratie van Python-ML-modellen met Snowflake-data mogelijk, zodat organisaties inzichten, voorspellingen en geavanceerde analyses uit grote datasets kunnen halen terwijl ze gebruikmaken van de cloudinfrastructuur.
Bron: Snowflake Cortex AI
Belangrijkste functies van Snowflake Cortex AI:
Snowflake Cortex bestaat uit twee hoofdonderdelen—LLM-functies en ML-functies.
Voor LLM-functies heb je:
We bekijken elke functie verderop hieronder in meer detail.
Voor ML-functies heb je:
Wil je weten waar je Snowflake en zijn functies kunt leren? Onze beginners-Snowflake-tutorial en Snowflake-certificeringsgids helpen je op weg.
Waarom Snowflake Cortex AI met Python gebruiken?
Laten we nu kijken naar de voordelen van deze tools samen gebruiken.
Voordelen van het combineren van Snowflake Cortex AI met Python
Een paar belangrijke voordelen van Snowflake Cortex AI zijn:
Use-cases en toepassingen
Ten eerste is Snowflake Cortex AI perfect voor bedrijven die hun data science-capaciteiten willen verbeteren zonder grote investeringen in resources. Met de no-code-omgeving kunnen zelfs niet-technische gebruikers eenvoudig ML-modellen ontwikkelen en implementeren.
Dit is vooral handig voor kleinere bedrijven of startups die misschien niet het budget hebben om een team van data scientists in te huren of in dure LLM’s te investeren.
Ten tweede kunnen gebruikers door Python in de compute-omgeving van Snowflake te integreren profiteren van de enorme bibliotheek met beschikbare Python-machinelearningalgoritmes en -tools. Zo kunnen ze geavanceerdere en nauwkeurigere modellen maken zonder nieuwe programmeertalen te hoeven leren.
Tot slot profiteren bedrijven die al met de Snowflake-omgeving werken optimaal van Cortex AI, omdat het naadloos integreert met hun bestaande datawarehouse, waardoor extra infrastructuur of datamigratie overbodig is.
Met Snowflake Cortex AI kunnen bedrijven machine learning gemakkelijk en efficiënt in hun bedrijfsprocessen implementeren.
Aan de slag met Snowflake Cortex AI
In deze tutorial doorlopen we het opzetten van een machinelearning-pijplijn met Python en Snowflake Cortex AI.
Vereisten
Voordat je met ML aan de slag gaat met Snowflake Cortex AI, zorg dat je aan de volgende vereisten voldoet:
Een Snowflake-account instellen
Je hebt eerst een Snowflake-instantie nodig waar je data wordt opgeslagen en verwerkt. Je kunt je aanmelden op de Snowflake-website.
Vul in het aanmeldformulier al je accountgegevens in en let erop dat je op de tweede pagina de volgende selecties maakt. Kies voor deze tutorial Standard Edition en Amazon Web Services voor de eenvoud en reproduceerbaarheid. Kies voor de server US West (Oregon) voor de beste selectie LLM-functies.
Zodra je deze opties hebt geselecteerd, klik je op Get Started om de activeringsmail te ontvangen. Ga naar je mail om je account te activeren en je Snowflake-account is klaar voor gebruik.
Softwarevereisten
Vervolgens moet je ook aan een paar softwarevereisten voldoen.
Hier is een eenvoudige lijst met wat je nodig hebt:
Voordat je met een analyse begint, installeer je alle relevante pakketten zodat je codeeromgeving klaar is.
Om de benodigde pakketten te installeren, kun je pip gebruiken:
Nadat je de libraries hebt geïnstalleerd, moet je je werkmap en bestanden instellen om te beginnen.
Ik heb een map gemaakt met de naam Cortex AI Tutorial en een nieuw
.envbestand toegevoegd met de volgende informatie:Nadat je je accountgegevens hebt ingevoerd, sla je het bestand op en maak je in dezelfde map een Python- of Jupyter Notebook-bestand aan.
Verbinden met Snowflake
Nu je alles hebt ingesteld, koppelen we je Python-omgeving aan Snowflake.
Open je Python-bestand en importeer alle benodigde libraries. Dit is de code daarvoor:
Vervolgens moet je de variabelen laden die je eerder in het .env-bestand hebt opgeslagen. Dit levert Snowflake je accountgegevens om in te loggen en functies te gebruiken.
Zodra je met de variabelen verbinding hebt gemaakt, moet je een Snowflake-sessie opzetten. Dit is het object dat al je verzoeken afhandelt.
Snowflake Cortex AI LLM-functies
Met de LLM-functies binnen Cortex AI kun je de kracht van LLM’s benutten zonder zelf AI-modellen te hoeven ontwikkelen.
Deze functies bieden de gemiddelde analytics-gebruiker AI-gestuurde analyses via enkele basistaken.
Dit zijn de functies die Snowflake Cortex heeft:
1. SUMMARIZE
De summarize-functie wordt gebruikt om op basis van de ingevoerde tekst een samenvatting te genereren.
Hij gebruikt LLM’s om kerninformatie te identificeren en in verkorte vorm te presenteren.
Als je bijvoorbeeld een lang tekstdocument hebt en snel een overzicht van de inhoud wilt, kun je de summarize-functie gebruiken om een korte samenvatting te krijgen met de belangrijkste punten. Dit bespaart tijd en maakt snellere analyse van grote hoeveelheden data mogelijk.
De invoertaal is op het moment van schrijven beperkt tot Engels.
Zie de onderstaande code ter referentie:
2. TRANSLATE
De translate-functie wordt gebruikt om tekst van de ene taal naar de andere om te zetten.
Hij gebruikt machinelearning-algoritmes en statistische modellen om de tekst nauwkeurig te vertalen.
Dit is handig wanneer je met data of documenten in verschillende talen werkt, omdat het communicatie en begrip vergemakkelijkt.
Als je bijvoorbeeld een rapport in het Spaans hebt en dit aan een Engelstalig publiek moet presenteren, kun je de translate-functie gebruiken om de tekst snel om te zetten. Dit maakt handmatige vertaling overbodig en bespaart tijd.
Zie de onderstaande code ter referentie:
3. COMPLETE
De complete-functie is een allroundfunctie die kan worden gebruikt om specifieke taken uit te voeren. Dit gebeurt met zinsgewijze prompts die het AI-model sturen om de benodigde informatie te geven om een taak uit te voeren.
Zie de onderstaande code ter referentie:
4. EXTRACT_ANSWER
De extract answer-functie geeft een antwoord op basis van de vraag die aan het model wordt gegeven. De input moet Engels zijn in een string- of JSON-formaat.
Zie de onderstaande code ter referentie:
5. SENTIMENT
De sentiment-functie geeft een kwantitatief getal op basis van het sentiment van de opgegeven tekst. De output is een waarde van -1 tot 1. Waarden met -1 zijn het negatiefst, 1 het positiefst en waarden rond 0 zijn neutraal.
Zie de onderstaande code ter referentie:
6. EMBED_TEXT
De embed text-functies omvatten de
EMBED_TEXT_768-functie en deEMBED_TEXT_1024-functie. Ze maken vector-embeddings van respectievelijk 768 en 1024 dimensies.Zie de onderstaande code ter referentie voor de
EMBED_TEXT_768-functie:Laten we ze nu samenvoegen in een main-functie en het met een voorbeeldtekst uitvoeren om de resultaten te bekijken.
Ik heb een eenvoudige, korte tekst gebruikt om in het model in te voeren, zoals hieronder weergegeven:
Voor het gemak van kopiëren en plakken, hier is de tekst:
Laten we nu de code uitvoeren. Dat duurt maar een paar seconden.
Dit zijn de resultaten:
Zoals je ziet heeft de AI ons alle resultaten gegeven die we nodig hebben op basis van de tekst die we hebben aangeleverd. Het gaf een samenvatting, vertaalde mijn tekst naar het Koreaans, gaf drie trefwoorden op basis van mijn tekst en gaf antwoorden op mijn vragen.
Snowflake Cortex AI Machinelearning-functies
Cortex AI heeft ook ML-functies die uitsluitend met SQL kunnen draaien. Dit zijn de verschillende functies.
1. Anomaliedetectie
Anomaliedetectie is essentieel om ongebruikelijke patronen te identificeren die niet passen bij het verwachte gedrag van je data. Snowflake vereenvoudigt anomaliedetectie met ingebouwde machinelearning-functies op basis van een gradient boosting machine (GBM), waarmee je snel uitschieters in je datasets kunt vinden.
Anomaliedetectie is vooral nuttig voor taken zoals:
Voor anomaliedetectie kun je de Snowflake-klasse ANOMALY_DETECTION (SNOWFLAKE.ML) gebruiken. Deze opdracht maakt een anomaliedetectiemodelobject aan. Deze stap past je model op de trainingsdata.
Zo kun je het gebruiken:
Zodra je het object hebt gemaakt, kun je de methode <model_name>!DETECT_ANOMALIES gebruiken om anomaliedetectie uit te voeren,
Dit is de daadwerkelijke predictiestap waarbij de uitschieters met de methode worden gedetecteerd.
Hier is een voorbeeld van anomaliedetectie met een dataset.
Maak eerst een database door naar Data in het linkertabblad te gaan, vervolgens Add Data en daarna Load data into a Table.
Klik in het pop-upvenster op + Database en geef je database een naam. Klik op Create en klik vervolgens in het hoofdpop-upvenster op Cancel.
Dit maakt een lege database waar je mee kunt werken.
De onderstaande voorbeelden zijn aangepast uit de Snowflake-documentatie.
Om de anomaliedetectie te starten, ga je naar een nieuw SQL-werkblad, selecteer je je nieuwe database als gegevensbron en plak je de volgende code om een tabel te maken:
CREATE OR REPLACE TABLE historical_sales_data (
store_id NUMBER, item VARCHAR, date TIMESTAMP_NTZ, sales FLOAT, label BOOLEAN,
temperature NUMBER, humidity FLOAT, holiday VARCHAR);
Je code moet in een SQL-werkblad komen dat er zo uitziet:
Vervolgens gebruik je de volgende statements om een tabel genaamd
new_sales_datate maken.Maak nu het anomaliedetectiemodel aan:
Dit zou een resultaat moeten geven dat aangeeft dat er een model is gemaakt, zoals hieronder.
Laten we vervolgens het objectmodel gebruiken om te detecteren.
Dit is de output van de detectie:
2. Classificatie
Classificatie betekent het indelen van data in vooraf gedefinieerde klassen. Met Snowflake kun je data rechtstreeks binnen Snowflake classificeren, zonder data naar externe ML-omgevingen te exporteren.
Maak om te beginnen een voorbeelddataset met de volgende code:
Maak voor de trainingsdata een nieuwe view.
Deze view zou de volgende resultaten moeten geven:
Laten we vervolgens het model trainen op basis van onze trainingsdata:
Gebruik voor classificatie de
PREDICT-methode:Zo ziet de voorspelling eruit:
Gebruik deze SQL-instructie om het netjes te formatteren:
Je zou op dit nette uitvoerformaat voor de voorspellingen moeten uitkomen:
3. Belangrijkste inzichten
Top Insights is een monitoringtool om te zoeken naar fluctuaties in je metriek in de tijd via tijdreeksanalyse. Met een beslisboommodel kan Top Insights de belangrijkste factoren identificeren die bijdragen aan een stijging of daling van een bepaalde metriek.
Laten we een voorbeeld bekijken van een tijdreeksanalyse met deze functie.
Laten we eerst een dataset maken:
Vervolgens moeten we het modelobject voor de voorspelling maken. Dit is nodig om de
GET_DRIVERS-methode te gebruiken.Roep tot slot voor de voorspelling de GET_DRIVERS-methode aan.
Dit zou de volgende resultaten moeten geven:
4. Forecasting
Forecasting is cruciaal wanneer je toekomstige waarden wilt voorspellen op basis van historische data. Of het nu gaat om verkoopprognoses, het voorspellen van energieverbruik of het voorspellen van webverkeer, de ingebouwde functies van Snowflake maken deze taken een stuk eenvoudiger.
Voor ons voorbeeld bekijken we forecasting op een enkele serie:
Laten we vervolgens de trainingsdata van de dataset scheiden.
Voordat je met forecasting kunt beginnen, moet je je model trainen op basis van de geselecteerde trainingsdata.
Zo doe je dat:
Roep tot slot voor de forecast de FORECAST-methode aan om de predictiestap te doen.
Dit is de resulterende output van onze forecasting.
ML-modellen monitoren in Snowflake
Het monitoren van modelprestaties kan met dashboards in Snowflake via integraties van derden (zoals Tableau) of door Snowflake-logs te bevragen. Nuttige metrics zoals accuracy, precision en recall kunnen worden gebruikt om modellen te volgen.
Conclusie
Snowflake Cortex AI vereenvoudigt machine learning door naadloze integratie van modellen vanuit het Snowflake-platform mogelijk te maken. Deze tutorial leidde je door het gebruik van Snowflake Cortex AI en Snowflake Cortex ML-functies.
Deze oplossing benut de schaalbaarheid van Snowflake en de flexibiliteit van Python, wat het ideaal maakt voor organisaties die machine learning willen implementeren zonder data buiten de cloud te verplaatsen.
Op zoek naar meer bronnen over Snowflake? Dan vind je onze Snowflake Beginner Tutorial en onze Snowpark-gids vast interessant. Zoek je iets uitgebreiders, dan is de Introduction to Snowflake-cursus misschien iets voor jou.