استخدام المطالبة القائمة على الأدوار مع IBM watsonx وGranite

Vanna Winland

AI Advocate & Technology Writer

Anna Gutowska

AI Engineer, Developer Advocate

IBM

ما المقصود بالمطالبة القائمة على الأدوار؟

في هذا البرنامج التعليمي، سنتَّبع تعليمات خطوة بخطوة لتطبيق تقنية هندسة المطالبات المعروفة باسم المطالبة القائمة على الأدوار. سنستخدم نموذج IBM® Granite لتعيين شخصيات لمخرجات النموذج الدقيقة.

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

تهدف هندسة المطالبات إلى تحسين مدخلات النموذج كي يردّ بإجابات مناسبة وذات معنى. تُعَد كلٌّ من المطالبة الصفرية والمطالبة بخطوات قليلة تقنيتين شائعتين للتفاعل مع النماذج اللغوية الكبيرة (LLMs). تمتلك النماذج اللغوية الكبيرة قدرة طبيعية على أداء مهام معالجة اللغات الطبيعية (NLP)؛ نظرًا لقدرتها على معالجة اللغة البشرية وتفسيرها. تُعَد القدرات اللغوية لنماذج الذكاء الاصطناعي ذات قيمة كبيرة للمهام التي تتراوح من محادثات روبوت المحادثة والتفاعلات متعددة الوكلاء إلى الكتابة الإبداعية المفتوحة. 

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

كيفية استخدام المطالبة القائمة على الأدوار

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

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

لمتابعة هذا البرنامج التعليمي، تحتاج إلى حساب IBM Cloud لتكوين مشروع watsonx.ai .

الخطوات

الخطوة 1. إعداد البيئة.

رغم توفُّر عدة أدوات للاختيار منها، يُرشدك هذا الدليل خلال خطوات إعداد حساب IBM لاستخدام Jupyter Notebook. يتم استخدام Jupyter Notebooks على نطاق واسع في علم البيانات للجمع بين التعليمات البرمجية والنص والصور والعروض المصورة للبيانات لصياغة تحليل جيد التكوين.

  1. سجِّل الدخول إلى watsonx.ai Runtime باستخدام حساب IBM Cloud الخاص بك.
  2. أنشئ مشروع watsonx.ai.

                 دوِّن معرِّف المشروع في المشروع > إدارة > عام > معرِّف المشروع.
                 ستحتاج إلى هذا المعرِّف في هذا البرنامج التعليمي.

 3.  أنشئ Jupyter Notebook.

تفتح هذه الخطوة بيئة دفتر ملاحظات حيث يمكنك نسخ الكود من هذا البرنامج التعليمي لإجراء تصنيف المطالبة الصفرية بنفسك. أو يمكنك تنزيل هذا الدفتر إلى نظامك المحلي وتحميله إلى مشروع watsonx.ai كأصل. يتوفر Jupyter Notebook هذا على GitHub.

الخطوة 2. إعداد مثيل watsonx.ai Runtime ومفتاح واجهة برمجة التطبيقات.

في هذه الخطوة، تربط مشروعك بخدمة watsonx.ai.

  1. أنشئ مثيل watsonx.ai Runtime (اختَر خطة Lite، وهي مثيل مجاني).

  2. أنشئ مفتاح واجهة برمجة التطبيقات في watsonx.ai.

  3. اربط مثيل watsonx.ai Runtime بالمشروع الذي أنشأته في watsonx.ai.

الخطوة 3. تثبيت واستيراد المكتبات ذات الصلة وإعداد بيانات الاعتماد الخاصة بك.

سنحتاج إلى بعض المكتبات والوحدات لهذا البرنامج التعليمي. تأكَّد من استيراد ما يلي، وإذا لم تكن مثبَّتة، يمكنك تثبيتها بسرعة باستخدام pip.

%pip install -q -U langchain_ibm 
%pip install –q ibm_watsonx_ai 
 
import getpass 
 
from langchain_ibm import WatsonxLLM 
from ibm_watsonx_ai.metanames import GenTextParamsMetaNames as GenParams 

الخطوة 4. إعداد بيانات اعتماد watsonx الخاصة بك.

شغِّل الأمر التالي لإدخال وحفظ مفتاح واجهة برمجة التطبيقات الخاص بـ watsonx.ai ومعرِّف المشروع:

credentials = { 
    "url": "https://us-south.ml.cloud.ibm.com", 
    "apikey": getpass.getpass("Please enter your watsonx.ai Runtime API key (hit enter): "), 
    "project_id": getpass.getpass("Please enter your project ID (hit enter): "), 
}

الخطوة 5. إعداد نموذج لمطالبة قائمة على الأدوار.

بعد ذلك، نُعِدّ Granite-3.1-8B-Instruct من IBM لإجراء المطالبة القائمة على الأدوار.

model = WatsonxLLM( 
model_id =  "ibm/granite-3-8b-instruct", 
url = credentials.get("url"), 
apikey = credentials.get("apikey"), 
project_id =  credentials.get("project_id"), 
params={ 
        GenParams.MAX_NEW_TOKENS: 500, 
        GenParams.MIN_NEW_TOKENS: 1, 
        GenParams.REPETITION_PENALTY: 1.1, 
        GenParams.TEMPERATURE: 0.7, # Adjust for variable responses 
        GenParams.TOP_K: 100, 
        GenParams.TOP_P: 0, 
    }, 
)

