# القسم 4: نظرة معمقة على إطار عمل Apple MLX ## جدول المحتويات 1. [مقدمة عن Apple MLX](../../../Module04) 2. [الميزات الرئيسية لتطوير نماذج اللغة الكبيرة](../../../Module04) 3. [دليل التثبيت](../../../Module04) 4. [البدء مع MLX](../../../Module04) 5. [MLX-LM: نماذج اللغة](../../../Module04) 6. [العمل مع نماذج اللغة الكبيرة](../../../Module04) 7. [التكامل مع Hugging Face](../../../Module04) 8. [تحويل النماذج وتكميمها](../../../Module04) 9. [تخصيص نماذج اللغة](../../../Module04) 10. [ميزات متقدمة لنماذج اللغة الكبيرة](../../../Module04) 11. [أفضل الممارسات لنماذج اللغة الكبيرة](../../../Module04) 12. [استكشاف الأخطاء وإصلاحها](../../../Module04) 13. [موارد إضافية](../../../Module04) ## مقدمة عن Apple MLX Apple MLX هو إطار عمل مصفوفة مصمم خصيصًا لتعلم الآلة بكفاءة ومرونة على معالجات Apple Silicon، تم تطويره بواسطة Apple Machine Learning Research. تم إطلاقه في ديسمبر 2023، ويُعتبر MLX رد Apple على أطر العمل مثل PyTorch وTensorFlow، مع تركيز خاص على تمكين قدرات نماذج اللغة الكبيرة على أجهزة Mac. ### ما الذي يجعل MLX مميزًا لنماذج اللغة الكبيرة؟ تم تصميم MLX للاستفادة الكاملة من بنية الذاكرة الموحدة لمعالجات Apple Silicon، مما يجعله مناسبًا بشكل خاص لتشغيل وتخصيص نماذج اللغة الكبيرة محليًا على أجهزة Mac. الإطار يزيل العديد من مشكلات التوافق التي واجهها مستخدمو Mac تقليديًا عند العمل مع نماذج اللغة الكبيرة. ### من يجب أن يستخدم MLX لنماذج اللغة الكبيرة؟ - **مستخدمو Mac** الذين يرغبون في تشغيل نماذج اللغة الكبيرة محليًا دون الاعتماد على السحابة. - **الباحثون** الذين يجربون تخصيص وتعديل نماذج اللغة. - **المطورون** الذين يبنون تطبيقات ذكاء اصطناعي بقدرات نماذج اللغة. - **أي شخص** يريد الاستفادة من معالجات Apple Silicon في مهام توليد النصوص والدردشة واللغة. ## الميزات الرئيسية لتطوير نماذج اللغة الكبيرة ### 1. بنية الذاكرة الموحدة تسمح ذاكرة Apple Silicon الموحدة لـ MLX بمعالجة نماذج اللغة الكبيرة بكفاءة دون الحاجة إلى نسخ البيانات، مما يعني أنه يمكنك العمل مع نماذج أكبر على نفس الجهاز. ### 2. تحسين أصلي لمعالجات Apple Silicon تم بناء MLX من الأساس ليعمل بشكل مثالي مع معالجات سلسلة M من Apple، مما يوفر أداءً مثاليًا للهياكل التحويلية المستخدمة في نماذج اللغة. ### 3. دعم التكميم الدعم المدمج لتكميم 4 بت و8 بت يقلل من متطلبات الذاكرة مع الحفاظ على جودة النموذج، مما يتيح تشغيل نماذج أكبر على الأجهزة الاستهلاكية. ### 4. التكامل مع Hugging Face التكامل السلس مع نظام Hugging Face يوفر الوصول إلى آلاف نماذج اللغة المدربة مسبقًا مع أدوات تحويل بسيطة. ### 5. تخصيص LoRA دعم التخصيص باستخدام Low-Rank Adaptation (LoRA) يتيح تعديل النماذج الكبيرة بكفاءة باستخدام موارد حسابية محدودة. ## دليل التثبيت ### متطلبات النظام - **macOS 13.0+** (لتحسين معالجات Apple Silicon) - **Python 3.8+** - **Apple Silicon** (سلسلة M1، M2، M3، M4) - **بيئة ARM الأصلية** (لا تعمل تحت Rosetta) - **8GB+ RAM** (يوصى بـ 16GB+ للنماذج الأكبر) ### التثبيت السريع لنماذج اللغة أسهل طريقة للبدء مع نماذج اللغة هي تثبيت MLX-LM: ```bash pip install mlx-lm ``` هذا الأمر الواحد يقوم بتثبيت إطار عمل MLX الأساسي وأدوات نماذج اللغة. ### إعداد بيئة افتراضية (موصى به) ```bash # Create and activate virtual environment python -m venv mlx-llm-env source mlx-llm-env/bin/activate # Install MLX-LM pip install mlx-lm # Verify installation python -c "from mlx_lm import load; print('MLX-LM installed successfully')" ``` ### تبعيات إضافية لنماذج الصوت إذا كنت تخطط للعمل مع نماذج الصوت مثل Whisper: ```bash pip install mlx-lm[whisper] # or pip install mlx-lm ffmpeg-python ``` ## البدء مع MLX ### أول نموذج لغة لك لنبدأ بتشغيل مثال بسيط لتوليد النصوص: ```bash # Quick text generation from command line python -m mlx_lm.generate --model mlx-community/Mistral-7B-Instruct-v0.3-4bit --prompt "Explain artificial intelligence in simple terms:" ``` ### مثال على واجهة برمجة التطبيقات في Python ```python from mlx_lm import load, generate # Load a quantized model (uses less memory) model, tokenizer = load("mlx-community/Mistral-7B-Instruct-v0.3-4bit") # Generate text prompt = "Write a short story about a robot learning to understand emotions:" response = generate( model, tokenizer, prompt=prompt, verbose=True, max_tokens=300, temp=0.7 ) print(response) ``` ### فهم تحميل النماذج ```python from mlx_lm import load # Different ways to load models model, tokenizer = load("mistralai/Mistral-7B-Instruct-v0.2") # Full precision model, tokenizer = load("mlx-community/Mistral-7B-Instruct-v0.3-4bit") # Quantized # Load with custom settings model, tokenizer = load( "qwen/Qwen-7B-Chat", tokenizer_config={ "eos_token": "<|endoftext|>", "trust_remote_code": True } ) ``` ## MLX-LM: نماذج اللغة ### الهياكل المدعومة للنماذج يدعم MLX-LM مجموعة واسعة من هياكل نماذج اللغة الشهيرة: - **LLaMA وLLaMA 2** - نماذج Meta الأساسية - **Mistral وMixtral** - نماذج فعالة وقوية - **Phi-3** - نماذج Microsoft المدمجة - **Qwen** - نماذج Alibaba متعددة اللغات - **Code Llama** - مخصصة لتوليد الأكواد - **Gemma** - نماذج Google المفتوحة ### واجهة سطر الأوامر واجهة سطر الأوامر لـ MLX-LM توفر أدوات قوية للعمل مع نماذج اللغة: ```bash # Basic text generation python -m mlx_lm.generate --model mistralai/Mistral-7B-Instruct-v0.2 --prompt "Hello, how are you?" # Generate with specific parameters python -m mlx_lm.generate \ --model mlx-community/CodeLlama-7b-Instruct-hf-4bit \ --prompt "Write a Python function to calculate fibonacci numbers:" \ --max-tokens 500 \ --temp 0.3 # Interactive chat mode python -m mlx_lm.generate --model mistralai/Mistral-7B-Instruct-v0.2 --prompt "You are a helpful assistant." --max-tokens 100 # Get help for all options python -m mlx_lm.generate --help ``` ### واجهة برمجة التطبيقات في Python للحالات المتقدمة ```python from mlx_lm import load, generate # Load model once for multiple generations model, tokenizer = load("mlx-community/Mistral-7B-Instruct-v0.3-4bit") # Single prompt generation def generate_response(prompt, max_tokens=200, temperature=0.7): return generate( model, tokenizer, prompt=prompt, max_tokens=max_tokens, temp=temperature, verbose=True ) # Batch generation prompts = [ "Explain quantum computing:", "Write a haiku about technology:", "What are the benefits of renewable energy?" ] responses = [generate_response(prompt) for prompt in prompts] ``` ## العمل مع نماذج اللغة الكبيرة ### أنماط توليد النصوص #### توليد النصوص في دورة واحدة ```python from mlx_lm import load, generate model, tokenizer = load("mlx-community/Mistral-7B-Instruct-v0.3-4bit") prompt = "Summarize the key principles of sustainable development:" response = generate(model, tokenizer, prompt=prompt, max_tokens=300) ``` #### اتباع التعليمات ```python # Format prompts for instruction-following models instruction_prompt = """[INST] You are a helpful coding assistant. Write a Python function that takes a list of numbers and returns the median value. Include comments explaining your code. [/INST]""" response = generate(model, tokenizer, prompt=instruction_prompt, max_tokens=400) ``` #### الكتابة الإبداعية ```python creative_prompt = """Write a creative story beginning with: "The last library on Earth had been closed for fifty years when Sarah discovered the hidden door..." Continue the story for about 200 words.""" story = generate( model, tokenizer, prompt=creative_prompt, max_tokens=250, temp=0.8 # Higher temperature for more creativity ) ``` ### المحادثات متعددة الدورات ```python from mlx_lm import load, generate model, tokenizer = load("mlx-community/Mistral-7B-Instruct-v0.3-4bit") # Conversation history management class Conversation: def __init__(self, model, tokenizer): self.model = model self.tokenizer = tokenizer self.history = [] def add_message(self, role, content): self.history.append({"role": role, "content": content}) def generate_response(self, user_input): self.add_message("user", user_input) # Format conversation for the model conversation_text = self.format_conversation() response = generate( self.model, self.tokenizer, prompt=conversation_text, max_tokens=300, temp=0.7 ) self.add_message("assistant", response) return response def format_conversation(self): formatted = "" for message in self.history: if message["role"] == "user": formatted += f"[INST] {message['content']} [/INST]" else: formatted += f" {message['content']} " return formatted # Usage chat = Conversation(model, tokenizer) response1 = chat.generate_response("What is machine learning?") response2 = chat.generate_response("Can you give me a practical example?") ``` ## التكامل مع Hugging Face ### العثور على نماذج متوافقة مع MLX يعمل MLX بسلاسة مع نظام Hugging Face: - **تصفح نماذج MLX**: https://huggingface.co/models?library=mlx&sort=trending - **مجتمع MLX**: https://huggingface.co/mlx-community (نماذج محولة مسبقًا) - **النماذج الأصلية**: معظم نماذج LLaMA، Mistral، Phi، وQwen تعمل مع التحويل ### تحميل النماذج من Hugging Face ```python from mlx_lm import load # Load pre-converted MLX models (recommended) model, tokenizer = load("mlx-community/Mistral-7B-Instruct-v0.3-4bit") model, tokenizer = load("mlx-community/CodeLlama-7b-Instruct-hf-4bit") model, tokenizer = load("mlx-community/Phi-3-mini-4k-instruct-4bit") # Load original Hugging Face models (will be converted automatically) model, tokenizer = load("mistralai/Mistral-7B-Instruct-v0.2") model, tokenizer = load("microsoft/Phi-3-mini-4k-instruct") ``` ### تنزيل النماذج للاستخدام دون اتصال ```bash # Install Hugging Face CLI pip install huggingface_hub # Download a model for offline use huggingface-cli download mlx-community/Mistral-7B-Instruct-v0.3-4bit --local-dir ./models/mistral-7b # Use the downloaded model python -m mlx_lm.generate --model ./models/mistral-7b --prompt "Hello world" ``` ## تحويل النماذج وتكميمها ### تحويل نماذج Hugging Face إلى MLX ```bash # Basic conversion python -m mlx_lm.convert --hf-path mistralai/Mistral-7B-Instruct-v0.2 # Convert with quantization (recommended for memory efficiency) python -m mlx_lm.convert --hf-path mistralai/Mistral-7B-Instruct-v0.2 -q # Convert and upload to Hugging Face Hub python -m mlx_lm.convert \ --hf-path microsoft/Phi-3-mini-4k-instruct \ -q \ --upload-repo your-username/phi-3-mini-4k-instruct-mlx ``` ### فهم التكميم التكميم يقلل من حجم النموذج واستخدام الذاكرة مع خسارة جودة طفيفة: ```python # Comparison of model sizes and memory usage # Original model (float32): ~14GB for 7B parameters model, tokenizer = load("mistralai/Mistral-7B-Instruct-v0.2") # 4-bit quantized: ~4GB for 7B parameters model, tokenizer = load("mlx-community/Mistral-7B-Instruct-v0.3-4bit") # 8-bit quantized: ~7GB for 7B parameters (better quality than 4-bit) # python -m mlx_lm.convert --hf-path model_name --quantize-bits 8 ``` ### التكميم المخصص ```bash # Different quantization options python -m mlx_lm.convert --hf-path mistralai/Mistral-7B-v0.1 --quantize-bits 4 python -m mlx_lm.convert --hf-path mistralai/Mistral-7B-v0.1 --quantize-bits 8 # Group size quantization (more precise) python -m mlx_lm.convert --hf-path mistralai/Mistral-7B-v0.1 -q --q-group-size 64 ``` ## تخصيص نماذج اللغة ### تخصيص LoRA (Low-Rank Adaptation) يدعم MLX تخصيص النماذج بكفاءة باستخدام LoRA، مما يسمح بتعديل النماذج الكبيرة بموارد حسابية محدودة: ```python # Basic LoRA fine-tuning setup from mlx_lm import load from mlx_lm.utils import load_dataset # Load base model model, tokenizer = load("mlx-community/Mistral-7B-Instruct-v0.3-4bit") # Prepare your dataset (JSON format) # Each entry should have 'text' field with your training examples dataset_path = "your_training_data.json" ``` ### إعداد بيانات التدريب قم بإنشاء ملف JSON يحتوي على أمثلة التدريب الخاصة بك: ```json [ { "text": "[INST] What is the capital of France? [/INST] The capital of France is Paris." }, { "text": "[INST] Explain photosynthesis briefly. [/INST] Photosynthesis is the process by which plants convert sunlight, carbon dioxide, and water into glucose and oxygen." } ] ``` ### أمر التخصيص ```bash # Fine-tune with LoRA python -m mlx_lm.lora \ --model mlx-community/Mistral-7B-Instruct-v0.3-4bit \ --train \ --data your_training_data.json \ --lora-layers 16 \ --batch-size 4 \ --learning-rate 1e-5 \ --steps 1000 \ --save-every 100 \ --adapter-path ./fine_tuned_model ``` ### استخدام النماذج المخصصة ```python from mlx_lm import load # Load base model with fine-tuned adapter model, tokenizer = load( "mlx-community/Mistral-7B-Instruct-v0.3-4bit", adapter_path="./fine_tuned_model" ) # Generate with your fine-tuned model response = generate(model, tokenizer, prompt="Your custom prompt", max_tokens=200) ``` ## ميزات متقدمة لنماذج اللغة الكبيرة ### تخزين السياق لتحسين الكفاءة للاستخدام المتكرر لنفس السياق، يدعم MLX تخزين السياق لتحسين الأداء: ```bash # Generate and cache a system prompt python -m mlx_lm.generate \ --model mlx-community/Mistral-7B-Instruct-v0.3-4bit \ --prompt "You are a helpful coding assistant. You provide clean, well-commented code solutions." \ --save-prompt-cache coding_assistant.safetensors # Use cached prompt with new queries python -m mlx_lm.generate \ --prompt-cache-file coding_assistant.safetensors \ --prompt "Write a Python function to sort a list of dictionaries by a specific key." ``` ### توليد النصوص بشكل متدفق ```python from mlx_lm import load, stream_generate model, tokenizer = load("mlx-community/Mistral-7B-Instruct-v0.3-4bit") prompt = "Write a detailed explanation of renewable energy sources:" # Stream tokens as they're generated for token in stream_generate(model, tokenizer, prompt, max_tokens=500): print(token, end='', flush=True) ``` ### العمل مع نماذج توليد الأكواد ```python from mlx_lm import load, generate # Load a code-specialized model model, tokenizer = load("mlx-community/CodeLlama-7b-Instruct-hf-4bit") # Code generation prompt code_prompt = """Write a Python class that implements a simple cache with the following features: - Get and set methods - Maximum size limit - LRU (Least Recently Used) eviction policy Include proper documentation and error handling.""" code_response = generate( model, tokenizer, prompt=code_prompt, max_tokens=800, temp=0.3 # Lower temperature for more precise code ) print(code_response) ``` ### العمل مع نماذج الدردشة ```python from mlx_lm import load, generate model, tokenizer = load("mlx-community/Mistral-7B-Instruct-v0.3-4bit") # Proper chat formatting for Mistral models def format_chat_prompt(messages): formatted_prompt = "" for message in messages: if message["role"] == "user": formatted_prompt += f"[INST] {message['content']} [/INST]" elif message["role"] == "assistant": formatted_prompt += f" {message['content']} " return formatted_prompt # Multi-turn conversation messages = [ {"role": "user", "content": "What are the main components of a computer?"}, {"role": "assistant", "content": "The main components of a computer include the CPU, RAM, storage, motherboard, and power supply."}, {"role": "user", "content": "Can you explain what RAM does in more detail?"} ] chat_prompt = format_chat_prompt(messages) response = generate(model, tokenizer, prompt=chat_prompt, max_tokens=300) ``` ## أفضل الممارسات لنماذج اللغة الكبيرة ### إدارة الذاكرة ```python import psutil def check_memory_usage(): memory = psutil.virtual_memory() print(f"Memory usage: {memory.percent}%") print(f"Available memory: {memory.available / (1024**3):.2f} GB") # Check memory before loading large models check_memory_usage() # Use quantized models for better memory efficiency model, tokenizer = load("mlx-community/Mistral-7B-Instruct-v0.3-4bit") # ~4GB # vs # model, tokenizer = load("mistralai/Mistral-7B-Instruct-v0.2") # ~14GB ``` ### إرشادات اختيار النموذج **للتجربة والتعلم:** - استخدم نماذج مكممة بـ 4 بت (مثل `mlx-community/Mistral-7B-Instruct-v0.3-4bit`) - ابدأ بالنماذج الأصغر مثل Phi-3-mini **للتطبيقات الإنتاجية:** - ضع في اعتبارك التوازن بين حجم النموذج وجودته - اختبر النماذج المكممة والنماذج ذات الدقة الكاملة - قم بقياس الأداء بناءً على حالات الاستخدام الخاصة بك **للمهام المحددة:** - **توليد الأكواد**: CodeLlama، Code Llama Instruct - **الدردشة العامة**: Mistral-7B-Instruct، Phi-3 - **متعدد اللغات**: نماذج Qwen - **الكتابة الإبداعية**: إعدادات درجة حرارة أعلى مع Mistral أو LLaMA ### أفضل الممارسات لتصميم المطالبات ```python # Good prompt structure for instruction-following models def create_instruction_prompt(instruction, context="", examples=""): prompt = f"[INST] " if context: prompt += f"Context: {context}\n\n" if examples: prompt += f"Examples:\n{examples}\n\n" prompt += f"Instruction: {instruction} [/INST]" return prompt # Example usage prompt = create_instruction_prompt( instruction="Summarize the following text in 2-3 sentences:", context="You are a helpful assistant that provides concise summaries.", examples="Text: 'Long article...' Summary: 'Brief summary...'" ) ``` ### تحسين الأداء ```python # Optimize generation parameters based on use case def optimize_for_use_case(use_case): params = { "max_tokens": 200, "temp": 0.7, "top_p": 0.9 } if use_case == "code_generation": params.update({"temp": 0.3, "max_tokens": 500}) elif use_case == "creative_writing": params.update({"temp": 0.9, "max_tokens": 800}) elif use_case == "factual_qa": params.update({"temp": 0.3, "max_tokens": 150}) elif use_case == "summarization": params.update({"temp": 0.5, "max_tokens": 300}) return params # Usage code_params = optimize_for_use_case("code_generation") response = generate(model, tokenizer, prompt=prompt, **code_params) ``` ## استكشاف الأخطاء وإصلاحها ### المشكلات الشائعة وحلولها #### مشاكل التثبيت **المشكلة**: "No matching distribution found for mlx-lm" ```bash # Check Python architecture python -c "import platform; print(platform.processor())" # Should output 'arm', not 'i386' # If output is 'i386', you're using x86 Python under Rosetta # Install native ARM Python or use Conda ``` **الحل**: استخدم Python ARM الأصلي أو Miniconda: ```bash # Install Miniconda for ARM64 curl -O https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh bash Miniconda3-latest-MacOSX-arm64.sh # Create new environment conda create -n mlx python=3.11 conda activate mlx pip install mlx-lm ``` #### مشاكل الذاكرة **المشكلة**: "RuntimeError: Out of memory" ```python # Use smaller or quantized models model, tokenizer = load("mlx-community/Phi-3-mini-4k-instruct-4bit") # ~2GB # instead of # model, tokenizer = load("mistralai/Mistral-7B-Instruct-v0.2") # ~14GB # For macOS 15+, increase wired memory limit # sudo sysctl iogpu.wired_limit_mb=8192 # Adjust based on your RAM ``` #### مشاكل تحميل النموذج **المشكلة**: فشل تحميل النموذج أو إنتاج نتائج ضعيفة ```python # Verify model integrity from mlx_lm import load try: model, tokenizer = load("model_name") print("Model loaded successfully") except Exception as e: print(f"Error loading model: {e}") # Test with a simple prompt test_response = generate(model, tokenizer, prompt="Hello", max_tokens=10) print(f"Test response: {test_response}") ``` #### مشاكل الأداء **المشكلة**: سرعة توليد بطيئة - أغلق التطبيقات الأخرى التي تستهلك الذاكرة - استخدم النماذج المكممة عند الإمكان - تأكد من أنك لا تعمل تحت Rosetta - تحقق من الذاكرة المتاحة قبل تحميل النماذج ### نصائح التصحيح ```python # Enable verbose output for debugging response = generate( model, tokenizer, prompt="Test prompt", verbose=True, # Shows generation progress max_tokens=50 ) # Monitor system resources import psutil import time def monitor_generation(): start_time = time.time() start_memory = psutil.virtual_memory().percent response = generate(model, tokenizer, prompt="Long prompt...", max_tokens=200) end_time = time.time() end_memory = psutil.virtual_memory().percent print(f"Generation time: {end_time - start_time:.2f} seconds") print(f"Memory change: {end_memory - start_memory:.1f}%") return response ``` ## موارد إضافية ### الوثائق الرسمية والمستودعات - **مستودع GitHub لـ MLX**: https://github.com/ml-explore/mlx - **أمثلة MLX-LM**: https://github.com/ml-explore/mlx-examples/tree/main/llms - **وثائق MLX**: https://ml-explore.github.io/mlx/ - **تكامل Hugging Face مع MLX**: https://huggingface.co/docs/hub/en/mlx ### مجموعات النماذج - **نماذج مجتمع MLX**: https://huggingface.co/mlx-community - **نماذج MLX الرائجة**: https://huggingface.co/models?library=mlx&sort=trending ### تطبيقات أمثلة 1. **مساعد ذكاء اصطناعي شخصي**: بناء روبوت محادثة محلي مع ذاكرة للمحادثات 2. **مساعد أكواد**: إنشاء مساعد برمجي لبيئة التطوير الخاصة بك 3. **مولد محتوى**: تطوير أدوات للكتابة والتلخيص وإنشاء المحتوى 4. **نماذج مخصصة**: تعديل النماذج لمهام محددة 5. **تطبيقات متعددة الوسائط**: دمج توليد النصوص مع قدرات MLX الأخرى ### المجتمع والتعلم - **مناقشات مجتمع MLX**: GitHub Issues and Discussions - **منتديات Hugging Face**: دعم المجتمع ومشاركة النماذج - **وثائق مطوري Apple**: موارد Apple الرسمية لتعلم الآلة ### الاقتباس إذا استخدمت MLX في بحثك، يرجى الاقتباس: ```bibtex @software{mlx2023, author = {Awni Hannun and Jagrit Digani and Angelos Katharopoulos and Ronan Collobert}, title = {{MLX}: Efficient and flexible machine learning on Apple silicon}, url = {https://github.com/ml-explore}, version = {0.26.5}, year = {2023}, } ``` --- ## الخاتمة لقد أحدث Apple MLX ثورة في تشغيل نماذج اللغة الكبيرة على أجهزة Mac. من خلال توفير تحسين أصلي لمعالجات Apple Silicon، وتكامل سلس مع Hugging Face، وميزات قوية مثل التكميم وتخصيص LoRA، يجعل MLX تشغيل نماذج اللغة المتقدمة محليًا ممكنًا بأداء ممتاز. سواء كنت تبني روبوتات محادثة، مساعدين برمجيين، مولدات محتوى، أو نماذج مخصصة، يوفر MLX الأدوات والأداء اللازمين للاستفادة الكاملة من أجهزة Apple Silicon في تطبيقات نماذج اللغة. تركيز الإطار على الكفاءة وسهولة الاستخدام يجعله خيارًا ممتازًا لكل من البحث والتطبيقات الإنتاجية. ابدأ بالأمثلة الأساسية في هذا الدليل، استكشف النظام الغني للنماذج المحولة مسبقًا على Hugging Face، وتدرج تدريجيًا إلى الميزات الأكثر تقدمًا مثل التخصيص وتطوير النماذج المخصصة. مع استمرار نمو نظام MLX، يصبح منصة قوية بشكل متزايد لتطوير نماذج اللغة على أجهزة Apple. --- **إخلاء المسؤولية**: تم ترجمة هذا المستند باستخدام خدمة الترجمة بالذكاء الاصطناعي [Co-op Translator](https://github.com/Azure/co-op-translator). بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو معلومات غير دقيقة. يجب اعتبار المستند الأصلي بلغته الأصلية المصدر الموثوق. للحصول على معلومات حاسمة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة ناتجة عن استخدام هذه الترجمة.