अमेज़ॅन सेजमेकर मॉडल बिल्डिंग पाइपलाइन बनाएं और अमेज़ॅन सेजमेकर प्लेटोब्लॉकचैन डेटा इंटेलिजेंस पर आरस्टूडियो का उपयोग करके आर मॉडल तैनात करें। लंबवत खोज। ऐ.

Amazon SageMaker मॉडल बिल्डिंग पाइपलाइन बनाएं और Amazon SageMaker पर RStudio का उपयोग करके R मॉडल तैनात करें

नवंबर 2021 में . के सहयोग से आरस्टूडियो पीबीसी, हम की घोषणा की सामान्य उपलब्धता अमेज़न सेजमेकर पर RStudio, क्लाउड में उद्योग का पहला पूरी तरह से प्रबंधित RStudio कार्यक्षेत्र IDE। अब आप अपने स्व-प्रबंधित RStudio परिवेशों को आसानी से माइग्रेट करने के लिए अपना वर्तमान RStudio लाइसेंस ला सकते हैं अमेज़न SageMaker बस कुछ सरल चरणों में।

RStudio मशीन लर्निंग (ML) और डेटा साइंस प्रोजेक्ट के लिए R डेवलपर्स के बीच सबसे लोकप्रिय IDE में से एक है। RStudio संगठन में अपने काम को विकसित करने और साझा करने के लिए डेटा विज्ञान टीमों के लिए आर और एंटरप्राइज़-तैयार पेशेवर सॉफ़्टवेयर के लिए ओपन-सोर्स टूल प्रदान करता है। RStudio को सेजमेकर पर लाने से न केवल आपको पूरी तरह से प्रबंधित तरीके से AWS इन्फ्रास्ट्रक्चर तक पहुंच मिलती है, बल्कि यह आपको SageMaker तक मूल पहुंच भी प्रदान करता है।

इस पोस्ट में, हम यह पता लगाते हैं कि आप SageMaker पर RStudio के माध्यम से SageMaker सुविधाओं का उपयोग कैसे कर सकते हैं, एक SageMaker पाइपलाइन बनाने के लिए जो आपके R मॉडल को बनाता है, प्रोसेस करता है, प्रशिक्षित करता है और पंजीकृत करता है। हम अपने मॉडल परिनियोजन के लिए SageMaker का उपयोग करके भी खोज करते हैं, सभी R का उपयोग करते हैं।

समाधान अवलोकन

निम्नलिखित आरेख हमारे समाधान में प्रयुक्त वास्तुकला को दर्शाता है। इस उदाहरण में प्रयुक्त सभी कोड में पाया जा सकता है गिटहब भंडार.

.. पूर्वापेक्षाएँ

इस पोस्ट का अनुसरण करने के लिए, सेजमेकर पर RStudio तक पहुंच की आवश्यकता है। यदि आप सेजमेकर पर RStudio का उपयोग करने के लिए नए हैं, तो समीक्षा करें Amazon SageMaker पर RStudio के साथ शुरुआत करें.

हमें कस्टम डॉकर कंटेनर बनाने की भी आवश्यकता है। हम उपयोग करते हैं एडब्ल्यूएस कोडबिल्ड इन कंटेनरों को बनाने के लिए, इसलिए आपको कुछ अतिरिक्त चाहिए AWS पहचान और अभिगम प्रबंधन (IAM) अनुमतियाँ जो आपके पास डिफ़ॉल्ट रूप से नहीं हो सकती हैं। आगे बढ़ने से पहले, सुनिश्चित करें कि आपके द्वारा उपयोग की जा रही IAM भूमिका में CodeBuild के साथ एक विश्वास नीति है:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": [
          "codebuild.amazonaws.com"
        ]
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

