بنية تحتية للذكاء الاصطناعي على الأجهزة المية

قم بتشغيل الذكاء الاصطناعي المؤسسي على معدات ميسرة بأسعار معقولة باستخدام نماذج مفتوحة المصدر

Page content

الديموقراطية في الذكاء الاصطناعي هنا. مع نماذج LLM المفتوحة المصدر مثل Llama 3، وMixtral، وQwen الآن تنافس النماذج الخاصة، يمكن للمجموعات بناء بنية تحتية قوية للذكاء الاصطناعي باستخدام معدات الاستهلاك - مما يقلل التكاليف مع الحفاظ على التحكم الكامل في خصوصية البيانات والنشر.

بنية تحتية للذكاء الاصطناعي للمجموعة على معدات الاستهلاك

لماذا تبني بنية تحتية للذكاء الاصطناعي الخاصة لمجموعتك؟

تغيرت المناظر بشكل كبير. ما كان يُطلب سابقًا مجموعات GPU بقيمة مليون دولار الآن يمكن تحقيقه باستخدام معدات استهلاكية تكلفة أقل من محطة عمل عالية الجودة.

الحجة لبنيتها تحتية الذكاء الاصطناعي الخاصة

كفاءة التكلفة

  • تكلفة OpenAI GPT-4: 0.03-0.06 دولار لكل 1000 توكن
  • تكلفة معالجة 1 مليون توكن يوميًا: 900-1800 دولار شهريًا
  • نظام RTX 4090 بقيمة 2000 دولار يحقق التعادل في 1-3 أشهر
  • بعد تحقيق التعادل: استخدام غير محدود بتكاليف هامشية صفرية

خصوصية البيانات والامتثال

  • التحكم الكامل في البيانات الحساسة
  • لا يتم إرسال البيانات إلى واجهات برمجة التطبيقات الخارجية
  • الامتثال لـ GDPR، HIPAA، والصناعات
  • خيارات نشر مغلقة بالهواء

التخصيص والتحكم

  • تخصيص النماذج على البيانات الخاصة
  • لا يوجد قيود على معدلات أو حصص
  • تكوينات نشر مخصصة
  • الاستقلالية عن تغييرات مزودي واجهات برمجة التطبيقات

الكفاءة في الأداء

  • تباين موحد في التأخير دون تقلبات واجهات برمجة التطبيقات
  • لا تعتمد على توفر خدمة خارجية
  • تخصيص توزيع الموارد
  • مُحسّنة لمهامك الخاصة

اختيار المعدات: بناء خادم الذكاء الاصطناعي الخاص بك

خيارات GPU لمستويات مختلفة من الميزانية

مستوى الميزانية ($600-900): نماذج 7B

  • NVIDIA RTX 4060 Ti 16GB ($500): يعمل على نماذج 7B، 2-3 مستخدمين متزامنين
  • AMD RX 7900 XT ($650): 20GB VRAM، ممتازة للتنبؤ
  • التطبيق: فرق صغيرة (3-5 أشخاص)، مهام البرمجة/الكتابة القياسية

مستوى متوسط ($1200-1800): نماذج 13B

  • NVIDIA RTX 4070 Ti ($800): 12GB VRAM، أداء جيد لنماذج 7B
  • NVIDIA RTX 4090 ($1600): 24GB VRAM، تعمل على نماذج 13B بسلاسة
  • RTX 3090 المستعمل ($800-1000): 24GB VRAM، قيمة ممتازة
  • ملاحظة: للحصول على أحدث الاتجاهات في الأسعار لجهاز RTX 5080 وRTX 5090 القادم، راجع تحليلنا لأسعار RTX 5080 وRTX 5090
  • التطبيق: فرق متوسطة (5-15 شخص)، مهام التفكير المعقدة

