اشرح تنبؤات نموذج تصنيف النص باستخدام Amazon SageMaker Clarify

اشرح تنبؤات نموذج تصنيف النص باستخدام Amazon SageMaker Clarify

تشير قابلية شرح النموذج إلى عملية ربط التنبؤ بنموذج التعلم الآلي (ML) بقيم ميزة الإدخال لمثيل بمصطلحات مفهومة بشريًا. غالبًا ما يشار إلى هذا الحقل باسم ذكاء اصطناعي يمكن تفسيره (الثاني عشر). توضيح Amazon SageMaker هي سمة من سمات الأمازون SageMaker تمكن علماء البيانات ومهندسي ML من شرح تنبؤات نماذج ML الخاصة بهم. يستخدم أساليب لاأدرية نموذجية مثل exPlanations مضافة SHapely (SHAP) لإسناد الميزة. بصرف النظر عن التفسيرات الداعمة للبيانات المجدولة ، يدعم Clarify أيضًا إمكانية الشرح لكل من رؤية الكمبيوتر (CV) ومعالجة اللغة الطبيعية (NLP) باستخدام نفس خوارزمية SHAP.

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

نقدم أيضًا نمط تصميم عام يمكنك استخدامه أثناء استخدام Clarify مع أي من خوارزميات SageMaker.

حل نظرة عامة

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

الخيار A

في هذا الخيار ، نستخدم ميزة خط أنابيب الاستدلال لاستضافة SageMaker. خط أنابيب الاستدلال هو نموذج SageMaker يشكل سلسلة من الحاويات التي تعالج طلبات الاستدلال. الرسم البياني التالي يوضح مثالا.

يستدعي توضيح الوظيفة خط أنابيب الاستدلال بحاوية واحدة تتعامل مع تنسيق البيانات والحاوية الأخرى التي تحتوي على النموذج.

يمكنك استخدام خطوط أنابيب الاستدلال لنشر مجموعة من النماذج المخصصة الخاصة بك وخوارزميات SageMaker المضمنة التي تم تجميعها في حاويات مختلفة. لمزيد من المعلومات ، يرجى الرجوع إلى نماذج الاستضافة إلى جانب منطق المعالجة المسبقة كخط أنابيب للاستدلال التسلسلي خلف نقطة نهاية واحدة. نظرًا لأن Clarify تدعم فقط CSV و JSON Lines كمدخلات ، فأنت بحاجة إلى إكمال الخطوات التالية:

  1. قم بإنشاء نموذج وحاوية لتحويل البيانات من CSV (أو JSON Lines) إلى JSON.
  2. بعد خطوة التدريب النموذجية باستخدام خوارزمية BlazingText ، مباشرة نشر النموذج. سيؤدي هذا إلى نشر النموذج باستخدام حاوية BlazingText ، والتي تقبل JSON كمدخلات. عند استخدام خوارزمية مختلفة ، يقوم SageMaker بإنشاء النموذج باستخدام حاوية تلك الخوارزمية.
  3. استخدم النموذجين السابقين لإنشاء ملف نموذج. يؤدي هذا إلى ربط النموذجين بتسلسل خطي وإنشاء نموذج واحد. على سبيل المثال ، الرجوع إلى خط أنابيب الاستدلال مع Scikit-Learn و Linear Learner.

من خلال هذا الحل ، نجحنا في إنشاء نموذج واحد يتوافق مع مدخلاته مع Clarify ويمكن استخدامه لإنشاء تفسيرات.

الخيار ب

يوضح هذا الخيار كيف يمكنك دمج استخدام تنسيقات بيانات مختلفة بين خوارزميات Clarify و SageMaker من خلال إحضار الحاوية الخاصة بك لاستضافة نموذج SageMaker. يوضح الرسم البياني التالي البنية والخطوات المتضمنة في الحل:

اشرح تنبؤات نموذج تصنيف النص باستخدام Amazon SageMaker Clarify PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

والخطوات هي كما يلي:

  1. استخدم خوارزمية BlazingText عبر SageMaker Estimator لتدريب نموذج تصنيف النص.
  2. بعد تدريب النموذج ، قم بإنشاء حاوية Docker مخصصة يمكن استخدامها لإنشاء نموذج SageMaker ونشر النموذج اختياريًا كنقطة نهاية لنموذج SageMaker.
  3. تكوين وإنشاء وظيفة توضيح لاستخدام حاوية الاستضافة لإنشاء تقرير شرح.
  4. تقبل الحاوية المخصصة طلب الاستنتاج كملف CSV وتمكّن "توضيح" من إنشاء تفسيرات.

