Datorer som lär sig: Maskininlärning och plattformar
Maskininlärning ger datorer förmågan att analysera information, upptäcka inbyggda strukturer och mönster, och sedan använda denna kunskap för att antingen fatta beslut självständigt eller underlätta beslutsprocesser inom företag.
Trots dess kraftfulla potential kan det vara ett utmanande område som bygger på avancerad matematik och komplex programmering. Detta betyder dock inte att det är oåtkomligt. Tvärtom, det är fullt möjligt att lära sig. Dessutom finns det metoder för att undvika alltför komplicerade tekniska aspekter, genom att använda de plattformar som vi kommer att undersöka i den här artikeln.
Dessa plattformar gör inte bara processen att skapa modeller enklare, utan de tar även bort en stor del av komplexiteten kring infrastrukturhantering.
Vad är maskininlärning?
Maskininlärning (Machine Learning) är ett forskningsområde som syftar till att ge datorer förmågan att ta beslut utan att de behöver ha fått specifika instruktioner för varje möjligt scenario. Innan maskininlärningen blev populär, kunde datorer endast utföra uppgifter som de hade blivit explicit programmerade för.
Programmerare behövde noggrant ange exakt hur datorer skulle fatta beslut. Även om detta fungerar bra för vissa uppgifter, är andra alltför komplexa för att kunna programmeras i detalj.
Ett bra exempel på detta är uppgiften att klassificera bilder. Det är praktiskt taget omöjligt att skriva ett program som kan hantera alla de variationer i vinklar, orienteringar och ljussättningar som kan förekomma i ett och samma motiv. Maskininlärning gör det möjligt för datorer att utföra komplexa uppgifter utan att programmerare behöver förutse alla eventualiteter.
Varför använda plattformar för maskininlärning?
Maskininlärningsplattformar tillhandahåller ett smidigare sätt att skapa modeller. De flesta erbjuder verktyg med låg kod eller ingen kod alls. Användaren behöver oftast bara tillhandahålla data som modellen ska lära sig av, så tar plattformen hand om resten. Dessutom behöver man oftast inte bekymra sig om att bygga upp infrastruktur för modellen på ett kostnadseffektivt sätt, eller att distribuera den.
För mindre företag som bygger mindre modeller sällan, är det ofta mer kostnadseffektivt att använda en plattform jämfört med att bygga en egen lösning. Att skapa sin egen infrastruktur för maskininlärning kräver att man investerar i dyra GPU:er.
Genom att hyra en plattform betalar man bara för det som används. Det bör dock noteras att kostnadsbilden kan se annorlunda ut om man tränar större modeller eller tränar dem ofta.
Plattformarna förenklar även hanteringen av MLOps (Machine Learning Operations), genom att tillhandahålla loggar och mätvärden för reproducerbarhet.
Nedan följer en genomgång av några olika infrastrukturplattformar för maskininlärning.
Baseten
Baseten erbjuder ett lättanvänt sätt att distribuera maskininlärningsmodeller genom användning av Truss – en standard med öppen källkod för att paketera modeller byggda med vilket populärt ramverk som helst.
Efter driftsättning, loggar och övervakar Baseten statusen för dina distribuerade modeller. Plattformen hjälper till med infrastrukturhantering genom att automatiskt skala din modelltjänstinfrastruktur beroende på trafiken den får.
Baseten låter dig även finjustera modeller som FLAN-T5, Llama och Stable Diffusion. Plattformen integreras med dina befintliga CI/CD-flöden (Continuous Integration/Continuous Deployment), så att du kan bygga enligt din process.
Du kan även skriva serverlösa Python-funktioner som integreras med dina modeller. Fakturering sker per minut som dina modeller distribueras, skalas eller gör prediktioner, vilket ger dig bättre kontroll över kostnaderna.
Replicate
Replicate gör det smidigt att köra maskininlärningsmodeller. Replicate förenklar processen att utveckla och träna modeller genom att tillhandahålla ett Python SDK och ett REST API, som du kan använda för att göra prediktioner.
Detta ger i grunden en ”low-code”-lösning. Plattformen tillhandahåller modeller för att utföra vanliga uppgifter inom maskininlärning, som bildrestaurering, skapa och redigera videor, generera text med hjälp av stora språkmodeller, konvertera bilder till text och vice versa, samt att öka upplösningen på bilder.
Replicate använder Cog, ett verktyg för att distribuera maskininlärningsmodeller i en produktionsklar behållare, som sedan byggs in i en Docker-behållare för distribution. Replicate erbjuder en produktionsmiljö som anpassar sig efter användningen. Denna miljö tillhandahåller ett REST API som du kan använda. Fakturering sker också per sekund.
Hugging Face
Hugging Face är en AI-community och data science-plattform som ger dig verktygen för att bygga, träna och distribuera avancerade maskininlärningsmodeller.
Det som gör Hugging Face intressant i detta sammanhang är AutoTrain, som är ett verktyg som gör att du kan bygga maskininlärningsmodeller utan att skriva kod, genom att ladda upp träningsdata.
AutoTrain testar olika modeller för att hitta den som bäst passar dina träningsdata. Du kan sedan distribuera den tränade modellen till Hugging Face Hub, en tjänst för modellanvändning.
Med AutoTrain kan du bygga modeller för bland annat bildklassificering, textklassificering, tokenklassificering, frågesvar, översättning, sammanfattning, textregression, samt tabellbaserad dataklassificering och -regression. När modellerna är distribuerade, är de tillgängliga via HTTP.
Google AutoML
Google AutoML gör det enkelt att bygga maskininlärningsmodeller med minimal ansträngning eller expertkunskap. Tjänsten inkluderar Vertex AI – en enhetlig plattform för att bygga, distribuera och skala AI-modeller.
Med Google AutoML kan du lagra datauppsättningar och få tillgång till maskininlärningsverktyg som används av team på Google. Plattformen låter dig hantera strukturerad data, antingen med AutoML Tabular, samt detektera objekt i bilder och klassificera bilder med AutoML Image.
Du kan göra samma sak för videofiler med AutoML Video. Dessutom kan du utföra sentimentanalys på text med AutoML Text och översätta mellan över 50 språkpar med AutoML Translation. Distribuerade modeller är tillgängliga via REST- och RPC-API:er.
Azure OpenAI
Azure OpenAI Service ger dig tillgång till olika modeller utvecklade av OpenAI. Dessa modeller inkluderar GPT-3 och GPT-4, som är modeller som förstår naturligt språk och kod, och producerar naturligt språk och kod. GPT-3.5 driver ChatGPT.
Dessutom ger tjänsten även tillgång till DALL-E, en generator för text-till-bild baserad på naturligt språk. Det finns också Codex, en modell som förstår och genererar kod från naturligt språk.
Slutligen finns det inbäddningsmodeller som hanterar en specialiserad typ av data, så kallade ”embeddings”. Dessa modeller kan nås via Azure OpenAI med hjälp av ett REST API, Python SDK eller en webbaserad Azure OpenAI Studio.
Azure-plattformen erbjuder säkerhet via Azure-molnet, så som privata nätverk, regional tillgänglighet och ansvarsfull filtrering av AI-innehåll.
AWS Sagemaker
Sagemaker är en hanterad AWS-tjänst som erbjuds som en del av AWS tjänsteutbud. Den ger dig verktygen för att bygga, träna och distribuera maskininlärningsmodeller.
Sagemaker hjälper till att automatisera den tidskrävande processen att skapa en utvecklingsprocess för AI/ML-modeller i produktionsklass. Det ger ett ramverk för att bygga, hosta, träna och distribuera AI-modeller i stor skala i AWS offentliga moln. Sagemaker har inbyggda algoritmer för att utföra uppgifter som linjär regression och bildklassificering.
Dessutom stöder tjänsten Jupyter Notebooks, som du kan använda för att skapa anpassade modeller. Sagemaker kommer även med en kontinuerlig modellövervakare, som automatiskt försöker hitta den uppsättning parametrar och hyperparametrar som ger de bästa resultaten för din algoritm.
SageMaker hjälper också till att enkelt distribuera dina modeller i olika tillgänglighetszoner som HTTP-slutpunkter. AWS Cloudwatch kan användas för att övervaka modellernas prestanda över tid.
Databricks
Databricks är en datasjöhuslösning som möjliggör förberedelse och bearbetning av data. Plattformen underlättar hanteringen av maskininlärningsmodeller under hela deras livscykel.
Databricks gör det enklare att bygga generativ AI och stora språkmodeller. Tjänsten erbjuder flera viktiga funktioner, till exempel samarbetsytor i Databricks-anteckningsböcker som stöder programmeringsspråk som Python, R, SQL och Scala.
Databricks tillhandahåller också en Machine Learning Runtime som är förkonfigurerad med maskininlärningsoptimerade kluster. För att hjälpa till med implementering erbjuder plattformen modellbetjäning och övervakning. Det hjälper även till att hantera utvecklingsprocessen med hjälp av AutoML och MLFLow.
Avslutande tankar
Maskininlärning kommer utan tvekan att vara ett värdefullt verktyg för alla företag. Den djupa tekniska kunskap som krävs för att bygga och träna maskininlärningsmodeller skapar dock en tröskel för inträde för många företag.
Plattformarna som nämns i denna artikel underlättar dock processen och gör utvecklingen inom maskininlärning mer tillgänglig.
Om du är intresserad, kolla in en detaljerad artikel om DataBricks vs. Snowflake.