مستوى متقدم ($2500+): نماذج 30B+

  • عدة RTX 3090/4090 ($1600+ لكل واحد): التنبؤ الموزع
  • AMD Instinct MI210 (مستعمل، $2000+): 64GB HBM2e
  • NVIDIA A6000 (مستعمل، $3000+): 48GB VRAM، موثوقية مهنية
  • NVIDIA Quadro RTX 5880 Ada (48GB): للنشرات المهنية التي تتطلب أقصى قدر من VRAM والموثوقية، راجع قدرات Quadro RTX 5880 Ada وقيمتها
  • التطبيق: فرق كبيرة (15+)، الأبحاث، التخصيص

اعتبارات النظام الكامل

المعالج والذاكرة

  • المعالج: Ryzen 5 5600 أو Intel i5-12400 (كافي لخدمات الذكاء الاصطناعي)
  • الذاكرة: 32GB كحد أدنى، 64GB موصى بها للنافذة الكبيرة
  • الذاكرة السريعة تساعد في معالجة النصوص والتحميل النموذجي
  • تحسين المعالج: للمعالجات Intel ذات العمارة الهجينة (P-الكوارد وE-الكوارد)، راجع كيف يستخدم Ollama أنواع مختلفة من وحدات المعالجة المركزية لتحسين الأداء
  • تكوين PCIe: عند التخطيط لتركيبات GPU متعددة أو النشرات عالية الأداء، فهم القنوات PCIe وتأثيرها على أداء LLM ضروري للحصول على تخصيص عرض النطاق الترددي الأمثل

التخزين

  • SSD NVMe: 1TB كحد أدنى للنماذج والذاكرة المؤقتة
  • النماذج: 4-14GB لكل نموذج، احتفظ بـ 5-10 نماذج مُحملة
  • التخزين السريع يقلل من وقت تحميل النموذج

الطاقة والتبريد

  • RTX 4090: 450W TDP، يتطلب PSU 850W+
  • التبريد الجيد ضروري للعمل 24/7
  • الميزانية $150-200 للـ PSU والبرودة الجيدة

الشبكة

  • 1Gbps كافٍ للوصول إلى واجهة API
  • 10Gbps مفيد للتدريب الموزع
  • التأخير المنخفض مهم للتطبيقات في الوقت الفعلي

مشاريع نموذجية

مشروع ميزانيته ($1200)

GPU: RTX 4060 Ti 16GB ($500)
المعالج: Ryzen 5 5600 ($130)
الذاكرة: 32GB DDR4 ($80)
اللوحة الأم: B550 ($120)
التخزين: 1TB NVMe ($80)
PSU: 650W 80+ Gold ($90)
الصندوق: $80
المجموع: ~$1200

مشروع مثالي ($2500)

GPU: RTX 4090 24GB ($1600)
المعالج: Ryzen 7 5700X ($180)
الذاكرة: 64GB DDR4 ($140)
اللوحة الأم: X570 ($180)
التخزين: 2TB NVMe ($120)
PSU: 1000W 80+ Gold ($150)
الصندوق: $100
المجموع: ~$2500

المكدس البرمجي: خدمة الذكاء الاصطناعي المفتوحة المصدر

منصات خدمة النماذج

Ollama: البساطة أولاً

# تثبيت Ollama
curl -fsSL https://ollama.ai/install.sh | sh

# تشغيل نموذج
ollama run llama3:8b

# خادم API (متوافق مع OpenAI)
ollama serve

المزايا:

  • إعداد بسيط للغاية
  • إدارة النموذج تلقائيًا
  • API متوافق مع OpenAI
  • كمّية GGUF الفعالة
  • مكتبة نماذج مدمجة

الأداء: للحصول على مقارنات الأداء الفعلية لـ Ollama عبر مختلف تكوينات الأجهزة، بما في ذلك GPUs للشركات والمستهلكين، راجع مقارنتنا المفصلة بين NVIDIA DGX Spark، Mac Studio، وRTX 4080.

الأفضل لـ: الفرق التي تفضل سهولة الاستخدام، والنشر السريع

vLLM: الأداء الأقصى

# تثبيت vLLM
pip install vllm

# خدمة النموذج
python -m vllm.entrypoints.openai.api_server \
    --model meta-llama/Llama-2-7b-chat-hf \
    --tensor-parallel-size 1

