Logo Zéphyrnet

Utilisez RAG pour la découverte de médicaments avec les bases de connaissances pour Amazon Bedrock | Services Web Amazon

Date :

Socle amazonien fournit une large gamme de modèles d'Amazon et de fournisseurs tiers, notamment Anthropic, AI21, Meta, Cohere et Stability AI, et couvre un large éventail de cas d'utilisation, notamment la génération de texte et d'images, l'intégration, le chat et les agents de haut niveau. avec raisonnement et orchestration, et plus encore. Bases de connaissances pour Amazon Bedrock vous permet de créer des applications de génération augmentée de récupération (RAG) performantes et personnalisées sur AWS et des magasins de vecteurs tiers en utilisant à la fois des modèles AWS et tiers. Les bases de connaissances pour Amazon Bedrock automatisent la synchronisation de vos données avec votre magasin de vecteurs, notamment la comparaison des données lors de leur mise à jour, le chargement et la segmentation des documents, ainsi que l'intégration sémantique. Il vous permet de personnaliser de manière transparente vos invites RAG et vos stratégies de récupération : nous fournissons l'attribution de la source et nous gérons automatiquement la gestion de la mémoire. Les bases de connaissances sont entièrement sans serveur, vous n'avez donc pas besoin de gérer d'infrastructure, et lorsque vous utilisez les bases de connaissances, vous n'êtes facturé que pour les modèles, les bases de données vectorielles et le stockage que vous utilisez.

RAG est une technique populaire qui combine l'utilisation de données privées avec de grands modèles de langage (LLM). RAG commence par une étape initiale consistant à récupérer les documents pertinents à partir d'un magasin de données (le plus souvent un index vectoriel) en fonction de la requête de l'utilisateur. Il utilise ensuite un modèle de langage pour générer une réponse en considérant à la fois les documents récupérés et la requête d'origine.

Dans cet article, nous montrons comment créer un flux de travail RAG à l'aide des bases de connaissances pour Amazon Bedrock pour un cas d'utilisation de découverte de médicaments.

Présentation des bases de connaissances pour Amazon Bedrock

Les bases de connaissances pour Amazon Bedrock prennent en charge un large éventail de types de fichiers courants, notamment .txt, .docx, .pdf, .csv, etc. Pour permettre une récupération efficace des données privées, une pratique courante consiste d'abord à diviser ces documents en morceaux gérables. Les bases de connaissances ont mis en œuvre une stratégie de segmentation par défaut qui fonctionne bien dans la plupart des cas pour vous permettre de démarrer plus rapidement. Si vous souhaitez plus de contrôle, les bases de connaissances vous permettent de contrôler la stratégie de segmentation via un ensemble d'options préconfigurées. Vous pouvez contrôler la taille maximale du jeton et la quantité de chevauchement à créer entre les morceaux pour fournir un contexte cohérent à l'intégration. Les bases de connaissances pour Amazon Bedrock gèrent le processus de synchronisation des données de votre Service de stockage simple Amazon (Amazon S3), le divise en morceaux plus petits, génère des intégrations vectorielles et stocke les intégrations dans un index vectoriel. Ce processus s’accompagne d’une gestion intelligente des différences, du débit et des pannes.

Au moment de l'exécution, un modèle d'intégration est utilisé pour convertir la requête de l'utilisateur en vecteur. L'index vectoriel est ensuite interrogé pour trouver des documents similaires à la requête de l'utilisateur en comparant les vecteurs de documents au vecteur de requête de l'utilisateur. Dans la dernière étape, les documents sémantiquement similaires extraits de l'index vectoriel sont ajoutés comme contexte pour la requête utilisateur d'origine. Lors de la génération d'une réponse pour l'utilisateur, les documents sémantiquement similaires sont invités dans le modèle de texte, ainsi que l'attribution de la source à des fins de traçabilité.

