شعار زيفيرنت

تحسين أداء نماذج اللغة التوليدية من خلال المطالبة بالاتساق الذاتي على Amazon Bedrock | خدمات الويب الأمازون

التاريخ:

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

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

نظرة عامة على الحل

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

يوضح الشكل التالي كيف يختلف الاتساق الذاتي عن أسلوب CoT الجشع من حيث أنه يولد مجموعة متنوعة من مسارات التفكير ويجمعها لإنتاج الإجابة النهائية.

الاختلافات بين الاتساق الذاتي ومطالبة CoT.

استراتيجيات فك التشفير لتوليد النص

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

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

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

تقنيات المطالبة: CoT والاتساق الذاتي

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

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

  1. اطلب من نموذج اللغة باستخدام نماذج CoT لاستنباط الاستدلال.
  2. استبدل فك التشفير الجشع باستراتيجية أخذ العينات لإنشاء مجموعة متنوعة من مسارات التفكير.
  3. قم بتجميع النتائج للعثور على الإجابة الأكثر اتساقًا في مجموعة الإجابات.

يظهر أن الاتساق الذاتي يتفوق في أداء تحفيز CoT على معايير التفكير الحسابي والمنطقي الشائعة. أحد قيود هذا النهج هو تكلفته الحسابية الأكبر.

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

  • يمكننا الوصول إلى Amazon Bedrock Python SDK في JupyterLab على الأمازون SageMaker مثيل دفتر الملاحظات.
  • للتفكير الحسابي، نطالب قيادة Cohere على مجموعة بيانات GSM8K لمشاكل الرياضيات في المدرسة الابتدائية.
  • من أجل التفكير في الاختيار من متعدد، فإننا نطالب مختبرات AI21 الجوراسي-2 منتصف على عينة صغيرة من الأسئلة من AWS Certified Solutions Architect - اختبار المنتسبين.

المتطلبات الأساسية المسبقة

تفترض هذه الإرشادات المتطلبات الأساسية التالية:

إدارة الوصول إلى النموذج على Amazon Bedrock

التكلفة المقدرة لتشغيل الكود الموضح في هذا المنشور هي 100 دولار، على افتراض أنك تقوم بتشغيل مطالبة الاتساق الذاتي مرة واحدة مع 30 مسارًا منطقيًا باستخدام قيمة واحدة لأخذ العينات المستندة إلى درجة الحرارة.

مجموعة بيانات لاستكشاف قدرات التفكير الحسابي

GSM8K عبارة عن مجموعة بيانات لمسائل الرياضيات في المدارس الابتدائية التي تم تجميعها بواسطة الإنسان وتتميز بتنوع لغوي عالٍ. تستغرق كل مشكلة من 2 إلى 8 خطوات لحلها وتتطلب إجراء سلسلة من العمليات الحسابية الأولية مع العمليات الحسابية الأساسية. تُستخدم هذه البيانات بشكل شائع لقياس قدرات التفكير الحسابي متعدد الخطوات لنماذج اللغة التوليدية. ال مجموعة قطار GSM8K يضم 7,473 سجلاً. وفيما يلي مثال على ذلك:

{"question": "Natalia sold clips to 48 of her friends in April, and then she sold half as many clips in May. How many clips did Natalia sell altogether in April and May?", "answer": "Natalia sold 48/2 = <<48/2=24>>24 clips in May.nNatalia sold 48+24 = <<48+24=72>>72 clips altogether in April and May.n#### 72"}

قم بالإعداد لتشغيل الاستدلال الدفعي باستخدام Amazon Bedrock

يسمح لك الاستدلال المجمعي بتشغيل استدعاءات استدلال متعددة إلى Amazon Bedrock بشكل غير متزامن وتحسين أداء استدلال النموذج على مجموعات البيانات الكبيرة. الخدمة قيد المعاينة حتى كتابة هذه السطور وهي متاحة فقط من خلال واجهة برمجة التطبيقات (API). تشير إلى تشغيل الاستدلال الدفعي للوصول إلى واجهات برمجة تطبيقات الاستدلال الدفعي عبر حزم SDK المخصصة.

بعد أن قمت بتحميل وفك الضغط بايثون SDK في مثيل دفتر ملاحظات SageMaker، يمكنك تثبيته عن طريق تشغيل التعليمات البرمجية التالية في خلية دفتر Jupyter:

# Install preview SDK packages
!pip install -q $(ls ./bedrock-python-sdk-reinvent/botocore-*.whl | head -1)
!pip install -q $(ls ./bedrock-python-sdk-reinvent/boto3-*.whl | head -1)

قم بتنسيق بيانات الإدخال وتحميلها إلى Amazon S3

يجب إعداد بيانات الإدخال لاستدلال الدفعة بتنسيق JSONL باستخدام recordId و modelInput مفاتيح. يجب أن يتطابق الأخير مع الحقل الأساسي للنموذج الذي سيتم استدعاؤه على Amazon Bedrock. وعلى وجه الخصوص، بعض معلمات الاستدلال المدعومة لأمر Cohere . temperature للعشوائية، max_tokens لطول الإخراج، و num_generations لإنشاء استجابات متعددة، يتم تمريرها جميعًا مع الملف prompt as modelInput:

data = [
    {
        "recordId": "1",
        "modelInput": {
            "prompt": prompt,
            "temperature": temperature,
            "max_tokens": max_tokens,
            "num_generations": n,
        },
    },
    ...,
]

يرى معلمات الاستدلال لنماذج الأساس لمزيد من التفاصيل، بما في ذلك موفري النماذج الآخرين.

يتم إجراء تجاربنا حول التفكير الحسابي في إعداد لقطات قليلة دون تخصيص أو ضبط Cohere Command. نحن نستخدم نفس المجموعة المكونة من ثمانية نماذج قليلة من سلسلة الأفكار (الجدول 20) والاتساق الذاتي (الجدول 17) أوراق. يتم إنشاء المطالبات من خلال ربط النماذج مع كل سؤال من مجموعة قطارات GSM8K.

وضعنا max_tokens إلى 512 و num_generations إلى 5، الحد الأقصى المسموح به بواسطة Cohere Command. لفك التشفير الجشع، وضعنا temperature إلى 0 ومن أجل الاتساق الذاتي، أجرينا ثلاث تجارب عند درجات حرارة 0.5 و0.7 و1. وينتج عن كل إعداد بيانات إدخال مختلفة وفقًا لقيم درجة الحرارة المعنية. يتم تنسيق البيانات بتنسيق JSONL ويتم تخزينها في Amazon S3.

# Set up S3 client
session = boto3.Session()
s3 = session.client("s3")

# Create S3 bucket with unique name to store input/output data
suffix = str(uuid.uuid4())[:8]
bucket = f"bedrock-self-consistency-{suffix}"
s3.create_bucket(
    Bucket=bucket, CreateBucketConfiguration={"LocationConstraint": session.region_name}
)

# Process data and output to new lines as JSONL
input_key = f"gsm8k/T{temperature}/input.jsonl"
s3_data = ""
for row in data:
    s3_data += json.dumps(row) + "n"
s3.put_object(Body=s3_data, Bucket=bucket, Key=input_key)

إنشاء وتشغيل وظائف الاستدلال الدفعي في Amazon Bedrock

يتطلب إنشاء مهمة الاستدلال المجمعي عميل Amazon Bedrock. نحدد مسارات الإدخال والإخراج في S3 ونعطي كل مهمة استدعاء اسمًا فريدًا:

# Create Bedrock client							    
bedrock = boto3.client("bedrock")

# Input and output config						     
input_config = {"s3InputDataConfig": {"s3Uri": f"s3://{bucket}/{input_key}"}}
output_config = {"s3OutputDataConfig": {"s3Uri": f"s3://{bucket}/{output_key}"}}

# Create a unique job name
suffix = str(uuid.uuid4())[:8] 
job_name = f"command-batch-T{temperature}-{suffix}"

الوظائف هي خلق من خلال تمرير دور IAM ومعرف النموذج واسم الوظيفة وتكوين الإدخال/الإخراج كمعلمات إلى Amazon Bedrock API:

response = bedrock.create_model_invocation_job(
    roleArn=f"arn:aws:iam::{account_id}:role/BedrockBatchInferenceRole",
    modelId="cohere.command-text-v14",
    jobName=job_name,
    inputDataConfig=input_config,
    outputDataConfig=output_config,
)
job_arn = response["jobArn"]

القائمة, مراقبةو وقف يتم دعم وظائف الاستدلال الدفعي من خلال مكالمات API الخاصة بها. عند الإنشاء، تظهر الوظائف أولاً كـ Submitted، ثم كما InProgress، وأخيرا كما Stopped, Failedالطرق أو Completed.

# Get job details
job_details = bedrock.get_model_invocation_job(jobIdentifier=job_arn)

إذا اكتملت المهام بنجاح، فيمكن استرداد المحتوى الذي تم إنشاؤه من Amazon S3 باستخدام موقع الإخراج الفريد الخاص به.

# Get the output file key
s3_prefix = f"s3://{bucket}/"
output_path = job_details["outputDataConfig"]["s3OutputDataConfig"]["s3Uri"].replace(
    s3_prefix, ""
)
output_folder = job_details["jobArn"].split("/")[1]
output_file = (
    f'{job_details["inputDataConfig"]["s3InputDataConfig"]["s3Uri"].split("/")[-1]}.out'
)
result_key = f"{output_path}{output_folder}/{output_file}"

# Get output data
obj = s3.get_object(Bucket=bucket, Key=result_key)
content = obj["Body"].read().decode("utf-8").strip().split("n")

# Show answer to the first question
print(json.loads(content[0])["modelOutput"]["generations"][0]["text"])

[Out]: 'Natalia sold 48 * 1/2 = 24 clips less in May. This means she sold 48 + 24 = 72 clips in April and May. The answer is 72.'

يعزز الاتساق الذاتي دقة النموذج في المهام الحسابية

تتفوق المطالبة بالاتساق الذاتي لـ Cohere Command على خط الأساس الجشع لـ CoT من حيث الدقة في مجموعة بيانات GSM8K. لتحقيق الاتساق الذاتي، قمنا بتجربة 30 مسارًا للاستدلال المستقل في ثلاث درجات حرارة مختلفة، مع topP و topK مجموعة لهم قيم افتراضية. يتم تجميع الحلول النهائية عن طريق اختيار الحدث الأكثر اتساقًا من خلال تصويت الأغلبية. في حالة التعادل، نختار عشوائيًا إحدى إجابات الأغلبية. نحن نحسب قيم الدقة والانحراف المعياري التي يبلغ متوسطها أكثر من 100 نقطة.

يوضح الشكل التالي دقة مجموعة بيانات GSM8K من Cohere Command المدفوعة باستخدام CoT الجشع (الأزرق) والاتساق الذاتي عند قيم درجة الحرارة 0.5 (أصفر)، 0.7 (أخضر)، و1.0 (برتقالي) كدالة لعدد العينات التي تم أخذها مسارات المنطق.

دقة أمر Cohere باستخدام الاتساق الذاتي مقابل مطالبة CoT.

يوضح الشكل السابق أن الاتساق الذاتي يعزز الدقة الحسابية على CoT الجشع عندما يكون عدد المسارات التي تم أخذ عينات منها أقل من ثلاثة. ويتزايد الأداء باستمرار مع المزيد من مسارات التفكير، مما يؤكد أهمية إدخال التنوع في عملية توليد الفكر. يحل Cohere Command مجموعة أسئلة GSM8K بدقة تبلغ 51.7% عند المطالبة باستخدام CoT مقابل 68% مع 30 مسارًا منطقيًا متسقًا ذاتيًا عند T=1.0. جميع قيم درجات الحرارة الثلاث التي تم مسحها تسفر عن نتائج مماثلة، حيث تكون درجات الحرارة المنخفضة أكثر أداء نسبيًا في مسارات أقل أخذ عينات.

اعتبارات عملية بشأن الكفاءة والتكلفة

يقتصر الاتساق الذاتي على زيادة وقت الاستجابة والتكلفة المتكبدة عند إنشاء مخرجات متعددة لكل موجه. كمثال عملي، تم الانتهاء من الاستدلال المجمع للجيل الجشع باستخدام Cohere Command على 7,473 سجل GSM8K في أقل من 20 دقيقة. استغرقت المهمة 5.5 مليون رمزًا مميزًا كمدخلات وأنتجت 630,000 رمزًا مميزًا للمخرجات. في الوقت الحالي أسعار استدلال أمازون بيدروك، بلغت التكلفة الإجمالية المتكبدة حوالي 9.50 دولارًا.