المزايا:

  • أقصى إنتاجية
  • PagedAttention لتحسين كفاءة الذاكرة
  • التجميع المستمر
  • دعم متعدد GPUs

الأفضل لـ: السيناريوهات ذات الإنتاجية العالية، المستخدمين المتزامنين المتعددين

LocalAI: الحل الشامل

# تثبيت Docker
docker run -p 8080:8080 \
    -v $PWD/models:/models \
    localai/localai:latest

المزايا:

  • دعم خلفية متعددة (llama.cpp، vLLM، إلخ)
  • نماذج الصوت، الصورة، النص
  • متوافق مع API OpenAI
  • دعم نماذج واسع

الأفضل لـ: مهام متعددة، متطلبات متعددة الوسائط

الحاويات والتنظيم

إعداد Docker Compose

version: '3.8'

services:
  ollama:
    image: ollama/ollama:latest
    ports:
      - "11434:11434"
    volumes:
      - ollama_data:/root/.ollama
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: 1
              capabilities: [gpu]
    restart: unless-stopped

  openwebui:
    image: ghcr.io/open-webui/open-webui:main
    ports:
      - "3000:8080"
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
    volumes:
      - webui_data:/app/backend/data
    depends_on:
      - ollama
    restart: unless-stopped

volumes:
  ollama_data:
  webui_data:

نشر Kubernetes

apiVersion: apps/v1
kind: Deployment
metadata:
  name: ollama-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: ollama
  template:
    metadata:
      labels:
        app: ollama
    spec:
      containers:
      - name: ollama
        image: ollama/ollama:latest
        ports:
        - containerPort: 11434
        resources:
          limits:
            nvidia.com/gpu: 1
        volumeMounts:
        - name: models
          mountPath: /root/.ollama
      volumes:
      - name: models
        persistentVolumeClaim:
          claimName: ollama-pvc
---
apiVersion: v1
kind: Service
metadata:
  name: ollama-service
spec:
  selector:
    app: ollama
  ports:
  - port: 11434
    targetPort: 11434
  type: LoadBalancer

اختيار النموذج والنشر

أفضل النماذج المفتوحة المصدر (نوفمبر 2024)

فئة 7B المعلمة (المستوى المبتدئ)

  • Llama 3.1 8B: أحدث إصدار من Meta، أداء عام ممتاز
  • Mistral 7B v0.3: تفكير قوي، قدرات البرمجة
  • Qwen2.5 7B: متعدد اللغات، قوي على المهام التقنية
  • VRAM: 8-12GB، السرعة: ~30-50 توكن/ثانية على RTX 4060 Ti

فئة 13B المعلمة (التوازن)

  • Llama 3.1 13B: أفضل جودة في الفئة
  • Vicuna 13B: مُحسّن للحوار
  • WizardCoder 13B: متخصص في البرمجة
  • VRAM: 14-18GB، السرعة: ~20-30 توكن/ثانية على RTX 4090

فئة 30B+ المعلمة (جودة عالية)

  • Llama 3.1 70B: يتنافس مع GPT-4 في العديد من المعايير
  • Mixtral 8x7B: بنية MoE، نموذج فعّال 47B
  • Yi 34B: أداء متعدد اللغات قوي
  • VRAM: 40GB+ (يتطلب عدة GPUs أو كمّية قوية)

استراتيجيات الكمية

مستويات كمّية GGUF

  • Q4_K_M: 4 بت، ~50% حجم، فقدان جودة محدود (مُوصى به)
  • Q5_K_M: 5 بت، ~60% حجم، جودة أفضل
  • Q8_0: 8 بت، ~80% حجم، جودة قريبة من الأصل
  • F16: 16 بت كاملة، 100% حجم، جودة الأصل

مثال: أحجام نماذج Llama 3.1 8B

  • الأصل (F16): 16GB
  • Q8_0: 8.5GB
  • Q5_K_M: 5.7GB
  • Q4_K_M: 4.6GB
# Ollama يستخدم تلقائيًا الكمية المثلى
ollama pull llama3:8b

