تقليل التكاليف والتعقيد في المعالجة المسبقة لتعلّم الآلة باستخدام Amazon S3 Object Lambda PlatoBlockchain Data Intelligence. البحث العمودي. عاي.

تقليل التكاليف والتعقيد في المعالجة المسبقة لتعلّم الآلة باستخدام Amazon S3 Object Lambda

خدمة تخزين أمازون البسيطة (Amazon S3) هي خدمة تخزين كائنات توفر قابلية التوسع وتوافر البيانات والأمان والأداء الرائدة في الصناعة. في كثير من الأحيان، يكون لدى العملاء كائنات في حاويات S3 تحتاج إلى مزيد من المعالجة لاستخدامها بفعالية من خلال استهلاك التطبيقات. يجب أن يدعم مهندسو البيانات طرق عرض البيانات الخاصة بالتطبيقات هذه من خلال المفاضلات بين استمرار النسخ المشتقة أو تحويل البيانات على مستوى المستهلك. لا يعد أي من الحلين مثاليًا لأنه يقدم تعقيدًا تشغيليًا، ويسبب تحديات في اتساق البيانات، ويهدر موارد حوسبة أكثر تكلفة.

تنطبق هذه المقايضات على نطاق واسع على العديد من مسارات التعلم الآلي (ML) التي تتدرب على البيانات غير المنظمة، مثل الصوت والفيديو والنص الحر، من بين مصادر أخرى. في كل مثال، يجب أن تقوم مهمة التدريب بتنزيل البيانات من حاويات S3، وإعداد عرض خاص بالتطبيق، ثم استخدام خوارزمية الذكاء الاصطناعي. يوضح هذا المنشور نمط تصميم لتقليل التكاليف والتعقيد وإدارة هذه الخطوة الثانية مركزيًا. يستخدم الخرسانة مثال على معالجة الصور، على الرغم من أن هذا النهج ينطبق على نطاق واسع على أي عبء عمل. كما أن الفوائد الاقتصادية تكون أكثر وضوحًا عندما لا تتطلب خطوة التحويل وحدة معالجة الرسومات، ولكن خوارزمية الذكاء الاصطناعي هي التي تتطلب ذلك.

يعمل الحل المقترح أيضًا على مركزية كود تحويل البيانات ويتيح التحويل في الوقت المناسب (JIT). علاوة على ذلك، يستخدم هذا النهج بنية تحتية بدون خادم لتقليل النفقات التشغيلية والأحمال الثقيلة غير المتمايزة.

حل نظرة عامة

عندما تقوم خوارزميات تعلم الآلة بمعالجة البيانات غير المنظمة مثل الصور والفيديو، فإنها تتطلب مهام تسوية مختلفة (مثل تغيير الحجم الرمادي وتغيير الحجم). توجد هذه الخطوة لتسريع تقارب النماذج وتجنب التجهيز الزائد وتحسين دقة التنبؤ. غالبًا ما تقوم بتنفيذ خطوات المعالجة المسبقة هذه على المثيلات التي تقوم لاحقًا بتشغيل تدريب الذكاء الاصطناعي. يؤدي هذا النهج إلى عدم الكفاءة، لأن هذه الموارد تحتوي عادةً على معالجات أكثر تكلفة (على سبيل المثال، وحدات معالجة الرسومات) مما تتطلبه هذه المهام. وبدلاً من ذلك، يقوم الحل الذي نقدمه بإضفاء الطابع الخارجي على تلك العمليات عبر المجالات الاقتصادية والقابلة للتطوير أفقيًا كائن أمازون S3 لامدا الوظائف.

نمط التصميم هذا له ثلاث فوائد حاسمة. أولاً، يقوم بمركزة خطوات تحويل البيانات المشتركة، مثل تطبيع الصورة وإزالة تكرار التعليمات البرمجية لخط أنابيب تعلم الآلة. بعد ذلك، تتجنب وظائف S3 Object Lambda مشكلات تناسق البيانات في البيانات المشتقة من خلال تحويلات JIT. ثالثًا، تعمل البنية التحتية بدون خادم على تقليل الحمل التشغيلي وزيادة وقت الوصول وتقييد التكاليف بحيث لا تتجاوز الوقت الذي يستغرقه تشغيل التعليمات البرمجية لكل مللي ثانية.

