با Twitter، Amazon SageMaker و Hugging Face PlatoBlockchain Data Intelligence یک سیستم هشدار بیدرنگ مبتنی بر اخبار بسازید. جستجوی عمودی Ai.

با توییتر، Amazon SageMaker و Hugging Face یک سیستم هشدار بی‌درنگ مبتنی بر اخبار بسازید.

امروزه رسانه های اجتماعی منبع عظیمی از اخبار هستند. کاربران برای مصرف اخبار به پلتفرم هایی مانند فیس بوک و توییتر متکی هستند. برای صنایع خاصی مانند شرکت های بیمه، اولین پاسخ دهندگان، مجری قانون و سازمان های دولتی، توانایی پردازش سریع اخبار مربوط به رویدادهای مرتبط می تواند به آنها کمک کند تا زمانی که این رویدادها هنوز در حال رخ دادن هستند، اقدام کنند.

برای سازمان هایی که سعی می کنند ارزش را از داده های متنی استخراج کنند، به دنبال راه حلی باشند که شامل آموزش یک مدل پیچیده NLP (پردازش زبان طبیعی) نباشد، غیر معمول نیست. برای آن سازمان ها، استفاده از یک مدل NLP از قبل آموزش دیده عملی تر است. علاوه بر این، اگر مدل انتخابی معیارهای موفقیت آنها را برآورده نکند، سازمان ها می خواهند بتوانند به راحتی مدل دیگری را انتخاب کرده و دوباره ارزیابی کنند.

در حال حاضر، استخراج اطلاعات از داده های متنی به لطف موارد زیر آسان تر از همیشه است:

  • ظهور معماری های مدرن و همه منظوره NLP مانند ترانسفورماتورها
  • توانایی توسعه دهندگان و دانشمندان داده برای ساخت سریع، آموزش و استقرار مدل های یادگیری ماشینی (ML) در مقیاس در فضای ابری با خدماتی مانند آمازون SageMaker
  • در دسترس بودن هزاران مدل NLP از پیش آموزش دیده به صدها زبان و با پشتیبانی از چارچوب های متعدد ارائه شده توسط جامعه در پلتفرم هایی مانند هاب صورت در آغوش

در این پست، ما به شما نشان می‌دهیم که چگونه یک سیستم هشدار بی‌درنگ بسازید که اخبار توییتر را مصرف می‌کند و توییت‌ها را با استفاده از یک مدل از پیش آموزش‌دیده از Hugging Face Hub طبقه‌بندی می‌کند. می‌توانید از این راه‌حل برای طبقه‌بندی صفر شات استفاده کنید، به این معنی که می‌توانید توییت‌ها را تقریباً در هر مجموعه‌ای از دسته‌بندی‌ها طبقه‌بندی کنید، و مدل را با SageMaker برای استنتاج بلادرنگ اجرا کنید.

از طرف دیگر، اگر به دنبال بینش هایی در مورد مکالمات مشتری خود هستید و با تجزیه و تحلیل تعاملات رسانه های اجتماعی، آگاهی از برند را عمیق تر می کنید، ما شما را تشویق می کنیم که داشبورد رسانه های اجتماعی مبتنی بر هوش مصنوعی. راه حل استفاده می کند درک آمازون، یک سرویس NLP کاملاً مدیریت شده که بدون نیاز به تجربه یادگیری ماشینی، بینش ها و ارتباطات ارزشمند را در متن آشکار می کند.

یادگیری شات صفر

زمینه های NLP و درک زبان طبیعی (NLU) به سرعت برای رسیدگی به موارد استفاده شامل طبقه بندی متن، پاسخ به سؤال، خلاصه سازی، تولید متن و موارد دیگر تکامل یافته است. این تکامل تا حدی به لطف ظهور معماری های پیشرفته و همه منظوره مانند ترانسفورماتورها و همچنین در دسترس بودن مجموعه های متنی بیشتر و با کیفیت بهتر برای آموزش چنین مدل هایی امکان پذیر شده است.

معماری ترانسفورماتور یک شبکه عصبی پیچیده است که به تخصص دامنه و حجم عظیمی از داده نیاز دارد تا از ابتدا آموزش داده شود. یک روش متداول این است که یک ترانسفورماتور پیشرفته از قبل آموزش دیده مانند BERT، RoBERTa، T5، GPT-2 یا DistilBERT را ببرید و مدل را به یک مورد خاص تنظیم کنید (آموزش انتقال).