تجدر الإشارة إلى أن هذا الحل يوضح فكرة الحصول على تفسيرات غير متصلة بالإنترنت باستخدام Clarify لنموذج BlazingText. لمزيد من المعلومات حول إمكانية الشرح عبر الإنترنت ، يرجى الرجوع إلى شرح عبر الإنترنت مع SageMaker توضيح.

يوضح الجزء المتبقي من هذا المنشور كل خطوة من الخطوات في الخيار الثاني.

تدريب نموذج BlazingText

نقوم أولاً بتدريب نموذج تصنيف النص باستخدام خوارزمية BlazingText. في هذا المثال ، نستخدم الامتداد مجموعة بيانات DBpedia Ontology. DBpedia عبارة عن مبادرة جماعية لاستخراج محتوى منظم باستخدام معلومات من مشاريع ويكيميديا ​​المختلفة مثل ويكيبيديا. على وجه التحديد ، نستخدم مجموعة بيانات DBpedia الأنطولوجية كما تم إنشاؤها بواسطة تشانغ وآخرون. تم إنشاؤه عن طريق اختيار 14 فئة غير متداخلة من DBpedia 2014. تحتوي الحقول على ملخص لمقال Wikipedia والفئة المقابلة. الهدف من نموذج تصنيف النص هو التنبؤ بفئة المقالة في ضوء ملخصها.

تتوفر عملية مفصلة خطوة بخطوة لتدريب النموذج في ما يلي مفكرة. بعد أن تقوم بتدريب النموذج ، قم بتدوين ملف خدمة تخزين أمازون البسيطة (Amazon S3) مسار URI حيث يتم تخزين عناصر النموذج. للحصول على دليل تفصيلي ، ارجع إلى تصنيف النص باستخدام SageMaker BlazingText.

انشر نموذج BlazingText المدرب باستخدام الحاوية الخاصة بك على SageMaker

مع Clarify ، هناك خياران لتقديم معلومات النموذج:

  • قم بإنشاء نموذج SageMaker بدون نشره في نقطة نهاية - عند تقديم نموذج SageMaker إلى Clarify ، فإنه ينشئ نقطة نهاية سريعة الزوال باستخدام النموذج.
  • قم بإنشاء نموذج SageMaker وانشره في نقطة نهاية - عندما يتم توفير نقطة نهاية للتوضيح ، فإنها تستخدم نقطة النهاية للحصول على تفسيرات. هذا يتجنب إنشاء نقطة نهاية سريعة الزوال ويمكن أن يقلل من وقت تشغيل وظيفة التوضيح.

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

أحضر الحاوية الخاصة بك (BYOC)

نقوم أولاً ببناء صورة Docker مخصصة تُستخدم لإنشاء ملف نموذج SageMaker. يمكنك استخدام الملفات والرمز في ملف دليل المصدر من مستودع GitHub الخاص بنا.

يصف Dockerfile الصورة التي نريد بناءها. نبدأ بتثبيت Ubuntu القياسي ثم نثبت Scikit-Learn. نحن أيضا استنساخ نص سريع وتثبيت الحزمة. يتم استخدامه لتحميل نموذج BlazingText لعمل التنبؤات. أخيرًا ، نضيف الكود الذي يطبق خوارزمية لدينا في شكل الملفات السابقة ونقوم بإعداد البيئة في الحاوية. كله Dockerfile يتم توفيره في مستودعنا ويمكنك استخدامه كما هو. تشير إلى استخدم كود الاستدلال الخاص بك مع خدمات الاستضافة لمزيد من التفاصيل حول كيفية تفاعل SageMaker مع حاوية Docker ومتطلباتها.

وعلاوة على ذلك، متنبئ يحتوي على رمز لتحميل النموذج وعمل التنبؤات. يقبل بيانات الإدخال كملف CSV ، مما يجعلها متوافقة مع Clarify.

بعد أن يكون لديك Dockerfile ، قم ببناء حاوية Docker وتحميلها إلى سجل الأمازون المرنة للحاويات (أمازون ECR). يمكنك العثور على العملية خطوة بخطوة في شكل ملف شيل في مستودع GitHub الخاص بنا ، والذي يمكنك استخدامه لإنشاء صورة Docker وتحميلها إلى Amazon ECR.