يوجد حل أنيق يمكنك من خلاله مركزية عمليات المعالجة المسبقة للبيانات وتحويل البيانات هذه باستخدام S3 Object Lambda. يمكّنك S3 Object Lambda من إضافة تعليمات برمجية تقوم بتعديل البيانات من Amazon S3 قبل إعادتها إلى التطبيق. يعمل الكود داخل AWS لامدا وظيفة، وهي خدمة حسابية بدون خادم. يمكن لـ Lambda التوسع على الفور إلى عشرات الآلاف من عمليات التشغيل المتوازية مع دعم العشرات من لغات البرمجة وحتى حاويات مخصصة. لمزيد من المعلومات، راجع تقديم Amazon S3 Object Lambda - استخدم الكود الخاص بك لمعالجة البيانات كما يتم استردادها من S3.

يوضح الرسم البياني التالي بنية الحل.

تطبيع مجموعات البيانات المستخدمة لتدريب نموذج التعلم الآلي

في هذا الحل، لديك حاوية S3 تحتوي على الصور الأولية المراد معالجتها. بعد ذلك، تقوم بإنشاء نقطة الوصول S3 لهذه الصور. إذا قمت بإنشاء نماذج متعددة لتعلم الآلة، فيمكنك إنشاء نقاط وصول S3 منفصلة لكل نموذج. بدلاً عن ذلك، إدارة الهوية والوصول AWS (انا) سياسات نقاط الوصول دعم مشاركة الوظائف القابلة لإعادة الاستخدام عبر خطوط أنابيب تعلم الآلة. ثم تقوم بإرفاق وظيفة Lambda التي تحتوي على منطق أعمال المعالجة المسبقة الخاص بك بنقطة الوصول S3. بعد استرداد البيانات، يمكنك الاتصال بنقطة وصول S3 لإجراء تحويلات بيانات JIT. وأخيرًا، تقوم بتحديث نموذج ML الخاص بك لاستخدام الإصدار الجديد S3 كائن نقطة وصول لامدا لاسترداد البيانات من Amazon S3.

إنشاء نقطة وصول التطبيع

يستعرض هذا القسم خطوات إنشاء نقطة وصول S3 Object Lambda.

يتم تخزين البيانات الأولية في حاوية S3. لتزويد المستخدم بالمجموعة الصحيحة من الأذونات للوصول إلى هذه البيانات، مع تجنب سياسات الحاوية المعقدة التي يمكن أن تسبب تأثيرًا غير متوقع على تطبيق آخر، تحتاج إلى إنشاء نقاط وصول S3. نقاط الوصول S3 هي أسماء مضيفة فريدة يمكنك استخدامها للوصول إلى حاويات S3. باستخدام نقاط وصول S3، يمكنك إنشاء سياسات فردية للتحكم في الوصول لكل نقطة وصول للتحكم في الوصول إلى مجموعات البيانات المشتركة بسهولة وأمان.

  1. قم بإنشاء نقطة الوصول الخاصة بك.
  2. قم بإنشاء وظيفة Lambda التي تقوم بتغيير حجم الصورة وتحويلها. راجع كود بايثون التالي:
import boto3
import cv2
import numpy as np
import requests
import io def lambda_handler(event, context): print(event) object_get_context = event["getObjectContext"] request_route = object_get_context["outputRoute"] request_token = object_get_context["outputToken"] s3_url = object_get_context["inputS3Url"] # Get object from S3 response = requests.get(s3_url) nparr = np.fromstring(response.content, np.uint8) img = cv2.imdecode(nparr, flags=1) # Transform object new_shape=(256,256) resized = cv2.resize(img, new_shape, interpolation= cv2.INTER_AREA) gray_scaled = cv2.cvtColor(resized,cv2.COLOR_BGR2GRAY) # Transform object is_success, buffer = cv2.imencode(".jpg", gray_scaled) if not is_success: raise ValueError('Unable to imencode()') transformed_object = io.BytesIO(buffer).getvalue() # Write object back to S3 Object Lambda s3 = boto3.client('s3') s3.write_get_object_response( Body=transformed_object, RequestRoute=request_route, RequestToken=request_token) return {'status_code': 200}
  1. خلق كائن نقطة وصول لامدا باستخدام نقطة الوصول الداعمة من الخطوة 1.

تستخدم وظيفة Lambda نقطة الوصول الداعمة لتنزيل الكائنات الأصلية.

  1. تحديث الأمازون SageMaker لاستخدام نقطة وصول S3 Object Lambda الجديدة لاسترداد البيانات من Amazon S3. راجع رمز bash التالي:
aws s3api get-object --bucket arn:aws:s3-object-lambda:us-west-2:12345678901:accesspoint/image-normalizer --key images/test.png

تحليل وفورات التكلفة

