تتوفر الآن نماذج Whisper للتعرف التلقائي على الكلام في Amazon SageMaker JumpStart | خدمات ويب أمازون

تتوفر الآن نماذج Whisper للتعرف التلقائي على الكلام في Amazon SageMaker JumpStart | خدمات ويب أمازون

اليوم، يسعدنا أن نعلن أن نموذج مؤسسة OpenAI Whisper متاح للعملاء الذين يستخدمونه أمازون سيج ميكر جومب ستارت. Whisper هو نموذج تم تدريبه مسبقًا للتعرف التلقائي على الكلام (ASR) وترجمة الكلام. تُظهر نماذج Whisper، التي تم تدريبها على 680 ألف ساعة من البيانات المصنفة، قدرة قوية على التعميم على العديد من مجموعات البيانات والمجالات دون الحاجة إلى الضبط الدقيق. Sagemaker JumpStart هو مركز التعلم الآلي (ML) الخاص بـ SageMaker والذي يوفر الوصول إلى النماذج الأساسية بالإضافة إلى الخوارزميات المضمنة وقوالب الحلول الشاملة لمساعدتك على البدء بسرعة في استخدام تعلم الآلة.

يمكنك أيضًا إجراء ASR باستخدام الأمازون النسخ ، خدمة التعرف التلقائي على الكلام مُدارة بالكامل ومدربة بشكل مستمر.

في هذه التدوينة، نعرض لك كيفية نشر OpenAI الهمس نموذج واستدعاء النموذج لنسخ وترجمة الصوت.

يستخدم نموذج OpenAI Whisper عناقالوجه-Pytorch-الاستدلال حاوية. باعتبارك أحد عملاء مركز نموذج SageMaker JumpStart، يمكنك استخدام ASR دون الحاجة إلى الحفاظ على البرنامج النصي للنموذج خارج SageMaker SDK. تعمل نماذج SageMaker JumpStart أيضًا على تحسين الوضع الأمني ​​من خلال نقاط النهاية التي تتيح عزل الشبكة.

نماذج الأساس في SageMaker

يوفر SageMaker JumpStart إمكانية الوصول إلى مجموعة من النماذج من مراكز النماذج الشائعة بما في ذلك Hugging Face وPyTorch Hub وTensorFlow Hub، والتي يمكنك استخدامها ضمن سير عمل تطوير تعلم الآلة في SageMaker. أدت التطورات الأخيرة في تعلم الآلة إلى ظهور فئة جديدة من النماذج المعروفة باسم نماذج الأساس، والتي يتم تدريبها عادةً على مليارات المعلمات ويمكن تكييفها مع فئة واسعة من حالات الاستخدام، مثل تلخيص النص وإنشاء الفن الرقمي وترجمة اللغة. نظرًا لأن تدريب هذه النماذج مكلف، يرغب العملاء في استخدام النماذج الأساسية الحالية المدربة مسبقًا وضبطها حسب الحاجة، بدلاً من تدريب هذه النماذج بأنفسهم. يوفر SageMaker قائمة منسقة من النماذج التي يمكنك الاختيار من بينها على وحدة تحكم SageMaker.

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

نماذج مؤسسة OpenAI Whisper

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

Whisper هو نموذج فك ترميز وتشفير قائم على المحولات، ويشار إليه أيضًا باسم a تسلسل إلى تسلسل نموذج. تم تدريبه على 680 ألف ساعة من بيانات الكلام الموسومة المشروحة باستخدام إشراف ضعيف واسع النطاق. تُظهر نماذج Whisper قدرة قوية على التعميم على العديد من مجموعات البيانات والمجالات دون الحاجة إلى الضبط الدقيق.

تم تدريب النماذج إما على بيانات باللغة الإنجليزية فقط أو على بيانات متعددة اللغات. تم تدريب النماذج الناطقة باللغة الإنجليزية فقط على مهمة التعرف على الكلام. تم تدريب النماذج متعددة اللغات على التعرف على الكلام وترجمة الكلام. للتعرف على الكلام، يتنبأ النموذج بالنسخ في نفسه اللغة كالصوت. بالنسبة لترجمة الكلام، يتنبأ النموذج بالنسخ إلى أ مختلف اللغة إلى الصوت.

تأتي نقاط تفتيش Whisper في خمسة تكوينات بأحجام نماذج مختلفة. يتم تدريب أصغر أربعة على البيانات باللغة الإنجليزية فقط أو متعددة اللغات. أكبر نقاط التفتيش متعددة اللغات فقط. جميع نقاط التفتيش العشرة المدربة مسبقًا متاحة على محور الوجه المعانق. تم تلخيص نقاط التحقق في الجدول التالي مع روابط للنماذج الموجودة على المحور:

نموذج اسم عدد المعلمات متعدد اللغات
الهمس صغيرة 39 M نعم
قاعدة الهمس 74 M نعم
الهمس الصغيرة 244 M نعم
الهمس المتوسطة 769 M نعم
همس كبير 1550 M نعم
الهمس-كبير-v2 1550 M نعم

دعنا نستكشف كيف يمكنك استخدام نماذج Whisper في SageMaker JumpStart.

تقوم مؤسسة OpenAI Whisper بنماذج WER ومقارنة زمن الوصول

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

الموديل WER (نسبة مئوية)
الهمس صغيرة 7.54
قاعدة الهمس 5.08
الهمس الصغيرة 3.43
الهمس المتوسطة 2.9
همس كبير 3
الهمس-كبير-v2 3

بالنسبة لهذه المدونة، أخذنا الملف الصوتي أدناه وقمنا بمقارنة زمن الوصول للتعرف على الكلام عبر نماذج همس مختلفة. زمن الوصول هو مقدار الوقت من لحظة قيام المستخدم بإرسال طلب حتى الوقت الذي يشير فيه تطبيقك إلى اكتمال الطلب. تمثل الأرقام الموجودة في الجدول التالي متوسط ​​زمن الوصول لإجمالي 100 طلب باستخدام نفس الملف الصوتي مع النموذج المستضاف على مثيل ml.g5.2xlarge.

الموديل متوسط ​​الكمون (فترات الاستجابة) إخراج النموذج
الهمس صغيرة 0.43 نحن نعيش في أوقات مثيرة للغاية مع إضاءة الآلة. ستزداد سرعة تطوير نموذج ML بالفعل. لكنك لن تصل إلى تلك الحالة النهائية التي فزنا بها في السنوات القادمة. ما لم نجعل هذه النماذج في متناول الجميع.
قاعدة الهمس 0.49 نحن نعيش في أوقات مثيرة للغاية مع التعلم الآلي. ستزداد سرعة تطوير نموذج ML بالفعل. لكنك لن تصل إلى تلك الحالة النهائية التي فزنا بها في السنوات القادمة. ما لم نجعل هذه النماذج في متناول الجميع.
الهمس الصغيرة 0.84 نحن نعيش في أوقات مثيرة للغاية مع التعلم الآلي. ستزداد سرعة تطوير نموذج ML بالفعل. ولكننا لن نصل إلى تلك الحالة النهائية التي نريدها في السنوات القادمة إلا إذا جعلنا هذه النماذج في متناول الجميع.
الهمس المتوسطة 1.5 نحن نعيش في أوقات مثيرة للغاية مع التعلم الآلي. ستزداد سرعة تطوير نموذج ML بالفعل. ولكننا لن نصل إلى تلك الحالة النهائية التي نريدها في السنوات القادمة إلا إذا جعلنا هذه النماذج في متناول الجميع.
همس كبير 1.96 نحن نعيش في أوقات مثيرة للغاية مع التعلم الآلي. ستزداد سرعة تطوير نموذج ML بالفعل. ولكننا لن نصل إلى تلك الحالة النهائية التي نريدها في السنوات القادمة إلا إذا جعلنا هذه النماذج في متناول الجميع.
الهمس-كبير-v2 1.98 نحن نعيش في أوقات مثيرة للغاية مع التعلم الآلي. ستزداد سرعة تطوير نموذج ML بالفعل. ولكننا لن نصل إلى تلك الحالة النهائية التي نريدها في السنوات القادمة إلا إذا جعلنا هذه النماذج في متناول الجميع.

تجول الحل

يمكنك نشر نماذج Whisper باستخدام وحدة تحكم Amazon SageMaker أو باستخدام Amazon SageMaker Notebook. في هذا المنشور، نوضح كيفية نشر Whisper API باستخدام وحدة تحكم SageMaker Studio أو SageMaker Notebook ثم استخدام النموذج المنشور للتعرف على الكلام وترجمة اللغة. يمكن العثور على الكود المستخدم في هذا المنشور في هذا دفتر جيثب.

دعونا نوسع كل خطوة بالتفصيل.

نشر Whisper من وحدة التحكم

  1. لبدء استخدام SageMaker JumpStart، افتح وحدة تحكم Amazon SageMaker Studio وانتقل إلى صفحة تشغيل SageMaker JumpStart وحدد ابدأ مع JumpStart.
  2. لاختيار نموذج Whisper، يمكنك إما استخدام علامات التبويب الموجودة في الأعلى أو استخدام مربع البحث في أعلى اليمين كما هو موضح في لقطة الشاشة التالية. في هذا المثال، استخدم مربع البحث في أعلى اليمين وأدخل Whisper، ثم حدد نموذج Whisper المناسب من القائمة المنسدلة.
    تتوفر الآن نماذج Whisper للتعرف التلقائي على الكلام في Amazon SageMaker JumpStart | أمازون ويب سيرفيسز PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.
  3. بعد تحديد نموذج Whisper، يمكنك استخدام وحدة التحكم لنشر النموذج. يمكنك تحديد مثيل للنشر أو استخدام الإعداد الافتراضي.
    تتوفر الآن نماذج Whisper للتعرف التلقائي على الكلام في Amazon SageMaker JumpStart | أمازون ويب سيرفيسز PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.

انشر النموذج الأساسي من Sagemaker Notebook

خطوات النشر أولاً ثم استخدام النموذج المنشور لحل المهام المختلفة هي:

  1. اقامة
  2. حدد طرازًا
  3. استرجع العناصر الأثرية وانشر نقطة نهاية
  4. استخدم النموذج المنشور لـ ASR
  5. استخدم النموذج المنشور لترجمة اللغة
  6. تنظيف نقطة النهاية

اقامة

تم اختبار هذا الكمبيوتر الدفتري على مثيل ml.t3.medium في SageMaker Studio مع نواة Python 3 (علم البيانات) وفي مثيل Amazon SageMaker Notebook مع conda_python3 نواة.

%pip install --upgrade sagemaker --quiet

حدد نموذجًا تم تدريبه مسبقًا

قم بإعداد جلسة SageMaker باستخدام Boto3، ثم حدد معرف النموذج الذي تريد نشره.

model_id = "huggingface-asr-whisper-large-v2"

استرجع العناصر الأثرية وانشر نقطة نهاية

باستخدام SageMaker، يمكنك إجراء الاستدلال على النموذج المُدرب مسبقًا، حتى بدون ضبطه أولاً على مجموعة بيانات جديدة. لاستضافة النموذج المُدرب مسبقًا، قم بإنشاء مثيل لـ sagemaker.model.Model ونشرها. يستخدم التعليمة البرمجية التالية المثيل الافتراضي ml.g5.2xlarge لنقطة نهاية الاستدلال لنموذج whisper-large-v2. يمكنك نشر النموذج على أنواع المثيلات الأخرى عن طريق التمرير instance_type في ال JumpStartModel فصل. قد يستغرق النشر بضع دقائق.

#Deploying the model from sagemaker.jumpstart.model import JumpStartModel
from sagemaker.serializers import JSONSerializer my_model = JumpStartModel(model_id=dropdown.value)
predictor = my_model.deploy()

التعرف التلقائي على الكلام

بعد ذلك، عليك قراءة نموذج الملف الصوتي، Sample1.wav، من SageMaker Jumpstart العام خدمة Amazon Simple Storage (Amazon S3) الموقع وتمريره إلى المتنبئ للتعرف على الكلام. يمكنك استبدال نموذج الملف هذا بأي نموذج ملف صوتي آخر ولكن تأكد من أخذ عينات من ملف wav بسرعة 16 كيلو هرتز لأنه مطلوب من قبل نماذج التعرف التلقائي على الكلام. يجب أن تكون مدة إدخال الملف الصوتي أقل من 30 ثانية.

from scipy.io.wavfile import read
import json
import boto3
from sagemaker.jumpstart import utils # The wav files must be sampled at 16kHz (this is required by the automatic speech recognition models), so make sure to resample them if required. The input audio file must be less than 30 seconds.
s3_bucket = utils.get_jumpstart_content_bucket(boto3.Session().region_name)
key_prefix = "training-datasets/asr_notebook_data"
input_audio_file_name = "sample1.wav" s3_client = boto3.client("s3")
s3_client.download_file(s3_bucket, f"{key_prefix}/{input_audio_file_name }", input_audio_file_name ) with open(input_audio_file_name, "rb") as file: wav_file_read = file.read() # If you receive client error (413) please check the payload size to the endpoint. Payloads for SageMaker invoke endpoint requests are limited to about 5MB
response = predictor.predict(wav_file_read)
print(response["text"])

يدعم هذا النموذج العديد من المعلمات عند إجراء الاستدلال. يشملوا:

  • max_length: يقوم النموذج بإنشاء نص حتى طول الإخراج. إذا تم تحديده، فيجب أن يكون عددًا صحيحًا موجبًا.
  • اللغة والمهمة: حدد لغة الإخراج والمهمة هنا. يدعم النموذج مهمة النسخ أو الترجمة.
  • max_new_tokens: الحد الأقصى لعدد الرموز التي سيتم إنشاؤها.
  • num_return_sequences: عدد تسلسلات الإخراج التي تم إرجاعها. إذا تم تحديده، فيجب أن يكون عددًا صحيحًا موجبًا.
  • num_beams: عدد العوارض المستخدمة في البحث الجشع. إذا تم تحديده، فيجب أن يكون عددًا صحيحًا أكبر من أو يساوي num_return_sequences.
  • no_repeat_ngram_size: النموذج يضمن تسلسل الكلمات no_repeat_ngram_size لا يتكرر في تسلسل الإخراج. إذا تم تحديده، فيجب أن يكون عددًا صحيحًا موجبًا أكبر من 1.
  • درجة الحرارة: هذا يتحكم في العشوائية في الإخراج. تؤدي درجة الحرارة المرتفعة إلى تسلسل إخراج بكلمات ذات احتمالية منخفضة ويؤدي انخفاض درجة الحرارة إلى تسلسل إخراج بكلمات ذات احتمالية عالية. إذا اقتربت درجة الحرارة من 0، فإنه يؤدي إلى فك التشفير الجشع. إذا تم تحديده، يجب أن يكون تعويمًا إيجابيًا.
  • early_stopping: إذا True، يتم الانتهاء من إنشاء النص عندما تصل جميع فرضيات الشعاع إلى نهاية الجملة. إذا تم تحديده، فيجب أن يكون منطقيًا.
  • do_sample: إذا True، عينة الكلمة التالية للاحتمال. إذا تم تحديده، فيجب أن يكون منطقيًا.
  • top_k: في كل خطوة من خطوات إنشاء النص، عينة من فقط top_k على الأرجح الكلمات. إذا تم تحديده ، يجب أن يكون عددًا صحيحًا موجبًا.
  • top_p: في كل خطوة من خطوات إنشاء النص، خذ عينة من أصغر مجموعة ممكنة من الكلمات ذات الاحتمالية التراكمية top_p. إذا تم تحديده، فيجب أن يكون عائمًا بين 0 و1.

