This template can be used for both Azure AI Studio and Azure Machine Learning.
It can be used for both AZURE and LOCAL execution.
It supports all types of flow - python Class flows, Function flows and YAML flows.
It supports Github, Azure DevOps and Jenkins CI/CD orchestration.
It supports pure python based Evaluation as well using promptflow-evals package.
It should be used for INNER-LOOP Experimentation and Evaluation.
It should be used for OUTER-LOOP Deployment and Inferencing.
NOTE: A new FAQ section is added to help Engineers, Data Scientist and developers find answers to general questions on configuring and using this template.
الأسئلة الشائعة هنا
أصبحت عمليات نموذج اللغة الكبيرة، أو LLMOps، حجر الزاوية في الهندسة السريعة الفعالة وتطوير التطبيقات ونشرها بواسطة LLM. مع استمرار ارتفاع الطلب على التطبيقات المستحثة بـ LLM، تجد المؤسسات نفسها في حاجة إلى عملية متماسكة ومبسطة لإدارة دورة حياتها الشاملة.
لقد أدى ظهور الذكاء الاصطناعي ونماذج اللغات الكبيرة (LLMs) إلى تحويل العديد من الصناعات، مما أتاح تطوير تطبيقات مبتكرة تتمتع بقدرات فهم وإنشاء النصوص الشبيهة بالإنسان. لقد فتحت هذه الثورة إمكانيات جديدة في مجالات مثل خدمة العملاء وإنشاء المحتوى وتحليل البيانات.
مع التطور السريع لبرامج LLM، أصبحت أهمية الهندسة السريعة واضحة بشكل متزايد. تلعب الهندسة السريعة دورًا حاسمًا في تسخير الإمكانات الكاملة لـ LLMs من خلال إنشاء مطالبات فعالة تلبي سيناريوهات عمل محددة. تتيح هذه العملية للمطورين إنشاء حلول مخصصة للذكاء الاصطناعي، مما يجعل الذكاء الاصطناعي أكثر سهولة وإفادة لجمهور أوسع.
إنه إطار تجريبي وتقييم للتدفق الفوري. إنها ليست مجرد خطوط أنابيب CI/CD للتدفق الفوري، على الرغم من أنها تدعمها. يحتوي على مجموعة غنية من الميزات للتجريب والتقييم والنشر ومراقبة التدفق الفوري. إنه حل متكامل من البداية إلى النهاية لتشغيل التدفق الفوري.
يدعم القالب كلاً من Azure AI Studio بالإضافة إلى Azure Machine Learning. اعتمادًا على التكوين، يمكن استخدام القالب لكل من Azure AI Studio وAzure Machine Learning. فهو يوفر تجربة ترحيل سلسة للتجريب والتقييم ونشر التدفق الفوري عبر الخدمات.
يدعم هذا القالب أنواعًا مختلفة من التدفقات، مما يسمح لك بتحديد مهام سير العمل وتنفيذها بناءً على متطلباتك المحددة. نوعان التدفق الرئيسيان المدعومان هما:
التدفقات المرنة
تدفقات الرسم البياني الحلقي الموجه (DAG).
إحدى الميزات القوية لهذا المشروع هي قدرته على اكتشاف نوع التدفق تلقائيًا وتنفيذ التدفق وفقًا لذلك. يتيح لك ذلك تجربة أنواع التدفق المختلفة واختيار النوع الذي يناسب احتياجاتك.
يدعم هذا القالب:
لقد كانت إدارة التدفقات الكبيرة المستندة إلى اللغة، بدءًا من التجارب المحلية وحتى نشر الإنتاج، بعيدة كل البعد عن البساطة وليست مهمة ذات حجم واحد يناسب الجميع.
يتمتع كل تدفق بدورة حياته الفريدة، بدءًا من التجربة الأولية وحتى النشر، وتطرح كل مرحلة مجموعة التحديات الخاصة بها.
غالبًا ما تتعامل المنظمات مع تدفقات متعددة في وقت واحد، ولكل منها أهدافه ومتطلباته وتعقيداته. يمكن أن يصبح هذا أمرًا مرهقًا بسرعة بدون أدوات الإدارة المناسبة.
وهو يتضمن التعامل مع التدفقات المتعددة ودورات حياتها الفريدة وتجربة التكوينات المختلفة وضمان عمليات النشر السلسة.
وهنا يأتي دور LLMOps with Promptflow . LLMOps with Promptflow هو "قالب وتوجيهات LLMOps" لمساعدتك في إنشاء تطبيقات مملوءة بـ LLM باستخدام التدفق الفوري. ويوفر الميزات التالية:
استضافة التعليمات البرمجية المركزية: يدعم هذا الريبو استضافة التعليمات البرمجية لتدفقات متعددة بناءً على التدفق الفوري، مما يوفر مستودعًا واحدًا لجميع التدفقات الخاصة بك. فكر في هذا النظام الأساسي كمستودع واحد حيث توجد جميع أكواد التدفق الفوري الخاصة بك. إنها بمثابة مكتبة لتدفقاتك، مما يجعل من السهل العثور على المشاريع المختلفة والوصول إليها والتعاون فيها.
إدارة دورة الحياة: يتمتع كل تدفق بدورة حياته الخاصة، مما يسمح بالانتقال السلس من التجربة المحلية إلى نشر الإنتاج.
تجربة المتغيرات والمعلمات الفائقة: قم بتجربة المتغيرات المتعددة والمعلمات الفائقة، وقم بتقييم متغيرات التدفق بسهولة. تشبه المتغيرات والمعلمات الفائقة المكونات الموجودة في الوصفة. يتيح لك هذا النظام الأساسي تجربة مجموعات مختلفة من المتغيرات عبر عقد متعددة في التدفق.
نشر A/B: تنفيذ عمليات نشر A/B بسلاسة، مما يتيح لك مقارنة إصدارات التدفق المختلفة دون عناء. كما هو الحال في اختبار A/B التقليدي لمواقع الويب، تسهل هذه المنصة نشر A/B لتدفقات التدفق السريعة. وهذا يعني أنه يمكنك دون عناء مقارنة الإصدارات المختلفة للتدفق في بيئة واقعية لتحديد أي منها يحقق أفضل أداء.
علاقات مجموعات البيانات/التدفق من كثير إلى متعدد: استيعاب مجموعات بيانات متعددة لكل تدفق قياسي وتقييم، مما يضمن تعدد الاستخدامات في اختبار التدفق وتقييمه. تم تصميم النظام الأساسي لاستيعاب مجموعات بيانات متعددة لكل تدفق.
أهداف نشر متعددة: يدعم الريبو نشر التدفقات إلى حسابات Kubernetes وAzure المُدارة المدفوعة من خلال التكوين مما يضمن إمكانية توسيع تدفقاتك حسب الحاجة.
تقارير شاملة: قم بإنشاء تقارير مفصلة لكل تكوين متغير، مما يسمح لك باتخاذ قرارات مستنيرة. يوفر مجموعة قياس مفصلة لجميع عمليات التشغيل والتجارب المجمعة المتنوعة، مما يتيح اتخاذ القرارات المستندة إلى البيانات في ملفات CSV بالإضافة إلى ملفات HTML.
عروض BYOF (إحضار التدفقات الخاصة بك). منصة كاملة لتطوير حالات الاستخدام المتعددة المتعلقة بالتطبيقات المضمنة في LLM.
يقدم التطوير القائم على التكوين . لا حاجة لكتابة رمز لوحة الغلاية واسعة النطاق.
يوفر تنفيذ كل من التجريب الفوري والتقييم محليًا وكذلك على السحابة.
يوفر دفاتر ملاحظات للتقييم المحلي للمطالبات. يوفر مكتبة وظائف للتجربة المحلية.
اختبار نقطة النهاية ضمن خط الأنابيب بعد النشر للتحقق من توفرها وجاهزيتها.
يوفر حلقة Human-in-loop الاختيارية للتحقق من صحة المقاييس السريعة قبل النشر.
توفر LLMOps مع التدفق الفوري إمكانات لكل من التطبيقات البسيطة والمعقدة التي تحتوي على LLM. إنه قابل للتخصيص بالكامل وفقًا لاحتياجات التطبيق.
يجب أن تتبع كل حالة استخدام (مجموعة من معايير التدفق الفوري وتدفقات التقييم) بنية المجلد كما هو موضح هنا:
بالإضافة إلى ذلك، يوجد ملف experiment.yaml
يقوم بتكوين حالة الاستخدام (راجع وصف الملف والمواصفات لمزيد من التفاصيل). يوجد أيضًا ملف Sample-request.json الذي يحتوي على بيانات اختبار لاختبار نقاط النهاية بعد النشر.
يحتوي المجلد ".azure-pipelines" على مسارات Azure DevOps الشائعة للنظام الأساسي وأي تغييرات تطرأ عليها ستؤثر على تنفيذ جميع التدفقات.
يحتوي المجلد ".github" على سير عمل Github للنظام الأساسي بالإضافة إلى حالات الاستخدام. يختلف هذا قليلاً عن Azure DevOps لأن جميع مهام سير عمل Github يجب أن تكون ضمن هذا المجلد الفردي للتنفيذ.
يحتوي المجلد ".jenkins" على مسارات Jenkins التعريفية للنظام الأساسي بالإضافة إلى حالات الاستخدام والوظائف الفردية.
يحتوي مجلد "docs" على وثائق لأدلة خطوة بخطوة لكل من التكوينات ذات الصلة بـ Azure DevOps وGithub Workflow وJenkins.
يحتوي مجلد "llmops" على جميع التعليمات البرمجية المتعلقة بتنفيذ التدفق وتقييمه ونشره.
يحتوي مجلد "dataops" على كافة التعليمات البرمجية المتعلقة بنشر خط أنابيب البيانات.
يحتوي المجلد "local_execution" على نصوص برمجية بلغة python لتنفيذ كل من التدفق القياسي وتدفق التقييم محليًا.
يتضمن المشروع 6 أمثلة توضح سيناريوهات مختلفة:
الموقع: ./web_classification الأهمية: يوضح تلخيص محتوى موقع الويب بمتغيرات متعددة، ويعرض خيارات المرونة والتخصيص المتوفرة في القالب.
الموقع: ./named_entity_recognition الأهمية: يعرض استخراج الكيانات المسماة من النص، وهو أمر ذو قيمة لمختلف مهام معالجة اللغة الطبيعية واستخراج المعلومات.
الموقع: ./math_coding الأهمية: يعرض القدرة على إجراء العمليات الحسابية الرياضية وإنشاء مقتطفات من التعليمات البرمجية، مع إبراز تعدد استخدامات القالب في التعامل مع المهام الحسابية.
الموقع: ./chat_with_pdf الأهمية: يوضح واجهة محادثة للتفاعل مع مستندات PDF، مع الاستفادة من قوة توليد الاسترجاع المعزز (RAG) لتوفير استجابات دقيقة وذات صلة.
الموقع: ./function_flows الأهمية: يوضح إنشاء مقتطفات التعليمات البرمجية بناءً على مطالبات المستخدم، مع عرض إمكانية أتمتة مهام إنشاء التعليمات البرمجية.
الموقع: ./class_flows الأهمية: يعرض تطبيق دردشة تم إنشاؤه باستخدام التدفقات المستندة إلى الفصل، مما يوضح هيكلة وتنظيم واجهات المحادثة الأكثر تعقيدًا.
يساعد الريبو في النشر إلى Kubernetes وKubernetes ARC وAzure Web Apps وحوسبة AzureML المُدارة بالإضافة إلى نشر A/B لحوسبة AzureML المُدارة.
يتكون تنفيذ خط الأنابيب من مراحل ووظائف متعددة في كل مرحلة:
ينشئ الريبو تقارير متعددة (تظهر أمثلة تشغيل التجارب والمقاييس):
للاستفادة من إمكانيات التنفيذ المحلي ، اتبع خطوات التثبيت التالية:
git clone https://github.com/microsoft/llmops-promptflow-template.git
aoai
. أضف سطر aoai={"api_key": "","api_base": "","api_type": "azure","api_version": "2023-03-15-preview"}
مع القيم المحدثة لـ api_key وapi_base. إذا تم استخدام اتصالات إضافية بأسماء مختلفة في عمليات التدفق الخاصة بك، فيجب إضافتها وفقًا لذلك. حاليًا، التدفق مع AzureOpenAI كموفر مدعوم. experiment_name=
connection_name_1={ " api_key " : " " , " api_base " : " " , " api_type " : " azure " , " api_version " : " 2023-03-15-preview " }
connection_name_2={ " api_key " : " " , " api_base " : " " , " api_type " : " azure " , " api_version " : " 2023-03-15-preview " }
python -m pip install promptflow promptflow-tools promptflow-sdk jinja2 promptflow[azure] openai promptflow-sdk[builtins] python-dotenv
قم بإحضار أو كتابة التدفقات الخاصة بك في القالب بناءً على الوثائق هنا.
اكتب نصوص بايثون مشابهة للأمثلة المقدمة في مجلد local_execution.
تجمع DataOps بين جوانب DevOps والمنهجيات الرشيقة وممارسات إدارة البيانات لتبسيط عملية جمع البيانات ومعالجتها وتحليلها. يمكن أن تساعد DataOps في تحقيق الانضباط في بناء مجموعات البيانات (التدريب والتجريب والتقييم وما إلى ذلك) اللازمة لتطوير تطبيقات LLM.
يتم الاحتفاظ بخطوط أنابيب البيانات منفصلة عن التدفقات الهندسية السريعة. تقوم خطوط أنابيب البيانات بإنشاء مجموعات البيانات ويتم تسجيل مجموعات البيانات كأصول بيانات في Azure ML حتى يتم استهلاك التدفقات. يساعد هذا الأسلوب على توسيع نطاق أجزاء مختلفة من النظام واستكشاف الأخطاء وإصلاحها بشكل مستقل.
للحصول على تفاصيل حول كيفية البدء باستخدام DataOps، يرجى اتباع هذا المستند - كيفية تكوين DataOps.
يرحب هذا المشروع بالمساهمات والاقتراحات. تتطلب معظم المساهمات منك الموافقة على اتفاقية ترخيص المساهم (CLA) التي تعلن أن لديك الحق في منحنا حقوق استخدام مساهمتك، بل وتفعل ذلك بالفعل. للحصول على التفاصيل، تفضل بزيارة https://cla.opensource.microsoft.com.
عند إرسال طلب سحب، سيحدد روبوت CLA تلقائيًا ما إذا كنت بحاجة إلى تقديم CLA وتزيين العلاقات العامة بشكل مناسب (على سبيل المثال، التحقق من الحالة، التعليق). ما عليك سوى اتباع التعليمات التي يقدمها لك الروبوت. سوف تحتاج إلى القيام بذلك مرة واحدة فقط عبر جميع اتفاقيات إعادة الشراء باستخدام CLA الخاصة بنا.
اعتمد هذا المشروع قواعد السلوك الخاصة بشركة Microsoft مفتوحة المصدر. لمزيد من المعلومات، راجع الأسئلة الشائعة حول قواعد السلوك أو اتصل بـ [email protected] لطرح أي أسئلة أو تعليقات إضافية.
قد يحتوي هذا المشروع على علامات تجارية أو شعارات للمشاريع أو المنتجات أو الخدمات. يخضع الاستخدام المصرح به للعلامات التجارية أو الشعارات الخاصة بشركة Microsoft ويجب أن يتبع إرشادات العلامة التجارية والعلامات التجارية الخاصة بشركة Microsoft. يجب ألا يتسبب استخدام العلامات التجارية أو الشعارات الخاصة بشركة Microsoft في الإصدارات المعدلة من هذا المشروع في حدوث ارتباك أو الإشارة ضمنًا إلى رعاية Microsoft. ويخضع أي استخدام لعلامات تجارية أو شعارات تابعة لجهات خارجية لسياسات تلك الجهات الخارجية.
اعتمد هذا المشروع قواعد السلوك الخاصة بشركة Microsoft مفتوحة المصدر. لمزيد من المعلومات، راجع الأسئلة الشائعة حول قواعد السلوك أو اتصل بـ [email protected] لطرح أي أسئلة أو تعليقات إضافية.
حقوق الطبع والنشر (ج) شركة مايكروسوفت. جميع الحقوق محفوظة.
مرخص بموجب ترخيص MIT.