لتحقيق الاتساق الذاتي مع أمر Cohere، نستخدم معلمة الاستدلال num_generations لإنشاء عمليات إكمال متعددة لكل موجه. حتى كتابة هذه السطور، تسمح Amazon Bedrock بحد أقصى خمسة أجيال وثلاثة أجيال متزامنة Submitted وظائف الاستدلال دفعة. وظائف المضي قدما إلى InProgress الحالة بشكل تسلسلي، وبالتالي فإن أخذ عينات من أكثر من خمسة مسارات يتطلب استدعاءات متعددة.

يوضح الشكل التالي أوقات تشغيل Cohere Command على مجموعة بيانات GSM8K. يتم عرض إجمالي وقت التشغيل على المحور س ووقت التشغيل لكل مسار تفكير لعينة على المحور ص. يتم تشغيل التوليد الجشع في أقصر وقت ولكنه يتحمل تكلفة زمنية أعلى لكل مسار تم أخذ عينات منه.

أوقات التشغيل لأمر Cohere

يكتمل الجيل الجشع في أقل من 20 دقيقة لمجموعة GSM8K الكاملة ويختبر مسار تفكير فريدًا. يتطلب الاتساق الذاتي مع خمس عينات وقتًا أطول بحوالي 50% لإكماله ويكلف حوالي 14.50 دولارًا أمريكيًا، ولكنه ينتج خمسة مسارات (أكثر من 500%) في ذلك الوقت. يزداد إجمالي وقت التشغيل والتكلفة تدريجيًا مع كل خمسة مسارات إضافية تم أخذ عينات منها. يشير تحليل التكلفة والفائدة إلى أن 1-2 مهام استدلال دفعة واحدة مع 5-10 مسارات عينة هي الإعداد الموصى به للتنفيذ العملي للاتساق الذاتي. يؤدي هذا إلى تحقيق أداء محسّن للنموذج مع الحفاظ على التكلفة ووقت الاستجابة.

يعزز الاتساق الذاتي أداء النموذج بما يتجاوز المنطق الحسابي

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

نقوم بإعداد مجموعة بيانات من الشعيبة- C01 و الشعيبة- C03 أسئلة الامتحان عينة. من بين الأسئلة العشرين المتاحة، نستخدم الأسئلة الأربعة الأولى كنماذج قليلة ونطلب من النموذج الإجابة على الأسئلة الـ 20 المتبقية. هذه المرة، نقوم بتشغيل الاستدلال باستخدام نموذج AI4 Labs Jurassic-16 Mid وإنشاء 21 مسارات استدلال كحد أقصى في درجة الحرارة 2. تظهر النتائج أن الاتساق الذاتي يعزز الأداء: على الرغم من أن لغة البرمجة الجشعة تنتج 10 إجابة صحيحة، إلا أن الاتساق الذاتي ينجح في اثنتين أخريين.

يوضح الجدول التالي نتائج الدقة لـ 5 و10 مسارات تم أخذ عينات منها بمتوسط ​​أكثر من 100 عملية تشغيل.

. فك التشفير الجشع T = 0.7
# مسارات العينة: 5 68.6 74.1 0.7 ±
# مسارات العينة: 10 68.6 78.9 ± شنومكس

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

سؤال

يتيح تطبيق الويب للعملاء تحميل الطلبات إلى حاوية S3. تقوم أحداث Amazon S3 الناتجة بتشغيل وظيفة Lambda التي تقوم بإدراج رسالة في قائمة انتظار SQS. يقوم مثيل EC2 واحد بقراءة الرسائل من قائمة الانتظار، ومعالجتها، وتخزينها في جدول DynamoDB مقسم بواسطة معرف ترتيب فريد. من المتوقع أن تزداد حركة المرور في الشهر المقبل بعامل 10 ويقوم مهندس الحلول بمراجعة البنية بحثًا عن مشكلات القياس المحتملة.