الخطوة 6. تحويل كلمات الأغاني إلى سوناتات

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

يعمل الجزء التالي من الكود على إعداد وتحديد المطالبة التي سيستجيب لها النموذج. لا تتردد في تغيير الأغنية إلى أي شيء تريده ولكن لاحِظ أن Granite لم يتم تدريبه على محتوى محميّ بحقوق الطبع والنشر. إذا اخترت أغنية ليست جزءًا من المجال العام، على سبيل المثال أغنية "Espresso" لسابرينا كاربنتر، فسيتعين عليك لصق كلمات الأغنية مع المطالبة أيضًا.   
 
لاستخدام مطالبة تعمل ببساطة، سيستعين هذا المثال بأغنية الأطفال الكلاسيكية "Twinkle, Twinkle, Little Star" لـ Jane Taylor (1806). شغِّل كتلة الكود لتحديد مطالبة المستخدم الخاصة بك إلى جانب بعض نصوص الإدخال النموذجية.

def generate_text(prompt): 
    response = None  # Ensure the variable is defined before the try block 
    try: 
        response = model.generate([prompt]) 
        return str(response) 
    except Exception as e: 
        print(f"Error: {e}") 
        if response: 
            print(f"Response: {response}") 
            return None 
    # Define the prompt here 
defined_prompt = "You are William Shakespeare, rewrite ‘Twinkle, Twinkle, Little Star’ by Jane Taylor as a sonnet."

الخطوة 7. توليد استجابة

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

# Generate and print the text based on the defined prompt 
generated_text = generate_text(defined_prompt) 
print("Generated text:", generated_text)


إليك مخرجات النموذج بتنسيق قابل للقراءة:

"Twinkle, twinkle, little star, how I wonder what you are; 
Up above the world so high, like a diamond in the sky. 
In night's velvet cloak, you shine so bright, 
Guiding sailors through the darkest night. 
 
Your radiant beams, a celestial art, 
Illuminate the canvas of the heart. 
In silent whispers, secrets you share, 
Of galaxies far and constellations rare. 
 
Yet, mortal eyes can never grasp your form, 
Beyond our realm, in realms beyond the storm. 
O, star! O, star! Your light does pierce my soul, 
A cosmic dance, a timeless role. 
 
In dreams, I chase you, in slumber's hold, 
Your mystery, like an enchanted scroll. 
 
But wakefulness claims me, daylight steals your guise, 
Leaving behind but a memory of your surprise.
 
Thus, twinkling star, in slumber's peaceful reign, 
I bid you farewell, till morning brings again
."

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

الخطوة 8. استخدام المطالبة القائمة على الأدوار للحصول على استجابات أكثر تعاطفًا من روبوت المحادثة

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

def generate_text(prompt): 
    response = None  # Ensure the variable is defined before the try block 
    try: 
        response = model.generate([prompt]) 
        return str(response) 
    except Exception as e: 
        print(f"Error: {e}") 
        if response: 
            print(f"Response: {response}") 
            return None 
    # Define the prompt here 
defined_prompt = " My pet cat has been sneezing a lot lately and is licking her paws what should I do?" 
 
# Generate and print the text based on the defined prompt 
generated_text = generate_text(defined_prompt) 
print("Generated text:", generated_text)


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

def generate_text(prompt): 
    response = None  # Ensure the variable is defined before the try block 
    try: 
        response = model.generate([prompt]) 
        return str(response) 
    except Exception as e: 
        print(f"Error: {e}") 
        if response: 
            print(f"Response: {response}") 
            return None 
    # Define the prompt here 
defined_prompt = "You are a compassionate, professional, and experienced veteraniarian. My pet cat has been sneezing a lot lately and is licking her paws what should I do?" 
 
# Generate and print the text based on the defined prompt 
generated_text = generate_text(defined_prompt) 
print("Generated text:", generated_text)


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

ما أهمية المطالبة القائمة على الأدوار؟

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

ملخص

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

حلول ذات صلة
®IBM® watsonx.ai

تدريب الذكاء الاصطناعي التوليدي والتحقق من صحته وضبطه ونشره، وكذلك قدرات نماذج الأساس والتعلم الآلي باستخدام IBM watsonx.ai، وهو استوديو الجيل التالي من المؤسسات لمنشئي الذكاء الاصطناعي. أنشئ تطبيقات الذكاء الاصطناعي في وقت قصير وباستخدام جزء بسيط من البيانات.

استكشف watsonx.ai
حلول الذكاء الاصطناعي

استفِد من الذكاء الاصطناعي في عملك بالاستعانة بخبرة IBM الرائدة في مجال الذكاء الاصطناعي ومحفظة حلولها التي ستكون بجانبك.

استكشف حلول الذكاء الاصطناعي
الاستشارات والخدمات في مجال الذكاء الاصطناعي

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

استكشف خدمات الذكاء الاصطناعي
اتخِذ الخطوة التالية

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

استكشف Concert® استكشف حلول أتمتة عمليات الأعمال