कोडबिल्ड में एक बिल्ड चलाने और छवि को आगे बढ़ाने के लिए IAM भूमिका में निम्नलिखित अनुमतियों की भी आवश्यकता होती है अमेज़ॅन इलास्टिक कंटेनर रजिस्ट्री (अमेज़ॅन ईसीआर):

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codebuild:DeleteProject",
                "codebuild:CreateProject",
                "codebuild:BatchGetBuilds",
                "codebuild:StartBuild"
            ],
            "Resource": "arn:aws:codebuild:*:*:project/sagemaker-studio*"
        },
        {
            "Effect": "Allow",
            "Action": "logs:CreateLogStream",
            "Resource": "arn:aws:logs:*:*:log-group:/aws/codebuild/sagemaker-studio*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "logs:GetLogEvents",
                "logs:PutLogEvents"
            ],
            "Resource": "arn:aws:logs:*:*:log-group:/aws/codebuild/sagemaker-studio*:log-stream:*"
        },
        {
            "Effect": "Allow",
            "Action": "logs:CreateLogGroup",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ecr:CreateRepository",
                "ecr:BatchGetImage",
                "ecr:CompleteLayerUpload",
                "ecr:DescribeImages",
                "ecr:DescribeRepositories",
                "ecr:UploadLayerPart",
                "ecr:ListImages",
                "ecr:InitiateLayerUpload", 
                "ecr:BatchCheckLayerAvailability",
                "ecr:PutImage"
            ],
            "Resource": "arn:aws:ecr:*:*:repository/sagemaker-studio*"
        },
        {
            "Sid": "ReadAccessToPrebuiltAwsImages",
            "Effect": "Allow",
            "Action": [
                "ecr:BatchGetImage",
                "ecr:GetDownloadUrlForLayer"
            ],
            "Resource": [
                "arn:aws:ecr:*:763104351884:repository/*",
                "arn:aws:ecr:*:217643126080:repository/*",
                "arn:aws:ecr:*:727897471807:repository/*",
                "arn:aws:ecr:*:626614931356:repository/*",
                "arn:aws:ecr:*:683313688378:repository/*",
                "arn:aws:ecr:*:520713654638:repository/*",
                "arn:aws:ecr:*:462105765813:repository/*"
            ]
        },
        {
            "Sid": "EcrAuthorizationTokenRetrieval",
            "Effect": "Allow",
            "Action": [
                "ecr:GetAuthorizationToken"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
              "s3:GetObject",
              "s3:DeleteObject",
              "s3:PutObject"
              ],
            "Resource": "arn:aws:s3:::sagemaker-*/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:CreateBucket"
            ],
            "Resource": "arn:aws:s3:::sagemaker*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "iam:GetRole",
                "iam:ListRoles"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::*:role/*",
            "Condition": {
                "StringLikeIfExists": {
                    "iam:PassedToService": "codebuild.amazonaws.com"
                }
            }
        }
    ]
}

बेसलाइन आर कंटेनर बनाएं

सेजमेकर प्रसंस्करण और प्रशिक्षण नौकरियों पर प्रसंस्करण और प्रशिक्षण के लिए हमारी आर स्क्रिप्ट का उपयोग करने के लिए, हमें अपना खुद का बनाना होगा डॉकर कंटेनर आवश्यक रनटाइम और पैकेज युक्त। अपने स्वयं के कंटेनर का उपयोग करने की क्षमता, जो सेजमेकर की पेशकश का हिस्सा है, डेवलपर्स और डेटा वैज्ञानिकों को अपनी पसंद के टूल और फ्रेमवर्क का उपयोग करने के लिए बहुत लचीलापन देता है, वस्तुतः कोई सीमा नहीं है।

हम दो आर-सक्षम डॉकर कंटेनर बनाते हैं: एक प्रसंस्करण नौकरियों के लिए और एक हमारे मॉडल के प्रशिक्षण और तैनाती के लिए। डेटा को संसाधित करने के लिए आमतौर पर मॉडलिंग की तुलना में अलग-अलग पैकेज और पुस्तकालयों की आवश्यकता होती है, इसलिए यहां दो चरणों को अलग करना और विभिन्न कंटेनरों का उपयोग करना समझ में आता है।

सेजमेकर के साथ कंटेनरों का उपयोग करने के बारे में अधिक जानकारी के लिए देखें सेजमेकर के साथ डॉकर कंटेनरों का उपयोग करना.

प्रसंस्करण के लिए उपयोग किए जाने वाले कंटेनर को निम्नानुसार परिभाषित किया गया है:

FROM public.ecr.aws/docker/library/r-base:4.1.2

# Install tidyverse
RUN apt update && apt-get install -y --no-install-recommends 
    r-cran-tidyverse
    
RUN R -e "install.packages(c('rjson'))"

ENTRYPOINT ["Rscript"]

इस पोस्ट के लिए, हम एक साधारण और अपेक्षाकृत हल्के कंटेनर का उपयोग करते हैं। आपकी या आपके संगठन की आवश्यकताओं के आधार पर, आप कई और R संकुल को पूर्व-स्थापित करना चाह सकते हैं।

प्रशिक्षण और परिनियोजन के लिए उपयोग किए जाने वाले कंटेनर को निम्नानुसार परिभाषित किया गया है:

FROM public.ecr.aws/docker/library/r-base:4.1.2

RUN apt-get -y update && apt-get install -y --no-install-recommends 
    wget 
    apt-transport-https 
    ca-certificates 
    libcurl4-openssl-dev 
    libsodium-dev
    
RUN apt-get update && apt-get install -y python3-dev python3-pip 
RUN pip3 install boto3
RUN R -e "install.packages(c('readr','plumber', 'reticulate'),dependencies=TRUE, repos='http://cran.rstudio.com/')"

ENV PATH="/opt/ml/code:${PATH}"

WORKDIR /opt/ml/code

COPY ./docker/run.sh /opt/ml/code/run.sh
COPY ./docker/entrypoint.R /opt/ml/entrypoint.R

RUN /bin/bash -c 'chmod +x /opt/ml/code/run.sh'

ENTRYPOINT ["/bin/bash", "run.sh"]

RStudio कर्नेल एक डॉकर कंटेनर पर चलता है, इसलिए आप सीधे अपने स्टूडियो सत्र पर डॉकर कमांड का उपयोग करके कंटेनरों को बनाने और तैनात करने में सक्षम नहीं होंगे। इसके बजाय, आप बहुत उपयोगी पुस्तकालय का उपयोग कर सकते हैं सेजमेकर-स्टूडियो-इमेज-बिल्ड, जो अनिवार्य रूप से कोडबिल्ड को कंटेनर बनाने के कार्य को आउटसोर्स करता है।

निम्नलिखित आदेशों के साथ, हम दो Amazon ECR रजिस्ट्रियां बनाते हैं: sagemaker-r-processing और sagemaker-r-train-n-deploy, और संबंधित कंटेनरों का निर्माण करें जिनका हम बाद में उपयोग करते हैं:

if (!py_module_available("sagemaker-studio-image-build")){py_install("sagemaker-studio-image-build", pip=TRUE)}
system("cd pipeline-example ; sm-docker build . —file ./docker/Dockerfile-train-n-deploy —repository sagemaker-r-train-and-deploy:1.0")
system("cd pipeline-example ; sm-docker build . —file ./docker/Dockerfile-processing —repository sagemaker-r-processing:1.0")

पाइपलाइन बनाएं

अब जब कंटेनर बन गए हैं और तैयार हो गए हैं, तो हम सेजमेकर पाइपलाइन बना सकते हैं जो मॉडल बिल्डिंग वर्कफ़्लो को ऑर्केस्ट्रेट करती है। इसका पूरा कोड फाइल के नीचे है pipeline.R भंडार में। सेजमेकर पाइपलाइन बनाने का सबसे आसान तरीका सेजमेकर एसडीके का उपयोग करना है, जो एक पायथन लाइब्रेरी है जिसे हम लाइब्रेरी का उपयोग करके एक्सेस कर सकते हैं। जाल से ढँकना. यह हमें R भाषा परिवेश को छोड़े बिना SageMaker की सभी कार्यात्मकताओं तक पहुँच प्रदान करता है।

हमारे द्वारा बनाई गई पाइपलाइन में निम्नलिखित घटक हैं:

  • प्रीप्रोसेसिंग चरण - यह एक सेजमेकर प्रोसेसिंग जॉब है (इसका उपयोग करते हुए) sagemaker-r-processing कंटेनर) डेटा को प्रीप्रोसेस करने और डेटा को ट्रेन और टेस्ट डेटासेट में विभाजित करने के लिए जिम्मेदार है।
  • प्रशिक्षण चरण - यह एक सेजमेकर प्रशिक्षण कार्य है (इसका उपयोग करते हुए) sagemaker-r-train-n-deploy कंटेनर) मॉडल के प्रशिक्षण के लिए जिम्मेदार है। इस उदाहरण में, हम एक साधारण रैखिक मॉडल को प्रशिक्षित करते हैं।
  • मूल्यांकन चरण - यह एक सेजमेकर प्रोसेसिंग जॉब है (इसका उपयोग करते हुए) sagemaker-r-processing कंटेनर) मॉडल का मूल्यांकन करने के लिए जिम्मेदार है। विशेष रूप से इस उदाहरण में, हम परीक्षण डेटासेट पर आरएमएसई (रूट माध्य वर्ग त्रुटि) में रुचि रखते हैं, जिसे हम अगले चरण में उपयोग करना चाहते हैं और साथ ही मॉडल के साथ संबद्ध करना चाहते हैं।
  • सशर्त चरण - यह एक सशर्त कदम है, जो सेजमेकर पाइपलाइनों का मूल है, जो हमें कुछ मापदंडों के आधार पर पाइपलाइन तर्क को शाखा देने की अनुमति देता है। इस स्थिति में, पाइपलाइन शाखाएँ पिछले चरण में परिकलित RMSE के मान पर आधारित होती हैं।
  • मॉडल चरण पंजीकृत करें - यदि पूर्ववर्ती सशर्त चरण है True, और मॉडल का प्रदर्शन स्वीकार्य है, तो मॉडल को मॉडल रजिस्ट्री में पंजीकृत किया जाता है। अधिक जानकारी के लिए देखें मॉडल रजिस्ट्री के साथ मॉडल पंजीकृत करें और तैनात करें.

पाइपलाइन बनाने (या अपडेट) करने के लिए पहले अप्सर्ट फ़ंक्शन को कॉल करें और फिर स्टार्ट फ़ंक्शन को वास्तव में पाइपलाइन चलाना शुरू करने के लिए कॉल करें:

source("pipeline-example/pipeline.R")
my_pipeline <- get_pipeline(input_data_uri=s3_raw_data)

upserted <- my_pipeline$upsert(role_arn=role_arn)
started <- my_pipeline$start()

पाइपलाइन और मॉडल रजिस्ट्री का निरीक्षण करें

सेजमेकर पर RStudio का उपयोग करने के बारे में एक महान बात यह है कि सेजमेकर प्लेटफॉर्म पर होने से, आप सही काम के लिए सही टूल का उपयोग कर सकते हैं और आपको जो करना है उसके आधार पर उनके बीच तेजी से स्विच कर सकते हैं।

जैसे ही हम पाइपलाइन चलाना शुरू करते हैं, हम स्विच कर सकते हैं अमेज़ॅन सैजमेकर स्टूडियो, जो हमें पाइपलाइन की कल्पना करने और इसके वर्तमान और पिछले रन की निगरानी करने की अनुमति देता है।

हमारे द्वारा अभी-अभी बनाई और चलाई गई पाइपलाइन के बारे में विवरण देखने के लिए, Studio IDE इंटरफ़ेस पर जाएँ, चुनें SageMaker संसाधन, चुनें पाइप लाइनें ड्रॉप-डाउन मेनू पर, और पाइपलाइन चुनें (इस मामले में, AbalonePipelineUsingR).

अमेज़ॅन सेजमेकर मॉडल बिल्डिंग पाइपलाइन बनाएं और अमेज़ॅन सेजमेकर प्लेटोब्लॉकचैन डेटा इंटेलिजेंस पर आरस्टूडियो का उपयोग करके आर मॉडल तैनात करें। लंबवत खोज। ऐ.

यह सभी मौजूदा और पिछले रन सहित पाइपलाइन के विवरण का खुलासा करता है। निम्नलिखित स्क्रीनशॉट के अनुसार, पाइपलाइन के दृश्य प्रतिनिधित्व को लाने के लिए नवीनतम चुनें।

पाइपलाइन का डीएजी स्वचालित रूप से चरणों के बीच डेटा निर्भरता के आधार पर सेवा द्वारा बनाया जाता है, साथ ही कस्टम अतिरिक्त निर्भरताओं के आधार पर (इस उदाहरण में कोई भी जोड़ा नहीं गया)।

जब दौड़ पूरी हो जाती है, सफल होने पर, आपको सभी चरणों को हरा देखना चाहिए।

अमेज़ॅन सेजमेकर मॉडल बिल्डिंग पाइपलाइन बनाएं और अमेज़ॅन सेजमेकर प्लेटोब्लॉकचैन डेटा इंटेलिजेंस पर आरस्टूडियो का उपयोग करके आर मॉडल तैनात करें। लंबवत खोज। ऐ.

किसी भी व्यक्तिगत चरण को चुनने से इनपुट, आउटपुट, लॉग और प्रारंभिक कॉन्फ़िगरेशन सेटिंग्स सहित विशिष्ट चरण के बारे में विवरण सामने आता है। यह आपको पाइपलाइन में ड्रिल डाउन करने और किसी भी विफल कदम की जांच करने की अनुमति देता है।

इसी तरह, जब पाइपलाइन चलना समाप्त हो जाती है, तो मॉडल रजिस्ट्री में एक मॉडल सहेजा जाता है। इसे एक्सेस करने के लिए, में SageMaker संसाधन फलक, चुनें मॉडल रजिस्ट्री ड्रॉप-डाउन पर और अपना मॉडल चुनें। यह पंजीकृत मॉडलों की सूची को प्रकट करता है, जैसा कि निम्नलिखित स्क्रीनशॉट में दिखाया गया है। उस विशेष मॉडल संस्करण के लिए विवरण पृष्ठ खोलने के लिए किसी एक को चुनें।

अमेज़ॅन सेजमेकर मॉडल बिल्डिंग पाइपलाइन बनाएं और अमेज़ॅन सेजमेकर प्लेटोब्लॉकचैन डेटा इंटेलिजेंस पर आरस्टूडियो का उपयोग करके आर मॉडल तैनात करें। लंबवत खोज। ऐ.

मॉडल का संस्करण खोलने के बाद, चुनें स्थिति अद्यतन और अनुमोदन करना मॉडल को मंजूरी देने के लिए।

इस बिंदु पर, आपके उपयोग के मामले के आधार पर, आप अपनी आवश्यकताओं के अनुसार मॉडल की तैनाती सहित आगे की कार्रवाइयों को ट्रिगर करने के लिए इस अनुमोदन को सेट कर सकते हैं।

मॉडल का सर्वर रहित परिनियोजन

सेजमेकर पर एक मॉडल को प्रशिक्षित और पंजीकृत करने के बाद, सेजमेकर पर मॉडल को तैनात करना आसान है।

आप मॉडल को कैसे परिनियोजित कर सकते हैं, इसके कई विकल्प हैं, जैसे बैच अनुमान, रीयल-टाइम एंडपॉइंट, या एसिंक्रोनस एंडपॉइंट। प्रत्येक विधि कई आवश्यक कॉन्फ़िगरेशन के साथ आती है, जिसमें आपके इच्छित इंस्टेंस प्रकार के साथ-साथ स्केलिंग तंत्र को चुनना शामिल है।

इस उदाहरण के लिए, हम सेजमेकर की हाल ही में घोषित विशेषता का उपयोग करते हैं, सर्वर रहित अनुमान (लेखन के समय के रूप में पूर्वावलोकन मोड में), हमारे आर मॉडल को सर्वर रहित समापन बिंदु पर तैनात करने के लिए। इस प्रकार के समापन बिंदु के लिए, हम केवल रैम की मात्रा को परिभाषित करते हैं जिसे हम अनुमान के लिए मॉडल को आवंटित करना चाहते हैं, साथ ही साथ मॉडल के अनुमत समवर्ती आह्वान की अधिकतम संख्या। सेजमेकर आवश्यकतानुसार मॉडल और ऑटो स्केलिंग की मेजबानी का ख्याल रखता है। आपसे केवल सटीक सेकंड और मॉडल द्वारा उपयोग किए गए डेटा के लिए शुल्क लिया जाता है, बिना किसी निष्क्रिय समय के।

आप निम्न कोड के साथ मॉडल को सर्वर रहित समापन बिंदु पर परिनियोजित कर सकते हैं:

model_package_arn <- 'ENTER_MODEL_PACKAGE_ARN_HERE'
model <- sagemaker$ModelPackage(
                        role=role_arn, 
                        model_package_arn=model_package_arn, 
                        sagemaker_session=session)
serverless_config <- sagemaker$serverless$ServerlessInferenceConfig(
                        memory_size_in_mb=1024L, 
                        max_concurrency=5L)
model$deploy(serverless_inference_config=serverless_config, 
             endpoint_name="serverless-r-abalone-endpoint")

यदि आप त्रुटि देखते हैं ClientError: An error occurred (ValidationException) when calling the CreateModel operation: Invalid approval status "PendingManualApproval" जिस मॉडल को आप परिनियोजित करना चाहते हैं उसे स्वीकृत नहीं किया गया है। अपने मॉडल को स्वीकृत करने के लिए पिछले अनुभाग के चरणों का पालन करें।

हमारे द्वारा परिनियोजित किए गए HTTP समापन बिंदु पर अनुरोध भेजकर समापन बिंदु को आमंत्रित करें, या इसके बजाय SageMaker SDK का उपयोग करें। निम्नलिखित कोड में, हम कुछ परीक्षण डेटा पर समापन बिंदु का आह्वान करते हैं:

library(jsonlite)
x = list(features=format_csv(abalone_t[1:3,1:11]))
x = toJSON(x)

# test the endpoint
predictor <- sagemaker$predictor$Predictor(endpoint_name="serverless-r-abalone-endpoint", sagemaker_session=session)
predictor$predict(x)

जिस समापन बिंदु का हमने आह्वान किया वह एक सर्वर रहित समापन बिंदु था, और इस तरह हमसे सटीक अवधि और उपयोग किए गए डेटा के लिए शुल्क लिया जाता है। आप देख सकते हैं कि पहली बार जब आप समापन बिंदु का आह्वान करते हैं तो प्रतिक्रिया देने में लगभग एक सेकंड का समय लगता है। यह सर्वर रहित समापन बिंदु के ठंडे प्रारंभ समय के कारण है। यदि आप इसके तुरंत बाद एक और आह्वान करते हैं, तो मॉडल वास्तविक समय में भविष्यवाणी लौटाता है क्योंकि यह पहले से ही गर्म है।

जब आप समापन बिंदु के साथ प्रयोग करना समाप्त कर लेते हैं, तो आप इसे निम्न आदेश से हटा सकते हैं:

predictor$delete_endpoint(delete_endpoint_config=TRUE)

निष्कर्ष

इस पोस्ट में, हम अपने RStudio वातावरण में R का उपयोग करके एक SageMaker पाइपलाइन बनाने की प्रक्रिया से गुजरे और SageMaker मॉडल रजिस्ट्री का उपयोग करके SageMaker पर सर्वर रहित समापन बिंदु पर हमारे R मॉडल को तैनात करने का तरीका दिखाया।

RStudio और SageMaker के संयोजन के साथ, अब आप हमारी पसंद की पसंदीदा भाषा, R का उपयोग करके AWS पर संपूर्ण एंड-टू-एंड ML वर्कफ़्लो बना और व्यवस्थित कर सकते हैं।

इस समाधान में गहराई से जाने के लिए, मैं आपको इस समाधान के स्रोत कोड की समीक्षा करने के लिए प्रोत्साहित करता हूं, साथ ही अन्य उदाहरण, पर GitHub.


लेखक के बारे में

अमेज़ॅन सेजमेकर मॉडल बिल्डिंग पाइपलाइन बनाएं और अमेज़ॅन सेजमेकर प्लेटोब्लॉकचैन डेटा इंटेलिजेंस पर आरस्टूडियो का उपयोग करके आर मॉडल तैनात करें। लंबवत खोज। ऐ.जॉर्जियोस शिनास ईएमईए क्षेत्र में एआई/एमएल के लिए एक विशेषज्ञ समाधान वास्तुकार है। वह लंदन में स्थित है और यूके और आयरलैंड में ग्राहकों के साथ मिलकर काम करता है। जॉर्जियो ग्राहकों को एमएलओपीएस प्रथाओं में विशेष रुचि के साथ एडब्ल्यूएस पर उत्पादन में मशीन लर्निंग एप्लिकेशन को डिजाइन और तैनात करने में मदद करता है और ग्राहकों को बड़े पैमाने पर मशीन लर्निंग करने में सक्षम बनाता है। अपने खाली समय में, वह यात्रा करना, खाना बनाना और दोस्तों और परिवार के साथ समय बिताना पसंद करते हैं।

समय टिकट:

से अधिक AWS मशीन लर्निंग