ما هو المكون الذي من المرجح أن يحتاج إلى إعادة تصميم ليكون قادرًا على التوسع لاستيعاب حركة المرور الجديدة؟

أ. وظيفة لامدا
ب. قائمة انتظار SQS
جيم - مثيل EC2
د. جدول DynamoDB

يستخدم التطبيق الذي يتم تشغيله على AWS نشر مجموعة Amazon Aurora Multi-AZ DB لقاعدة البيانات الخاصة به. عند تقييم مقاييس الأداء، اكتشف مهندس الحلول أن قراءات قاعدة البيانات تتسبب في ارتفاع مستوى الإدخال/الإخراج وإضافة زمن الوصول إلى طلبات الكتابة في قاعدة البيانات.

ما الذي يجب على مهندس الحلول فعله لفصل طلبات القراءة عن طلبات الكتابة؟

أ. تمكين التخزين المؤقت للقراءة في قاعدة بيانات Aurora.
ب. قم بتحديث التطبيق للقراءة من المثيل الاحتياطي لمناطق توافر الخدمات المتعددة.
ج. قم بإنشاء نسخة طبق الأصل من Aurora وقم بتعديل التطبيق لاستخدام نقاط النهاية المناسبة.
د. أنشئ قاعدة بيانات Aurora ثانية واربطها بقاعدة البيانات الأساسية كنسخة متماثلة للقراءة.

اجابة صحيحة C - لن يتم توسيع مثيل EC2 واحد وهو يمثل نقطة فشل واحدة في البنية. سيكون الحل الأفضل هو جعل مثيلات EC2 في مجموعة Auto Scaling عبر منطقتي توفر لقراءة الرسائل من قائمة الانتظار. الاستجابات الأخرى هي جميعها خدمات مُدارة يمكن تكوينها للتوسع أو سيتم توسيعها تلقائيًا. C - توفر النسخ المتماثلة من Aurora طريقة لتفريغ حركة مرور القراءة. تشترك النسخ المتماثلة من Aurora في نفس وحدة التخزين الأساسية مثل قاعدة البيانات الرئيسية، لذا يكون وقت التأخير منخفضًا جدًا بشكل عام. تحتوي نسخ Aurora المتماثلة على نقاط نهاية خاصة بها، لذا سيحتاج التطبيق إلى تكوينه لتوجيه حركة مرور القراءة إلى نقاط النهاية الجديدة.
فك التشفير الجشع قد لا يكون تغيير حجم مثيل EC2 مباشرةً ممكنًا، حيث قد لا يكون من الممكن تغيير حجم المثيل. قد لا يكون قياس وظيفة Lambda كافيًا، نظرًا لأن وظائف Lambda لها حد تخصيص للذاكرة يبلغ 6 جيجابايت. قد لا يكون قياس قائمة انتظار SQS كافياً، نظرًا لأن SQS لديه حد أقصى يبلغ 10,000 رسالة. يمكن توسيع نطاق جداول DynamoDB من خلال توفير المزيد من وحدات السعة. والجواب الصحيح هو د. تعديل التطبيق للقراءة من مثيل الاستعداد Multi-AZ (الخيار ب) هو النهج الأفضل. يتم نسخ المثيل الاحتياطي بشكل غير متزامن من المثيل الأساسي، لذلك لن تتداخل عمليات القراءة مع عمليات الكتابة. تمكين التخزين المؤقت للقراءة (الخيار أ) أو لن يؤدي إنشاء نسخة طبق الأصل من Aurora (الخيار C) إلى حل مشكلة تنافس الإدخال/الإخراج. لن يؤدي إنشاء قاعدة بيانات Aurora ثانية وربطها كنسخة متماثلة للقراءة (الخيار د) إلى حل مشكلة تنافس الإدخال/الإخراج أيضًا. الجواب الصحيح هو ب.
مسار العينة رقم 1 قد لا يكون توسيع مثيل EC2 إلى 10 أضعاف حجمه الحالي ممكنًا، سواء من منظور التكلفة أو الأداء. قد يتطلب الأمر مثيلًا أكبر، وهو ما قد يكون مكلفًا. قد يكون الأسلوب الأكثر فعالية من حيث التكلفة هو استخدام مجموعة من المثيلات الأصغر (على سبيل المثال، Auto Scaling Group) لمشاركة الحمل. في هذه الحالة، من المحتمل أن يحتاج مثيل EC2 إلى إعادة تصميمه. الاجابة الصحيحة هي رقم ج. لا يعد تعديل التطبيق لاستخدام نقاط النهاية المناسبة حلاً عمليًا لأنه يتطلب إجراء تغييرات على رمز التطبيق. الإجابة الصحيحة هي C: قم بإنشاء نسخة طبق الأصل من Aurora وقم بتعديل التطبيق لاستخدام نقاط النهاية المناسبة.
مسار العينة رقم 2 يعد قياس مثيل EC2 واحدًا أكثر صعوبة وإشكالية من قياس مكونات الخدمة الأخرى. يمكن لـ Amazon SQS وLambda وDynamoDB التوسع تلقائيًا للتعامل مع الحمل المتزايد. الاجابة الصحيحة هي رقم ج.

