Zephyrnet-logo

Personaliseer uw generatieve AI-applicaties met Amazon SageMaker Feature Store | Amazon-webservices

Datum:

Grote taalmodellen (LLM's) zorgen voor een revolutie op het gebied van zoekmachines, natuurlijke taalverwerking (NLP), gezondheidszorg, robotica en het genereren van codes. De toepassingen strekken zich ook uit tot de detailhandel, waar ze de klantervaring kunnen verbeteren via dynamische chatbots en AI-assistenten, en tot digitale marketing, waar ze klantfeedback kunnen organiseren en producten kunnen aanbevelen op basis van beschrijvingen en aankoopgedrag.

De personalisatie van LLM-applicaties kan worden bereikt door het opnemen van actuele gebruikersinformatie, waarbij doorgaans meerdere componenten worden geรฏntegreerd. Eรฉn zo'n component is een feature store, een tool die functies voor machine learning (ML)-modellen opslaat, deelt en beheert. Functies zijn de invoer die wordt gebruikt tijdens de training en gevolgtrekking van ML-modellen. In een applicatie die films aanbeveelt, kunnen functies bijvoorbeeld eerdere beoordelingen, voorkeurscategorieรซn en demografische gegevens omvatten. Amazon SageMaker Feature Store is een volledig beheerde opslagplaats die speciaal is ontworpen voor het opslaan, delen en beheren van ML-modelfuncties. Een ander essentieel onderdeel is een orkestratietool die geschikt is voor snelle engineering en het beheren van verschillende soorten subtaken. Generatieve AI-ontwikkelaars kunnen raamwerken gebruiken zoals LangChain, dat modules biedt voor integratie met LLM's en orkestratietools voor taakbeheer en snelle engineering.

Voortbouwend op het concept van het dynamisch ophalen van actuele gegevens om gepersonaliseerde inhoud te produceren, heeft het gebruik van LLM's veel aandacht gekregen in recent onderzoek naar aanbevelingssystemen. Het onderliggende principe van deze benaderingen omvat de constructie van aanwijzingen die de aanbevelingstaak, gebruikersprofielen, itemattributen en gebruiker-iteminteracties omvatten. Deze taakspecifieke aanwijzingen worden vervolgens ingevoerd in de LLM, die tot taak heeft de waarschijnlijkheid van interactie tussen een bepaalde gebruiker en een item te voorspellen. Zoals vermeld in de krant Gepersonaliseerde aanbevelingen via grote taalmodellenAanbevelingsgestuurde en op betrokkenheid gebaseerde promptingcomponenten spelen een cruciale rol om LLM's in staat te stellen zich te concentreren op de relevante context en zich aan te passen aan de voorkeuren van gebruikers.

In dit bericht lichten we het eenvoudige maar krachtige idee toe van het combineren van gebruikersprofielen en itemkenmerken om gepersonaliseerde inhoudsaanbevelingen te genereren met behulp van LLM's. Zoals in dit artikel wordt aangetoond, bieden deze modellen een enorm potentieel bij het genereren van contextbewuste invoertekst van hoge kwaliteit, wat tot betere aanbevelingen leidt. Om dit te illustreren begeleiden we u door het proces van het integreren van een feature store (die gebruikersprofielen vertegenwoordigt) met een LLM om deze gepersonaliseerde aanbevelingen te genereren.

Overzicht oplossingen

Laten we ons een scenario voorstellen waarin een filmentertainmentbedrijf films promoot bij verschillende gebruikers via een e-mailcampagne. De promotie bevat 25 bekende films en we willen voor elke gebruiker de top drie aanbevelingen selecteren op basis van hun interesses en eerder beoordelingsgedrag.

Gegeven de interesse van een gebruiker in verschillende filmgenres zoals actie, romantiek en sciencefiction, kunnen we een AI-systeem bijvoorbeeld de top drie van aanbevolen films voor die specifieke gebruiker laten bepalen. Bovendien kan het systeem voor elke gebruiker gepersonaliseerde berichten genereren op een toon die is afgestemd op hun voorkeuren. Verderop in dit bericht vindt u enkele voorbeelden van gepersonaliseerde berichten.

Deze AI-toepassing zou verschillende componenten omvatten die samenwerken, zoals geรฏllustreerd in het volgende diagram:

  1. Een gebruikersprofileringsengine neemt het eerdere gedrag van een gebruiker over en levert een gebruikersprofiel op dat zijn interesses weerspiegelt.
  2. Een functiearchief houdt gebruikersprofielgegevens bij.
  3. Een opslag voor mediametagegevens houdt de lijst met promotiefilms up-to-date.
  4. Een taalmodel neemt de huidige filmlijst en gebruikersprofielgegevens en voert voor elke gebruiker de drie beste aanbevolen films uit, geschreven in de door hem gewenste toon.
  5. Een orkestrerende agent coรถrdineert de verschillende componenten.

Samenvattend kunnen intelligente agenten aanwijzingen construeren met behulp van gebruikers- en itemgerelateerde gegevens en aangepaste natuurlijke taalreacties aan gebruikers leveren. Dit zou een typisch op inhoud gebaseerd aanbevelingssysteem vertegenwoordigen, dat items aanbeveelt aan gebruikers op basis van hun profielen. Het profiel van de gebruiker wordt opgeslagen en onderhouden in de functiewinkel en draait om zijn voorkeuren en smaak. Het wordt gewoonlijk afgeleid op basis van hun eerdere gedrag, zoals beoordelingen.

Het volgende diagram illustreert hoe het werkt.

De toepassing volgt deze stappen om antwoorden te geven op de aanbeveling van een gebruiker:

  1. De engine voor gebruikersprofilering die de historische filmbeoordeling van een gebruiker als invoer gebruikt, de interesse van de gebruiker weergeeft en de functie opslaat in de SageMaker Feature Store. Dit proces kan planmatig worden bijgewerkt.
  2. De agent neemt de gebruikers-ID als invoer, zoekt naar de interesse van de gebruiker en vult de promptsjabloon in op basis van de interesses van de gebruiker.
  3. De agent haalt de lijst met promotie-items (filmnaam, beschrijving, genre) uit een media-metagegevensopslag.
  4. De interessepromptsjabloon en de lijst met promotie-items worden ingevoerd in een LLM voor e-mailcampagneberichten.
  5. De agent stuurt de gepersonaliseerde e-mailcampagne naar de eindgebruiker.

De gebruikersprofileringsengine bouwt een profiel op voor elke gebruiker en legt hun voorkeuren en interesses vast. Dit profiel kan worden weergegeven als een vector met elementen die zijn toegewezen aan functies zoals filmgenres, waarbij waarden de interesse van de gebruiker aangeven. Dankzij de gebruikersprofielen in het functiearchief kan het systeem gepersonaliseerde aanbevelingen voorstellen die aansluiten bij hun interesses. Gebruikersprofilering is een veel bestudeerd domein binnen aanbevelingssystemen. Ter vereenvoudiging kunt u een regressie-algoritme bouwen op basis van de eerdere beoordelingen van een gebruiker in verschillende categorieรซn om zo zijn algemene voorkeuren af โ€‹โ€‹te leiden. Dit kan gedaan worden met algoritmen zoals XGBoost.

Code doorloop

In deze sectie geven we voorbeelden van de code. De volledige code-walkthrough is beschikbaar in de GitHub repo.

Nadat we de functie voor gebruikersinteresses van de gebruikersprofileringsengine hebben verkregen, kunnen we de resultaten opslaan in de functiewinkel. SageMaker Feature Store ondersteunt batchopname van functies en online opslag voor realtime gevolgtrekking. Voor opname kunnen gegevens offline worden bijgewerkt, terwijl gevolgtrekking in milliseconden moet gebeuren. SageMaker Feature Store zorgt ervoor dat offline en online datasets gesynchroniseerd blijven.

Voor gegevensopname gebruiken we de volgende code:

from sagemaker.feature_store.feature_group import FeatureGroup feature_group_name = 'user-profile-feature-group'
feature_group = FeatureGroup(name=feature_group_name, feature_definitions=feature_definitions, sagemaker_session=sess) #Ingest data
feature_group.ingest(data_frame=data_frame, max_workers=6, wait=True)

Voor realtime online opslag kunnen we de volgende code gebruiken om het gebruikersprofiel te extraheren op basis van de gebruikers-ID:

feature_record = featurestore_runtime_client.get_record(FeatureGroupName=feature_group_name, RecordIdentifierValueAsString=customer_id)
print(feature_record)

Vervolgens rangschikken we de drie belangrijkste geรฏnteresseerde filmcategorieรซn om de downstream-aanbevelingsengine te voeden:

Gebruikers-ID: 42
Top3 categorieรซn: ['Animatie', 'Thriller', 'Avontuur']

Onze applicatie maakt gebruik van twee primaire componenten. De eerste component haalt gegevens op uit een functiearchief, en de tweede component haalt een lijst met filmpromoties op uit de metagegevensopslag. De coรถrdinatie tussen deze onderdelen wordt verzorgd door Kettingen van LangChain, die een reeks oproepen naar componenten vertegenwoordigen.

Het is de moeite waard te vermelden dat de applicatie in complexe scenario's mogelijk meer nodig heeft dan een vaste reeks oproepen naar LLM's of andere tools. Ontmoet het team, uitgerust met een reeks tools, gebruiken een LLM om de volgorde van de te ondernemen acties te bepalen. Terwijl Chains een hardgecodeerde reeks acties coderen, gebruiken agenten de redeneerkracht van een taalmodel om de volgorde en aard van acties te dicteren.

De verbinding tussen verschillende gegevensbronnen, waaronder SageMaker Feature Store, wordt gedemonstreerd in de volgende code. Alle opgehaalde gegevens worden geconsolideerd tot een uitgebreide prompt, die als input dient voor de LLM. In het volgende gedeelte gaan we dieper in op de specifieke kenmerken van promptontwerp. Het volgende is een promptsjabloondefinitie die communiceert met meerdere gegevensbronnen:

from langchain.prompts import StringPromptTemplate class FeatureStorePromptTemplate(StringPromptTemplate): feature_group_name = 'user-profile-feature-group' def format(self, **kwargs) -> str: user_id = kwargs.pop("user_id") feature_record = self.fetch_user_preference_from_feature_store(user_id) user_preference = self.rank_user_preference(feature_record) kwargs["promotion_movie_list"] = self.read_promotion_list() kwargs["user_preference"] = user_preference return prompt.format(**kwargs) def fetch_user_preference_from_feature_store(self, user_id): boto_session = boto3.Session() featurestore_runtime_client = boto_session.client('sagemaker-featurestore-runtime') feature_record = featurestore_runtime_client.get_record(FeatureGroupName=self.feature_group_name, RecordIdentifierValueAsString=str(user_id)) return feature_record['Record'] # Rank Top_3_Categories for given user's preference def rank_user_preference(self, data) -> str: # refer to the details in the notebook return str(top_categories_df.values.tolist()) # Get promotion movie list from metadata store def read_promotion_list(self,) -> str: # refer to the details in the notebook return output_string

Daarnaast gebruiken we Amazon Sage Maker om ons LLM-model te hosten en bloot te leggen als het LangChain SageMaker-eindpunt. Om de LLM in te zetten, gebruiken we Amazon SageMaker JumpStart (voor meer details, zie Llama 2 foundation-modellen van Meta zijn nu beschikbaar in Amazon SageMaker JumpStart). Nadat het model is geรฏmplementeerd, kunnen we de LLM-module maken:

from langchain import PromptTemplate, SagemakerEndpoint
from langchain.llms.sagemaker_endpoint import LLMContentHandler class ContentHandler(LLMContentHandler): def transform_input(self, prompt: str, model_kwargs: dict) -> bytes: # refer to the details in the notebook def transform_output(self, output: bytes) -> str: # refer to the details in the notebook content_handler = ContentHandler() sm_llm = SagemakerEndpoint( endpoint_name = endpoint_name, region_name = aws_region, model_kwargs = parameters, endpoint_kwargs={"CustomAttributes": 'accept_eula=true'}, content_handler = content_handler,
)

In de context van onze toepassing voert de agent een reeks stappen uit, een zogenaamde LLMChain. Het integreert een promptsjabloon, model en vangrails om de gebruikersinvoer te formatteren, door te geven aan het model, een reactie te krijgen en vervolgens de modeluitvoer te valideren (en, indien nodig, te corrigeren).

from langchain.chains import LLMChain
llmchain = LLMChain(llm=sm_llm, prompt=prompt_template)
email_content = llmchain.run({'user_id': 4})
print(email_content)

In het volgende gedeelte doorlopen we de prompt-engineering voor de LLM om de verwachte resultaten uit te voeren.

LLM-aanbevelingen en resultaten

Het hoogstaande concept van betrokkenheidsgestuurde prompting volgen, zoals beschreven in het onderzoek Gepersonaliseerde aanbevelingen via grote taalmodellenis het fundamentele principe van onze promptingstrategie het integreren van gebruikersvoorkeuren bij het maken van prompts. Deze aanwijzingen zijn bedoeld om de LLM te begeleiden bij het effectiever identificeren van kenmerken binnen de inhoudsbeschrijving die aansluiten bij de gebruikersvoorkeuren. Om dit verder uit te werken, bestaat onze prompt uit verschillende componenten:

  • Contextuele relevantie โ€“ Het eerste deel van onze promptsjabloon bevat media-metagegevens zoals itemnaam (filmtitel), beschrijving (filmsynopsis) en attribuut (filmgenre). Door deze informatie op te nemen, biedt de prompt de LLM een bredere context en een uitgebreider begrip van de inhoud. Deze contextuele informatie helpt de LLM het item beter te begrijpen via de beschrijving en attributen ervan, waardoor de bruikbaarheid ervan in scenario's voor inhoudsaanbevelingen wordt vergroot.
  • Uitlijning van gebruikersvoorkeuren โ€“ Door rekening te houden met een gebruikersprofiel dat gebruikersvoorkeuren aangeeft, zijn potentiรซle aanbevelingen beter gepositioneerd om inhoudskenmerken en -functies te identificeren die resoneren met de beoogde gebruikers. Deze uitlijning vergroot de bruikbaarheid van de itembeschrijvingen omdat het de efficiรซntie vergroot van het aanbevelen van items die relevant zijn en in lijn zijn met de voorkeuren van de gebruiker.
  • Verbeterde aanbevelingskwaliteit โ€“ De betrokkenheidsgestuurde prompt maakt gebruik van gebruikersvoorkeuren om relevante promotieartikelen te identificeren. We kunnen ook de gebruikersvoorkeuren gebruiken om de toon van de LLM aan te passen voor de uiteindelijke uitvoer. Dit kan resulteren in een nauwkeurige, informatieve en gepersonaliseerde ervaring, waardoor de algehele prestaties van het inhoudaanbevelingssysteem worden verbeterd.