با این وجود، حتی انجام یادگیری انتقال بر روی یک مدل NLP از پیش آموزش دیده اغلب می تواند یک کار چالش برانگیز باشد و به مقادیر زیادی از داده های متنی برچسب گذاری شده و تیمی از متخصصان برای مدیریت داده ها نیاز دارد. این پیچیدگی بیشتر سازمان‌ها را از استفاده مؤثر از این مدل‌ها باز می‌دارد، اما یادگیری بدون شات به پزشکان و سازمان‌های ML کمک می‌کند تا بر این نقص غلبه کنند.

یادگیری صفر شات یک کار خاص ML است که در آن یک طبقه‌بندی کننده روی یک مجموعه از برچسب‌ها در طول آموزش یاد می‌گیرد و سپس در طول استنتاج روی مجموعه متفاوتی از برچسب‌ها ارزیابی می‌شود که طبقه‌بندی‌کننده قبلاً هرگز آن را ندیده است. در NLP، می‌توانید از یک طبقه‌بندی‌کننده دنباله صفر آموزش‌دیده برای استنتاج زبان طبیعی (NLI) برای طبقه‌بندی متن بدون هیچ گونه تنظیم دقیق استفاده کنید. در این پست از NLI محبوب استفاده می کنیم بارت مدل bart-large-mnli برای طبقه بندی توییت ها. این یک مدل بزرگ از قبل آموزش دیده (1.6 گیگابایت) است که در هاب مدل Hugging Face موجود است.

Hugging Face یک شرکت هوش مصنوعی است که یک پلتفرم منبع باز (Hugging Face Hub) را با هزاران مدل NLP از پیش آموزش دیده (ترانسفورماتور) به بیش از 100 زبان مختلف و با پشتیبانی از چارچوب های مختلف مانند TensorFlow و PyTorch مدیریت می کند. کتابخانه ترانسفورماتورها به توسعه دهندگان و دانشمندان داده کمک می کند تا کارهای پیچیده NLP و NLU مانند طبقه بندی، استخراج اطلاعات، پاسخ به سؤال، خلاصه سازی، ترجمه و تولید متن را شروع کنند.

AWS و صورت در آغوش گرفته برای ساده سازی و تسریع پذیرش مدل های NLP با یکدیگر همکاری کرده اند. مجموعه‌ای از ظروف یادگیری عمیق (DLC) برای آموزش و استنتاج در PyTorch یا TensorFlow، و برآوردگرها و پیش‌بینی‌کننده‌های Hugging Face برای SageMaker Python SDK اکنون در دسترس هستند. این قابلیت ها به توسعه دهندگان با تمام سطوح تخصص کمک می کند تا به راحتی با NLP شروع کنند.

بررسی اجمالی راه حل

ما یک راه حل کارآمد ارائه می دهیم که توییت ها را در زمان واقعی از حساب های توییتر منتخب دریافت می کند. برای نشان دادن راه حل خود، از سه حساب، خدمات وب آمازون (@awscloud، امنیت AWS (@AWSSecurityInfoو آمازون علم (@AmazonScience، و محتوای آنها را به یکی از دسته های زیر طبقه بندی کنید: امنیت، پایگاه داده، محاسبات، ذخیره سازی و یادگیری ماشین. اگر مدل یک دسته را با امتیاز اطمینان بیشتر از 40% برگرداند، یک اعلان ارسال می شود.

در مثال زیر، مدل یک توییت از خدمات وب آمازون را در دسته یادگیری ماشینی با امتیاز اطمینان 97 درصد طبقه‌بندی کرد و یک هشدار ایجاد کرد.

این راه حل به یک مدل ترانسفورماتور از پیش آموزش‌دیده Hugging Face (از Hugging Face Hub) برای طبقه‌بندی توییت‌ها بر اساس مجموعه‌ای از برچسب‌هایی که در زمان استنتاج ارائه می‌شوند متکی است - مدل نیازی به آموزش ندارد. اسکرین شات های زیر نمونه های بیشتری و نحوه طبقه بندی آنها را نشان می دهد.
چند مثال مرتبط
ما شما را تشویق می کنیم که راه حل را برای خودتان امتحان کنید. به سادگی کد منبع را از سایت دانلود کنید مخزن GitHub و دستورالعمل های استقرار در فایل README را دنبال کنید.

معماری راه حل

این راه حل یک اتصال باز به نقطه پایانی توییتر را حفظ می کند و هنگامی که یک توییت جدید می رسد، یک پیام به یک صف ارسال می کند. یک مصرف کننده پیام ها را از صف می خواند، نقطه پایان طبقه بندی را فرا می خواند و بسته به نتایج، کاربر نهایی را مطلع می کند.

در زیر نمودار معماری راه حل ارائه شده است.
دامنه راه حل
گردش کار راه حل از اجزای زیر تشکیل شده است:

  1. این راه حل به API استریم توییتر برای دریافت توییت هایی که با قوانین پیکربندی شده مطابقت دارند (توییت هایی از حساب های مورد علاقه) در زمان واقعی متکی است. برای انجام این کار، برنامه ای که در داخل یک کانتینر اجرا می شود، یک اتصال باز به نقطه پایانی توییتر نگه می دارد. رجوع شود به API توییتر برای جزئیات بیشتر.
  2. ظرف روشن است سرویس کانتینر الاستیک آمازون (Amazon ECS)، یک سرویس ارکستراسیون کانتینر کاملاً مدیریت شده که استقرار، مدیریت و مقیاس برنامه های کاربردی کانتینری را برای شما آسان می کند. یک کار واحد روی یک زیرساخت بدون سرور که توسط آن مدیریت می شود اجرا می شود AWS Fargate.
  3. توکن حامل توییتر به طور ایمن در آن ذخیره می شود AWS Systems Manager Parameter Store، قابلیتی از مدیر سیستم های AWS که ذخیره ای امن و سلسله مراتبی برای داده های پیکربندی و اسرار فراهم می کند. تصویر ظرف در میزبانی می شود رجیستری ظروف الاستیک آمازون (Amazon ECR)، یک رجیستری کانتینر کاملاً مدیریت شده که میزبانی با کارایی بالا را ارائه می دهد.
  4. هر زمان که یک توییت جدید وارد می شود، برنامه کانتینر توییت را در یک توییت قرار می دهد سرویس صف ساده آمازون صف (Amazon SQS). Amazon SQS یک سرویس کاملاً مدیریت شده در صف پیام است که به شما امکان می دهد میکروسرویس ها، سیستم های توزیع شده و برنامه های بدون سرور را جدا کرده و مقیاس بندی کنید.
  5. منطق راه حل در یک قرار دارد AWS لامبدا تابع. Lambda یک سرویس محاسباتی بدون سرور و رویداد محور است. این تابع توییت‌های جدید را از صف مصرف می‌کند و با فراخوانی یک نقطه پایانی، آنها را طبقه‌بندی می‌کند.
  6. نقطه پایانی بر مدل Hugging Face متکی است و در SageMaker میزبانی می شود. نقطه پایانی استنتاج را اجرا می کند و کلاس توییت را خروجی می دهد.
  7. بسته به طبقه بندی، تابع یک اعلان از طریق تولید می کند سرویس اطلاع رسانی ساده آمازون (Amazon SNS)، یک سرویس پیام رسانی کاملاً مدیریت شده. می توانید در موضوع SNS مشترک شوید و چندین مقصد می توانند آن اعلان را دریافت کنند (نگاه کنید به مقاصد رویداد Amazon SNS). به عنوان مثال، می‌توانید اعلان را به عنوان پیام‌های ایمیل به صندوق‌های ورودی تحویل دهید (نگاه کنید به اعلان های ایمیل).

با SageMaker مدل های Hugging Face را به کار ببرید

شما می توانید یکی از بیش از 10,000 مدل در دسترس عموم را از بین انتخاب کنید Hugging Face Model Hub و با استفاده از SageMaker آنها را مستقر کنید DLC های استنباط چهره بغل کردن.

هنگام استفاده از AWS CloudFormation، یکی از در دسترس عموم را انتخاب می کنید ظروف استنباط صورت در آغوش گرفتن و مدل و وظیفه را پیکربندی کنید. این راه حل از facebook/bart-large-mnli مدل و وظیفه طبقه‌بندی صفر شات، اما می‌توانید هر یک از مدل‌های زیر را انتخاب کنید طبقه بندی شات صفر در هاب مدل صورت در آغوش گرفته. آنها را با تنظیم متغیرهای محیطی HF_MODEL_ID و HF_TASK در قالب CloudFormation خود، مانند کد زیر، پیکربندی می‌کنید:

SageMakerModel:
  Type: AWS::SageMaker::Model
  Properties:
    ExecutionRoleArn: !GetAtt SageMakerModelRole.Arn
    PrimaryContainer:
      Image: 763104351884.dkr.ecr.us-east-1.amazonaws.com/huggingface-pytorch-inference:1.7-transformers4.6-cpu-py36-ubuntu18.04
      Environment:
        HF_MODEL_ID: facebook/bart-large-mnli
        HF_TASK: zero-shot-classification
        SAGEMAKER_CONTAINER_LOG_LEVEL: 20
        SAGEMAKER_REGION: us-east-1

از طرف دیگر، اگر از AWS CloudFormation استفاده نمی‌کنید، می‌توانید با چند خط کد به همان نتایج برسید. رجوع شود به استقرار مدل ها در Amazon SageMaker برای جزئیات بیشتر.

برای طبقه بندی محتوا، فقط با نقطه پایانی SageMaker تماس بگیرید. کد زیر یک قطعه کد پایتون است:

endpoint_name = os.environ['ENDPOINT_NAME']
labels = os.environ['ENDPOINT_NAME']

data = {
    'inputs': tweet,
    'parameters': {
        'candidate_labels': labels,
        'multi_class': False
    }
}

response = sagemaker.invoke_endpoint(EndpointName=endpoint_name,
                                     ContentType='application/json',
                                     Body=json.dumps(data))

response_body = json.loads(response['Body'].read())

توجه داشته باشید که غلط ارزش برای چند کلاسه پارامتری که نشان می دهد مجموع همه احتمالات برای هر کلاس برابر با 1 می شود.

بهبود راه حل

شما می توانید راه حل ارائه شده در اینجا را با ذخیره توییت ها و نتایج مدل بهبود ببخشید. سرویس ذخیره سازی ساده آمازون (Amazon S3)، یک سرویس ذخیره سازی اشیا، یک گزینه است. می‌توانید توییت‌ها، نتایج و سایر ابرداده‌ها را به‌عنوان اشیاء JSON در یک سطل S3 بنویسید. سپس می توانید با استفاده از آن محتوا، پرس و جوهای موقت را انجام دهید آمازون آتنا، یک سرویس جستجوی تعاملی که تجزیه و تحلیل داده ها را در آمازون S3 با استفاده از SQL استاندارد آسان می کند.

می توانید از تاریخچه نه تنها برای استخراج بینش بلکه برای آموزش یک مدل سفارشی استفاده کنید. می‌توانید از پشتیبانی Hugging Face برای آموزش مدلی با داده‌های خود با SageMaker استفاده کنید. بیشتر بدانید آموزش را در Amazon SageMaker اجرا کنید.

موارد استفاده در دنیای واقعی

مشتریان در حال حاضر در حال آزمایش مدل‌های Hugging Face در SageMaker هستند. سگوروس بولیواریک شرکت مالی و بیمه کلمبیایی که در سال 1939 تأسیس شده است، نمونه ای از آن است.

ما یک راه حل هشدار تهدید برای مشتریان و کارگزاران بیمه ایجاد کردیم. ما از مدل‌های NLP از پیش آموزش‌دیده Hugging Face برای طبقه‌بندی توییت‌ها از حساب‌های مربوطه استفاده می‌کنیم تا اعلان‌هایی را برای مشتریان خود در زمان نزدیک به‌عنوان یک استراتژی پیشگیری برای کمک به کاهش ادعاها ایجاد کنیم. یک ادعا به این دلیل رخ می دهد که مشتریان از سطح ریسکی که در معرض آن هستند آگاه نیستند. این راه حل به ما امکان می دهد در مشتریان خود آگاهی ایجاد کنیم و ریسک را به چیزی قابل اندازه گیری در موقعیت های خاص تبدیل کنیم.

- جولیان ریکو، رئیس تحقیقات و دانش در Seguros Bolívar.

Seguros Bolívar با AWS کار کرد تا راه حل خود را دوباره معماری کند. اکنون به SageMaker متکی است و شبیه آنچه در این پست توضیح داده شده است.

نتیجه

طبقه‌بندی صفر شات زمانی ایده‌آل است که داده‌های کمی برای آموزش یک طبقه‌بندی‌کننده متن سفارشی دارید یا زمانی که نمی‌توانید یک مدل NLP سفارشی را آموزش دهید. برای موارد استفاده تخصصی، زمانی که متن بر اساس کلمات یا اصطلاحات خاص است، بهتر است با یک مدل طبقه بندی نظارت شده بر اساس یک مجموعه آموزشی سفارشی پیش بروید.

در این پست به شما نشان دادیم که چگونه با استفاده از مدل Hugging Face zero-shot در AWS یک طبقه بندی اخبار بسازید. ما از توییتر به عنوان منبع خبری خود استفاده کردیم، اما شما می توانید منبع خبری را انتخاب کنید که برای نیازهای خاص شما مناسب تر است. علاوه بر این، به راحتی می توانید مدل را تغییر دهید، فقط مدل انتخابی خود را در قالب CloudFormation مشخص کنید.

برای دریافت کد منبع به ادامه مطلب مراجعه کنید مخزن GitHub این شامل دستورالعمل های کامل راه اندازی است. می توانید خودتان آن را شبیه سازی کنید، تغییر دهید، مستقر کنید و اجرا کنید. همچنین می‌توانید از آن به‌عنوان نقطه شروع استفاده کنید و دسته‌ها و منطق هشدار را سفارشی کنید یا راه‌حل دیگری برای موارد استفاده مشابه بسازید.

لطفا آن را امتحان کنید و نظر خود را با ما در میان بگذارید. مثل همیشه منتظر نظرات شما هستیم. می توانید آن را به مخاطبین معمولی پشتیبانی AWS خود یا در قسمت ارسال کنید انجمن AWS برای SageMaker.


درباره نویسندگان

با Twitter، Amazon SageMaker و Hugging Face PlatoBlockchain Data Intelligence یک سیستم هشدار بیدرنگ مبتنی بر اخبار بسازید. جستجوی عمودی Ai.دیوید لاردو یک معمار نمونه سازی در AWS Envision Engineering در LATAM است، جایی که به توسعه نمونه های اولیه یادگیری ماشین کمک کرده است. او قبلاً به عنوان مهندس یادگیری ماشین کار کرده است و بیش از 5 سال است که به یادگیری ماشین می پردازد. حوزه های مورد علاقه او NLP، سری های زمانی، و end-to-end ML هستند.

با Twitter، Amazon SageMaker و Hugging Face PlatoBlockchain Data Intelligence یک سیستم هشدار بیدرنگ مبتنی بر اخبار بسازید. جستجوی عمودی Ai.رافائل ورنک یک معمار ارشد نمونه سازی در AWS Envision Engineering، مستقر در برزیل است. پیش از این، او به عنوان مهندس توسعه نرم افزار در Amazon.com.br و Amazon RDS Performance Insights کار می کرد.

با Twitter، Amazon SageMaker و Hugging Face PlatoBlockchain Data Intelligence یک سیستم هشدار بیدرنگ مبتنی بر اخبار بسازید. جستجوی عمودی Ai.ویکرام الانگو یک معمار راه حل های تخصصی AI/ML در خدمات وب آمازون، مستقر در ویرجینیا، ایالات متحده است. Vikram با طراحی و رهبری فکری به مشتریان صنعت مالی و بیمه کمک می کند تا برنامه های یادگیری ماشین را در مقیاس بسازند و به کار گیرند. او در حال حاضر روی پردازش زبان طبیعی، هوش مصنوعی مسئول، بهینه‌سازی استنتاج و مقیاس‌بندی ML در سراسر سازمان متمرکز است. او در اوقات فراغت خود از مسافرت، پیاده روی، آشپزی و کمپینگ با خانواده لذت می برد.

تمبر زمان:

بیشتر از آموزش ماشین AWS