Les bases de connaissances pour Amazon Bedrock prennent en charge plusieurs bases de données vectorielles, notamment Amazon OpenSearch sans serveur, Amazon Aurora, Pinecone et Redis Enterprise Cloud. Les API Retrieve et RetrieveAndGenerate permettent à vos applications d'interroger directement l'index à l'aide d'une syntaxe unifiée et standard sans avoir à apprendre des API distinctes pour chaque base de données vectorielle différente, réduisant ainsi le besoin d'écrire des requêtes d'index personnalisées sur votre magasin de vecteurs. L'API Retrieve prend la requête entrante, la convertit en un vecteur d'intégration et interroge le magasin principal à l'aide des algorithmes configurés au niveau de la base de données vectorielle ; l'API RetrieveAndGenerate utilise un LLM configuré par l'utilisateur fourni par Amazon Bedrock et génère la réponse finale en langage naturel. Le support natif de traçabilité informe l’application requérante sur les sources utilisées pour répondre à une question. Pour les implémentations en entreprise, les bases de connaissances prennent en charge Service de gestion des clés AWS (AWS KMS), le chiffrement AWS CloudTrail intégration, et plus encore.

Dans les sections suivantes, nous montrons comment créer un flux de travail RAG à l'aide des bases de connaissances pour Amazon Bedrock, soutenues par le moteur vectoriel OpenSearch Serverless, pour analyser un ensemble de données d'essai clinique non structuré pour un cas d'utilisation de découverte de médicaments. Ces données sont riches en informations mais peuvent être très hétérogènes. Une bonne gestion de la terminologie et des concepts spécialisés dans différents formats est essentielle pour détecter les informations et garantir l’intégrité analytique. Avec les bases de connaissances pour Amazon Bedrock, vous pouvez accéder à des informations détaillées via des requêtes simples et naturelles.

Créer une base de connaissances pour Amazon Bedrock

Dans cette section, nous démontrons le processus de création d'une base de connaissances pour Amazon Bedrock via la console. Effectuez les étapes suivantes :

  1. Sur la console Amazon Bedrock, sous Orchestration dans le volet de navigation, choisissez Base de connaissances.
  2. Selectionnez Créer une base de connaissances.

  1. Dans le Détails de la base de connaissances , entrez un nom et une description facultative.
  2. Dans le Autorisations IAM section, sélectionnez Créer et utiliser un nouveau rôle de service.
  3. Pour Rôle de nom de service, saisissez un nom pour votre rôle, qui doit commencer par AmazonBedrockExecutionRoleForKnowledgeBase_.
  4. Selectionnez Suivant.

  1. Dans le La source de données , entrez un nom pour votre source de données et l'URI S3 où se trouve l'ensemble de données. Les bases de connaissances prennent en charge les formats de fichiers suivants :
    • Texte brut (.txt)
    • Démarquage (.md)
    • Langage de balisage hypertexte (.html)
    • Document Microsoft Word (.doc/.docx)
    • Valeurs séparées par des virgules (.csv)
    • Feuille de calcul Microsoft Excel (.xls/.xlsx)
    • Format de document portable (.pdf)
  1. Sous paramètres supplémentaires¸ choisissez votre stratégie de chunking préférée (pour cet article, nous choisissons Morceau de taille fixe) et spécifiez la taille du bloc et la superposition en pourcentage. Vous pouvez également utiliser les paramètres par défaut.
  2. Selectionnez Suivant.

  1. Dans le Modèle d'intégration , choisissez le modèle Titan Embeddings d'Amazon Bedrock.
  2. Dans le Base de données vectorielle section, sélectionnez Créez rapidement un nouveau magasin de vecteurs, qui gère le processus de création d'un magasin vectoriel.
  3. Selectionnez Suivant.

  1. Vérifiez les paramètres et choisissez Créer une base de connaissances.

  1. Attendez la fin de la création de la base de connaissances et confirmez que son statut est Prêt à fonctionner.
  2. Dans le La source de données ou sur la bannière en haut de la page ou dans le popup de la fenêtre de test, choisissez Sync pour déclencher le processus de chargement des données à partir du compartiment S3, en les divisant en morceaux de la taille que vous avez spécifiée, en générant des intégrations vectorielles à l'aide du modèle d'incorporation de texte sélectionné et en les stockant dans le magasin de vecteurs géré par les bases de connaissances pour Amazon Bedrock.