De volgende code toont een voorbeeld van een promptsjabloon:

prompt_template = """
Our company, "Classic Cinema" frequently promotes movies that we aim to recommend to our customers. This month, we have several popular movies on promotion.

As an AI agent, you are tasked to assist "Classic Cinema" in crafting an email campaign to recommend relevant movies to users. The recommendations should adhere to several guidelines, including contextual relevance, ensuring the recommendations are strictly from our promotional movie list. Additionally, the recommendations should align with user preferences, suggesting items that are relevant and in harmony with the user's preferred categories. You are to provide precisely three top recommended movies. Finally, please draft the email to reflect the tone of the user's preferred categories. The email should not exceed 100 words.

The recommended movies should be sourced from this contextual relevance movie list:
{promotion_movie_list}.

The user has expressed interest in {user_preference}.

Please ensure the recommendations are relevant, and the tone of the email reflects the tastes of those interested in the {user_preference} movie category.

Ensure the letter appeals to those interested in the {user_preference} movie category, and keep the email campaign within a 100-word limit. """

Het volgende is een voorbeeldresultaat met gebruikersvoorkeuren voor sci-fi-, avontuur- en oorlogsgenres:

Onderwerp: Verken de grenzen van klassieke cinema met onze sciencefiction-, avonturen- en oorlogsfilms!

