Amazon SageMaker मॉडल को प्रशिक्षित करने के लिए आवश्यक डेटा की मात्रा को कम करने के लिए डेटा-केंद्रित दृष्टिकोण का उपयोग करें

Amazon SageMaker मॉडल को प्रशिक्षित करने के लिए आवश्यक डेटा की मात्रा को कम करने के लिए डेटा-केंद्रित दृष्टिकोण का उपयोग करें

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

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

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

मशीन सीखने के लिए एक डेटा-केंद्रित दृष्टिकोण

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

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

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

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

उदाहरण

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

इस पद के लिए, हम कुशल और मजबूत सीखने के लिए सामान्यीकरण आधारित डेटा सबसेट चयन लागू करते हैं (झलकना), जो कि CORDS रिपॉजिटरी में लागू किए गए कई डेटा सबसेट चयन तकनीकों में से एक है, एक के प्रशिक्षण एल्गोरिदम के लिए ResNet -18 मॉडल को वर्गीकृत करने के लिए एक मॉडल को प्रशिक्षित करने में लगने वाले समय को कम करने के लिए सीआईएफएआर-10 इमेजिस। CIFAR-10 डेटासेट से खींचे गए उनके संबंधित लेबल के साथ कुछ नमूना चित्र निम्नलिखित हैं।

सीआईएफएआर डेटासेट

ResNet-18 का उपयोग अक्सर वर्गीकरण कार्यों के लिए किया जाता है। यह एक 18-लेयर डीप कन्वेन्शनल न्यूरल नेटवर्क है। CIFAR-10 डेटासेट का उपयोग अक्सर ML में विभिन्न तकनीकों और दृष्टिकोणों की वैधता का मूल्यांकन करने के लिए किया जाता है। यह 60,000 वर्गों में लेबल की गई 32 32×10 रंगीन छवियों से बना है।

निम्नलिखित अनुभागों में, हम दिखाते हैं कि कैसे GLISTER निम्नलिखित प्रश्नों का कुछ हद तक उत्तर देने में आपकी मदद कर सकता है:

किसी दिए गए डेटासेट का कितना प्रतिशत हम उपयोग कर सकते हैं और फिर भी प्रशिक्षण के दौरान अच्छा मॉडल प्रदर्शन प्राप्त कर सकते हैं?

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

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

यद्यपि हम छवियों पर GLISTER का उपयोग करने पर चर्चा करते हैं, आप इसे संरचित या सारणीबद्ध डेटा के साथ काम करने वाले प्रशिक्षण एल्गोरिदम पर भी लागू कर सकते हैं।

डेटा सबसेट चयन

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

प्रारंभिक ग्लिस्टर पेपर a लेनेट आदर्श:

सबसेट का आकार स्पीड अप शुद्धता
10% तक 6x -3%
30% तक 2.5x -1.20%
50% तक 1.5x -0.20%

मॉडल को प्रशिक्षित करने के लिए, हम एक चलाते हैं सेजमेकर ट्रेनिंग जॉब एक कस्टम प्रशिक्षण स्क्रिप्ट का उपयोग करना। हमने अपना छवि डेटासेट भी पहले ही अपलोड कर दिया है अमेज़न सरल भंडारण सेवा (अमेज़न एस 3)। जैसा कि किसी भी सैजमेकर प्रशिक्षण कार्य के साथ होता है, हमें एक को परिभाषित करने की आवश्यकता है Estimator वस्तु। से PyTorch अनुमानक sagemaker.pytorch पैकेज हमें एक प्रबंधित PyTorch कंटेनर में अपनी स्वयं की प्रशिक्षण स्क्रिप्ट चलाने की अनुमति देता है। inputs चर अनुमानक के पास गया .fit फ़ंक्शन में प्रशिक्षण और सत्यापन डेटासेट के S3 स्थान का एक शब्दकोश होता है।

RSI train.py प्रशिक्षण कार्य शुरू होने पर स्क्रिप्ट चलाई जाती है। इस स्क्रिप्ट में, हम CORDS लाइब्रेरी से ResNet-18 मॉडल आयात करते हैं और इसे हमारे डेटासेट में कक्षाओं की संख्या निम्नानुसार पास करते हैं:

from cords.utils.models import ResNet18 numclasses = 10
model = ResNet18(numclasses)

फिर, हम उपयोग करते हैं gen_dataset प्रशिक्षण, सत्यापन और परीक्षण डेटासेट बनाने के लिए CORDS से कार्य:

from cords.utils.data.datasets.SL import gen_dataset train_set, validation_set, test_set, numclasses = gen_dataset(
datadir="/opt/ml/input/data/training",
dset_name="cifar10",
feature="dss",
type="image")

प्रत्येक डेटासेट से, हम एक समतुल्य PyTorch dataloader बनाते हैं:

train_loader = torch.utils.data.DataLoader(train_set,
batch_size=batch_size,
shuffle=True) validation_loader = torch.utils.data.DataLoader(validation_set,
batch_size=batch_size,
shuffle=False)

