# القسم 2: أساسيات عائلة Qwen تمثل عائلة نماذج Qwen نهج Alibaba Cloud الشامل تجاه النماذج اللغوية الكبيرة والذكاء الاصطناعي متعدد الوسائط، مما يثبت أن النماذج مفتوحة المصدر يمكن أن تحقق أداءً مذهلاً مع إمكانية الوصول عبر سيناريوهات نشر متنوعة. من المهم فهم كيف تمكن عائلة Qwen من تحقيق قدرات ذكاء اصطناعي قوية مع خيارات نشر مرنة مع الحفاظ على أداء تنافسي عبر مهام متنوعة. ## الموارد للمطورين ### مستودع نماذج Hugging Face تتوفر نماذج مختارة من عائلة Qwen عبر [Hugging Face](https://huggingface.co/models?search=qwen)، مما يوفر الوصول إلى بعض المتغيرات لهذه النماذج. يمكنك استكشاف المتغيرات المتاحة، وضبطها لتناسب استخداماتك الخاصة، ونشرها عبر أطر عمل مختلفة. ### أدوات التطوير المحلية للتطوير والاختبار المحلي، يمكنك استخدام [Microsoft Foundry Local](https://github.com/microsoft/foundry-local) لتشغيل نماذج Qwen المتاحة على جهاز التطوير الخاص بك مع أداء محسن. ### موارد الوثائق - [وثائق نموذج Qwen](https://huggingface.co/docs/transformers/model_doc/qwen) - [تحسين نماذج Qwen للنشر على الحافة](https://github.com/microsoft/olive) ## المقدمة في هذا الدليل، سنستكشف عائلة نماذج Qwen من Alibaba والمفاهيم الأساسية لها. سنغطي تطور عائلة Qwen، منهجيات التدريب المبتكرة التي تجعل نماذج Qwen فعالة، المتغيرات الرئيسية في العائلة، والتطبيقات العملية عبر سيناريوهات مختلفة. ## أهداف التعلم بنهاية هذا الدليل، ستكون قادرًا على: - فهم فلسفة التصميم وتطور عائلة نماذج Qwen من Alibaba - تحديد الابتكارات الرئيسية التي تمكن نماذج Qwen من تحقيق أداء عالي عبر أحجام مختلفة من المعلمات - التعرف على فوائد وقيود المتغيرات المختلفة لنماذج Qwen - تطبيق المعرفة بنماذج Qwen لاختيار المتغيرات المناسبة للسيناريوهات الواقعية ## فهم مشهد النماذج الحديثة للذكاء الاصطناعي شهد مشهد الذكاء الاصطناعي تطورًا كبيرًا، حيث تتبع المنظمات المختلفة نهجًا متنوعًا لتطوير النماذج اللغوية. بينما يركز البعض على النماذج المغلقة المصدر، يركز آخرون على إمكانية الوصول المفتوح والشفافية. النهج التقليدي يتضمن إما نماذج ضخمة مغلقة المصدر يمكن الوصول إليها فقط عبر واجهات برمجية أو نماذج مفتوحة المصدر قد تكون أقل قدرة. هذا النهج يخلق تحديات للمنظمات التي تسعى إلى قدرات ذكاء اصطناعي قوية مع الحفاظ على التحكم في بياناتها، تكاليفها، وخيارات النشر. غالبًا ما يتطلب النهج التقليدي الاختيار بين الأداء المتقدم واعتبارات النشر العملية. ## تحدي التميز في الذكاء الاصطناعي القابل للوصول أصبحت الحاجة إلى ذكاء اصطناعي عالي الجودة وقابل للوصول أكثر أهمية عبر سيناريوهات مختلفة. فكر في التطبيقات التي تتطلب خيارات نشر مرنة لتلبية احتياجات المنظمات المختلفة، تنفيذات فعالة من حيث التكلفة حيث يمكن أن تصبح تكاليف واجهات البرمجة كبيرة، قدرات متعددة اللغات للتطبيقات العالمية، أو خبرة متخصصة في مجالات مثل البرمجة والرياضيات. ### متطلبات النشر الرئيسية تواجه عمليات نشر الذكاء الاصطناعي الحديثة عدة متطلبات أساسية تحد من التطبيق العملي: - **إمكانية الوصول**: توفر المصدر المفتوح للشفافية والتخصيص - **فعالية التكلفة**: متطلبات حسابية معقولة لتناسب الميزانيات المختلفة - **المرونة**: أحجام نماذج متعددة لسيناريوهات نشر مختلفة - **الوصول العالمي**: قدرات متعددة اللغات وثقافية قوية - **التخصص**: متغيرات مخصصة للمجالات لاستخدامات محددة ## فلسفة نماذج Qwen تمثل عائلة نماذج Qwen نهجًا شاملاً لتطوير نماذج الذكاء الاصطناعي، حيث تعطي الأولوية لإمكانية الوصول المفتوح، القدرات متعددة اللغات، والنشر العملي مع الحفاظ على خصائص الأداء التنافسي. تحقق نماذج Qwen ذلك من خلال أحجام نماذج متنوعة، منهجيات تدريب عالية الجودة، ومتغيرات مخصصة لمجالات مختلفة. تشمل عائلة Qwen نهجًا متنوعًا مصممًا لتوفير خيارات عبر طيف الأداء والكفاءة، مما يمكن النشر من الأجهزة المحمولة إلى خوادم المؤسسات مع توفير قدرات ذكاء اصطناعي ذات مغزى. الهدف هو ديمقراطية الوصول إلى ذكاء اصطناعي عالي الجودة مع توفير المرونة في خيارات النشر. ### مبادئ تصميم Qwen الأساسية تم بناء نماذج Qwen على عدة مبادئ أساسية تميزها عن عائلات النماذج اللغوية الأخرى: - **المصدر المفتوح أولاً**: شفافية كاملة وإمكانية الوصول للاستخدام البحثي والتجاري - **تدريب شامل**: تدريب على مجموعات بيانات ضخمة ومتنوعة تغطي لغات ومجالات متعددة - **هندسة قابلة للتوسع**: أحجام نماذج متعددة لتناسب متطلبات حسابية مختلفة - **تميز متخصص**: متغيرات مخصصة للمجالات محسنة لمهام معينة ## التقنيات الرئيسية التي تمكن عائلة Qwen ### تدريب واسع النطاق أحد الجوانب المميزة لعائلة Qwen هو النطاق الواسع لمجموعات البيانات التدريبية والموارد الحسابية المستثمرة في تطوير النماذج. تعتمد نماذج Qwen على مجموعات بيانات متعددة اللغات تم اختيارها بعناية وتغطي تريليونات من الرموز، مصممة لتوفير معرفة شاملة بالعالم وقدرات التفكير. ### التفكير المتقدم تتضمن نماذج Qwen الحديثة قدرات تفكير متطورة تمكن من حل المشكلات المعقدة متعددة الخطوات: **وضع التفكير (Qwen3)**: يمكن للنماذج الانخراط في التفكير التفصيلي خطوة بخطوة قبل تقديم الإجابات النهائية، مشابهة لنهج حل المشكلات البشرية. **التشغيل ثنائي الوضع**: القدرة على التبديل بين وضع الاستجابة السريعة للاستفسارات البسيطة ووضع التفكير العميق للمشكلات المعقدة. **دمج سلسلة التفكير**: دمج طبيعي لخطوات التفكير التي تحسن الشفافية والدقة في المهام المعقدة. ### الابتكارات المعمارية تتضمن عائلة Qwen العديد من التحسينات المعمارية المصممة للأداء والكفاءة: **تصميم قابل للتوسع**: هندسة متسقة عبر أحجام النماذج مما يسهل التوسع والمقارنة. **تكامل متعدد الوسائط**: دمج سلس لقدرات معالجة النصوص والرؤية والصوت ضمن هندسات موحدة. **تحسين النشر**: خيارات متعددة للتكميم وتنسيقات النشر لتكوينات الأجهزة المختلفة. ## حجم النموذج وخيارات النشر تستفيد بيئات النشر الحديثة من مرونة نماذج Qwen عبر متطلبات حسابية متنوعة: ### نماذج صغيرة (0.5B-3B) توفر Qwen نماذج صغيرة فعالة مناسبة للنشر على الحافة، التطبيقات المحمولة، والبيئات ذات الموارد المحدودة مع الحفاظ على قدرات مثيرة للإعجاب. ### نماذج متوسطة (7B-32B) تقدم النماذج متوسطة الحجم قدرات محسنة للتطبيقات المهنية، مما يوفر توازنًا ممتازًا بين الأداء ومتطلبات الحساب. ### نماذج كبيرة (72B+) توفر النماذج واسعة النطاق أداءً متقدمًا للتطبيقات المتطلبة، البحث، ونشر المؤسسات التي تتطلب أقصى قدر من القدرات. ## فوائد عائلة نماذج Qwen ### إمكانية الوصول المفتوح توفر نماذج Qwen شفافية كاملة وقدرات تخصيص، مما يمكن المنظمات من فهم النماذج وتعديلها وتكييفها لتلبية احتياجاتها الخاصة دون قيود الموردين. ### مرونة النشر مجموعة أحجام النماذج تمكن النشر عبر تكوينات أجهزة متنوعة، من الأجهزة المحمولة إلى الخوادم عالية الأداء، مما يوفر للمنظمات مرونة في خيارات البنية التحتية للذكاء الاصطناعي. ### التميز متعدد اللغات تتفوق نماذج Qwen في الفهم والتوليد متعدد اللغات، حيث تدعم عشرات اللغات مع قوة خاصة في الإنجليزية والصينية، مما يجعلها مناسبة للتطبيقات العالمية. ### الأداء التنافسي تحقق نماذج Qwen نتائج تنافسية باستمرار على المعايير مع توفير إمكانية الوصول المفتوح، مما يثبت أن النماذج المفتوحة يمكن أن تضاهي البدائل المغلقة. ### القدرات المتخصصة المتغيرات المخصصة للمجالات مثل Qwen-Coder وQwen-Math توفر خبرة متخصصة مع الحفاظ على قدرات الفهم اللغوي العامة. ## أمثلة عملية وحالات استخدام ### مثال على التفكير الرياضي يتفوق Qwen-Math في حل المشكلات الرياضية خطوة بخطوة. على سبيل المثال، عند طلب حل مشكلة حسابية معقدة: ``` User: Find the derivative of f(x) = x³ + 2x² - 5x + 3 Qwen-Math: I'll solve this step by step using the power rule for derivatives. For f(x) = x³ + 2x² - 5x + 3, I need to find f'(x). Using the power rule: d/dx(xⁿ) = n·xⁿ⁻¹ Breaking down each term: - d/dx(x³) = 3x² - d/dx(2x²) = 2 · 2x¹ = 4x - d/dx(-5x) = -5 - d/dx(3) = 0 (constant term) Therefore: f'(x) = 3x² + 4x - 5 ``` ### مثال على الدعم متعدد اللغات تظهر نماذج Qwen قدرات متعددة اللغات قوية عبر لغات مختلفة: ``` User: Explain the concept of artificial intelligence in both English and Chinese. Qwen: **English:** Artificial Intelligence (AI) refers to the simulation of human intelligence processes by machines, especially computer systems. These processes include learning, reasoning, problem-solving, perception, and language understanding. AI enables machines to perform tasks that typically require human cognitive abilities. **中文:** 人工智能(AI)是指机器(特别是计算机系统)对人类智能过程的模拟。这些过程包括学习、推理、解决问题、感知和语言理解。人工智能使机器能够执行通常需要人类认知能力的任务。 ``` ### مثال على القدرات متعددة الوسائط يمكن لـ Qwen-VL معالجة النصوص والصور في وقت واحد: ``` User: [Image of a chart showing sales data] What trends do you see in this sales chart? Qwen-VL: Looking at this sales chart, I can identify several key trends: 1. **Seasonal Pattern**: There's a clear seasonal cycle with peaks typically occurring in Q4, likely due to holiday sales. 2. **Overall Growth**: Despite fluctuations, there's an upward trend over the time period shown, indicating business growth. 3. **Quarterly Variations**: Q1 and Q3 show consistently lower performance compared to Q2 and Q4. 4. **Recent Acceleration**: The most recent data points suggest accelerating growth, with steeper increases than historical averages. 5. **Volatility Changes**: Earlier periods show more stability, while recent periods display increased volatility, possibly indicating market expansion or increased competition. ``` ### مثال على توليد الأكواد يتفوق Qwen-Coder في توليد الأكواد وشرحها عبر لغات برمجة متعددة: ``` User: Create a Python function to implement a binary search algorithm with detailed comments. Qwen-Coder: Here's a Python implementation of binary search with comprehensive comments: ```python def binary_search(arr, target): """ Perform binary search on a sorted array to find the target value. Args: arr (list): A sorted list of comparable elements target: The value to search for Returns: int: Index of target if found, -1 if not found Time Complexity: O(log n) Space Complexity: O(1) """ # Initialize left and right pointers left, right = 0, len(arr) - 1 # Continue searching while the search space is valid while left <= right: # Calculate middle index to avoid integer overflow mid = left + (right - left) // 2 # Check if we found the target if arr[mid] == target: return mid # If target is smaller, search left half elif arr[mid] > target: right = mid - 1 # If target is larger, search right half else: left = mid + 1 # Target not found return -1 # Example usage: sorted_list = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19] result = binary_search(sorted_list, 7) print(f"Index of 7: {result}") # Output: Index of 7: 3 ``` يتبع هذا التنفيذ أفضل الممارسات مع أسماء متغيرات واضحة، وثائق شاملة، ومنطق فعال. ``` ### Edge Deployment Example Qwen models can be deployed on various edge devices with optimized configurations: ``` # مثال على النشر على جهاز محمول مع التكميم from transformers import AutoModelForCausalLM, AutoTokenizer import torch # تحميل النموذج المكمم للنشر على الأجهزة المحمولة ``` model = AutoModelForCausalLM.from_pretrained( "Qwen/Qwen2.5-1.5B-Instruct", torch_dtype=torch.float16, device_map="auto", load_in_8bit=True # 8-bit quantization for efficiency ) tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-1.5B-Instruct") # Mobile-optimized inference def mobile_inference(prompt): inputs = tokenizer(prompt, return_tensors="pt", max_length=512, truncation=True) with torch.no_grad(): outputs = model.generate( **inputs, max_new_tokens=100, do_sample=True, temperature=0.7, pad_token_id=tokenizer.eos_token_id ) response = tokenizer.decode(outputs[0], skip_special_tokens=True) return response.replace(prompt, "").strip() ``` ## تطور عائلة Qwen ### Qwen 1.0 و1.5: نماذج الأساس وضعت نماذج Qwen المبكرة المبادئ الأساسية للتدريب الشامل وإمكانية الوصول المفتوح: - **Qwen-7B (7B معلمات)**: الإصدار الأول يركز على فهم اللغة الصينية والإنجليزية - **Qwen-14B (14B معلمات)**: قدرات محسنة مع تحسين التفكير والمعرفة - **Qwen-72B (72B معلمات)**: نموذج واسع النطاق يوفر أداءً متقدمًا - **سلسلة Qwen1.5**: توسعت إلى أحجام متعددة (0.5B إلى 110B) مع تحسين التعامل مع السياقات الطويلة ### عائلة Qwen2: التوسع متعدد الوسائط تميزت سلسلة Qwen2 بتقدم كبير في القدرات اللغوية ومتعددة الوسائط: - **Qwen2-0.5B إلى 72B**: مجموعة شاملة من النماذج اللغوية لتلبية احتياجات النشر المختلفة - **Qwen2-57B-A14B (MoE)**: هندسة خليط الخبراء لاستخدام فعال للمعلمات - **Qwen2-VL**: قدرات متقدمة لفهم الصور واللغة - **Qwen2-Audio**: معالجة وفهم الصوت - **Qwen2-Math**: التفكير الرياضي وحل المشكلات المتخصص ### عائلة Qwen2.5: أداء محسّن جلبت سلسلة Qwen2.5 تحسينات كبيرة عبر جميع الأبعاد: - **تدريب موسع**: 18 تريليون رمز من بيانات التدريب لتحسين القدرات - **سياق ممتد**: طول سياق يصل إلى 128K رمز، مع متغير Turbo يدعم 1M رمز - **تخصص محسّن**: تحسين متغيرات Qwen2.5-Coder وQwen2.5-Math - **دعم متعدد اللغات أفضل**: أداء محسّن عبر 27+ لغة ### عائلة Qwen3: التفكير المتقدم الجيل الأحدث يدفع حدود التفكير وقدرات التفكير: - **Qwen3-235B-A22B**: نموذج خليط الخبراء الرائد مع 235B معلمات إجمالية - **Qwen3-30B-A3B**: نموذج MoE فعال مع أداء قوي لكل معلمة نشطة - **نماذج كثيفة**: Qwen3-32B، 14B، 8B، 4B، 1.7B، 0.6B لسيناريوهات نشر متنوعة - **وضع التفكير**: نهج تفكير هجين يدعم الاستجابات السريعة والتفكير العميق - **تميز متعدد اللغات**: دعم لـ 119 لغة ولهجة - **تدريب محسّن**: 36 تريليون رمز من بيانات تدريب متنوعة وعالية الجودة ## تطبيقات نماذج Qwen ### التطبيقات المؤسسية تستخدم المنظمات نماذج Qwen لتحليل الوثائق، أتمتة خدمة العملاء، مساعدة توليد الأكواد، وتطبيقات ذكاء الأعمال. الطبيعة المفتوحة المصدر تمكن التخصيص لتلبية احتياجات الأعمال الخاصة مع الحفاظ على خصوصية البيانات والتحكم. ### الحوسبة المحمولة وعلى الحافة تستفيد التطبيقات المحمولة من نماذج Qwen للترجمة الفورية، المساعدين الذكيين، توليد المحتوى، والتوصيات الشخصية. مجموعة أحجام النماذج تمكن النشر من الأجهزة المحمولة إلى خوادم الحافة. ### التكنولوجيا التعليمية تستخدم المنصات التعليمية نماذج Qwen للتدريس الشخصي، توليد المحتوى الآلي، مساعدة تعلم اللغات، وتجارب تعليمية تفاعلية. توفر النماذج المتخصصة مثل Qwen-Math خبرة مخصصة للمجالات. ### التطبيقات العالمية تستفيد التطبيقات الدولية من القدرات متعددة اللغات القوية لنماذج Qwen، مما يمكن من توفير تجارب ذكاء اصطناعي متسقة عبر لغات وسياقات ثقافية مختلفة. ## التحديات والقيود ### المتطلبات الحسابية بينما توفر Qwen نماذج عبر أحجام مختلفة، إلا أن المتغيرات الأكبر لا تزال تتطلب موارد حسابية كبيرة لتحقيق الأداء الأمثل، مما قد يحد من خيارات النشر لبعض المنظمات. ### أداء المجال المتخصص بينما تؤدي نماذج Qwen أداءً جيدًا عبر المجالات العامة، قد تستفيد التطبيقات المتخصصة للغاية من التخصيص أو النماذج المتخصصة. ### تعقيد اختيار النموذج يمكن أن تجعل مجموعة النماذج والمتغيرات المتاحة عملية الاختيار صعبة للمستخدمين الجدد في النظام. ### عدم التوازن اللغوي بينما تدعم العديد من اللغات، قد يختلف الأداء عبر اللغات المختلفة، مع أقوى القدرات في الإنجليزية والصينية. ## مستقبل عائلة نماذج Qwen تمثل عائلة نماذج Qwen التطور المستمر نحو ذكاء اصطناعي ديمقراطي وعالي الجودة. تشمل التطورات المستقبلية تحسينات الكفاءة، قدرات متعددة الوسائط موسعة، آليات تفكير محسّنة، وتكامل أفضل عبر سيناريوهات نشر مختلفة. مع استمرار تطور التكنولوجيا، يمكننا توقع أن تصبح نماذج Qwen أكثر قدرة مع الحفاظ على إمكانية الوصول المفتوح، مما يمكن نشر الذكاء الاصطناعي عبر سيناريوهات وحالات استخدام متنوعة. تظهر عائلة Qwen أن مستقبل تطوير الذكاء الاصطناعي يمكن أن يحتضن الأداء المتقدم وإمكانية الوصول المفتوح، مما يوفر للمنظمات أدوات قوية مع الحفاظ على الشفافية والتحكم. ## أمثلة التطوير والتكامل ### البدء السريع مع Transformers إليك كيفية البدء باستخدام نماذج Qwen مع مكتبة Hugging Face Transformers: ```python from transformers import AutoModelForCausalLM, AutoTokenizer import torch # Load Qwen3-8B model model_name = "Qwen/Qwen3-8B" model = AutoModelForCausalLM.from_pretrained( model_name, torch_dtype="auto", device_map="auto" ) tokenizer = AutoTokenizer.from_pretrained(model_name) # Prepare conversation with chat template messages = [ {"role": "user", "content": "Give me a short introduction to large language models."} ] # Apply chat template and generate response text = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True ) model_inputs = tokenizer([text], return_tensors="pt").to(model.device) generated_ids = model.generate( **model_inputs, max_new_tokens=512, do_sample=True, temperature=0.7 ) # Extract and display response output_ids = generated_ids[0][len(model_inputs.input_ids[0]):].tolist() response = tokenizer.decode(output_ids, skip_special_tokens=True) print(response) ``` ### استخدام نماذج Qwen2.5 ```python from transformers import AutoModelForCausalLM, AutoTokenizer # Example with Qwen2.5-7B-Instruct model = AutoModelForCausalLM.from_pretrained( "Qwen/Qwen2.5-7B-Instruct", torch_dtype="auto", device_map="auto" ) tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-7B-Instruct") # Structured conversation example messages = [ {"role": "system", "content": "You are a helpful AI assistant."}, {"role": "user", "content": "Explain quantum computing in simple terms."} ] text = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True ) # Generate response with optimized settings model_inputs = tokenizer([text], return_tensors="pt") generated_ids = model.generate( model_inputs.input_ids, max_new_tokens=512, do_sample=True, temperature=0.7, top_p=0.8, repetition_penalty=1.05 ) response = tokenizer.decode(generated_ids[0], skip_special_tokens=True) print(response) ``` ### استخدام النماذج المتخصصة **توليد الأكواد باستخدام Qwen-Coder:** ```python # Using Qwen2.5-Coder for programming tasks model_name = "Qwen/Qwen2.5-Coder-7B-Instruct" model = AutoModelForCausalLM.from_pretrained(model_name, torch_dtype="auto", device_map="auto") tokenizer = AutoTokenizer.from_pretrained(model_name) prompt = """ Create a Python function that: 1. Takes a list of numbers as input 2. Returns the median value 3. Handles edge cases like empty lists 4. Include proper documentation and type hints """ messages = [{"role": "user", "content": prompt}] # Process with model to generate code solution ``` **حل المشكلات الرياضية:** ```python # Using Qwen2.5-Math for mathematical reasoning model_name = "Qwen/Qwen2.5-Math-7B-Instruct" prompt = """ Solve this step by step: Find the derivative of f(x) = x³ + 2x² - 5x + 3 and then find the critical points. """ messages = [{"role": "user", "content": prompt}] # Generate mathematical solution with step-by-step reasoning ``` **مهام الرؤية واللغة:** ```python # For image understanding with Qwen-VL from qwen_vl_utils import process_vision_info messages = [ { "role": "user", "content": [ {"type": "image", "image": "path/to/image.jpg"}, {"type": "text", "text": "Describe what's happening in this image and identify any text present."} ] } ] # Process image and generate comprehensive description ``` ### وضع التفكير (Qwen3) ```python # Using Qwen3 with thinking mode for complex reasoning model_name = "Qwen/Qwen3-8B" # Enable thinking mode for complex problems prompt = """ Analyze the following business scenario and provide a strategic recommendation: A startup has developed an innovative AI-powered educational app. They have limited funding, strong technical capabilities, but no marketing experience. They're deciding between: 1. Focusing on B2B sales to schools 2. Direct-to-consumer marketing 3. Partnering with existing educational publishers Consider market dynamics, resource constraints, and growth potential. """ messages = [{"role": "user", "content": prompt}] # The model will generate ... reasoning before final answer text = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) model_inputs = tokenizer([text], return_tensors="pt").to(model.device) # Generate with thinking mode generated_ids = model.generate( **model_inputs, max_new_tokens=1024, thinking_budget=512 # Allow extended reasoning ) # Parse thinking content and final response output_ids = generated_ids[0][len(model_inputs.input_ids[0]):].tolist() # Extract thinking process and final answer try: index = len(output_ids) - output_ids[::-1].index(151668) # token except ValueError: index = 0 thinking_content = tokenizer.decode(output_ids[:index], skip_special_tokens=True) final_response = tokenizer.decode(output_ids[index:], skip_special_tokens=True) print("Thinking Process:", thinking_content) print("Final Recommendation:", final_response) ``` ### 📱 النشر المحمول وعلى الحافة ```python # Optimized deployment for resource-constrained environments from transformers import AutoModelForCausalLM, AutoTokenizer import torch # Load smallest efficient model with quantization model = AutoModelForCausalLM.from_pretrained( "Qwen/Qwen2.5-1.5B-Instruct", torch_dtype=torch.float16, device_map="auto", load_in_8bit=True, # Reduce memory usage trust_remote_code=True ) tokenizer = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-1.5B-Instruct") def efficient_inference(prompt, max_length=256): """Optimized inference for mobile/edge deployment""" inputs = tokenizer( prompt, return_tensors="pt", max_length=512, truncation=True ) with torch.no_grad(): outputs = model.generate( **inputs, max_new_tokens=max_length, do_sample=True, temperature=0.7, pad_token_id=tokenizer.eos_token_id, early_stopping=True ) response = tokenizer.decode(outputs[0], skip_special_tokens=True) return response.replace(prompt, "").strip() # Example mobile-optimized usage quick_response = efficient_inference("What is machine learning?", max_length=100) print(quick_response) ``` ### مثال على نشر API ```python # Deploy Qwen model as API using vLLM from vllm import LLM, SamplingParams # Initialize model for API serving llm = LLM( model="Qwen/Qwen2.5-7B-Instruct", tensor_parallel_size=1, gpu_memory_utilization=0.8 ) # Configure sampling parameters sampling_params = SamplingParams( temperature=0.7, top_p=0.8, max_tokens=512 ) def api_generate(prompts): """API endpoint for text generation""" # Format prompts with chat template formatted_prompts = [] for prompt in prompts: messages = [{"role": "user", "content": prompt}] formatted_prompt = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True ) formatted_prompts.append(formatted_prompt) # Generate responses outputs = llm.generate(formatted_prompts, sampling_params) # Extract and return responses responses = [] for output in outputs: response = output.outputs[0].text.strip() responses.append(response) return responses # Example API usage user_prompts = [ "Explain the benefits of renewable energy", "Write a Python function to calculate factorial" ] responses = api_generate(user_prompts) for prompt, response in zip(user_prompts, responses): print(f"Prompt: {prompt}") print(f"Response: {response}\n") ``` ## معايير الأداء والإنجازات حققت عائلة نماذج Qwen أداءً مذهلاً عبر معايير مختلفة مع الحفاظ على إمكانية الوصول المفتوح: ### أبرز الأداء **تميز التفكير:** - يحقق Qwen3-235B-A22B نتائج تنافسية في تقييمات المعايير الخاصة بالبرمجة، الرياضيات، والقدرات العامة مقارنةً بالنماذج الرائدة الأخرى مثل DeepSeek-R1، o1، o3-mini، Grok-3، و Gemini-2.5-Pro. - يتفوق Qwen3-30B-A3B على QwQ-32B مع تفعيل 10 أضعاف من المعلمات. - يمكن لـ Qwen3-4B منافسة أداء Qwen2.5-72B-Instruct. **إنجازات الكفاءة:** - تحقق نماذج Qwen3-MoE الأساسية أداءً مشابهًا لنماذج Qwen2.5 الأساسية الكثيفة مع استخدام 10% فقط من المعلمات النشطة. - توفير كبير في التكاليف أثناء التدريب والاستخدام مقارنةً بالنماذج الكثيفة. **القدرات متعددة اللغات:** - تدعم نماذج Qwen3 119 لغة ولهجة. - أداء قوي عبر سياقات لغوية وثقافية متنوعة. **حجم التدريب:** - يستخدم Qwen3 ما يقرب من ضعف حجم البيانات، مع حوالي 36 تريليون رمز تغطي 119 لغة ولهجة مقارنةً بـ Qwen2.5 الذي يستخدم 18 تريليون رمز. ### جدول مقارنة النماذج | سلسلة النماذج | نطاق المعلمات | طول السياق | نقاط القوة الرئيسية | أفضل حالات الاستخدام | |---------------|---------------|------------|---------------------|-----------------------| | **Qwen2.5** | 0.5B-72B | 32K-128K | أداء متوازن، متعدد اللغات | التطبيقات العامة، النشر الإنتاجي | | **Qwen2.5-Coder** | 1.5B-32B | 128K | توليد الأكواد، البرمجة | تطوير البرمجيات، مساعد البرمجة | | **Qwen2.5-Math** | 1.5B-72B | 4K-128K | التفكير الرياضي | منصات التعليم، تطبيقات العلوم والتكنولوجيا | | **Qwen2.5-VL** | متنوع | متغير | فهم الرؤية واللغة | التطبيقات متعددة الوسائط، تحليل الصور | | **Qwen3** | 0.6B-235B | متغير | التفكير المتقدم، وضع التفكير | التفكير المعقد، تطبيقات البحث | | **Qwen3 MoE** | 30B-235B إجمالي | متغير | أداء فعال واسع النطاق | تطبيقات المؤسسات، احتياجات الأداء العالي | ## دليل اختيار النموذج ### للتطبيقات الأساسية - **Qwen2.5-0.5B/1.5B**: تطبيقات الهواتف المحمولة، الأجهزة الطرفية، التطبيقات الفورية. - **Qwen2.5-3B/7B**: روبوتات الدردشة العامة، توليد المحتوى، أنظمة الأسئلة والأجوبة. ### للمهام الرياضية والتفكير - **Qwen2.5-Math**: حل المشكلات الرياضية وتعليم العلوم والتكنولوجيا. - **Qwen3 مع وضع التفكير**: التفكير المعقد الذي يتطلب تحليلًا خطوة بخطوة. ### للبرمجة والتطوير - **Qwen2.5-Coder**: توليد الأكواد، تصحيح الأخطاء، مساعد البرمجة. - **Qwen3**: مهام البرمجة المتقدمة مع قدرات التفكير. ### للتطبيقات متعددة الوسائط - **Qwen2.5-VL**: فهم الصور، الإجابة على الأسئلة البصرية. - **Qwen-Audio**: معالجة الصوت وفهم الكلام. ### للنشر المؤسسي - **Qwen2.5-32B/72B**: فهم اللغة عالي الأداء. - **Qwen3-235B-A22B**: أقصى قدرة للتطبيقات المتطلبة. ## منصات النشر وإمكانية الوصول ### منصات السحابة - **Hugging Face Hub**: مستودع شامل للنماذج مع دعم المجتمع. - **ModelScope**: منصة النماذج من Alibaba مع أدوات تحسين. - **مزودو السحابة المختلفون**: دعم عبر منصات تعلم الآلة القياسية. ### أطر التطوير المحلية - **Transformers**: تكامل قياسي مع Hugging Face للنشر السهل. - **vLLM**: تقديم عالي الأداء لبيئات الإنتاج. - **Ollama**: نشر وإدارة محلية مبسطة. - **ONNX Runtime**: تحسين عبر المنصات لمختلف الأجهزة. - **llama.cpp**: تنفيذ فعال بلغة C++ لمنصات متنوعة. ### موارد التعلم - **وثائق Qwen**: الوثائق الرسمية وبطاقات النماذج. - **Hugging Face Model Hub**: عروض تفاعلية وأمثلة من المجتمع. - **الأوراق البحثية**: أوراق تقنية على arxiv لفهم معمق. - **منتديات المجتمع**: دعم المجتمع النشط والمناقشات. ### البدء مع نماذج Qwen #### منصات التطوير 1. **Hugging Face Transformers**: ابدأ بالتكامل القياسي مع Python. 2. **ModelScope**: استكشف أدوات النشر المحسنة من Alibaba. 3. **النشر المحلي**: استخدم Ollama أو Transformers مباشرةً للاختبار المحلي. #### مسار التعلم 1. **فهم المفاهيم الأساسية**: دراسة بنية عائلة Qwen وقدراتها. 2. **تجربة المتغيرات**: تجربة أحجام النماذج المختلفة لفهم التوازن بين الأداء. 3. **ممارسة التنفيذ**: نشر النماذج في بيئات التطوير. 4. **تحسين النشر**: ضبط النماذج لحالات الاستخدام الإنتاجية. #### أفضل الممارسات - **ابدأ صغيرًا**: ابدأ بالنماذج الصغيرة (1.5B-7B) للتطوير الأولي. - **استخدام قوالب الدردشة**: تطبيق التنسيق المناسب للحصول على نتائج مثلى. - **مراقبة الموارد**: تتبع استخدام الذاكرة وسرعة الاستنتاج. - **النظر في التخصص**: اختيار المتغيرات الخاصة بالمجال عند الحاجة. ## أنماط الاستخدام المتقدمة ### أمثلة على التخصيص ```python from transformers import AutoModelForCausalLM, AutoTokenizer, TrainingArguments from peft import LoraConfig, get_peft_model from trl import SFTTrainer from datasets import load_dataset # Load base model for fine-tuning model_name = "Qwen/Qwen2.5-7B-Instruct" model = AutoModelForCausalLM.from_pretrained( model_name, torch_dtype=torch.bfloat16, device_map="auto" ) tokenizer = AutoTokenizer.from_pretrained(model_name) tokenizer.pad_token = tokenizer.eos_token # Configure LoRA for efficient fine-tuning peft_config = LoraConfig( r=16, lora_alpha=32, lora_dropout=0.1, bias="none", task_type="CAUSAL_LM", target_modules=["q_proj", "k_proj", "v_proj", "o_proj"] ) # Apply LoRA to model model = get_peft_model(model, peft_config) # Training configuration training_args = TrainingArguments( output_dir="./qwen-finetuned", learning_rate=5e-5, per_device_train_batch_size=4, gradient_accumulation_steps=4, num_train_epochs=3, warmup_steps=100, logging_steps=10, save_steps=500, evaluation_strategy="steps", eval_steps=500, bf16=True, remove_unused_columns=False ) # Load and prepare dataset def format_instruction(example): return f"<|im_start|>user\n{example['instruction']}<|im_end|>\n<|im_start|>assistant\n{example['output']}<|im_end|>" dataset = load_dataset("your-custom-dataset") dataset = dataset.map( lambda x: {"text": format_instruction(x)}, remove_columns=dataset["train"].column_names ) # Initialize trainer trainer = SFTTrainer( model=model, args=training_args, train_dataset=dataset["train"], eval_dataset=dataset["validation"], tokenizer=tokenizer, max_seq_length=2048, packing=True ) # Start fine-tuning trainer.train() ``` ### هندسة التوجيه المتخصصة **للمهام المعقدة:** ```python def create_reasoning_prompt(problem, context=""): """Create structured prompt for complex reasoning""" prompt = f"""<|im_start|>system You are Qwen, a helpful AI assistant. When solving complex problems, break down your reasoning into clear steps. Instructions: 1. Analyze the problem carefully 2. Identify key components and relationships 3. Work through the solution step by step 4. Verify your answer 5. Provide a clear final answer {context} <|im_end|> <|im_start|>user {problem} Please solve this step by step, showing your reasoning process. <|im_end|> <|im_start|>assistant""" return prompt # Example usage complex_problem = """ A company's revenue grows by 15% each year. If they had $2 million in revenue in 2020, and they want to reach $5 million by 2025, will they achieve this goal? If not, what growth rate would they need? """ reasoning_prompt = create_reasoning_prompt(complex_problem) ``` **لتوليد الأكواد مع السياق:** ```python def create_coding_prompt(task, language="Python", context="", constraints=""): """Create structured prompt for code generation""" prompt = f"""<|im_start|>system You are Qwen-Coder, an expert programming assistant. Generate clean, efficient, and well-documented code. Requirements: - Use {language} programming language - Include comprehensive docstrings - Add type hints where appropriate - Follow best practices and conventions - Include example usage {context} <|im_end|> <|im_start|>user Task: {task} {f"Constraints: {constraints}" if constraints else ""} Please provide a complete, production-ready solution. <|im_end|> <|im_start|>assistant""" return prompt # Example usage coding_task = """ Create a class that manages a simple in-memory cache with TTL (time-to-live) support. The cache should support get, set, delete operations and automatically expire entries. """ constraints = """ - Thread-safe operations - Configurable default TTL - Memory-efficient cleanup of expired entries - Support for custom serialization """ coding_prompt = create_coding_prompt(coding_task, "Python", constraints=constraints) ``` ### التطبيقات متعددة اللغات ```python def create_multilingual_prompt(query, target_languages=["en", "zh", "es"]): """Create prompt for multilingual responses""" language_names = { "en": "English", "zh": "Chinese (中文)", "es": "Spanish (Español)", "fr": "French (Français)", "de": "German (Deutsch)", "ja": "Japanese (日本語)" } lang_list = [language_names.get(lang, lang) for lang in target_languages] lang_str = ", ".join(lang_list) prompt = f"""<|im_start|>system You are Qwen, a multilingual AI assistant. Provide responses in multiple languages as requested. Ensure cultural appropriateness and natural expression in each language. <|im_end|> <|im_start|>user Please answer the following question in {lang_str}: {query} Provide clear, culturally appropriate responses in each requested language. <|im_end|> <|im_start|>assistant""" return prompt # Example usage multilingual_query = "What are the benefits of renewable energy for the environment?" multilingual_prompt = create_multilingual_prompt( multilingual_query, target_languages=["en", "zh", "es"] ) ``` ### 🔧 أنماط النشر الإنتاجي ```python import asyncio from typing import List, Dict, Optional from dataclasses import dataclass import torch from transformers import AutoModelForCausalLM, AutoTokenizer @dataclass class GenerationConfig: max_tokens: int = 512 temperature: float = 0.7 top_p: float = 0.9 repetition_penalty: float = 1.05 do_sample: bool = True class QwenService: """Production-ready Qwen model service""" def __init__(self, model_name: str, device: str = "auto"): self.model_name = model_name self.device = device self.model = None self.tokenizer = None self._load_model() def _load_model(self): """Load model and tokenizer""" self.tokenizer = AutoTokenizer.from_pretrained(self.model_name) self.model = AutoModelForCausalLM.from_pretrained( self.model_name, torch_dtype=torch.bfloat16, device_map=self.device, trust_remote_code=True ) # Optimize for inference self.model.eval() if hasattr(self.model, 'generation_config'): self.model.generation_config.pad_token_id = self.tokenizer.eos_token_id def format_chat(self, messages: List[Dict[str, str]]) -> str: """Format messages using chat template""" return self.tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True ) async def generate_async( self, messages: List[Dict[str, str]], config: GenerationConfig = GenerationConfig() ) -> str: """Async generation for high-throughput applications""" formatted_prompt = self.format_chat(messages) # Tokenize input inputs = self.tokenizer( formatted_prompt, return_tensors="pt", truncation=True, max_length=4096 ).to(self.model.device) # Generate response with torch.no_grad(): outputs = await asyncio.get_event_loop().run_in_executor( None, lambda: self.model.generate( **inputs, max_new_tokens=config.max_tokens, temperature=config.temperature, top_p=config.top_p, repetition_penalty=config.repetition_penalty, do_sample=config.do_sample, pad_token_id=self.tokenizer.eos_token_id ) ) # Extract generated text generated_text = self.tokenizer.decode( outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True ) return generated_text.strip() def generate_batch( self, batch_messages: List[List[Dict[str, str]]], config: GenerationConfig = GenerationConfig() ) -> List[str]: """Batch generation for efficiency""" formatted_prompts = [self.format_chat(messages) for messages in batch_messages] # Tokenize batch inputs = self.tokenizer( formatted_prompts, return_tensors="pt", padding=True, truncation=True, max_length=4096 ).to(self.model.device) # Generate responses with torch.no_grad(): outputs = self.model.generate( **inputs, max_new_tokens=config.max_tokens, temperature=config.temperature, top_p=config.top_p, repetition_penalty=config.repetition_penalty, do_sample=config.do_sample, pad_token_id=self.tokenizer.eos_token_id ) # Extract all generated texts responses = [] for i, output in enumerate(outputs): generated_text = self.tokenizer.decode( output[inputs.input_ids[i].shape[0]:], skip_special_tokens=True ) responses.append(generated_text.strip()) return responses # Example usage async def main(): # Initialize service qwen_service = QwenService("Qwen/Qwen2.5-7B-Instruct") # Single generation messages = [ {"role": "user", "content": "Explain machine learning in simple terms"} ] response = await qwen_service.generate_async(messages) print("Single Response:", response) # Batch generation batch_messages = [ [{"role": "user", "content": "What is artificial intelligence?"}], [{"role": "user", "content": "How does deep learning work?"}], [{"role": "user", "content": "What are neural networks?"}] ] batch_responses = qwen_service.generate_batch(batch_messages) for i, response in enumerate(batch_responses): print(f"Batch Response {i+1}:", response) # Run the example # asyncio.run(main()) ``` ## استراتيجيات تحسين الأداء ### تحسين الذاكرة ```python # Memory-efficient loading strategies from transformers import AutoModelForCausalLM, BitsAndBytesConfig # 8-bit quantization for memory efficiency quantization_config = BitsAndBytesConfig( load_in_8bit=True, llm_int8_threshold=6.0, llm_int8_has_fp16_weight=False ) model = AutoModelForCausalLM.from_pretrained( "Qwen/Qwen2.5-7B-Instruct", quantization_config=quantization_config, device_map="auto", torch_dtype=torch.float16 ) # 4-bit quantization for maximum efficiency quantization_config_4bit = BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_compute_dtype=torch.bfloat16, bnb_4bit_use_double_quant=True, bnb_4bit_quant_type="nf4" ) efficient_model = AutoModelForCausalLM.from_pretrained( "Qwen/Qwen2.5-7B-Instruct", quantization_config=quantization_config_4bit, device_map="auto" ) ``` ### تحسين الاستنتاج ```python import torch from torch.nn.attention import SDPABackend, sdpa_kernel # Optimized inference configuration def optimized_inference_setup(): """Configure optimizations for inference""" # Enable optimized attention mechanisms torch.backends.cuda.enable_flash_sdp(True) torch.backends.cuda.enable_math_sdp(True) torch.backends.cuda.enable_mem_efficient_sdp(True) # Set optimal threading torch.set_num_threads(4) # Adjust based on your CPU # Enable JIT compilation for repeated patterns torch.jit.set_fusion_strategy([('STATIC', 3), ('DYNAMIC', 20)]) def fast_generate(model, tokenizer, prompt, max_tokens=256): """Optimized generation function""" with torch.no_grad(): # Use optimized attention backend with sdpa_kernel(SDPABackend.FLASH_ATTENTION): inputs = tokenizer(prompt, return_tensors="pt").to(model.device) # Generate with optimizations outputs = model.generate( **inputs, max_new_tokens=max_tokens, do_sample=True, temperature=0.7, use_cache=True, # Enable KV caching pad_token_id=tokenizer.eos_token_id, early_stopping=True ) response = tokenizer.decode( outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True ) return response.strip() ``` ## أفضل الممارسات والإرشادات ### الأمن والخصوصية ```python import hashlib import time from typing import Optional class SecureQwenService: """Security-focused Qwen service implementation""" def __init__(self, model_name: str): self.model_name = model_name self.model = None self.tokenizer = None self.request_logs = {} self._load_model() def _sanitize_input(self, text: str) -> str: """Sanitize user input to prevent injection attacks""" # Remove or escape potentially harmful patterns dangerous_patterns = [ "", "javascript:", "data:", "" ] sanitized = text for pattern in dangerous_patterns: sanitized = sanitized.replace(pattern, "") return sanitized def _rate_limit_check(self, user_id: str, max_requests: int = 100, window: int = 3600) -> bool: """Simple rate limiting implementation""" current_time = time.time() if user_id not in self.request_logs: self.request_logs[user_id] = [] # Clean old requests self.request_logs[user_id] = [ req_time for req_time in self.request_logs[user_id] if current_time - req_time < window ] # Check rate limit if len(self.request_logs[user_id]) >= max_requests: return False # Log current request self.request_logs[user_id].append(current_time) return True def _hash_sensitive_data(self, data: str) -> str: """Hash sensitive data for logging""" return hashlib.sha256(data.encode()).hexdigest()[:16] def secure_generate( self, messages: List[Dict[str, str]], user_id: str, max_tokens: int = 512 ) -> Optional[str]: """Generate with security measures""" # Rate limiting if not self._rate_limit_check(user_id): return "Rate limit exceeded. Please try again later." # Input sanitization sanitized_messages = [] for message in messages: sanitized_content = self._sanitize_input(message.get("content", "")) sanitized_messages.append({ "role": message.get("role", "user"), "content": sanitized_content }) # Content length validation total_content_length = sum(len(msg["content"]) for msg in sanitized_messages) if total_content_length > 8192: # Reasonable limit return "Input too long. Please reduce the content length." # Log request (with hashed sensitive data) content_hash = self._hash_sensitive_data(str(sanitized_messages)) print(f"Processing request from user {user_id[:8]}... Content hash: {content_hash}") # Generate response try: formatted_prompt = self.tokenizer.apply_chat_template( sanitized_messages, tokenize=False, add_generation_prompt=True ) inputs = self.tokenizer(formatted_prompt, return_tensors="pt").to(self.model.device) with torch.no_grad(): outputs = self.model.generate( **inputs, max_new_tokens=min(max_tokens, 1024), # Enforce reasonable limits temperature=0.7, top_p=0.9, repetition_penalty=1.05, do_sample=True, pad_token_id=self.tokenizer.eos_token_id ) response = self.tokenizer.decode( outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True ) return response.strip() except Exception as e: print(f"Generation error for user {user_id[:8]}...: {str(e)}") return "An error occurred while processing your request." ``` ### المراقبة والتقييم ```python import time import psutil import torch from dataclasses import dataclass from typing import List, Dict, Any @dataclass class PerformanceMetrics: """Performance metrics for monitoring""" response_time: float memory_usage: float gpu_usage: float token_count: int tokens_per_second: float class QwenMonitor: """Monitor Qwen model performance and health""" def __init__(self): self.metrics_history = [] def measure_performance(self, model, tokenizer, prompt: str) -> PerformanceMetrics: """Measure comprehensive performance metrics""" start_time = time.time() start_memory = psutil.Process().memory_info().rss / 1024 / 1024 # MB # GPU metrics (if available) gpu_usage = 0 if torch.cuda.is_available(): torch.cuda.reset_peak_memory_stats() gpu_usage = torch.cuda.memory_allocated() / 1024 / 1024 # MB # Generate response inputs = tokenizer(prompt, return_tensors="pt").to(model.device) with torch.no_grad(): outputs = model.generate( **inputs, max_new_tokens=256, temperature=0.7, do_sample=True, pad_token_id=tokenizer.eos_token_id ) # Calculate metrics end_time = time.time() end_memory = psutil.Process().memory_info().rss / 1024 / 1024 response_time = end_time - start_time memory_usage = end_memory - start_memory if torch.cuda.is_available(): gpu_usage = torch.cuda.max_memory_allocated() / 1024 / 1024 token_count = outputs.shape[1] - inputs.input_ids.shape[1] tokens_per_second = token_count / response_time if response_time > 0 else 0 metrics = PerformanceMetrics( response_time=response_time, memory_usage=memory_usage, gpu_usage=gpu_usage, token_count=token_count, tokens_per_second=tokens_per_second ) self.metrics_history.append(metrics) return metrics def get_average_metrics(self, last_n: int = 10) -> Dict[str, float]: """Get average metrics from recent measurements""" if not self.metrics_history: return {} recent_metrics = self.metrics_history[-last_n:] return { "avg_response_time": sum(m.response_time for m in recent_metrics) / len(recent_metrics), "avg_memory_usage": sum(m.memory_usage for m in recent_metrics) / len(recent_metrics), "avg_gpu_usage": sum(m.gpu_usage for m in recent_metrics) / len(recent_metrics), "avg_tokens_per_second": sum(m.tokens_per_second for m in recent_metrics) / len(recent_metrics) } def health_check(self, model, tokenizer) -> Dict[str, Any]: """Perform comprehensive health check""" health_status = { "status": "healthy", "checks": {}, "recommendations": [] } try: # Test basic functionality test_prompt = "Hello, how are you?" metrics = self.measure_performance(model, tokenizer, test_prompt) # Check response time if metrics.response_time > 10.0: # seconds health_status["checks"]["response_time"] = "slow" health_status["recommendations"].append("Consider model optimization or hardware upgrade") else: health_status["checks"]["response_time"] = "good" # Check memory usage if metrics.memory_usage > 1000: # MB health_status["checks"]["memory_usage"] = "high" health_status["recommendations"].append("Monitor memory usage and consider cleanup") else: health_status["checks"]["memory_usage"] = "good" # Check token generation rate if metrics.tokens_per_second < 5: health_status["checks"]["generation_speed"] = "slow" health_status["recommendations"].append("Optimize inference configuration") else: health_status["checks"]["generation_speed"] = "good" # Overall status if any(check in ["slow", "high"] for check in health_status["checks"].values()): health_status["status"] = "degraded" except Exception as e: health_status["status"] = "unhealthy" health_status["error"] = str(e) health_status["recommendations"].append("Check model loading and configuration") return health_status # Example usage monitor = QwenMonitor() # Regular performance monitoring def monitor_model_performance(model, tokenizer, test_prompts: List[str]): """Monitor model performance with various prompts""" for prompt in test_prompts: metrics = monitor.measure_performance(model, tokenizer, prompt) print(f"Prompt: {prompt[:50]}...") print(f"Response time: {metrics.response_time:.2f}s") print(f"Tokens/sec: {metrics.tokens_per_second:.1f}") print(f"Memory usage: {metrics.memory_usage:.1f}MB") print("-" * 50) # Show average metrics avg_metrics = monitor.get_average_metrics() print("Average Performance Metrics:") for metric, value in avg_metrics.items(): print(f"{metric}: {value:.2f}") ``` ## الخاتمة تمثل عائلة نماذج Qwen نهجًا شاملاً نحو دمقرطة تقنية الذكاء الاصطناعي مع الحفاظ على الأداء التنافسي عبر التطبيقات المتنوعة. من خلال التزامها بإمكانية الوصول المفتوحة المصدر، القدرات متعددة اللغات، وخيارات النشر المرنة، تمكن Qwen المؤسسات والمطورين من الاستفادة من قدرات الذكاء الاصطناعي القوية بغض النظر عن الموارد أو المتطلبات المحددة. ### النقاط الرئيسية **التميز المفتوح المصدر**: تثبت Qwen أن النماذج المفتوحة المصدر يمكن أن تحقق أداءً تنافسيًا مع البدائل الخاصة مع توفير الشفافية، التخصيص، والتحكم. **الهندسة القابلة للتوسع**: النطاق من 0.5B إلى 235B معلمات يتيح النشر عبر جميع بيئات الحوسبة، من الأجهزة المحمولة إلى مجموعات المؤسسات. **القدرات المتخصصة**: المتغيرات الخاصة بالمجال مثل Qwen-Coder، Qwen-Math، و Qwen-VL توفر خبرة متخصصة مع الحفاظ على فهم اللغة العامة. **الوصول العالمي**: دعم متعدد اللغات قوي عبر أكثر من 119 لغة يجعل Qwen مناسبًا للتطبيقات الدولية وقواعد المستخدمين المتنوعة. **الابتكار المستمر**: التطور من Qwen 1.0 إلى Qwen3 يظهر تحسينًا مستمرًا في القدرات، الكفاءة، وخيارات النشر. ### النظرة المستقبلية مع استمرار تطور عائلة Qwen، يمكننا توقع: - **كفاءة محسنة**: تحسين مستمر لنسب الأداء لكل معلمة. - **قدرات متعددة الوسائط موسعة**: دمج معالجة أكثر تطورًا للرؤية، الصوت، والنص. - **تحسين التفكير**: آليات تفكير متقدمة وقدرات حل المشكلات متعددة الخطوات. - **أدوات نشر أفضل**: تحسين الأطر وأدوات التخصيص لسيناريوهات النشر المتنوعة. - **نمو المجتمع**: توسيع النظام البيئي للأدوات، التطبيقات، ومساهمات المجتمع. ### الخطوات التالية سواء كنت تبني روبوت دردشة، تطور أدوات تعليمية، تنشئ مساعدي برمجة، أو تعمل على تطبيقات متعددة اللغات، توفر عائلة Qwen حلولًا قابلة للتوسع مع دعم قوي من المجتمع ووثائق شاملة. للحصول على أحدث التحديثات، إصدارات النماذج، والوثائق التقنية التفصيلية، قم بزيارة المستودعات الرسمية لـ Qwen على Hugging Face واستكشف مناقشات المجتمع النشطة والأمثلة. مستقبل تطوير الذكاء الاصطناعي يكمن في الأدوات القابلة للوصول، الشفافة، والقوية التي تمكن الابتكار عبر جميع القطاعات والمقاييس. تمثل عائلة Qwen هذه الرؤية، مما يوفر للمؤسسات والمطورين الأساس لبناء الجيل القادم من التطبيقات المدعومة بالذكاء الاصطناعي. ## موارد إضافية - **الوثائق الرسمية**: [وثائق Qwen](https://qwen.readthedocs.io/) - **مستودع النماذج**: [مجموعات Qwen على Hugging Face](https://huggingface.co/collections/Qwen/) - **الأوراق التقنية**: [منشورات أبحاث Qwen](https://arxiv.org/search/?query=Qwen&searchtype=all) - **المجتمع**: [مناقشات GitHub والمشكلات](https://github.com/QwenLM/) - **منصة ModelScope**: [ModelScope من Alibaba](https://modelscope.cn/models?page=1&tasks=natural-language-processing&type=1) ## نتائج التعلم بعد إكمال هذا الوحدة، ستكون قادرًا على: 1. شرح المزايا المعمارية لعائلة نماذج Qwen ونهجها المفتوح المصدر. 2. اختيار المتغير المناسب من Qwen بناءً على متطلبات التطبيق والقيود على الموارد. 3. تنفيذ نماذج Qwen في سيناريوهات نشر متنوعة مع تكوينات محسنة. 4. تطبيق تقنيات التكميم والتحسين لتحسين أداء نماذج Qwen. 5. تقييم التوازن بين حجم النموذج، الأداء، والقدرات عبر عائلة Qwen. ## ما التالي - [03: أساسيات عائلة Gemma](03.GemmaFamily.md) --- **إخلاء المسؤولية**: تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الرسمي. للحصول على معلومات حاسمة، يُوصى بالترجمة البشرية الاحترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة.