مهام باللغة المنطوقة مع "جيما"

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

لحسن الحظ، لا تحتاج إلى تعليم "جيما" لغة منطوقة بالكامل لتتمكّن من إكمال المهام بهذه اللغة. بالإضافة إلى ذلك، يمكنك ضبط نماذج Gemma لإكمال مهام معيّنة بلغة معيّنة باستخدام بيانات وجهود أقل مما تعتقد. باستخدام 20 مثالًا تقريبًا للطلبات والردود المتوقّعة بباللغة المستهدَفة، يمكنك الاستعانة بـ Gemma لمساعدتك في حلّ العديد من مشكلات الأنشطة التجارية المختلفة باللغة التي تناسبك أنت وعملائك على أفضل وجه.

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

نظرة عامة

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

لقطة شاشة لواجهة مستخدم تطبيق الويب K-Mail

الشكل 1: واجهة مستخدم المشروع، للاستفسارات عبر البريد الإلكتروني بشأن المخبز الكوري

متطلبات الأجهزة

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

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

  • أجهزة وحدة معالجة الرسومات: يجب توفُّر وحدة NVIDIA T4 لتشغيل هذا المشروع، ويُنصح باستخدام وحدة NVIDIA L4 أو إصدار أحدث.
  • نظام التشغيل: حدِّد خيار التعلّم المتعمق على Linux، وتحديدًا جهاز التعلم المتعمق مع CUDA 12.3 M124 مع برامج تشغيل برامج وحدة معالجة الرسومات المثبتة مسبقًا.
  • حجم قرص التمهيد: يجب توفير 50 غيغابايت على الأقل من مساحة القرص لملفاتك والنماذج والبرامج المتوافقة.

إعداد المشروع

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

التثبيت والضبط

يستخدم هذا المشروع الإصدار 3 من Python والبيئات الافتراضية (venv) لإدارة الحِزم وتشغيل التطبيق. إرشادات التثبيت التالية خاصة بجهاز مضيف Linux.

لتثبيت البرنامج المطلوب:

  • ثبِّت الإصدار 3 من Python وحزمة بيئة venv الافتراضية لـ Python.

    sudo apt update
    sudo apt install git pip python3-venv
    

استنساخ المشروع

نزِّل رمز المشروع على جهاز كمبيوتر التطوير. تحتاج إلى استخدام برنامج التحكّم في المصدر git لاسترداد رمز المصدر للمشروع.

لتنزيل رمز المشروع:

  1. استنسِخ مستودع git باستخدام الأمر التالي.

    git clone https://github.com/google-gemini/gemma-cookbook.git
    
  2. اختياريًا، يمكنك ضبط مستودع git المحلي لاستخدام عملية دفع متفرقة، بحيث يكون لديك ملفات المشروع فقط.

    cd gemma-cookbook/
    git sparse-checkout set Gemma/spoken-language-tasks/
    git sparse-checkout init --cone
    

تثبيت مكتبات Python

ثبِّت مكتبات Python باستخدام بيئة venv Python الافتراضية التي تم تفعيلها لإدارة حزم Python وتبعياتها. تأكَّد من تفعيل بيئة Python الافتراضية قبل تثبيت مكتبات Python باستخدام pip أداة التثبيت. لمزيد من المعلومات عن استخدام البيئات الافتراضية في Python، اطّلِع على مستندات Python venv.

لتثبيت مكتبات Python:

  1. في نافذة وحدة طرفية، انتقِل إلى الدليل spoken-language-tasks:

    cd Gemma/spoken-language-tasks/
    
  2. عليك ضبط بيئة Python الافتراضية (venv) وتفعيلها لهذا المشروع:

    python3 -m venv venv
    source venv/bin/activate
    
  3. ثبِّت مكتبات Python المطلوبة لهذا المشروع باستخدام النص البرمجي setup_python.

    ./setup_python.sh
    

ضبط متغيرات البيئة

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

لضبط متغيّرات البيئة:

  1. احصل على اسم المستخدم الخاص بك على Kaggle ومفتاح الرمز المميّز باتّباع التعليمات الواردة في مستندات Kaggle.
  2. يمكنك الوصول إلى نموذج Gemma من خلال اتّباع تعليمات الوصول إلى Gemma في صفحة إعداد Gemma.
  3. أنشئ ملفات متغيّرات البيئة للمشروع، وذلك عن طريق إنشاء ملف نصي .env في كل موقع من المواقع التالية في نسختك من المشروع:
    k-mail-replier/k_mail_replier/.env
    k-gemma-it/.env
    
  4. بعد إنشاء ملفات .env النصية، أضِف الإعدادات التالية إلى كلا الملفَّين:

    KAGGLE_USERNAME=<YOUR_KAGGLE_USERNAME_HERE>
    KAGGLE_KEY=<YOUR_KAGGLE_KEY_HERE>
    

تشغيل التطبيق واختباره

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

لتنفيذ المشروع واختباره:

  1. في نافذة وحدة طرفية، انتقِل إلى الدليل /k_mail_replier/:

    cd spoken-language-tasks/k-mail-replier/
    
  2. شغِّل التطبيق باستخدام النص البرمجي run_flask_app.sh:

    ./run_flask_app.sh
    
  3. بعد بدء تطبيق الويب، يسرد رمز البرنامج عنوان URL حيث يمكنك التصفح والاختبار. عادةً ما يكون هذا العنوان:

    http://127.0.0.1:5000/
    
  4. في واجهة الويب، اضغط على الزر 답변 작성 أسفل حقل الإدخال الأول لإنشاء استجابة من النموذج.

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

تمديد الطلب

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

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

لتعديل تعليمات الطلب:

  1. في مشروع مهمة اللغات المنطوقة، افتح ملف الترميز الخاص بـ k-mail-replier/k_mail_replier/app.py.
  2. في الرمز app.py، أضِف تعليمات الإضافات إلى الدالة get_prompt()::

    def get_prompt():
        return "발신자에게 요청에 대한 감사를 전하고, 곧 자세한 내용을
            알려드리겠다고 정중하게 답장해 주세요. 정중하게 답변해 주세요!:\n"
    

يضيف هذا المثال عبارة "يُرجى كتابة رد مهذب" إلى التعليمات المكتوبة باللغة الكورية.

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

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

ضبط النموذج

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

توضِّح التعليمات التالية كيفية إجراء عملية التحسين في بيئة VM، ومع ذلك، يمكنك أيضًا إجراء عملية التحسين هذه باستخدام مفكرة Colab المرتبطة بهذا المشروع.

متطلبات الأجهزة

متطلبات الحوسبة اللازمة للتحسين هي نفسها متطلبات الأجهزة لبقية المشروع. يمكنك تنفيذ عملية الضبط في بيئة Colab باستخدام بيئة تشغيل وحدة معالجة الرسومات T4 إذا كنت تحصر الرموز المميّزة للدخل بـ 256 وحجم الحزمة بـ 1.

تجهيز البيانات

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

الطلب الرد
안녕하세요, 2주 뒤에 있을 아이 생일을 위방 3 المرفوضة 케이크 3개를 주문하보 싶은데 가능할까썔? 고객님, 안녕하세요. 2주 뒤 아이 생일을 위한 3 الأصلية 케이크 2개 주문 문씨 감사람니다. 네, 3호 케이크 2개 주문 가능합니다. 아이 생일 케이크인 만큼 더욱 신경 써서 정성껏 준비하겠습니다. 혹시 원하시는 디자인이나 특별한 요청 사항이 있으시면 편하게 말씀해주세요. 픽업 날짜와 시간을 알려주시면 더욱 자세한 안내를 도와드리겠습니다. 다시 한국 문タ 감사드리며, 아이 생일 رسومات심으로 축하씨니다! [가게 이름] 드림
안녕하세요, 9월 15일에 있을 아들의 돌잔치를 위해 케이크를 주문하고 싶습니다. - 케이크 종류: 생크림 케이크 - 크기: 2호 - 디자인: 아기자기한 동물 디자인 - 문구: "첫 생일 축하해, 사랑하는 아들!" - 픽업 날짜 및 시간: 9월 14일 오후 3시 가격 및 주문 가능 여부를 알려주시면 감사하겠습니다. 감사합니다. 김민지 드림 الضيوف 안녕하세요, 김민지 님, 9월 15일 아드님의 돌잔치를 위한 케이크 주문 문의 감사합니다. - 생크림 케이크 2호, 아기자기한 동물 디자인, "첫 생일 축하해, 사랑하는 아들!" 문구, 9월 14일 오후 3시 픽업 모두 가능합니다. - 가격은 5만원입니다. 주문을 원하시면 연락 주세요 감사합니다. [가게 이름] 드림

الجدول 1: قائمة جزئية لمجموعة بيانات الضبط لمُجيب الرسائل الإلكترونية في المخبز الكوري

تنسيق البيانات وتحميلها