Geachte [naam],
Ben je klaar om een โ€‹โ€‹reis door tijd en ruimte te maken, bloedstollende actie te ervaren en getuige te zijn van de moed van helden op het slagveld? Zoek niet verder! Classic Cinema presenteert met trots onze zorgvuldig samengestelde selectie films, specifiek afgestemd op uw interesses in sciencefiction, avontuur en oorlog.

Als eerste hebben we het iconische โ€œStar Wars: Episode V โ€“ The Empire Strikes Backโ€ (1980). Dit klassieke deel uit de Star Wars-saga volgt Luke Skywalker's reis om een โ€‹โ€‹Jedi-meester te worden, terwijl zijn vrienden het opnemen tegen het kwaadaardige rijk. Met zijn baanbrekende speciale effecten en gedenkwaardige personages is deze film een โ€‹โ€‹must-see voor elke fan van het genre.

Vervolgens raden we โ€œInterstellarโ€ (2014) aan, een tot nadenken stemmende en visueel verbluffende film die zich verdiept in de mysteries van tijd en ruimte. Terwijl een groep ontdekkingsreizigers begint aan een zoektocht om de mensheid te redden, komen ze adembenemende landschappen tegen en ontdekken ze de geheimen van het universum.

Ten slotte hebben we โ€˜Saving Private Ryanโ€™ (1998), een aangrijpend en intens oorlogsdrama dat een groep soldaten volgt op een gevaarlijke missie om een โ€‹โ€‹parachutist te vinden en te redden wiens broers zijn omgekomen. Deze veelgeprezen film is een krachtig eerbetoon aan de helden van de Tweede Wereldoorlog.
Mis deze filmische meesterwerken niet! Bekijk ze nu en ervaar de spanning van avontuur, het wonder van sciencefiction en de moed van oorlogshelden.
Veel kijkplezier en moge de kracht bij je zijn!