قم بإنشاء نموذج BlazingText

الخطوة التالية هي إنشاء كائن نموذج من SageMaker Python SDK فئة النموذج التي يمكن نشرها إلى نقطة نهاية HTTPS. نقوم بتكوين "توضيح" لاستخدام هذا النموذج لتوليد التفسيرات. للحصول على التعليمات البرمجية والمتطلبات الأخرى لهذه الخطوة ، راجع انشر نموذج SageMaker BlazingText المدربين باستخدام الحاوية الخاصة بك في Amazon SageMaker.

تكوين توضيح

برنامج Clarify NLP متوافق مع نماذج الانحدار والتصنيف. يساعدك على فهم أجزاء نص الإدخال التي تؤثر على تنبؤات النموذج الخاص بك. يدعم برنامج "توضيح" 62 لغة ويمكنه التعامل مع نص بلغات متعددة. نستخدم SageMaker Python SDK لتحديد التكوينات الثلاثة التي يستخدمها Clarify لإنشاء تقرير التفسير.

أولاً ، نحتاج إلى إنشاء كائن المعالج وتحديد موقع مجموعة بيانات الإدخال التي سيتم استخدامها للتنبؤات وإحالة الميزة:

import sagemaker
sagemaker_session = sagemaker.Session()
from sagemaker import clarify
clarify_processor = clarify.SageMakerClarifyProcessor(
role=role,
instance_count=1,
instance_type="ml.m5.xlarge",
sagemaker_session=sagemaker_session,
)
file_path = "<location of the input dataset>"

داتاكونفيغ

هنا ، يجب عليك تكوين موقع بيانات الإدخال ، وعمود الميزة ، والمكان الذي تريد أن تقوم فيه الوظيفة "توضيح" بتخزين المخرجات. يتم ذلك عن طريق تمرير الوسائط ذات الصلة أثناء إنشاء كائن DataConfig:

explainability_output_path = "s3://{}/{}/clarify-text-explainability".format(
sagemaker_session.default_bucket(), "explainability"
) explainability_data_config = clarify.DataConfig(
s3_data_input_path=file_path,
s3_output_path=explainability_output_path,
headers=["Review Text"],
dataset_type="text/csv",
)

تكوين النموذج

باستخدام ModelConfig ، يجب عليك تحديد معلومات حول نموذجك المُدرب. هنا ، نحدد اسم نموذج BlazingText SageMaker الذي أنشأناه في خطوة سابقة وقمنا أيضًا بتعيين معلمات أخرى مثل الأمازون الحوسبة المرنة السحابية (Amazon EC2) نوع المثيل وتنسيق المحتوى:

model_config = clarify.ModelConfig(
model_name=model_name,
instance_type="ml.m5.xlarge",
instance_count=1,
accept_type="application/jsonlines",
content_type="text/csv",
endpoint_name_prefix=None,
)

شكل

يستخدم هذا لإعلام "توضيح" حول كيفية الحصول على سمات الميزة. يستخدم TextConfig لتحديد دقة النص واللغة. في مجموعة البيانات الخاصة بنا ، نظرًا لأننا نريد تقسيم نص الإدخال إلى كلمات واللغة الإنجليزية ، فقد قمنا بتعيين هذه القيم على الرمز المميز واللغة الإنجليزية ، على التوالي. اعتمادًا على طبيعة مجموعة البيانات الخاصة بك ، يمكنك تعيين دقة الجملة أو الفقرة. تم تعيين خط الأساس على رمز خاص. هذا يعني أن Clarify ستقوم بإسقاط مجموعات فرعية من نص الإدخال واستبدالها بقيم من الخط الأساسي أثناء الحصول على تنبؤات لحساب قيم SHAP. هذه هي الطريقة التي تحدد تأثير الرموز المميزة على تنبؤات النموذج وتحدد بدورها أهميتها. يتم تحديد عدد العينات التي سيتم استخدامها في خوارزمية Kernel SHAP بقيمة num_samples جدال. تؤدي القيم الأعلى إلى سمات ميزات أكثر قوة ، ولكن يمكن أن يؤدي ذلك أيضًا إلى زيادة وقت تشغيل الوظيفة. لذلك ، تحتاج إلى إجراء مفاضلة بين الاثنين. انظر الكود التالي:

