إن تشغيل نموذج لغة مفتوح الوزن على أجهزتك الخاصة قد تحول من حداثة مختبر الأبحاث إلى مشروع في عطلة نهاية الأسبوع. يغطي هذا الدليل المسار الكامل في عام 2026: تثبيت Ollama، واختيار حجم النموذج المناسب لجهازك، وتخصيص السلوك باستخدام Modelfiles، وضبط النموذج بشكل طفيف باستخدام LoRA عندما تحتاج إليه لتعلم شيء جديد بالفعل.
📋 Table of Contents
- جدول المحتويات
- لماذا تشغيل LLM محليًا
- تثبيت أولاما
- حجم الأجهزة والنموذج
- نموذجك المحلي الأول
- تخصيص السلوك باستخدام ملف نموذجي
- استدعاء أولاما من بايثون
- الضبط الدقيق باستخدام LoRA
- عندما يتفوق المحلي على واجهة برمجة التطبيقات المستضافة
- الأسئلة المتداولة
- القراءة ذات الصلة على TechPulse
- جربه في نهاية هذا الأسبوع
لماذا تشغيل LLM محليًا
يحل الاستدلال المحلي المشكلات التي لا تستطيع واجهات برمجة التطبيقات المستضافة حلها من الناحية الهيكلية: البيانات لا تترك جهازك أبدًا، ولا توجد فاتورة لكل رمز مميز على نطاق واسع، وإصدار النموذج الذي اختبرته هو إصدار النموذج الذي ستشغله الشهر المقبل، بغض النظر عن أي جدول زمني للإيقاف الأولي. تتمثل المقايضة في الجودة والراحة – فالنماذج ذات الوزن المفتوح في نطاق 7B-70B جيدة، لكنها تتبع بشكل عام النماذج المستضافة الحدودية في مهام التفكير المعقدة.
تثبيت أولاما
يقوم Ollama بشحن أدوات التثبيت الأصلية لأنظمة التشغيل macOS وWindows وLinux، ويغلف llama.cpp تحت الغطاء للحصول على استدلال كمي فعال.
# macOS / Linux
curl -fsSL https://ollama.com/install.sh | sh
# Windows: download the installer from ollama.com/download
# Verify install
ollama --version
حجم الأجهزة والنموذج
يحدد حجم النموذج في المعلمات تقريبًا متطلبات الذاكرة بمجرد تحديدها كميًا. كقاعدة عامة لتكميم 4 بت (الافتراضي لـ Ollama لمعظم عمليات السحب):
- نماذج 3B-4B– يعمل بسلاسة على ذاكرة الوصول العشوائي (RAM) سعة 8 جيجابايت، بما في ذلك معظم أجهزة الكمبيوتر المحمولة الحديثة التي لا تحتوي على وحدة معالجة رسومات منفصلة.
- نماذج 7B-8B– تحتاج إلى 8-12 جيجابايت تقريبًا؛ مكان رائع ومريح للدردشة ذات الأغراض العامة والمساعدة في البرمجة.
- نماذج 13B-14B– تحتاج إلى 16-24 جيجابايت للحصول على أداء سلس.
- نماذج فئة 70B— تحتاج إلى 48 جيجابايت+ من ذاكرة الفيديو (VRAM) للحصول على سرعة جيدة، أو سيتم تشغيلها ببطء مقسمة عبر ذاكرة الوصول العشوائي (RAM) للنظام ووحدة المعالجة المركزية (CPU).
تعمل أجهزة Apple Silicon Macs على زيادة وزنها هنا لأن الذاكرة الموحدة تتيح لوحدة معالجة الرسومات الوصول إلى مجموعة ذاكرة الوصول العشوائي للنظام بالكامل، مما يجعلها قادرة بشكل مدهش على طرازات 13B-34B.
نموذجك المحلي الأول
# Pull and run a general-purpose model
ollama run llama3.1:8b
# Pull a coding-focused model
ollama run qwen2.5-coder:7b
# List installed models
ollama list
# Remove a model to free disk space
ollama rm llama3.1:8b
الأولrunيقوم الأمر بتنزيل النموذج (عدة غيغابايت) ويضعك في موجه الدردشة التفاعلية. يتم تخزين النماذج مؤقتًا محليًا، لذلك تبدأ عمليات التشغيل اللاحقة على الفور.
تخصيص السلوك باستخدام ملف نموذجي
يتيح لك ملف Modelfile وضع طبقة موجه نظام مخصص ودرجة الحرارة والمعلمات الأخرى أعلى النموذج الأساسي دون لمس أوزانه – وهو مشابه من الناحية المفاهيمية لتكوين Dockerfile for LLM.
FROM qwen2.5-coder:7b
PARAMETER temperature 0.2
PARAMETER num_ctx 8192
SYSTEM """
You are a senior backend engineer. Answer concisely with working code.
Prefer Python and explain tradeoffs only when explicitly asked.
"""
ollama create backend-helper -f ./Modelfile
ollama run backend-helper
استدعاء أولاما من بايثون
يكشف Ollama عن واجهة REST API محلية على المنفذ 11434، مع وجود عميل Python رسمي فوقها – وهو أمر مفيد لتوصيل نموذج محلي إلى برنامج نصي أو خدمة خلفية.
pip install ollama
import ollama
response = ollama.chat(model="qwen2.5-coder:7b", messages=[
{"role": "user", "content": "Write a Python function that flattens a nested list."}
])
print(response["message"]["content"])
# Streaming
for chunk in ollama.chat(model="llama3.1:8b", messages=[
{"role": "user", "content": "Explain TCP vs UDP in two sentences."}
], stream=True):
print(chunk["message"]["content"], end="", flush=True)
الضبط الدقيق باستخدام LoRA
Ollama في حد ذاته عبارة عن وقت تشغيل استدلالي، وليس أداة تدريب – من أجل الضبط الدقيق، يمكنك تدريب محول LoRA باستخدام مكتبة مثل Hugging Face’speftأو Unsloth، ثم قم إما بدمج المحول في الأوزان الأساسية أو تحويله إلى GGUF وتحميله من خلال ملف ModelfileADAPTERالتوجيه.
pip install unsloth peft transformers datasets trl
from unsloth import FastLanguageModel
from trl import SFTTrainer
from transformers import TrainingArguments
from datasets import load_dataset
model, tokenizer = FastLanguageModel.from_pretrained(
model_name="unsloth/llama-3.1-8b-bnb-4bit",
max_seq_length=2048,
load_in_4bit=True,
)
model = FastLanguageModel.get_peft_model(
model,
r=16,
target_modules=["q_proj", "k_proj", "v_proj", "o_proj"],
lora_alpha=16,
lora_dropout=0,
)
dataset = load_dataset("json", data_files="my_training_data.jsonl", split="train")
trainer = SFTTrainer(
model=model,
tokenizer=tokenizer,
train_dataset=dataset,
dataset_text_field="text",
max_seq_length=2048,
args=TrainingArguments(
per_device_train_batch_size=2,
gradient_accumulation_steps=4,
num_train_epochs=3,
learning_rate=2e-4,
output_dir="outputs",
),
)
trainer.train()
model.save_pretrained_gguf("my-finetuned-model", tokenizer, quantization_method="q4_k_m")
إن نهج QLoRA 4 بت (تحميل النموذج الأساسي في 4 بت، وتدريب مصفوفات محول LoRA الصغيرة فقط) هو ما يجعل ذلك ممكنًا على وحدة معالجة رسومات استهلاكية واحدة مزودة بذاكرة VRAM سعة 12-24 جيجابايت لنماذج 7B-8B. بمجرد تصديره إلى GGUF، أشر إلى ملف ModelfileFROMفي الملف المحلي وتحميله في Ollama مثل أي نموذج آخر.
عندما يتفوق المحلي على واجهة برمجة التطبيقات المستضافة
تعتبر النماذج المحلية أكثر منطقية بالنسبة للمهام الضيقة والمتكررة حيث قمت بضبط نموذج أصغر أو مطالبتك بمطابقة جودة النموذج المستضاف في تلك المهمة الواحدة – التصنيف، أو الاستخراج المنظم، أو الأدوات الداخلية مع البيانات الحساسة، أو عمليات النشر دون اتصال/الحافة. بالنسبة للتفكير المفتوح، أو الاستخدام المعقد لأداة متعددة الخطوات، أو أي شيء تؤثر فيه جودة الإخراج بشكل مباشر على المنتج، فإن النموذج المستضاف الحدودي مثل Claude لا يزال يفوز؛ انظرالبرنامج التعليمي لكلود APIإذا كنت تزن هذا الطريق لنفس المشروع.
الأسئلة المتداولة
ما هي الأجهزة التي أحتاجها لتشغيل LLM محليًا في عام 2026؟
بالنسبة لنموذج المعلمة 7B-8B في تكميم 4 بت، يكفي 8-16 جيجابايت من ذاكرة الوصول العشوائي (أو VRAM على وحدة معالجة الرسومات المنفصلة). تحتاج موديلات 13B بشكل مريح إلى 16-24 جيجابايت. تحتاج موديلات الفئة 70B إما إلى وحدة معالجة رسومات متطورة مع ذاكرة فيديو (VRAM) بسعة 48 جيجابايت أو زيادة كبيرة في ذاكرة الوصول العشوائي (RAM) للنظام، وستعمل بشكل أبطأ بشكل ملحوظ على إعدادات وحدة المعالجة المركزية (CPU) فقط.
هل أولاما مجاني للاستخدام؟
نعم، Ollama مجاني ومفتوح المصدر. إنه وقت تشغيل محلي، وليس واجهة برمجة تطبيقات مستضافة، لذلك لا توجد فواتير لكل رمز مميز – التكلفة هي الكهرباء والأجهزة الخاصة بك. بعض النماذج الموزعة من خلال مكتبة أولاما لديها تراخيص خاصة بها (Llama، Gemma، Qwen، إلخ) التي تحكم الاستخدام التجاري.
هل يمكنني حقًا ضبط النموذج على جهاز كمبيوتر محمول؟
إن الضبط الدقيق الكامل لنموذج المعلمات الذي تبلغ قيمته عدة مليارات من الدولارات ليس أمرًا واقعيًا على الأجهزة الاستهلاكية. ومع ذلك، فإن الضبط الدقيق لـ LoRA (التكيف منخفض الرتبة) لا يقوم إلا بتدريب مجموعة صغيرة من أوزان المحولات الإضافية وهو ممكن على وحدة معالجة رسومات مستهلكة واحدة مزودة بذاكرة VRAM سعة 12-24 جيجابايت لنماذج فئة 7B، خاصة مع التكميم (QLoRA).
هل يدعم Olma تسريع GPU؟
نعم. يستخدم Ollama تلقائيًا تسريع GPU المتوفر من NVIDIA CUDA أو AMD ROCm أو Apple Metal (على أجهزة Mac من السلسلة M) عند وجوده، ويعود إلى استنتاج وحدة المعالجة المركزية بخلاف ذلك. لا تحتاج عمومًا إلى تكوين أي شيء يدويًا.
كيف يختلف ملف Modelfile عن الضبط الدقيق؟
يقوم ملف Modelfile في Ollama بتخصيص موجه النظام الخاص بالنموذج، ودرجة الحرارة، ومعلمات وقت التشغيل الأخرى أعلى النموذج الأساسي الموجود – ولا يتم تغيير الأوزان. يقوم الضبط الدقيق في الواقع بتحديث أوزان النموذج باستخدام مجموعة البيانات الخاصة بك، الأمر الذي يتطلب المزيد من الحساب ولكنه يغير السلوك الأساسي للنموذج بشكل أكثر عمقًا.
متى يجب أن أستخدم LLM محليًا بدلاً من واجهة برمجة التطبيقات (API) مثل Claude أو GPT؟
يمكنك الوصول إلى نموذج محلي عندما تحتاج إلى خصوصية البيانات الكاملة (لا تترك أي بيانات جهازك)، أو تكلفة هامشية صفرية يمكن التنبؤ بها بكميات كبيرة، أو التوفر دون اتصال بالإنترنت، أو التحكم الكامل في إصدار النموذج الدقيق. يمكنك الوصول إلى واجهة برمجة تطبيقات مستضافة مثل Claude عندما تحتاج إلى أقوى جودة للاستدلال، أو أحدث الإمكانات، أو لا ترغب في إدارة البنية التحتية.
جربه في نهاية هذا الأسبوع
ابدأ بـollama run llama3.1:8b، احصل على الراحة مع Modelfiles للتخصيص على المستوى الفوري، ولا تصل إلى الضبط الدقيق لـ LoRA إلا بعد التأكد من أن المطالبة وحدها لا يمكنها أن تمنحك السلوك الذي تحتاجه – فهي عادةً ما تقطع 80٪ من الطريق إلى هناك مجانًا.
🔗 Share this article
✍️ Leave a Comment