# للكمية المخصصة مع llama.cpp
./quantize models/llama-3-8b-f16.gguf models/llama-3-8b-q4.gguf Q4_K_M

الوصول متعدد المستخدمين والتوازن

المصادقة والتحكم في الوصول

مصادقة مفتاح API مع nginx

http {
    upstream ollama_backend {
        server localhost:11434;
    }

    map $http_authorization $api_key {
        ~Bearer\s+(.+) $1;
    }

    server {
        listen 80;
        server_name ai.yourteam.com;

        location / {
            if ($api_key != "your-secure-api-key") {
                return 401;
            }

            proxy_pass http://ollama_backend;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
}

إعداد OpenWebUI متعدد المستخدمين

يقدم OpenWebUI إدارة المستخدم المدمجة:

  • تسجيل المستخدم والمصادقة
  • سجل المحادثة لكل مستخدم
  • لوحة تحكم إدارية للمستخدمين
  • التحكم في الوصول بناءً على الأدوار

توازن الأحمال بين عدة GPUs

التوزيع الدوراني مع nginx

upstream ollama_cluster {
    server gpu-node-1:11434;
    server gpu-node-2:11434;
    server gpu-node-3:11434;
}

server {
    listen 80;
    location / {
        proxy_pass http://ollama_cluster;
    }
}

استراتيجية ترتيب الطلبات

  • vLLM يتعامل مع الطلبات المتزامنة من خلال التجميع المستمر
  • Ollama ينظم الطلبات تلقائيًا
  • تأكد من عدد الطلبات المتزامنة القصوى بناءً على VRAM

النشرات المتقدمة

RAG (الاسترجاع المعزز بالgeneration)

# مثال على إعداد RAG مع LangChain
from langchain.llms import Ollama
from langchain.embeddings import OllamaEmbeddings
from langchain.vectorstores import Chroma
from langchain.chains import RetrievalQA

# تهيئة النماذج
llm = Ollama(model="llama3:8b", base_url="http://localhost:11434")
embeddings = OllamaEmbeddings(model="nomic-embed-text")

# إنشاء قاعدة المتجهات
vectorstore = Chroma.from_documents(
    documents=docs,
    embedding=embeddings,
    persist_directory="./chroma_db"
)

# إنشاء سلسلة RAG
qa_chain = RetrievalQA.from_chain_type(
    llm=llm,
    chain_type="stuff",
    retriever=vectorstore.as_retriever(search_kwargs={"k": 3})
)

# استعلام
result = qa_chain.run("ما هي سياسة الإجازات في شركتنا؟")

التخصيص للمهام الخاصة بالفريق

# التخصيص مع Unsloth (كفاءة الذاكرة)
from unsloth import FastLanguageModel

model, tokenizer = FastLanguageModel.from_pretrained(
    model_name="unsloth/llama-3-8b",
    max_seq_length=2048,
    load_in_4bit=True,
)

model = FastLanguageModel.get_peft_model(
    model,
    r=16,  # رتبة LoRA
    lora_alpha=16,
    lora_dropout=0,
    target_modules=["q_proj", "k_proj", "v_proj", "o_proj"],
)

# تدريب على بياناتك
trainer.train()

# حفظ النموذج المخصص
model.save_pretrained("./models/company-llama-3-8b")

المراقبة والشفافية

مترس Prometheus

# إضافة إلى docker-compose.yml
  prometheus:
    image: prom/prometheus
    ports:
      - "9090:9090"
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml

  grafana:
    image: grafana/grafana
    ports:
      - "3001:3000"
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=admin

المترسات المهمة للمراقبة

  • استخدام GPU ودرجة الحرارة
  • استخدام VRAM
  • التأخير والكمية المُرسلة
  • طول قائمة الطلبات
  • أوقات تحميل النموذج
  • سرعة إنتاج التوكنات

أفضل ممارسات الأمان

أمن الشبكة

  • نشر خلف جدار ناري أو مسؤول عن الشبكة
  • استخدام TLS/SSL للوصول الخارجي
  • تنفيذ الحد من المعدل
  • تحديثات أمان دورية

خصوصية البيانات

  • الاحتفاظ بالنماذج والبيانات محليًا
  • تشفير وحدات التخزين
  • مراجعة سجلات الوصول
  • تنفيذ سياسات الاحتفاظ بالبيانات

التحكم في الوصول

  • تجديد مفاتيح API
  • مصادقة المستخدم
  • أذونات بناءً على الأدوار
  • إدارة الجلسات

تحليل التكاليف وعائد الاستثمار

تكلفة الملكية الكاملة (3 سنوات)

المملوك محليًا (إعداد RTX 4090)

  • التكلفة الأولية للمعدات: 2500 دولار
  • الكهرباء (450W @ 0.12 دولار/kWh، 24/7): 475 دولار سنويًا = 1425 دولار لـ 3 سنوات
  • الصيانة/التحديثات: 500 دولار لـ 3 سنوات
  • التكاليف الإجمالية لـ 3 سنوات: 4425 دولار

الخادم السحابي (مثيل GPT-4)

  • الاستخدام: متوسط 1 مليون توكن يوميًا
  • التكلفة: 0.04 دولار لكل 1000 توكن
  • اليومي: 40 دولار
  • التكاليف الإجمالية لـ 3 سنوات: 43800 دولار

الادخار: 39375 دولار (تقليل 89% في التكلفة)

تحليل التعادل

  • الفريق الذي يعالج 500K توكن يوميًا: 4-6 أشهر
  • الفريق الذي يعالج 1 مليون توكن يوميًا: 2-3 أشهر
  • الفريق الذي يعالج 2 مليون توكن يوميًا أو أكثر: 1-2 شهر

استراتيجيات التوسع

التوسع العمودي

  1. إضافة VRAM (تحديث GPU)
  2. زيادة الذاكرة النظامية للسياقات الأكبر
  3. تخزين أسرع لتحميل النماذج

التوسع الأفقي

  1. إضافة عقد GPU إضافية
  2. تنفيذ توازن الأحمال
  3. التنبؤ الموزع مع Ray
  4. توزيع النموذج لنموذج أكبر

النهج الهجين

  • تخصيص محلي لمهام حساسة/ الروتينية
  • خدمة API سحابية لفترات الذروة أو النماذج المتخصصة
  • تحسين التكلفة من خلال التوجيه الذكي

التحديات الشائعة والحلول

التحدي: وقت تحميل النموذج

  • الحل: الاحتفاظ بالنموذج المستخدم بشكل متكرر في VRAM، استخدام تحميل النموذج

التحدي: عدة مستخدمين متزامنين

  • الحل: تنفيذ ترتيب الطلبات، استخدام تجميع مستمر من vLLM

التحدي: VRAM محدودة

  • الحل: استخدام نماذج مُكمّمة (Q4/Q5)، تنفيذ تبديل النموذج

التحدي: أداء غير متسق

  • الحل: مراقبة درجة حرارة GPU، تنفيذ تبريد مناسب، استخدام حجم دفعات متسق

التحدي: تحديثات النموذج

  • الحل: نصوص تحديث النموذج التلقائية، إدارة الإصدارات، إجراءات الرجوع

قائمة المهام للبدء

  • اختر GPU بناءً على حجم الفريق والميزانية
  • تجميع أو شراء المعدات
  • تثبيت Ubuntu 22.04 أو توزيع Linux مشابه
  • تثبيت قيادة NVIDIA وحزمة CUDA
  • تثبيت Docker وdocker-compose
  • نشر stack Ollama + OpenWebUI
  • سحب 2-3 نماذج (ابدأ بـ Llama 3.1 8B)
  • تكوين الوصول الشبكي والمصادقة
  • تكوين المراقبة (إحصائيات GPU على الأقل)
  • تدريب الفريق على استخدام واجهة API أو واجهة الويب
  • وثّق نشر النموذج وإجراءات الوصول
  • خطط للنسخ الاحتياطي والتعافي من الكوارث

الروابط المفيدة