La fonction de synchronisation prend en charge l'ingestion, la mise à jour et la suppression des documents de l'index vectoriel en fonction des modifications apportées aux documents dans Amazon S3. Vous pouvez également utiliser le StartIngestionJob API pour déclencher la synchronisation via le SDK AWS.

Une fois la synchronisation terminée, l'historique de synchronisation affiche l'état Terminé.

Interroger la base de connaissances

Dans cette section, nous montrons comment accéder aux informations détaillées de la base de connaissances via des requêtes simples et naturelles. Nous utilisons un ensemble de données synthétiques non structurées composé de fichiers PDF, le numéro de page de chacun allant de 10 à 100 pages, simulant un plan d'essai clinique d'un nouveau médicament proposé comprenant des méthodes d'analyse statistique et des formulaires de consentement des participants. Nous utilisons les bases de connaissances pour Amazon Bedrock retrieve_and_generate ainsi que retrieve API avec Intégration d'Amazon Bedrock LangChain.

Avant de pouvoir écrire des scripts qui utilisent l'API Amazon Bedrock, vous devez installer la version appropriée du kit SDK AWS dans votre environnement. Pour les scripts Python, ce sera le AWS SDK pour Python (Boto3):

pip install langchain
pip install boto3

De plus, activez l'accès au modèle Amazon Titan Embeddings et à Anthropic Claude v2 ou v1. Pour plus d'informations, reportez-vous à Accès au modèle.

Générer des questions à l'aide d'Amazon Bedrock

Nous pouvons utiliser Anthropic Claude 2.1 pour Amazon Bedrock pour proposer une liste de questions à poser sur l'ensemble de données des essais cliniques :

import boto3
from langchain.llms.bedrock import Bedrock

bedrock_client = boto3.client("bedrock-runtime")

# Start with the query
prompt = "For medical research trial consent forms to sign, what are the top 5 questions can be asked?"

claude_llm = Bedrock(
    model_id="anthropic.claude-v2:1",
    model_kwargs={"temperature": 0, "top_k": 10, "max_tokens_to_sample": 3000},
    client=bedrock_client,
)

# Provide the prompt to the LLM to generate an answer to the query without any additional context provided
response = claude_llm(prompt)
questions = [
    item.split(".")[1].strip() for item in response.strip().split("nn")[1:-1]
]
questions
>>> answer:
'What is the purpose of the study? Make sure you understand the goals of the research and what the study procedures will entail',
'What are the risks and potential benefits? The form should explain all foreseeable risks, side effects, or discomforts you might experience from participating',
'What will participation involve? Get details on what tests, medications, lifestyle changes, or procedures you will go through, how much time it will take, and how long the study will last',
'Are there any costs or payments? Ask if you will be responsible for any costs related to the study or get paid for participating',
'How will my privacy be protected? The form should explain how your personal health information will be kept confidential before, during, and after the trial'

Utiliser l'API Amazon Bedrock RetrieveAndGenerate

Pour une expérience RAG entièrement gérée, vous pouvez utiliser les bases de connaissances natives d'Amazon Bedrock. RetrieveAndGenerate API pour obtenir les réponses directement :

bedrock_agent_client = boto3.client("bedrock-agent-runtime")

kb_id = "<YOUR_KNOWLEDGE_BASE_ID>"