अंत में, हम इन dataloaders का उपयोग एक बनाने के लिए करते हैं GLISTERDataLoader कॉर्ड्स पुस्तकालय से। यह GLISTER-ONLINE चयन रणनीति के कार्यान्वयन का उपयोग करता है, जो उपसमुच्चय चयन को लागू करता है क्योंकि हम प्रशिक्षण के दौरान मॉडल को अपडेट करते हैं, जैसा कि इस पोस्ट में पहले चर्चा की गई थी।

ऑब्जेक्ट बनाने के लिए, हम चयन रणनीति विशिष्ट तर्कों को एक के रूप में पारित करते हैं DotMap साथ में वस्तु train_loader, validation_loader, तथा logger:

import logging
from cords.utils.data.dataloader.SL.adaptive import GLISTERDataLoader
from dotmap import DotMap dss_args = # GLISTERDataLoader specific arguments
dss_args = DotMap(dss_args)
dataloader = GLISTERDataLoader(train_loader,
validation_loader,
dss_args,
logger,
batch_size=batch_size,
shuffle=True,
pin_memory=False)

RSI GLISTERDataLoader अब एक प्रशिक्षण पाश के लिए एक नियमित डेटालोडर के रूप में लागू किया जा सकता है। यह अगले प्रशिक्षण बैच के लिए डेटा सबसेट का चयन करेगा क्योंकि मॉडल उस मॉडल के नुकसान के आधार पर सीखता है। जैसा कि पिछली तालिका में दिखाया गया है, डेटा सबसेट चयन रणनीति को जोड़ने से हमें डेटा सबसेट चयन के अतिरिक्त चरण के साथ सटीकता में थोड़ा व्यापार-बंद होने पर भी प्रशिक्षण समय को काफी कम करने की अनुमति मिलती है।

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

प्रयोग ट्रैकिंग

आप डेटा सबसेट चयन दृष्टिकोण की वैधता को मापने के लिए SageMaker प्रयोगों का उपयोग कर सकते हैं। अधिक जानकारी के लिए देखें अगली पीढ़ी के अमेज़ॅन सैजमेकर प्रयोग - अपने मशीन सीखने के प्रशिक्षण को बड़े पैमाने पर व्यवस्थित करें, ट्रैक करें और तुलना करें.

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

इस पद के लिए, प्रत्येक प्रशिक्षण रन को एक के रूप में दर्शाया गया है Run सेजमेकर प्रयोगों में। हमारे प्रयोग से संबंधित रन सभी को एक के अंतर्गत समूहीकृत किया गया है Experiment वस्तु। बनाते समय रन को एक सामान्य प्रयोग से जोड़ा जा सकता है Estimator एसडीके के साथ। निम्नलिखित कोड देखें:

from sagemaker.utils import unique_name_from_base
from sagemaker.experiments.run import Run, load_run experiment_name = unique_name_from_base("data-centric-experiment")
with Run(
experiment_name=experiment_name,
sagemaker_session=sess
) as run:
estimator = PyTorch('train.py',
source_dir="source",
role=role,
instance_type=instance_type,
instance_count=1,
framework_version=framework_version,
py_version='py3',
env={ 'SAGEMAKER_REQUIREMENTS': 'requirements.txt',
})
estimator.fit(inputs)

अपने कस्टम प्रशिक्षण स्क्रिप्ट के भाग के रूप में, आप उपयोग करके रन मेट्रिक्स एकत्र कर सकते हैं load_run:

from sagemaker.experiments.run import load_run
from sagemaker.session import Session if __name__ == "__main__":
args = parse_args()
session = Session(boto3.session.Session(region_name=args.region))
with load_run(sagemaker_session=session) as run:
train(args, run)

फिर, पिछले ऑपरेशन द्वारा लौटाए गए रन ऑब्जेक्ट का उपयोग करके, आप कॉल करके प्रति युग डेटा बिंदु एकत्र कर सकते हैं run.log_metric(name, value, step) और मीट्रिक नाम, मान और वर्तमान युग संख्या की आपूर्ति करना।

हमारे दृष्टिकोण की वैधता को मापने के लिए, हम प्रशिक्षण हानि, प्रशिक्षण सटीकता, सत्यापन हानि, सत्यापन सटीकता और एक युग पूरा करने के समय के अनुरूप मेट्रिक्स एकत्र करते हैं। फिर, प्रशिक्षण कार्य चलाने के बाद, हम कर सकते हैं हमारे प्रयोग के परिणामों की समीक्षा करें in अमेज़ॅन सैजमेकर स्टूडियो या सेजमेकर प्रयोग एसडीके के माध्यम से।

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

प्रयोग सूची

एक चार्ट जोड़ें, चार्ट गुण सेट करें और चुनें बनाएं. जैसा कि निम्नलिखित स्क्रीनशॉट में दिखाया गया है, आप सभी रनों के लिए प्रत्येक युग में सत्यापन सटीकता की एक साजिश देखेंगे।

प्रयोग चार्ट