تقليديًا، تقوم مسارات ML بنسخ الصور والملفات الأخرى من Amazon S3 إلى مثيلات SageMaker ثم إجراء التسوية. ومع ذلك، فإن تحويل هذه الإجراءات على حالات التدريب له أوجه قصور. أولاً، تقوم وظائف Lambda بالقياس أفقيًا للتعامل مع الانفجار ثم التقليص بشكل مرن فقط الشحن لكل مللي ثانية عندما يتم تشغيل الكود. لا تتطلب العديد من خطوات المعالجة المسبقة وحدات معالجة الرسومات ويمكنها أيضًا استخدام ARM64. وهذا يخلق حافزًا لنقل تلك المعالجة إلى حوسبة أكثر اقتصادا مثل وظائف Lambda مدعومة بمعالجات AWS Graviton2.

باستخدام مثال من حاسبة التسعير لامدا، يمكنك تكوين الوظيفة بذاكرة سعة 256 ميجابايت ومقارنة التكاليف لكل من x86 وGraviton (ARM64). لقد اخترنا هذا الحجم لأنه يكفي للعديد من مهام إعداد بيانات الصورة الواحدة. بعد ذلك، استخدم حاسبة التسعير SageMaker لحساب النفقات لمثيل ml.p2.xlarge. هذا هو أصغر مثيل تدريبي مدعوم لـ SageMaker مع دعم GPU. تُظهر هذه النتائج توفيرًا يصل إلى 90% في الحوسبة للعمليات التي لا تستخدم وحدات معالجة الرسومات ويمكنها التحول إلى Lambda. ويلخص الجدول التالي هذه النتائج.

 

لامدا مع x86 لامدا مع Graviton2 (ARM) سيج ميكر ml.p2.xlarge
الذاكرة (جيجا بايت) 0.25 0.25 61
وحدة المعالجة المركزية‏:  -  - 4
وحدة معالجة الرسوميات‏:‏  -  - 1
التكلفة/الساعة $0.061 $0.049 $0.90

وفي الختام

يمكنك إنشاء تطبيقات حديثة لفتح رؤى حول بياناتك. تحتوي هذه التطبيقات المختلفة على متطلبات فريدة لعرض البيانات، مثل إجراءات التنسيق والمعالجة المسبقة. يمكن أن تؤدي معالجة حالات الاستخدام الأخرى هذه إلى تكرار البيانات وزيادة التكاليف والمزيد من التعقيد للحفاظ على الاتساق. يقدم هذا المنشور حلاً للتعامل بكفاءة مع هذه المواقف باستخدام وظائف S3 Object Lambda.

لا يؤدي هذا إلى إزالة الحاجة إلى التكرار فحسب، بل يشكل أيضًا مسارًا لتوسيع نطاق هذه الإجراءات عبر الحوسبة الأقل تكلفة أفقيًا! حتى تحسين كود التحويل لمثيل ml.p2.xlarge سيظل أكثر تكلفة بكثير بسبب وحدات معالجة الرسومات الخاملة.

لمزيد من الأفكار حول استخدام بدون خادم وتعلم الآلة، راجع استدلال التعلم الآلي على نطاق واسع باستخدام AWS بدون خادم و نشر نماذج التعلم الآلي باستخدام قوالب بدون خادم.


حول المؤلف

تقليل التكاليف والتعقيد في المعالجة المسبقة لتعلّم الآلة باستخدام Amazon S3 Object Lambda PlatoBlockchain Data Intelligence. البحث العمودي. عاي.نيت باشماير هو أحد كبار مهندسي الحلول في AWS، وهو يستكشف نيويورك بشكل رحل، حيث يقوم بتكامل سحابي واحد في كل مرة. وهو متخصص في ترحيل وتحديث أعباء عمل العملاء. بالإضافة إلى ذلك، نيت طالب بدوام كامل ولديه طفلين.

تقليل التكاليف والتعقيد في المعالجة المسبقة لتعلّم الآلة باستخدام Amazon S3 Object Lambda PlatoBlockchain Data Intelligence. البحث العمودي. عاي.مارفن فرنانديز هو مهندس الحلول في AWS، ومقره في منطقة مدينة نيويورك. يتمتع بخبرة تزيد عن 20 عامًا في إنشاء وتشغيل تطبيقات الخدمات المالية. وهو يعمل حاليًا مع عملاء المؤسسات الكبيرة لحل مشكلات الأعمال المعقدة من خلال تصميم بنيات سحابية قابلة للتطوير ومرنة ومرنة.

الطابع الزمني:

اكثر من التعلم الآلي من AWS

قم بتشغيل العديد من نماذج الذكاء الاصطناعي التوليدية على وحدة معالجة الرسومات باستخدام نقاط النهاية متعددة النماذج من Amazon SageMaker مع TorchServe ووفر ما يصل إلى 75% من تكاليف الاستدلال | خدمات الويب الأمازون

عقدة المصدر: 1887176
الطابع الزمني: سبتمبر 6، 2023