نقاط رئيسية
- تحتاج أوزان النموذج إلى حوالي 2 بايت لكل معامل عند 16 بت، و1 عند 8 بت، و0.5 عند 4 بت، بالإضافة إلى مساحة للذاكرة المؤقتة للسياق.
- تُحاسَب وحدة معالجة الرسومات المستأجرة عن كل ساعة تشغيل، بينما تُحاسَب API فقط على الرموز التي ترسلها وتستقبلها.
- عند $0.15 لكل مليون رمز مدخل و$0.50 لكل مليون رمز مخرج، تكلف 20,000 دردشة يومياً بحجم 1,500 إدخال و500 مخرج $285 شهرياً.
- تفوز الاستضافة الذاتية عندما تحتاج إلى ضبط دقيق، أو نموذج مختلف، أو استخدام دون اتصال، أو حجم مرتفع ومستقر جداً.
الإجابة المختصرة: يعتمد ذلك على حجم الاستخدام لديك
إذا كنت تسأل عن كيفية استضافة أوزان LLM بنفسك، فإن الملخص الصادق هو أنه من السهل الحصول على نموذج يجيب على آلتك الخاصة، ومن الصعب تشغيله بتكلفة منخفضة لآخرين. يكفي جهاز كمبيوتر محمول أو وحدة معالجة رسومات سطح المكتب للاستخدام الشخصي. أما الخدمة التي يجب أن تجيب على العديد من المستخدمين في وقت واحد، وفي أي ساعة، فتحتاج إلى ذاكرة أكثر، وضبط أكثر، وشخص للحفاظ على تشغيلها.
البديل هو استدعاء نقطة نهاية متوافقة مع OpenAI مستضافة والدفع مقابل كل رمز. للأحمال الصغيرة والمتوسطة، يكون هذا أرخص تقريباً دائماً، لأنك لا تدفع مقابل وقت GPU الخامل. للأحمال الكبيرة جداً والمستقرة جداً، أو للمهام التي تحتاج نموذجك الخاص المُعدّل للدقة، يصبح امتلاك العتاد منطقياً. تضع الأقسام أدناه الأرقام على الجانبين لتجد نقطة التعادل الخاصة بك.
لا توجد خطة مجانية هنا. يمكنك الحصول على رصيد تجريبي لمرة واحدة بقيمة $0.50 في صفحة مفتاح API بعد تسجيل الدخول، وبعد ذلك تضيف رصيداً مسبق الدفع من $20. الرصيد التجريبي كافٍ لتشغيل اختبار حقيقي لموجهاتك الخاصة قبل اتخاذ أي قرار.
ما يتطلبه استضافة نموذج فعلياً
نموذج اللغة هو ملف كبير من الأرقام، الأوزان، يجب أن يبقى في ذاكرة سريعة أثناء تشغيل النموذج. حجم هذا الملف هو القيد الأول، ويمكنك حسابه بنفسك: المعاملات مضروبة في عدد البايتات لكل معامل.
| حجم النموذج | أوزان 16 بت | أوزان 8 بت | أوزان 4 بت |
|---|---|---|---|
| 8B معامل | 16 GB | 8 GB | 4 GB |
| 32B معامل | 64 GB | 32 GB | 16 GB |
| 70B معامل | 140 GB | 70 GB | 35 GB |
هذه الأوزان فقط. بالإضافة إلى ذلك، تحتاج إلى ذاكرة لنظام التخزين المؤقت للقيم الرئيسية، والتي تنمو مع طول كل محادثة نشطة، وبعض المساحة الإضافية لتشغيل الوقت. نموذج يتسع نظرياً في 24 GB قد ينفد من الذاكرة بمجرد طلب سياق طويل أو عدة مستخدمين متزامنين. اختزال البيانات إلى 4-bit يقلص الملف، لكنه يغير جودة المخرجات قليلاً، ويختلف التأثير حسب النموذج.
ثم هناك جانب البرمجيات. تحتاج إلى خادم استنتاج مثل llama.cpp أو Ollama أو vLLM، وطبقة HTTP لتمكين تطبيقاتك من الاتصال به، وطريقة لإعادة تشغيله عند تعطله، ومراقبة لتلاحظ متى يحدث ذلك. لا شيء من هذا صعب بمفرده. كل هذا يستغرق وقتاً، والوقت جزء من التكلفة.
الخيار الأول: تشغيله على جهازك الخاص
أرخص طريقة للبدء هي الآلة التي تمتلكها بالفعل. أدوات مثل Ollama وllama.cpp تحمل نموذجاً وتوفر خوادم محلية، وكثير منها يقدم أيضاً نقطة نهاية على طراز OpenAI، بحيث يمكن للكود الذي تكتبه ضدها لاحقاً أن يشير إلى API مستضاف بتغيير إعدادين فقط.
الاستضافة المحلية مناسبة عندما:
- أنت شخص واحد تجري التجارب، وعدة ثوانٍ لكل إجابة مقبولة؛
- البيانات يجب ألا تغادر الجهاز أبداً؛
- تريد تجربة نماذج مفتوحة مختلفة بسرعة؛
- لديك بطاقة رسومات (GPU) بذاكرة كافية وهي خاملة معظم اليوم على أي حال.
إنها غير مناسبة عندما تحتاج إلى خدمة الآخرين، أو عندما يكون النموذج الذي تريده أكبر من ذاكرتك، أو عندما تريد سياقات طويلة. مقارنة خاصة بنا بين النماذج المحلية بدون رقابة وواجهات API المستضافة تشرح المقايضات بتفصيل أكبر، بما في ذلك ما يتغير في جودة الإجابات بين النماذج المحلية الصغيرة والمستضافة الأكبر.
الكهرباء سطر حقيقي لكنه صغير للمستخدم الفردي. التكلفة الأكبر هي العتاد الذي اضطررت لشراؤه، والذي تدفع ثمنه سواء استخدمته أم لا. إذا كنت تمتلكه بالفعل، فإن التكلفة الهامشية منخفضة والاستضافة المحلية يصعب التغلب عليها للتجارب الخاصة.
الخيار الثاني: استئجار خادم GPU
عندما لا يكون جهازك الخاص كافياً، فإن الخطوة التالية هي استئجار GPU. تقدم الشركات استئجار الخوادم بالساعة لجهاز بكمية معينة من ذاكرة GPU. تختلف الأسعار كثيراً بين المزودين وتتغير غالباً، لذا تحقق من أسعارهم الحالية بدلاً من الاعتماد على أي رقم تقرأه في مقال، بما في ذلك هذا المقال.
ما يهم هو شكل الفاتورة. الخادم المستأجر يُحاسَب عن كل ساعة يكون فيها قيد التشغيل، سواء كان يجيب على طلب واحد أو لا شيء. إذا تركته يعمل طوال الشهر، فإن الحساب بسيط: الشهر يحتوي على حوالي 730 ساعة (8,760 ساعة في السنة مقسومة على 12). لنفترض، كمثال افتراضي وليس عرضاً، أن خادم مناسب يكلف $1 في الساعة. تشغيله على مدار الساعة يكلف 730 × $1 = $730 شهرياً قبل إضافة التخزين وعرض النطاق الترددي ووقتك الخاص.
يمكنك إيقاف الخادم عندما لا تستخدمه، لكنك تدفع ثمن ذلك من خلال التأخيرات: تحميل نموذج كبير إلى الذاكرة يستغرق وقتاً، ويضطر المستخدم الأول بعد فترة الخمول للانتظار. تقلل إعدادات التوسع التلقائي من هذا التأثير، لكنها تضيف تعقيداً خاصاً بها.
يتحدد نقطة التعادل مقابل API من خلال السعر. مليون رمز إدخال ومليون رمز إخراج تكلف $0.15 + $0.50 = $0.65 على هذا API. خادمك المفترض بسعر $730 يعادل 730 ÷ 0.65 ≈ 1,123 من هذه الأزواج، أو ما يقارب 1.1 مليار رمز إدخال و1.1 مليار رمز إخراج في شهر. تحت هذا الحجم، يكون تكلفة API أقل. فوقه، يمكن لخادم مستغل جيداً أن يتفوق، بشرط أن يتمكن فعلياً من مواكبة هذا الحمل، وهو ما يعتمد على النموذج، معالج الرسوميات (GPU) ومدى كفاءة ضبط الخادم.
الخيار الثالث: استخدام API مستضاف
طريق API يزيل العتاد، والخادم، ووقت الخمول. ترسل طلباً، تحصل على إجابة، وتدفع مقابل الرموز التي استُخدمت. التسعير هنا $0.15 لكل مليون رمز إدخال و$0.50 لكل مليون رمز إخراج، الدفع حسب الاستخدام من رصيد مسبق الدفع، بدون اشتراك. الرصيد لا ينتهي، والطلبات الفاشلة أو المرفوضة لا تُحتسب.
إليك كيف يبدو ذلك عند ثلاثة أحجام واقعية. يُفترض أن دورة دردشة عادية تستخدم 1,500 رمز مدخل (موجه النظام بالإضافة إلى السجل) و500 رمز مخرج.
- طلب واحد: 1,500 رمز إدخال تكلف 0.0015 × $0.15 = $0.000225، و500 رمز إخراج تكلف 0.0005 × $0.50 = $0.00025. معاً هذا يساوي $0.000475.
- 1,000 دردشة يومياً، 30 يوماً: 1,000 × $0.000475 = $0.475 يومياً، أو $14.25 شهرياً.
- 20,000 دردشة يومياً، 30 يوماً: 20,000 × $0.000475 = $9.50 يومياً، أو $285 شهرياً.
- مهمة دفعية من 100,000 طلب مع 2,000 رمز إدخال و400 رمز إخراج لكل طلب: الإدخال هو 200 مليون رمز، لذا 200 × $0.15 = $30؛ الإخراج هو 40 مليون رمز، لذا 40 × $0.50 = $20. المجموع هو $50.
عند الرقم الأوسط، تكلف API $285 شهرياً، وهو أقل بكثير من الخادم المفترض الذي يعمل دائماً بسعر $730. عند الرقم الأكبر، ستحتاج إلى حركة مرور أكبر بكثير قبل أن يلحق الخادم المستأجر. موجهاتك الخاصة تحدد الأرقام الحقيقية، لذا قم بقياس عينة بدلاً من التخمين. كتلة الاستخدام التي تعود مع كل إجابة تخبرك بعدد الرموز الدقيق.
رصيد التجربة بقيمة $0.50 يغطي حوالي 1,052 طلباً بحجم 1,500 إدخال و500 إخراج (0.50 ÷ 0.000475 ≈ 1,052)، وهو الكثير للاختبار. بعد ذلك، يمكنك شحن الرصيد بأي مبلغ صحيح من $20 إلى $500. الشحنات الأكبر تحمل مكافأة: +5% من $50، +10% من $100 و+15% من $200، لذا فإن شحن بقيمة $100 يمنح رصيداً بقيمة $110. التفاصيل موجودة في صفحة الأسعار. الدفع ببطاقة (Visa، Mastercard، Apple Pay، Google Pay) أو بالعملات المشفرة (USDT على TRC20، USDC على Base).
ما تفقده بعدم الاستضافة الذاتية
API ليس خالياً من المقايضات، ومن الأفضل معرفتها قبل البناء عليه.
- نموذج واحد. تحصل على نموذج مفتوح الأوزان واحد، يُشار إليه بـ
uncensored. لا يمكنك تبديل نموذج آخر أو تحميل أوزانك الخاصة. - بدون تدريب دقيق ونص فقط. لا توجد نقطة نهاية للتدريب، ولا تضمينات، ولا توليد صور أو صوت أو فيديو.
- حدود. المفتاح الكامل يسمح بـ 8 طلبات متزامنة و300 طلب في الدقيقة. المفتاح التجريبي يسمح بـ 2 و60. هذا يناسب معظم التطبيقات، لكن الدفعة الكبيرة جداً تحتاج إلى طابور من جانبك.
- السياق. نافذة السياق هي 100,000 رمز للموجه والإكمال.
- بياناتك تخرج من شبكتك. الموجهات لا تُستخدم للتدريب، لكنها تسافر إلى طرف ثالث. إذا لم يكن ذلك مقبولاً لمجموعة بيانات معينة، قم بالاستضافة الذاتية محلياً.
الاستضافة الذاتية هي الخيار الأفضل عندما يكون أي من هذه المتطلبات شرطاً أساسياً: ضبط دقيق على بياناتك الخاصة، نموذج محدد لا تقدمه API، التشغيل الكامل دون اتصال، أو حجم ثابت كبير بما يكفي لبقاء العتاد المملوك مشغولاً على مدار الساعة.
جرب API قبل شراء العتاد
اختبار لمدة ساعة يكلف أقل من ساعة واحدة من معظم الخوادم المستأجرة ويخبرك ما إذا كان النموذج يجيب على مدخلاتك بشكل جيد. نقطة النهاية متوافقة مع OpenAI، لذا إذا كان لديك بالفعل كود يتحدث مع خادم محلي، فأنت فقط تغير عنوان URL الأساسي، والمفتاح ومعرف النموذج. هذا النص البرمجي يبلغ أيضاً عن تكلفة كل استدعاء، باستخدام أرقام الاستخدام في الاستجابة:
from openai import OpenAI
client = OpenAI(
base_url="https://api.uncensoredllmhub.com/v1",
api_key="YOUR_API_KEY",
)
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise the pros and cons of self-hosting an LLM."}],
)
u = resp.usage
cost = u.prompt_tokens / 1_000_000 * 0.15 + u.completion_tokens / 1_000_000 * 0.50
print(resp.choices[0].message.content)
print(f"in={u.prompt_tokens} out={u.completion_tokens} cost=${cost:.6f}")
شغّله على بضع عشرات من موجهاتك الحقيقية، اجمع أسطر التكلفة، واضربها في حجمك اليومي المتوقع. هذا يعطيك رقماً يمكنك وضعه بجانب عرض سعر الأجهزة. إذا كنت تريد تفاصيل الإعداد، فإن التوثيق يسرد المعلمات المدعومة، بما في ذلك البث المتدفق، واستدعاء الدوال، ووضع JSON.
