VOL37: Prompt Engineering Crash Course
أهلًا وسهلا بكم في العدد السابع والثلاثين من النشرة الأسبوعية لاقرأ-تِك 🚀
لا تنسوا أهلنا من صالح الدعاء,اللهم إنّا استودعناك اياهم، اللهم كُن عوناً لهم، اللهم انصرهم واحفظهم. 🇵🇸
أهلًا وسهلا بكم في العدد السابع والثلاثين من النشرة الأسبوعية لاقرأ-تِك 🚀
سواء كنت مهندس برمجيات مبتدئ أو محترف، فنشرتنا هدفها انها تثري المحتوى التقني العربي سعيا للتطوير من جودة المحتوى باللغة العربية, من خلال تقديم أحدث المستجدات والتطورات في عالم البرمجيات، بالإضافة إلى أفضل الممارسات والنصائح القيمة, ونشر أحدث المقالات وترشيحات الكتب ومحتوى ورقة وقلم اللي بينزلوا بشكل مستمر في موقع اقرأ-تِك.
في الإصدار ده الفهرس هيكون كالآتي:
Comprehensive Guide Into Prompt Engineering
Practical Guide Into Prompt Engineering Using Gemini API
Generative AI
AI vs. Machine Learning vs. Deep Learning
Introduction Into Middlewares in .NET Core
ستجدون أيضًا في هذه النشرة:
خصم يصل لـ 60% على خطط الاشتراك السنوي لمدة أسبوع فقط 🎉
الشراكات - Sponsorship
قناة التليجرام مجانية للجميع حتى يصلك كل مقال جديد
كيفية كتابة مقالات معنا في اقرأ-تِك: والمقالات تكون متاحة ومجانية للجميع ومحفوظة باسم الكاتب بكل تأكيد
كيفية الاشتراك في اقرأ-تِك من خلال InstaPay و VodafoneCash
تقدروا دلوقتي تشتركوا في اقرأ-تِك بخصم يصل لـ 60% لفترة محدودة وتنضموا لمجتمع مهتم بالقراءة في هندسة البرمجيات (يعني بـ 30 جنيه بس) 🎉
وتستمتعوا بحرية كاملة في قراءة المقالات في مواضيع مختلفة بجودة عالية زي:
Data Structure & Algorithms , System Design , Distributed Systems , Micro-Services, Clean Code, Refactoring, Databases , Web Development, DevOps وغيرهم كتير باللغة العربية!
بالاضافة لمحتوى ورقة وقلم اللي بنشرح فيه مفاهيم برمجية بطريقة سهلة وباستعمال صور توضيحية 🚀
ولو فيه مشاكل في الدفع الأونلاين فمتاح دلوقتي الاشتراك من خلال InstaPay و VodafoneCash 💪
تقدروا تتواصلوا معانا من خلال البريد الالكتروني contact@eqraatech.com 😍
ماتنسوش تستعملوا Coupon: WHITEFRIDAY50 ! 🚀
Comprehensive Guide Into Prompt Engineering
في عالم الذكاء الاصطناعي المتطور، أصبح استخدام النماذج اللغوية الضخمة (LLMs) جزءًا أساسيًا في عمل ال developers وال ML Engineers.
هنا تأتي أهمية ال Prompt Engineering، حيث نتعلم كيفية صياغة التعليمات (prompts) بطريقة تجعل الـ LLMs تنتج مخرجات دقيقة وذات مغزى. ورغم تدريب ال LLMs على كميات ضخمة من البيانات، إلا أن وضوح ال promptsيزيد من دقة النتائج.
في هذه المقالة، سنستكشف استراتيجيات الـ Prompt Engineering لتحسين أداء النماذج وتوسيع تطبيقاتها.
Comprehensive Guide Into Prompt Engineering - Image Reference
تعريف الـ Prompt Engineering
ببساطة، هي فن كتابة الأسئلة أو التعليمات اللي بتوجه الـ LLMs، علشان نطلع منها النتيجة اللي إحنا عايزينها. العملية دي بتعتمد على شوية إرشادات (guidelines) لو اتبعناها صح، هتحسن بشكل كبير من جودة الردود اللي بنحصل عليها.
بعض هذه الإرشادات مستمدة من تجارب المستخدمين العاديين، والبعض الآخر من تطوير OpenAI، بينما جزء منها يعتمد على فهمنا العميق لمعالجة اللغة الطبيعية (NLP).
مراحل تطورات الـ Prompt engineering
Enhanced contextual understanding: مع تطور الـ LLMs زي GPT-4، بقت قادرة على فهم السياق بشكل أدق.
Adaptive prompting techniques: الـ models دلوقتي بتتعلم ازاي تعدل ردودها حسب طريقة كتابة المستخدم. تفضيلاته وبالتالي المحادثه أصبحت natural and user-friendly
Multimodal prompt engineering: فيه تقنيات جديدة بتتعامل مع أنواع مختلفة من البيانات زي النصوص والصور.
Real-Time Prompt Optimization: تقديم ملاحظات فورية على ال prompt
Integration with Domain-Specific Models: ال Domain-Specific Models بتكون مدربه علي داته من مجال معين وبتكون متخصصه.
LLM Output Configuration
لما تختار الmodel بتاعك، لازم تكوِّن الإعدادات الخاصة بيه بشكل صحيح. أغلب ال LLMs بتوفر لك اختيارات كتير تتحكم في المخرجات.
1- طول المخرجات Output Length
هنا بحدد عدد ال tokens اللي هتطلع في الرد. تقليل ال Output length مش هيخلي الmodel يكتب بشكل مختصر أو دقيق، هو هيقول نفس الكلام بس اول ما ال capacity تخلص هيقطع كلامه.
2- التحكم في العينة Sampling Controls
الموديل بيتوقع احتمالات (probabilities) لعدد من ال tokens الي ممكن تيجي بعد الكلمة الحالية كل واحد قصاده احتماليه ان هو يكون الtoken القادم. في techniques زي Temperature وTop-K وTop-P بتساعدني أتحكم في كيفية اختيار الرموز.
1) Greedy Decoding
هو طريقة بسيطة بيستخدمها ال LLM عشان تولد الToken القادم. الطريقة دي بتعتمد على اختيار الكلمة أو الtoken اللي احتمالها أعلى (high probability) .
مثال:
الmodel بياخد المدخلات (ال prompt علي سبيل المثال "اهلا").
بيحسب احتمالات للكلمات اللي ممكن تيجي بعد المدخلات دي.
هاي → 0.25 مرحبا → 0.4 أهلاً → 0.35
بيختار الكلمة اللي عندها أعلى احتمال" <-- مرحبا"
بيضيف الكلمة المختارة للجملة، ويكرر نفس العملية للرمز اللي بعده.
العملية دي بتفضل مستمرة لحد ما يوصل لعدد معين من الكلمات أو لنهاية الجملة
2) Temperature
ده بيسيطر على مدى عشوائية اختيار الtoken. لو خليت الـTemperature قليل، هتلاقي الإجابة أكتر تحديدًا وثباتًا لانه هيميل انه يختار الtokens ذات اعلي probabilities. لو خليت الـTemperature عالي، هتكون الإجابة أكتر تنوعًا أو مفاجئة او creative.
لو خليت الـTemperature صفر، هيبقى الاختيار دائمًا للرمز اللي ليه أعلى احتمال زي ال الـGreedy Decoding.
3) Top-K
ده بيختار الـ K-tokens الأكثر احتمالية من الtokens اللي اتوقعه الmodel. لو خليت الـK عالي هنا بنختار من مجموعه كلمات كبيره فهتلاقي الإجابة أكتر إبداعًا، ولو قللتها، هتكون أكتر دقة وثباتًا.
لو خليت الـK=1، هيبقى الاختيار زي الـ Greedy Decoding لان هيختار الtoken الي يحمل اعلي probability.
4) Top-P (Nucleus Sampling)
ده بيختار الرموز اللي احتمالاتها الإجمالية ما بتتجاوزش قيمة معينة (P). قيمة P بتبدأ من 0 (اختيار دائمًا للرمز الأكثر احتمالًا) لحد 1 (الاختيار من كل الرموز المتاحة). كأني بقوله اي token تحت ال probability (p) تختار تختار منه بحريه
لو عايز تبدأ بشكل متوازن بين الإبداع والدقة، جرب Temperature = 0.2، Top-P = 0.95، وTop-K = 30.
لو عايز نتائج أكتر إبداعًا، جرب Temperature = 0.9، Top-P = 0.99، وTop-K = 40.
لو عايز نتائج دقيقة أكتر، جرب Temperature = 0.1، Top-P = 0.9، وTop-K = 20.
لو مهم يكون في إجابة واحدة صحيحة (زي مسألة رياضية)، خلي Temperature = 0.
عناصر الـ Prompt
Instruction: الجزء الأساسي من الprompt , زي مثلا Summarize the following text""
Context : معلومات إضافية بتساعد الmodel على فهم الظروف أو الخلفية الأوسع , زي مثلا "Considering the economic downturn, provide investment advice"
data Input : المعلومات أو البيانات اللي بتدخلها عشان الmodel يشتغل عليها.
Output indicator : بيوجه الmodel على طريقة أو نوع الرد او يتقمص دور معين "In the style of Shakespeare, rewrite the following sentence"
Practical Guide Into Prompt Engineering Using Gemini API
في المقالة دى، هنركّز على الجانب العملي من Prompt Engineering، وهنعرف مع بعض إزاي نصيغ prompts بشكل يضمن لنا أفضل نتائج من LLMs.
الادوات المستخدمة (Tools)
جميع التمارين معتمدة على Gemini API من خلال Python SDK. يمكن أيضًا الوصول إلى كل ال prompts مباشرة في Google AI Studio.
AI Studio: الخدمة دي متاحة مجانًا، وكل اللي هتحتاجه هو حساب Google علشان تسجل الدخول وتبدأ. كمان متكاملة بشكل قوي مع Gemini API، وفيها فئة مجانية (free tier) تخليك تشغّل الأكواد في التدريبات دي بدون أي تكلفة.
Generative AI
من كام سنة بالضبط وفي وقت ما معلوماتنا كمبرمجين عن الـ AI كانت واقفة انه بيعرف يفرق بين صورة قطة وصورة كلب و شوية استخدامات بسيطة , خرج للنور ChatGPT وتبعه الكثير من ال AI Apps اللي كانت قادرة تنتج داتا جديدة أول مرة نشوفها وترد علينا زي ما الناس بترد علينا.
Generative AI
ال Generative AI هو فئة من فئات الـ AI اللي عندها القدرة على إنتاج محتوى جديد, سواء ردود على اسئلة أو صور أو مقاطع صوت أو فيديو ، وفي الواقع النوع دا من ال AI مش حاجة جديدة بل موجود من 1960 و احنا اتعاملنا معاه كتير قبل ChatGPt في هيئة ال Chat Bots ودي AI Apps قادرة تعمل محادثات زي البشر.
الـ AI Apps دي كانت محدودة المعلومات ومتقدرش تفهم كل الاسئلة اللي بتوجه لها ولا تقدر تفهم سياق المحادثة الكلي لأنها معتمدة علي Rule-Based Models ودي Models بيبرمج فيها الانسان قواعد وشروط ثابتة فتبدو كأنها بتنتج ردود ولكن الردود دي مبرمجة مسبقًا.
بينما ال Apps الجديدة اللي بنشوفها معتمدة على تقنيات مختلفة ومرنة من ال Deep Learning Models واللي محتاجة برمجة أقل ولكن Data Sets اكبر بكتير عشان تتدرب عليها وكل لما البيانات اللي كانت بتتدرب عليها أكتر ومتنوعة أكثر كانت ال Models دي اقوي وبتدينا نتائج أحسن من غير برمجة ثابتة للردود دي.
أشهر الـ Models
أشهر ال Models اللي بنستخدمها حاليًا في ال Generative AI:
Large Language Models (LLM) ودي اللي بنستخدمها في ChatGPT و محركات الترجمة و التلخيص
Generative Adversarial Networks (GANs) و دي اللي بنستخدمها في إنتاج الصور و الفيديوهات
طيب ما برضو ال Deep Learning Models مش حاجة جديدة, امال ايه اللي عمل الطفرة دي؟
ايه الاختلاف اللي أدى لظهور الـ Generative AI
دا يعود لـ3 أسباب رئيسية:
اكتشاف الـ Transformers Models 2017
تواجد كميات هائلة من البيانات على الإنترنت يمكن للـ Model التدرب عليها
التطور الكبير في الـ Hardware
الشراكات - Sponsorship
بفضل الله أصبح متاح حاليا دعمنا من خلال الرعاة والشراكات وفعلنا الـ Sponsorship وتقدروا تشوفوا التفاصيل كاملة من هنا والـ Analytics بتاعتنا من خلال اقرأ-تِك والنشرة الأسبوعية 🚀
لا تدع شيء يفوتك!
بفضل الله قمنا بإطلاق قناة اقرأ-تِك على التليجرام مجانًا للجميع 🚀
آملين بده اننا نفتح باب تاني لتحقيق رؤيتنا نحو إثراء المحتوى التقني باللغة العربية ، ومساعدة لكل متابعينا في انهم يوصلوا لجميع أخبار اقرأ-تِك من حيث المقالات ومحتوى ورقة وقلم والنشرة الأسبوعية وكل جديد بطريقة سريعة وسهلة
مستنينكوا تنورونا , وده رابط القناة 👇
AI vs. Machine Learning vs. Deep Learning
لسه بنقول فهمنا ChatGPT بيشتغل ازاي طلع لنا Google بـ Gemini, فخلونا نسيب كل ده على جمب ونرجع للأساسيات ونسأل ايه هو الفرق بين الـ AI vs Machine Learning vs Deep Learning ؟
طب هنستفاد إيه اما نتمكن من الأساسيات؟
هنستفاد اننا نحط كل معلومة جديدة في مكانها الصح زي الـ Puzzle وبالتالي نفهم أي تقنية جديدة.
ما هو الذكاء الاصطناعي Artificial Intelligence ؟
الذكاء الاصطناعي هو مصطلح عام شامل لأي تطوير في علوم الحاسب عشان نخلي الحواسيب -بشكل عام أكثر الآلات- تتصرف زي الانسان, وتؤدي نفس مهام الإنسان التي تتطلب ذكاء انساني لتأديتها.
فروح المجال دا قائمة على محاكاة أو تقليد طريقة تفكير الانسان. الفكرة دي ممكن نحققها بطرق كتير في منها طرق تٌبرمج فيها أجزاء كبيرة من عملية التعلم زي ال Rule-Based Models وفي طرق تدخل الإنسان فيها أقل ومش هنحتاج لبرمجة مباشرة لشروط معينة.
Machine Learning
إذن كدا تعلم الآلة – Machine Learning هو نفس الشئ ؟
مش بالظبط, الـ Machine Learning هو مجموعة فرعية من مجال الذكاء الاصطناعي و “مصطلح تقني” أكثر بيشير لطريقة معينة في تعليم الآلة لنفسها “بدون برمجة مباشرة”.
هنا الانسان زي ما قولنا بيقوم بمهام محددة وبيقتصرعلى إنشاء الـ Model وتوفير بيانات لتدريب الـ Model عليها ومتابعتها.
الـ Machine Learning نقدر نحققه بأكثر من نوع من الـ Algorithms زي:
Supervised Learning Algorithms
Unsupervised Learning Algorithms
Reinforcement Learning Algorithms
جميل, كده عرفنا الفرق بين الذكاء الاصطناعي والـ Machine Learning، طيب ايه هو التعلم العميق – Deep Learning ؟
Introduction Into .NET CORE Middlewares
الـ Middleware هو مكون برمجي في تطبيقات ASP.NET Core يتعامل مع الطلبات (Requests) القادمة من العميل ويقوم بتنفيذ عمليات مختلفة على هذه الـ Requests قبل أن تصل إلى الـ Controller أو قبل أن يتم إرسال الاستجابة إلى العميل.
ببساطة، هو مكون يمر عبره كل طلب (Request) يتم استلامه من العميل (Client) قبل أن يصل إلى التطبيق (Application) أو بعد معالجته، حيث يمكنه تعديل الطلب أو الاستجابة أو إجراء عمليات إضافية مثل التحقق من الهوية أو معالجة الأخطاء.
أهمية Middleware
إضافة وظائف مشتركة: يمكن استخدام الـ Middleware لإضافة وظائف متكررة في كل الطلبات مثل التحقق من الهوية، السجل (Logging)، معالجة الأخطاء، أو إضافة HTTP Headers معينة.
التنظيم المركزي: بدلاً من كتابة الكود نفسه في كل مكان داخل التطبيق، يمكن وضعه في مكان واحد لتبسيط الصيانة والتطوير.
أنواع مختلفة من الـ Middleware في ASP.NET Core
Authentication Middleware
يُستخدم للتحقق من هوية المستخدم بناءً على معلومات الطلب (مثل الـ Token في الـ HTTP Header). ويتم استخدامه في الغالب مع بروتوكولات مثل OAuth أو JWT.
مثال:
Authorization Middleware
يتم استخدامه بعد الـ Authentication لضمان أن المستخدم لديه الصلاحيات المناسبة للوصول إلى الموارد.
مثال:
Logging Middleware
يُستخدم لتسجيل تفاصيل الطلبات مثل عنوان URL، طريقة الطلب (GET, POST، إلخ)، وأي بيانات إضافية يمكن أن تكون مفيدة لتشخيص الأخطاء أو مراقبة الأداء.
مثال:
ثم يمكنك إضافة الـ Logging Middleware في Startup.cs كما يلي:
رؤيتنا هي إثراء المحتوى التقني العربي وجعل التعلم من خلال القراءة أمتع، وذلك من خلال إثراء المحتوى التقني باللغة العربية وتشجيع المبرمجين على القراءة بلغتهم الأم والتفكير أيضًا بها.
لذلك اتحنا الفرصة أمام الجميع للمساهمة ومساعدتنا في نشر واثراء المحتوى التقني باللغة العربية, من خلال كتابة المقالات التقنية في مختلف مجالات هندسة البرمجيات.
وجب التنويه أنه لن يتم نشر كافة الأعمال التي تصل إلينا، وإنما سيتم الانتقاء منها ما يحقق هدفنا بإثراء المحتوى التقني العربي، ولذلك قد تُطلب بعض التعديلات من الكاتب قبل النشر.
لمعرفة المزيد بخصوص :
💬 المعايير العامة لكتابة ونشر المقالات
⚡️ كيفية الإرسال
🔥 التزامات اقرأ-تِك تجاه الكتاب
يمكنكم قراءة كافة التفاصيل من هنا 👇