एसडीके आपको पंडों के डेटाफ्रेम के रूप में प्रयोग से संबंधित जानकारी प्राप्त करने की भी अनुमति देता है:

from sagemaker.analytics import ExperimentAnalytics trial_component_analytics = ExperimentAnalytics(
sagemaker_session=sess.sagemaker_client,
experiment_name=experiment_name
)
analytic_table = trial_component_analytics.dataframe()

वैकल्पिक रूप से, प्रशिक्षण नौकरियों को क्रमबद्ध किया जा सकता है। उदाहरण के लिए, हम जोड़ सकते हैं "metrics.validation:accuracy.max" के मूल्य के रूप में sort_by पैरामीटर पारित किया गया ExperimentAnalytics सत्यापन सटीकता द्वारा आदेशित परिणाम वापस करने के लिए।

जैसा कि अपेक्षित था, हमारे प्रयोग दिखाते हैं कि प्रशिक्षण एल्गोरिथम में GLISTER और डेटा सबसेट चयन लागू करने से प्रशिक्षण का समय कम हो जाता है। हमारे आधारभूत प्रशिक्षण एल्गोरिथ्म को चलाते समय, एक युग को पूरा करने का औसत समय लगभग 27 सेकंड है। इसके विपरीत, 50%, 30%, और समग्र डेटासेट के 10% के समतुल्य उपसमुच्चय का चयन करने के लिए GLISTER को लागू करने से एमएल.पी13xबड़े उदाहरणों पर क्रमशः 8.5, 2.75, और 3.2 सेकंड का युग पूरा करने में समय लगता है। .

हम सत्यापन सटीकता पर तुलनात्मक रूप से न्यूनतम प्रभाव भी देखते हैं, विशेष रूप से 50% डेटा सबसेट का उपयोग करते समय। 100 युगों के प्रशिक्षण के बाद, आधार रेखा 92.72% की सत्यापन सटीकता उत्पन्न करती है। इसके विपरीत, समग्र डेटासेट के 50%, 30%, और 10% के समतुल्य उपसमुच्चय का चयन करने के लिए GLISTER लगाने से क्रमशः 91.42%, 89.76%, और 82.82% की सत्यापन सटीकता प्राप्त होती है।

निष्कर्ष

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

इसे आज़माएं, और हमें बताएं कि आप टिप्पणियों में क्या सोचते हैं।


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

Use a data-centric approach to minimize the amount of data required to train Amazon SageMaker models PlatoBlockchain Data Intelligence. Vertical Search. Ai.निकोलस बर्नियर एक सॉल्यूशंस आर्किटेक्ट है, जो AWS में कैनेडियन पब्लिक सेक्टर टीम का हिस्सा है। वह वर्तमान में डीप लर्निंग में एक शोध क्षेत्र के साथ मास्टर डिग्री कर रहा है और एमएल स्पेशलिटी सर्टिफिकेशन सहित पांच एडब्ल्यूएस प्रमाणपत्र रखता है। निकोलस को ग्राहकों की व्यावसायिक चुनौतियों को तकनीकी समाधानों में बदलने के लिए उनके साथ काम करके AWS के बारे में उनके ज्ञान को गहरा करने में मदद करने का जुनून है।

Use a data-centric approach to minimize the amount of data required to train Amazon SageMaker models PlatoBlockchain Data Intelligence. Vertical Search. Ai.गिवानिल्डो अल्वेस Amazon Web Services में प्रोटोटाइपिंग और क्लाउड इंजीनियरिंग टीम के साथ एक प्रोटोटाइप आर्किटेक्ट है, जो ग्राहकों को AWS पर संभव की कला दिखाते हुए नया करने और गति बढ़ाने में मदद करता है, पहले से ही कृत्रिम बुद्धिमत्ता के आसपास कई प्रोटोटाइप लागू कर चुका है। सॉफ्टवेयर इंजीनियरिंग में उनका लंबा करियर है और पहले उन्होंने Amazon.com.br पर सॉफ्टवेयर डेवलपमेंट इंजीनियर के रूप में काम किया था।

समय टिकट:

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

अमेज़ॅन सेजमेकर नोटबुक नौकरियों को शेड्यूल करें और एपीआई का उपयोग करके मल्टी-स्टेप नोटबुक वर्कफ़्लो प्रबंधित करें अमेज़न वेब सेवाएँ

स्रोत नोड: 1919097
समय टिकट: नवम्बर 29, 2023

अमेज़ॅन सैजमेकर खर्च का विश्लेषण करें और उपयोग के आधार पर लागत अनुकूलन अवसरों का निर्धारण करें, भाग 4: प्रशिक्षण नौकरियां | अमेज़न वेब सेवाएँ

स्रोत नोड: 1843423
समय टिकट: 30 मई 2023

अमेज़ॅन सेजमेकर भू-स्थानिक क्षमताओं का उपयोग करके अंतर्दृष्टि प्राप्त करने के लिए गतिशीलता डेटा का उपयोग करें अमेज़न वेब सेवाएँ

स्रोत नोड: 1938140
समय टिकट: जनवरी 17, 2024