Met vriendelijke groet,
Klassiek bioscoopteam

Het volgende is nog een voorbeeldresultaat met een gebruikersvoorkeur voor documentaire, musical en drama:

Onderwerp: Aanbevelingen van klassieke cinema voor liefhebbers van documentaires, musicals en drama

Geachte [naam],
We hopen dat deze e-mail u goed bevalt en dat u geniet van de verscheidenheid aan films die beschikbaar zijn op ons platform. Bij Classic Cinema zijn we er trots op dat we tegemoetkomen aan de uiteenlopende smaak van onze klanten, en we hebben drie uitzonderlijke films geselecteerd waarvan we denken dat ze zullen resoneren met uw interesse in documentaire, musical en drama.


Als eerste hebben we โ€œThe Shawshank Redemptionโ€ (1994), een krachtig en opbeurend drama dat de reis volgt van twee gevangenen terwijl ze hoop en verlossing vinden in een corrupt en meedogenloos gevangenissysteem. Met zijn aangrijpende verhaallijn, uitstekende uitvoeringen en tijdloze thema's is deze film een โ€‹โ€‹must-see voor iedereen die van goed gemaakt drama houdt.


Vervolgens raden we โ€œThe Lord of the Rings: The Fellowship of the Ringโ€ (2001) aan, een episch avontuur dat adembenemende beelden, gedenkwaardige personages en een rijk gedetailleerde wereld combineert. Deze film is een masterclass in verhalen vertellen, met een diep gevoel voor geschiedenis en cultuur die je meeneemt naar Midden-aarde en je doet verlangen naar meer.


Ten slotte stellen we โ€œThe Pianistโ€ (2002) voor, een diepgaande en ontroerende documentaire die het waargebeurde verhaal vertelt van Wล‚adysล‚aw Szpilman, een Pools-Joodse pianist die worstelde om de verwoesting van het getto van Warschau tijdens de Tweede Wereldoorlog te overleven. Deze film is een krachtige herinnering aan het vermogen van de menselijke geest tot veerkracht en hoop, zelfs in het licht van onvoorstelbare tragedies.


We hopen dat deze aanbevelingen aansluiten bij uw interesses en u een plezierige en verrijkende filmervaring bieden. Mis deze tijdloze klassiekers niet โ€“ bekijk ze nu en ontdek de magie van Classic Cinema!
Met vriendelijke groet,
Het klassieke bioscoopteam

We hebben ter vergelijking tests uitgevoerd met zowel Llama 2 7B-Chat (zie het volgende codevoorbeeld) als Llama 70B. Beide modellen presteerden goed en leverden consistente conclusies op. Door gebruik te maken van een promptsjabloon gevuld met actuele gegevens, vonden we het gemakkelijker om willekeurige LLM's te testen, waardoor we de juiste balans tussen prestaties en kosten konden kiezen. We hebben ook een aantal gezamenlijke observaties gedaan die het vermelden waard zijn.

Ten eerste kunnen we zien dat de gegeven aanbevelingen daadwerkelijk aansluiten bij de voorkeuren van de gebruiker. De filmaanbevelingen worden geleid door verschillende componenten binnen onze applicatie, met name het gebruikersprofiel dat is opgeslagen in de feature store.

Bovendien komt de toon van de e-mails overeen met de voorkeuren van de gebruiker. Dankzij de geavanceerde mogelijkheden voor taalbegrip van LLM kunnen we de filmbeschrijvingen en e-mailinhoud aanpassen en afstemmen op elke individuele gebruiker.