يمكنك تخزين بيانات الضبط بأي تنسيق مناسب، بما في ذلك سجلّات قاعدة البيانات أو ملفات JSON أو CSV أو ملفات نص عادي، ما دام لديك الوسائل اللازمة لاسترداد السجلات باستخدام رمز Python. لتسهيل الأمر، يحصل مثال برنامج الضبط على السجلّات من مستودع على الإنترنت. في مثال برنامج التحكّم هذا، يتم تحميل مجموعة بيانات الضبط في وحدة k-gemma-it/main.py باستخدام الدالة prepare_tuning_dataset():

def prepare_tuning_dataset():
    tokenizer = keras_nlp.models.GemmaTokenizer.from_preset(model_id)

    # load data from repository (or local directory)
    from datasets import load_dataset
    ds = load_dataset(
        # Dataset : https://huggingface.co/datasets/bebechien/korean_cake_boss
        "bebechien/korean_cake_boss",
        split="train",
    )
    ...

كما ذكرنا سابقًا، يمكنك تخزين مجموعة البيانات بتنسيق مناسب، ما دام بإمكانك استرداد الطلبات مع الردّات المرتبطة بها وتجميعها في سلسلة نصية تُستخدَم كسجلّ ضبط.

تجميع سجلات التوليف

في عملية الضبط الفعلية، يتم تجميع كل طلب وردّ في سلسلة واحدة تتضمّن تعليمات الطلب والعلامات للإشارة إلى محتوى الطلب ومحتوى الردّ. بعد ذلك، يُقسّم برنامج الضبط السلسلة إلى رموزاً لاستخدامها في النموذج. يمكنك الاطّلاع على رمز تجميع تسجيل الضبط في دالة k-gemma-it/main.py وحدة prepare_tuning_dataset() ، على النحو التالي:

def prepare_tuning_dataset():
    ...
    prompt_instruction = "다음에 대한 이메일 답장을 작성해줘."

    for x in data:
        item = f"<start_of_turn>user\n{prompt_instruction}\n\"{x['input']}\"<end_of_turn>\n<start_of_turn>model\n{x['output']}<end_of_turn>"
        length = len(tokenizer(item))
        # skip data if the token length is longer than our limit
        if length < token_limit:
            tuning_dataset.append(item)
            if(len(tuning_dataset)>=num_data_limit):
                break
    ...

تقرأ هذه الدالة البيانات وتنسقها من خلال إضافة العلامتَين start_of_turn وend_of_turn، وهو التنسيق المطلوب عند توفير بيانات لضبط نموذج Gemma. يُدخِل هذا الرمز أيضًا prompt_instruction لكل طلب، ويجب تعديله بما يناسب تطبيقك.

إنشاء أوزان النماذج

بعد الانتهاء من تحميل بيانات الضبط، يمكنك تشغيل ملف الضبط . تستخدِم عملية ضبط هذا المثال على التطبيق مكتبة Keras NLP لضبط النموذج باستخدام Low Rank Adaptation أو تقنية LoRA لإنشاء أوزان جديدة للنموذج. مقارنةً بالضبط الدقيق الكامل، يُعدّ استخدام LoRA أكثر فعالية في استخدام الذاكرة لأنّه يقترب من التغييرات في أوزان النموذج. يمكنك بعد ذلك تراكب هذه القيم التقريبة على قيم النموذج الحالية لتغيير سلوك النموذج.

لتنفيذ عملية الضبط وحساب الأوزان الجديدة:

  1. في نافذة طرفية، انتقِل إلى دليل k-gemma-it/.

    cd spoken-language-tasks/k-gemma-it/
    
  2. يمكنك تنفيذ عملية الضبط باستخدام النص البرمجي tune_model:

    ./tune_model.sh
    

تستغرق عملية الضبط عدة دقائق استنادًا إلى موارد المعالجة المتاحة. عند اكتمال عملية الضبط بنجاح، يكتب برنامج الضبط ملفات *.h5 weight جديدة في دليل k-gemma-it/weights بالتنسيق التالي:

gemma2-2b_k-tuned_4_epoch##.lora.h5

تحديد المشاكل وحلّها

إذا لم تكتمل عملية الضبط بنجاح، هناك سببان محتملان:

  1. نفاد الذاكرة / استنفاذ الموارد: تحدث هذه الأخطاء عندما تطلب عملية الضبط ذاكرة تتجاوز ذاكرة وحدة معالجة الرسومات أو ذاكرة وحدة المعالجة المركزية المتاحة. تأكَّد من عدم تشغيل تطبيق الويب أثناء تنفيذ عملية الضبط. إذا كنت تعدّل الإعدادات على جهاز يحتوي على ذاكرة وحدة معالجة رسومات بسعة 16 غيغابايت، تأكّد من ضبط token_limit على 256 وbatch_size على 1.
  2. برامج تشغيل وحدة معالجة الرسومات غير مثبَّتة أو غير متوافقة مع JAX: تتطلّب عملية التفعيل أن يكون جهاز الحوسبة مزوّدًا ببرامج تشغيل الأجهزة التي تتماشى مع إصدار مكتبات JAX. لمزيد من التفاصيل، يُرجى الاطّلاع على مستندات تثبيت JAX .

نشر النموذج المحسَّن

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

...
Epoch 14/20
10/10 ━━━━━━━━━━━━━━━━━━━━ 6s 567ms/step - loss: 0.4026 - sparse_categorical_accuracy: 0.8235
Epoch 15/20
10/10 ━━━━━━━━━━━━━━━━━━━━ 6s 569ms/step - loss: 0.3659 - sparse_categorical_accuracy: 0.8382
Epoch 16/20
10/10 ━━━━━━━━━━━━━━━━━━━━ 6s 571ms/step - loss: 0.3314 - sparse_categorical_accuracy: 0.8538
Epoch 17/20
10/10 ━━━━━━━━━━━━━━━━━━━━ 6s 572ms/step - loss: 0.2996 - sparse_categorical_accuracy: 0.8686
Epoch 18/20
10/10 ━━━━━━━━━━━━━━━━━━━━ 6s 574ms/step - loss: 0.2710 - sparse_categorical_accuracy: 0.8801
Epoch 19/20
10/10 ━━━━━━━━━━━━━━━━━━━━ 6s 575ms/step - loss: 0.2451 - sparse_categorical_accuracy: 0.8903
Epoch 20/20
10/10 ━━━━━━━━━━━━━━━━━━━━ 6s 575ms/step - loss: 0.2212 - sparse_categorical_accuracy: 0.9021

على الرغم من أنّك تريد أن يكون معدّل الدقة مرتفعًا نسبيًا، أي من 0.80 إلى 0.90 تقريبًا، لا تريد أن يكون المعدّل مرتفعًا جدًا أو قريبًا جدًا من 1.00، لأنّ ذلك يعني أنّ الأوزان اقتربت من التكيّف المفرط مع بيانات الضبط. وعندما يحدث ذلك، لا يحقّق النموذج أداءً جيدًا في الطلبات التي تختلف اختلافًا كبيرًا عن أمثلة الضبط. يختار نصّ التفعيل تلقائيًا مَعلمات الحقبة 17 التي تبلغ دقتها عادةً ‎0.90 تقريبًا.

لنشر الأوزان التي تم إنشاؤها في تطبيق الويب:

  1. في نافذة وحدة طرفية، انتقِل إلى الدليل k-gemma-it/.

    cd spoken-language-tasks/k-gemma-it/
    
  2. يمكنك إجراء عملية الضبط باستخدام النص البرمجي deploy_weights:

    ./deploy_weights.sh
    

بعد تنفيذ هذا النص البرمجي، من المفترض أن يظهر لك ملف *.h5 جديد في الدليل k-mail-replier/k_mail_replier/weights/.

اختبار النموذج الجديد

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

لتشغيل المشروع واختباره:

  1. في نافذة طرفية، انتقِل إلى دليل /k_mail_replier/.

    cd spoken-language-tasks/k-mail-replier/
    
  2. شغِّل التطبيق باستخدام نص run_flask_app.sh البرمجي:

    ./run_flask_app.sh
    
  3. بعد بدء تطبيق الويب، يسرد رمز البرنامج عنوان URL حيث يمكنك التصفّح والاختبار، وعادةً ما يكون هذا العنوان:

    http://127.0.0.1:5000/
    
  4. في واجهة الويب، اضغط على الزر 답변 작성 أسفل حقل الإدخال الأول لإنشاء ردّ من النموذج.

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

مراجع إضافية

لمزيد من المعلومات حول هذا المشروع، يُرجى الاطّلاع على مستودع رموز Gemma Cookbook. إذا كنت بحاجة إلى مساعدة في إنشاء التطبيق أو كنت تبحث عن التعاون مع مطوّرين آخرين، يمكنك الاطّلاع على خادم Discord الخاص بمنتدى Google Developers. لمزيد من مشاريع "إنشاء باستخدام الذكاء الاصطناعي من Google"، يمكنك الاطّلاع على قائمة تشغيل الفيديوهات.