يمكنك تحديد أي مجموعة فرعية من المعلمات السابقة عند استدعاء نقطة النهاية. بعد ذلك، نعرض لك مثالاً لكيفية استدعاء نقطة النهاية باستخدام هذه الوسائط.

ترجمة اللغة

لعرض ترجمة اللغة باستخدام نماذج Whisper، استخدم الملف الصوتي التالي باللغة الفرنسية وقم بترجمته إلى الإنجليزية. يجب أخذ عينات من الملف عند 16 كيلو هرتز (كما هو مطلوب في نماذج ASR)، لذا تأكد من إعادة أخذ عينات من الملفات إذا لزم الأمر وتأكد من أن عيناتك لا تتجاوز 30 ثانية.

  1. تحميل sample_french1.wav من SageMaker JumpStart من موقع S3 العام حتى يمكن تمريره في الحمولة للترجمة بواسطة نموذج Whisper.
    input_audio_file_name = "sample_french1.wav" s3_client.download_file(s3_bucket, f"{key_prefix}/{input_audio_file_name }", input_audio_file_name )

  2. قم بتعيين معلمة المهمة كـ translate واللغة كما French لإجبار نموذج Whisper على إجراء ترجمة الكلام.
    with open(input_audio_file_name, "rb") as file: wav_file_read = file.read() payload = {"audio_input": wav_file_read.hex(), "language": "french", "task": "translate"} predictor.serializer = JSONSerializer()
    predictor.content_type = "application/json"

  3. استعمل المتنبئ للتنبؤ بترجمة اللغة. إذا تلقيت خطأ العميل (خطأ 413)، فتحقق من حجم الحمولة إلى نقطة النهاية. تقتصر حمولات SageMaker التي تستدعي طلبات نقطة النهاية على حوالي 5 ميجابايت.
    response = predictor.predict(payload)
    print(response["text"])

  4. فيما يلي إخراج النص المترجم إلى الإنجليزية من الملف الصوتي الفرنسي:
    [' Welcome to JPBSystem. We have more than 150 employees and 90% of sales. We have developed about 15 patents.']

تنظيف

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

وفي الختام

في هذا المنشور، أوضحنا لك كيفية اختبار واستخدام نماذج OpenAI Whisper لإنشاء تطبيقات مثيرة للاهتمام باستخدام Amazon SageMaker. جرب نموذج الأساس في SageMaker اليوم وأخبرنا بتعليقاتك!

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


عن المؤلفين

تتوفر الآن نماذج Whisper للتعرف التلقائي على الكلام في Amazon SageMaker JumpStart | أمازون ويب سيرفيسز PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.هيمانت سينغ هو عالم تطبيقي يتمتع بخبرة في Amazon SageMaker JumpStart. حصل على درجة الماجستير من معهد كورانت للعلوم الرياضية وB.Tech من IIT دلهي. لديه خبرة في العمل على مجموعة متنوعة من مشاكل التعلم الآلي في مجال معالجة اللغة الطبيعية، ورؤية الكمبيوتر، وتحليل السلاسل الزمنية.

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

تتوفر الآن نماذج Whisper للتعرف التلقائي على الكلام في Amazon SageMaker JumpStart | أمازون ويب سيرفيسز PlatoBlockchain Data Intelligence. البحث العمودي. منظمة العفو الدولية.د. أشيش خيتان هو عالم تطبيقي أقدم مع خوارزميات Amazon SageMaker المضمنة ويساعد في تطوير خوارزميات التعلم الآلي. حصل على الدكتوراه من جامعة إلينوي في أوربانا شامبين. وهو باحث نشط في التعلم الآلي والاستدلال الإحصائي ، وقد نشر العديد من الأوراق البحثية في مؤتمرات NeurIPS و ICML و ICLR و JMLR و ACL و EMNLP.

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

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