def retrieveAndGenerate(
    input: str,
    kbId: str,
    region: str = "us-east-1",
    sessionId: str = None,
    model_id: str = "anthropic.claude-v2:1",
):
    model_arn = f"arn:aws:bedrock:{region}::foundation-model/{model_id}"

    if sessionId:
        return bedrock_agent_client.retrieve_and_generate(
            input={"text": input},
            retrieveAndGenerateConfiguration={
                "type": "KNOWLEDGE_BASE",
                "knowledgeBaseConfiguration": {
                    "knowledgeBaseId": kbId,
                    "modelArn": model_arn,
                },
            },
            sessionId=sessionId,
        )

    else:
        return bedrock_agent_client.retrieve_and_generate(
            input={"text": input},
            retrieveAndGenerateConfiguration={
                "type": "KNOWLEDGE_BASE",
                "knowledgeBaseConfiguration": {
                    "knowledgeBaseId": kbId,
                    "modelArn": model_arn,
                },
            },
        )

response = retrieveAndGenerate(
    "What are the potential risks and benefits of participating?", kb_id
)

generated_text = response["output"]["text"]
>>> "The potential risks include side effects from the study medication lithium such as nausea, loose stools, thirst, urination changes, shakiness, headaches, sweating, fatigue, decreased concentration, and skin rash. There is also a risk of lithium interaction with other medications. For women, there is a risk of birth defects if lithium is taken during pregnancy. There are no guaranteed benefits, but possible benefits include new information that could help the participant from the interviews and tests conducted during the study."

La source d'informations citée peut être obtenue via le code suivant (avec une partie des résultats rédigée par souci de concision) :

response["citations"]

>>> [
    {
        "generatedResponsePart": {
            "textResponsePart": {
                "text": " The potential risks include side effects from the study...",
                "span": {"start": 0, "end": 361},
            }
        },
        "retrievedReferences": [
            {
                "content": {
                    "text": "590 ICF#2 Page 7 of 19 The primary risks and discomforts of participation…"
                },
                "location": {"type": "S3", "s3Location": {"uri": "s3://XXXX/XXXX.pdf"}},
            },
            {
                "content": {
                    "text": "N/A CSP 590 ICF#2 Page 10 of 19 Risks associated with suddenly stopping study medications..."
                },
                "location": {"type": "S3", "s3Location": {"uri": "s3://XXXX/XXXX.pdf"}},
            },
        ],
    },
    {
        "generatedResponsePart": {
            "textResponsePart": {
                "text": " There are no guaranteed benefits, but possible benefits include...",
                "span": {"start": 363, "end": 531},
            }
        },
        "retrievedReferences": [
            {
                "content": {
                    "text": "research, not usual clinical care. After these are done we ask..."
                },
                "location": {"type": "S3", "s3Location": {"uri": "s3://XXXX/XXXX.pdf"}},
            }
        ],
    },
]

En transmettant l'ID de session du RetrieveAndGenerate API, vous pouvez préserver le contexte de la conversation et poser des questions de suivi. Par exemple, sans le contexte, si vous demandez plus de détails à la réponse précédente, il se peut qu'il ne soit pas en mesure de répondre correctement :

retrieveAndGenerate("elaborate more on the first side effect", kb_id, sessionId=None)["output"]["text"]
>>> "The search results do not provide additional details about the mild nausea side effect that would allow me to elaborate further on it."

Mais en transmettant l'ID de session, le pipeline RAG est capable d'identifier le contexte correspondant et de renvoyer des réponses pertinentes :

retrieveAndGenerate("elaborate more on the first side effect", kb_id, sessionId=response["sessionId"])["output"]["text"]
>>> "The search results provide details that nausea from taking lithium is usually mild and goes away after days or weeks for most people. Specifically, up to 75% of people may experience mild nausea when first starting lithium, but this goes away in 90-99% of people who continue taking it."

Le tableau suivant montre les réponses récupérées à toutes les questions correspondantes.

Question Compagnie de Solution
Quel est le but de l’étude ? Assurez-vous de bien comprendre les objectifs de la recherche et ce qu'impliqueront les procédures d'étude. Le but de l'étude est de tester si le lithium est efficace pour prévenir les violences autodirigées suicidaires répétées chez les patients souffrant de dépression ou de trouble bipolaire.
Quels sont les risques et les avantages potentiels ? Le formulaire doit expliquer tous les risques, effets secondaires ou inconforts prévisibles que vous pourriez ressentir en participant. Les risques ou inconforts possibles comprennent : les questions de l'entretien provoquant un inconfort, les effets secondaires du médicament au lithium tels que des nausées, des selles molles, la soif, des modifications de la miction, des tremblements, des maux de tête, de la transpiration, de la fatigue, une diminution de la concentration, des éruptions cutanées, des modifications de la thyroïde, une aggravation de l'acné. /psoriasis, toxicité du lithium et risques en cas d'arrêt brutal du traitement. Les avantages potentiels sont que les tests peuvent conduire à de nouvelles informations pour aider le participant, et le lithium peut aider à prévenir la violence auto-suicide répétée chez les personnes souffrant de dépression ou de trouble bipolaire.
En quoi consistera la participation ? Obtenez des détails sur les tests, les médicaments, les changements de style de vie ou les procédures que vous subirez, le temps que cela prendra et la durée de l'étude. La participation impliquera de répondre à un entretien et à des questionnaires couvrant la pensée, les comportements, le traitement de santé mentale, les médicaments, la consommation d'alcool et de drogues, les soutiens familiaux et sociaux et la compréhension de l'étude de recherche. Cela prend environ deux heures et peut être effectué en plusieurs séances, en personne et par téléphone. Si vous êtes éligible à l'étude complète, il y aura environ 20 visites d'étude sur un an. Cela impliquera de prendre les médicaments à l'étude, de faire vérifier les signes vitaux, de remplir des questionnaires, d'examiner les effets secondaires et de poursuivre les soins médicaux et de santé mentale normaux.
Y a-t-il des frais ou des paiements ? Demandez si vous serez responsable de tous les coûts liés à l’étude ou si vous serez payé pour votre participation. Oui, les coûts et les paiements sont abordés dans les résultats de recherche. Vous ne serez pas facturé pour les traitements ou procédures faisant partie de l’étude. Cependant, vous devrez toujours payer les co-paiements VA habituels pour les soins et les médicaments non liés à l'étude. Vous ne serez pas payé pour votre participation, mais l'étude remboursera les dépenses liées à la participation comme le transport, le stationnement, etc. Les montants et le processus de remboursement sont fournis.
Comment ma vie privée sera-t-elle protégée ? Le formulaire doit expliquer comment vos informations personnelles sur la santé resteront confidentielles avant, pendant et après l'essai. Votre vie privée sera protégée en menant des entretiens en privé, en conservant des notes écrites dans des fichiers et des bureaux verrouillés, en stockant des informations électroniques dans des fichiers cryptés et protégés par mot de passe et en obtenant un certificat de confidentialité du ministère de la Santé et des Services sociaux pour empêcher la divulgation d'informations qui vous identifient. . Les informations qui vous identifient peuvent être partagées avec les médecins responsables de vos soins ou pour des audits et des évaluations par des agences gouvernementales, mais les discussions et les documents sur l'étude ne vous identifieront pas.

Requête à l'aide de l'API Amazon Bedrock Retrieve

Pour personnaliser votre flux de travail RAG, vous pouvez utiliser l'API Retrieve pour récupérer les morceaux pertinents en fonction de votre requête et les transmettre à n'importe quel LLM fourni par Amazon Bedrock. Pour utiliser l'API Retrieve, définissez-la comme suit :

def retrieve(query: str, kbId: str, numberOfResults: int = 5):
    return bedrock_agent_client.retrieve(
        retrievalQuery={"text": query},
        knowledgeBaseId=kbId,
        retrievalConfiguration={
            "vectorSearchConfiguration": {"numberOfResults": numberOfResults}
        },
    )

Récupérez le contexte correspondant (avec une partie du résultat rédigée par souci de concision) :