shap_config = clarify.SHAPConfig(
baseline=[["<UNK>"]],
num_samples=1000,
agg_method="mean_abs",
save_local_shap_values=True,
text_config=clarify.TextConfig(granularity="token", language="english"),
)

لمزيد من المعلومات، راجع السمات التي تستخدم قيم Shapley و ورقة عمل Amazon AI للعدالة والتفسير.

ModelPredictedLabelConfig

لتوضيح لاستخراج تسمية متوقعة أو الدرجات أو الاحتمالات المتوقعة ، يجب تعيين كائن التكوين هذا. انظر الكود التالي:

from sagemaker.clarify import ModelPredictedLabelConfig
modellabel_config = ModelPredictedLabelConfig(probability="prob", label="label")

لمزيد من التفاصيل ، راجع توثيق في SDK.

قم بتشغيل وظيفة توضيح

بعد إنشاء التكوينات المختلفة ، فأنت الآن جاهز لبدء مهمة معالجة التوضيح. تقوم مهمة المعالجة بالتحقق من صحة المدخلات والمعلمات ، وإنشاء نقطة نهاية سريعة الزوال ، وتحسب سمات السمات المحلية والعالمية باستخدام خوارزمية SHAP. عند اكتمال ذلك ، يتم حذف نقطة النهاية المؤقتة وإنشاء ملفات الإخراج. انظر الكود التالي:

clarify_processor.run_explainability(
data_config=explainability_data_config,
model_config=model_config,
explainability_config=shap_config,
model_scores=modellabel_config,
)

يعتمد وقت تشغيل هذه الخطوة على حجم مجموعة البيانات وعدد العينات التي تم إنشاؤها بواسطة SHAP.

تصور النتائج

أخيرًا ، نعرض تصورًا للنتائج من تقرير إحالة الميزة المحلية الذي تم إنشاؤه بواسطة وظيفة معالجة التوضيح. الإخراج بتنسيق JSON Lines ومع بعض المعالجة ؛ يمكنك رسم الدرجات للرموز المميزة في نص الإدخال مثل المثال التالي. الأشرطة الأعلى لها تأثير أكبر على التسمية المستهدفة. علاوة على ذلك ، ترتبط القيم الإيجابية بتوقعات أعلى في القيم المتغيرة المستهدفة والقيم السلبية مع تنبؤات أقل. في هذا المثال ، يقوم النموذج بالتنبؤ بالنص المدخل "Wesebach هو نهر من Hesse Germany." الفئة المتوقعة هي Natural Place وتشير الدرجات إلى أن النموذج وجد أن كلمة "نهر" هي الأكثر إفادة لعمل هذا التنبؤ. هذا أمر بديهي بالنسبة للإنسان ومن خلال فحص المزيد من العينات ، يمكنك تحديد ما إذا كان النموذج يتعلم الميزات الصحيحة ويتصرف كما هو متوقع.

اشرح تنبؤات نموذج تصنيف النص باستخدام Amazon SageMaker Clarify PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

وفي الختام

في هذا المنشور ، أوضحنا كيف يمكنك استخدام Clarify لشرح التنبؤات من نموذج تصنيف النص الذي تم تدريبه باستخدام SageMaker BlazingText. ابدأ بشرح التنبؤات من نماذج تصنيف النص باستخدام نموذج دفتر الملاحظات إمكانية شرح النص لبرنامج SageMaker BlazingText.

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


حول المؤلف

اشرح تنبؤات نموذج تصنيف النص باستخدام Amazon SageMaker Clarify PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية. بيناك بانيغراهي تعمل مع العملاء لبناء حلول تعتمد على التعلم الآلي لحل مشاكل الأعمال الإستراتيجية على AWS. عندما لا يكون مشغولاً بالتعلم الآلي ، يمكن العثور عليه في نزهة أو قراءة كتاب أو متابعة الرياضة.

اشرح تنبؤات نموذج تصنيف النص باستخدام Amazon SageMaker Clarify PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية. ضوال باتل هو مهندس رئيسي لتعلم الآلة في AWS. لقد عمل مع مؤسسات تتراوح من المؤسسات الكبيرة إلى الشركات الناشئة متوسطة الحجم في المشكلات المتعلقة بالحوسبة الموزعة والذكاء الاصطناعي. يركز على التعلم العميق بما في ذلك مجالات البرمجة اللغوية العصبية ورؤية الكمبيوتر. إنه يساعد العملاء على تحقيق استدلال نموذج عالي الأداء على SageMaker.

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

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