Bovendien kan het uiteindelijke uitvoerformaat in de prompt worden ontworpen. In ons geval moet de aanhef โ€œBeste [naam]โ€ bijvoorbeeld worden ingevuld door de e-mailservice. Het is belangrijk op te merken dat, hoewel we vermijden dat persoonlijk identificeerbare informatie (PII) wordt vrijgegeven binnen onze generatieve AI-toepassing, er de mogelijkheid bestaat om deze informatie opnieuw in te voeren tijdens de nabewerking, ervan uitgaande dat het juiste niveau van machtigingen is verleend.

Opruimen

Om onnodige kosten te voorkomen, verwijdert u de bronnen die u als onderdeel van deze oplossing hebt gemaakt, inclusief het functiearchief en het LLM-inferentie-eindpunt dat is geรฏmplementeerd met SageMaker JumpStart.

Conclusie

De kracht van LLM's bij het genereren van gepersonaliseerde aanbevelingen is enorm en transformatief, vooral in combinatie met de juiste tools. Door SageMaker Feature Store en LangChain te integreren voor snelle engineering, kunnen ontwikkelaars zeer op maat gemaakte gebruikersprofielen samenstellen en beheren. Dit resulteert in hoogwaardige, contextbewuste input die de aanbevelingsprestaties aanzienlijk verbetert. In ons illustratieve scenario zagen we hoe dit kan worden toegepast om filmaanbevelingen af โ€‹โ€‹te stemmen op individuele gebruikersvoorkeuren, wat resulteert in een zeer persoonlijke ervaring.

Naarmate het LLM-landschap blijft evolueren, verwachten we meer innovatieve toepassingen te zien die deze modellen gebruiken om nog boeiendere, gepersonaliseerde ervaringen te bieden. De mogelijkheden zijn grenzeloos en we zijn benieuwd wat u met deze tools gaat creรซren. Met bronnen zoals SageMaker JumpStart en Amazonebodem nu beschikbaar om de ontwikkeling van generatieve AI-toepassingen te versnellen, raden we ten zeerste aan om de constructie van aanbevelingsoplossingen te onderzoeken met behulp van LLM's op AWS.


Over de auteurs

Yanwei Cui, PhD, is een Senior Machine Learning Specialist Solutions Architect bij AWS. Hij begon onderzoek naar machine learning bij IRISA (Research Institute of Computer Science and Random Systems) en heeft een aantal jaren ervaring met het bouwen van AI-aangedreven industriรซle toepassingen op het gebied van computer vision, natuurlijke taalverwerking en online voorspelling van gebruikersgedrag. Bij AWS deelt hij zijn domeinexpertise en helpt hij klanten zakelijke mogelijkheden te ontsluiten en bruikbare resultaten te behalen met machinaal leren op schaal. Buiten zijn werk houdt hij van lezen en reizen.

Gorden Wang is een Senior AI/ML Specialist TAM bij AWS. Hij ondersteunt strategische klanten met best practices op het gebied van AI/ML in vele sectoren. Hij heeft een passie voor computer vision, NLP, generatieve AI en MLOps. In zijn vrije tijd houdt hij van hardlopen en wandelen.

Michelle Hong, PhD, werkt als Prototyping Solutions Architect bij Amazon Web Services, waar ze klanten helpt innovatieve applicaties te bouwen met behulp van een verscheidenheid aan AWS-componenten. Ze demonstreerde haar expertise op het gebied van machinaal leren, met name op het gebied van natuurlijke taalverwerking, om datagestuurde oplossingen te ontwikkelen die bedrijfsprocessen optimaliseren en klantervaringen verbeteren.

Bin Wang, PhD, is een Senior Analytic Specialist Solutions Architect bij AWS, met meer dan 12 jaar ervaring in de ML-industrie, met een bijzondere focus op adverteren. Hij beschikt over expertise op het gebied van natuurlijke taalverwerking (NLP), aanbevelingssystemen, diverse ML-algoritmen en ML-bewerkingen. Hij heeft een grote passie voor het toepassen van ML/DL- en big data-technieken om problemen uit de echte wereld op te lossen. Buiten zijn professionele leven houdt hij van muziek, lezen en reizen.

spot_img

Laatste intelligentie

spot_img