query = "What is the purpose of the medical research study?"
response = retrieve(query, kb_id, 3)
retrievalResults = response["retrievalResults"]
>>> [
    {
        "content": {"text": "You will not be charged for any procedures that..."},
        "location": {"type": "S3", "s3Location": {"uri": "s3://XXXXX/XXXX.pdf"}},
        "score": 0.6552521,
    },
    {
        "content": {"text": "and possible benefits of the study. You have been..."},
        "location": {"type": "S3", "s3Location": {"uri": "s3://XXXX/XXXX.pdf"}},
        "score": 0.6581577,
    },
    ...,
]

Extrayez le contexte du modèle d'invite :

def get_contexts(retrievalResults):
    contexts = []
    for retrievedResult in retrievalResults:
        contexts.append(retrievedResult["content"]["text"])
    return " ".join(contexts)

contexts = get_contexts(retrievalResults)

Importez les modules Python et configurez le modèle d'invite de réponse aux questions contextuelles, puis générez la réponse finale :

from langchain.prompts import PromptTemplate

PROMPT_TEMPLATE = """
Human: You are an AI system working on medical trial research, and provides answers to questions 
by using fact based and statistical information when possible.
Use the following pieces of information to provide a concise answer to the question enclosed in <question> tags.
If you don't know the answer, just say that you don't know, don't try to make up an answer.

<context>
{context_str}
</context>

<question>
{query_str}
</question>

The response should be specific and use statistics or numbers when possible.

Assistant:"""

claude_prompt = PromptTemplate(
    template=PROMPT_TEMPLATE, input_variables=["context_str", "query_str"]
)

prompt = claude_prompt.format(context_str=contexts, query_str=query)
response = claude_llm(prompt)
>>> "Based on the context provided, the purpose of this medical research study is to evaluate the efficacy of lithium compared to a placebo in preventing suicide over a 1 year period. Specifically, participants will be randomly assigned to receive either lithium or a placebo pill for 1 year, with their doctors and the participants themselves not knowing which treatment they receive (double-blind). Blood lithium levels will be monitored and doses adjusted over the first 6-8 visits, then participants will be followed monthly for 1 year to assess outcomes."

Requête à l'aide de l'intégration Amazon Bedrock LangChain

Pour créer une application de questions-réponses personnalisée de bout en bout, les bases de connaissances pour Amazon Bedrock fournissent une intégration avec LangChain. Pour configurer le récupérateur LangChain, fournissez l'ID de la base de connaissances et spécifiez le nombre de résultats à renvoyer de la requête :

from langchain.retrievers.bedrock import AmazonKnowledgeBasesRetriever

retriever = AmazonKnowledgeBasesRetriever(
    knowledge_base_id=kb_id,
    retrieval_config={"vectorSearchConfiguration": {"numberOfResults": 4}},
)

Configurez maintenant LangChain RetrievalQA et générez des réponses à partir de la base de connaissances :

from langchain.chains import RetrievalQA

qa = RetrievalQA.from_chain_type(
    llm=claude_llm,
    chain_type="stuff",
    retriever=retriever,
    return_source_documents=True,
    chain_type_kwargs={"prompt": claude_prompt},
)

[qa(q)["result"] for q in questions]

Cela générera des réponses correspondantes similaires à celles répertoriées dans le tableau précédent.

Nettoyer

Assurez-vous de supprimer les ressources suivantes pour éviter d'encourir des frais supplémentaires :

Conclusion

Amazon Bedrock fournit un large éventail de services profondément intégrés pour alimenter les applications RAG à toutes les échelles, ce qui facilite la mise en route de l'analyse des données de votre entreprise. Les bases de connaissances pour Amazon Bedrock s'intègrent aux modèles de base Amazon Bedrock pour créer des pipelines d'intégration de documents évolutifs et des services de récupération de documents pour alimenter une large gamme d'applications internes et destinées aux clients. Nous sommes enthousiasmés par l’avenir à venir et vos commentaires joueront un rôle essentiel dans l’orientation des progrès de ce produit. Pour en savoir plus sur les capacités d'Amazon Bedrock et les bases de connaissances, reportez-vous à Base de connaissances pour Amazon Bedrock.


À propos des auteurs

Marc Roy est un architecte principal d'apprentissage machine pour AWS, aidant les clients à concevoir et à créer des solutions d'IA/ML. Le travail de Mark couvre un large éventail de cas d'utilisation du ML, avec un intérêt principal pour la vision par ordinateur, l'apprentissage en profondeur et la mise à l'échelle du ML dans l'entreprise. Il a aidé des entreprises dans de nombreux secteurs, notamment l'assurance, les services financiers, les médias et le divertissement, la santé, les services publics et la fabrication. Mark détient six certifications AWS, y compris la certification de spécialité ML. Avant de rejoindre AWS, Mark a été architecte, développeur et leader technologique pendant plus de 25 ans, dont 19 ans dans les services financiers.

Mani Khanouja est responsable technique – Spécialistes de l'IA générative, auteur du livre – Apprentissage automatique appliqué et calcul haute performance sur AWS, et membre du conseil d'administration de la Women in Manufacturing Education Foundation. Elle dirige des projets d'apprentissage automatique (ML) dans divers domaines tels que la vision par ordinateur, le traitement du langage naturel et l'IA générative. Elle aide les clients à créer, former et déployer de grands modèles d'apprentissage automatique à grande échelle. Elle intervient lors de conférences internes et externes telles que re:Invent, Women in Manufacturing West, les webinaires YouTube et GHC 23. Pendant son temps libre, elle aime faire de longues courses le long de la plage.

Dr Baichuan Sun, actuellement architecte principal de solutions IA/ML chez AWS, se concentre sur l'IA générative et applique ses connaissances en science des données et en apprentissage automatique pour fournir des solutions commerciales pratiques basées sur le cloud. Fort de son expérience en conseil en gestion et en architecture de solutions d'IA, il relève une gamme de défis complexes, notamment la vision par ordinateur robotique, la prévision de séries chronologiques et la maintenance prédictive, entre autres. Son travail s'appuie sur une solide expérience en gestion de projet, en R&D de logiciels et en activités académiques. En dehors du travail, le Dr Sun aime voyager et passer du temps avec sa famille et ses amis.

Derrick Choo est un architecte de solutions senior chez AWS dont l'objectif est d'accélérer le parcours des clients vers le cloud et de transformer leur entreprise grâce à l'adoption de solutions basées sur le cloud. Son expertise réside dans le développement d’applications full stack et d’apprentissage automatique. Il aide les clients à concevoir et à créer des solutions de bout en bout couvrant les interfaces utilisateur frontales, les applications IoT, les intégrations d'API et de données et les modèles d'apprentissage automatique. Pendant son temps libre, il aime passer du temps avec sa famille et expérimenter la photographie et la vidéographie.

Franck Winkler est architecte de solutions senior et spécialiste de l'IA générative chez AWS basé à Singapour, spécialisé dans l'apprentissage automatique et l'IA générative. Il travaille avec des entreprises mondiales natives du numérique pour concevoir des produits et services évolutifs, sécurisés et rentables sur AWS. Pendant son temps libre, il passe du temps avec son fils et sa fille et voyage pour profiter des vagues à travers l'ASEAN.

Nihir Chadderwala est architecte principal de solutions IA/ML au sein de l’équipe mondiale de la santé et des sciences de la vie. Son expertise réside dans la création de solutions basées sur le Big Data et l'IA pour répondre aux problèmes des clients, en particulier dans les domaines biomédical, des sciences de la vie et de la santé. Il est également enthousiasmé par l’intersection de la science de l’information quantique et de l’IA et aime apprendre et contribuer à cet espace. Dans ses temps libres, il aime jouer au tennis, voyager et apprendre la cosmologie.

spot_img

Dernières informations

spot_img