(C) قم بإنشاء نسخة طبق الأصل من Aurora وقم بتعديل التطبيق لاستخدام نقاط النهاية المناسبة.

من خلال تكوين نسخة Aurora Replica، يمكنك فصل حركة مرور القراءة عن حركة مرور الكتابة. تستخدم نسخ Aurora عناوين URL مختلفة لنقطة النهايةمما يسمح لك بتوجيه حركة مرور القراءة إلى النسخة المتماثلة بدلاً من قاعدة البيانات الأساسية. يمكن للنسخة المتماثلة معالجة طلبات القراءة بالتوازي مع طلبات الكتابة إلى قاعدة البيانات الأساسية، مما يقلل من عمليات الإدخال/الإخراج ووقت الاستجابة.

تنظيف

يخضع تشغيل الاستدلال المجمع في Amazon Bedrock لرسوم وفقًا لتسعير Amazon Bedrock. عند إكمال الإرشادات التفصيلية، احذف مثيل دفتر SageMaker الخاص بك وقم بإزالة جميع البيانات من حاويات S3 الخاصة بك لتجنب تكبد رسوم مستقبلية.

الاعتبارات

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

  • تقييد الوصول إلى واجهات برمجة التطبيقات وقواعد البيانات لمنع الاستخدام غير المصرح به.
  • الالتزام بأفضل ممارسات أمان AWS فيما يتعلق بالوصول إلى دور IAM ومجموعات الأمان.
  • التحقق من صحة مدخلات المستخدم وتعقيمها لمنع هجمات الحقن الفوري.
  • مراقبة وتسجيل العمليات التي تم تشغيلها لتمكين الاختبار والتدقيق.

وفي الختام

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

باستخدام الاستدلال الدفعي لـ Amazon Bedrock، تتم مطالبة نموذج اللغة Cohere Command بإنشاء إجابات متسقة ذاتيًا لمجموعة من المشكلات الحسابية. تتحسن الدقة من 51.7% مع فك التشفير الجشع إلى 68% مع أخذ عينات الاتساق الذاتي 30 مسارًا منطقيًا عند T=1.0. يؤدي أخذ عينات من خمسة مسارات بالفعل إلى تحسين الدقة بنسبة 7.5 بالمائة. يمكن نقل هذا النهج إلى نماذج لغوية ومهام تفكير أخرى، كما هو موضح في نتائج نموذج AI21 Labs Jurassic-2 Mid في اختبار AWS Certification. في مجموعة أسئلة صغيرة الحجم، يؤدي الاتساق الذاتي مع خمسة مسارات عينة إلى زيادة الدقة بنسبة 5 بالمائة مقارنة بـ CoT الجشع.

نحن نشجعك على تنفيذ الاتساق الذاتي الذي يطالب بأداء محسن في تطبيقاتك الخاصة باستخدام نماذج اللغة التوليدية. تعلم المزيد عن قيادة Cohere و مختبرات AI21 الجوراسي النماذج المتاحة على أمازون بيدروك. لمزيد من المعلومات حول الاستدلال الدفعي، راجع تشغيل الاستدلال الدفعي.

شكر وتقدير

يشكر المؤلف المراجعين الفنيين أمين تاجغردون وباتريك مكسويني على تعليقاتهم المفيدة.


عن المؤلف

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

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة