نقاط رئيسية
- أفضل نموذج محلي هو الأكبر الذي يناسب ذاكرة VRAM الخاصة بك بسرعة قابلة للاستخدام، وليس الأفضل شهرة.
- يكشف Ollama عن نقطة نهاية متوافقة مع OpenAI على جهازك الخاص، لذا يعمل نفس كود العميل محلياً ومستضافاً.
- يعطي التشغيل المحلي الخصوصية وإمكانية الاستخدام دون اتصال؛ بينما يوفر التشغيل المستضاف نموذجاً أكبر، ولا يتطلب عتاداً ولا إعداداً.
- نقدم نقطة نهاية مستضافة فقط: لا يوجد تنزيل للنموذج من هذه الخدمة.
الإجابة المختصرة: اختر بناءً على الذاكرة، ثم اختبر نموذجين أو ثلاثة
لا يوجد نموذج واحد هو الأفضل لهذا الغرض، لأن الحد الفاصل هو عتادك. يجب أن يتسع النموذج في ذاكرة وحدة معالجة الرسومات (أو في ذاكرة النظام، ولكن ببطء أكبر) مع ذاكرة التخزين المؤقت الخاصة به. القاعدة العملية بسيطة: ابحث عن أكبر نموذج يناسب ذاكرتك بشكل مريح ويستمر في الإجابة بسرعة يمكنك التعايش معها، ثم قارن بين نموذجين أو ثلاثة مرشحين باستخدام موجّهاتك الخاصة.
تتغير أسماء النماذج وترتيبها كل بضعة أسابيع، لذا فإن أي قائمة تُكتب اليوم تتقادم بسرعة. تخطِ قوائم المتصدرين واستخدم طريقة مختصرة: تصفح مكتبة Ollama وتحميلات المجتمع، وقم بالتصفية للنماذج الموصوفة بأنها غير خاضعة للرقابة، أو مُزالة التقييد (abliterated)، أو مُعدّلة للعب الأدوار، واسحب نموذجاً صغيراً وآخر متوسط الحجم، وشغّل نفس عشرة موجّهات على كل منها. موجّهاتك الخاصة تخبرك أكثر من أي نتيجة في معيار شخص آخر.
إذا وجدت بعد ذلك أن النماذج التي تتسع لجهازك صغيرة جداً بالنسبة للجودة التي تريدها، فإن نقطة النهاية المستضافة هي البديل. يوضح باقي هذه الصفحة المفاضلة لتتمكن من اتخاذ القرار بالأرقام.
كيفية تحديد حجم النموذج لجهازك
ثلاثة أرقام تحدد ما الذي يعمل بشكل جيد: عدد المعاملات، والتكميم، وطول نافذة السياق.
المعاملات والتكميم
النموذج الذي يحتوي على معاملات أكثر يكتب عادةً بشكل أفضل، ويتبع التعليمات بموثوقية أكبر، ويحافظ على شخصية الشخصية لفترة أطول. لكن المعاملات تتطلب ذاكرة. عند الدقة الكاملة بـ 16 بت، يحتاج النموذج إلى حوالي بايتين لكل معامل، لذا يحتاج نموذج بـ 7 مليارات معامل إلى حوالي 14 غيغابايت قبل أي ذاكرة مؤقتة للسياق. يقلل التكميم من ذلك. يحتاج الإصدار بـ 4 بت إلى حوالي نصف بايت لكل معامل، لذا يتسع نفس نموذج الـ 7 مليارات معامل في حوالي 4 إلى 5 غيغابايت. تنخفض الجودة قليلاً مع كل خطوة للأسفل، ويكون الفقدان عادةً طفيفاً عند 4 إلى 5 بتات ويصبح ملحوظاً دون ذلك.
طول السياق
تتكلف نافذة السياق أيضاً ذاكرة، لأن النموذج يخزن ذاكرة تخزين مؤقت لكل شيء في المحادثة. تحتاج جلسة لعب الأدوار الطويلة أو قصة تحتوي على الكثير من النص السابق إلى ذاكرة تخزين مؤقت أكبر. يتيح لك Ollama ضبط حجم السياق لكل نموذج، وتستخدم القيمة الأكبر ذاكرة أكثر وتبطئ التوليد. تعمل العديد من الإعدادات المحلية بنافذة من بضعة آلاف من الرموز للبقاء سريعة، مما يعني أن النموذج ينسى بداية المحادثات الطويلة.
السرعة
إذا انسكب نموذج من ذاكرة وحدة معالجة الرسومات إلى ذاكرة النظام، فقد ينخفض معدل التوليد من سرعة قراءة مريحة إلى كلمة في كل مرة. غالباً ما يبدو نموذج أصغر يناسب ذاكرة وحدة معالجة الرسومات بالكامل أفضل من نموذج أكبر لا يناسبها، حتى لو كان النموذج الأكبر يكتب بشكل أفضل قليلاً.
تشغيل نموذج في Ollama واستدعاؤه من الكود
بمجرد تثبيت Ollama، يتطلب السحب والدردشة أمرين، ويأتي اسم النموذج الدقيق من صفحة المكتبة التي اخترتها:
ollama pull MODEL_NAME
ollama run MODEL_NAME
تقدم Ollama أيضاً واجهة برمجة تطبيقات متوافقة مع OpenAI على جهازك الخاص، افتراضياً عند http://localhost:11434/v1. هذا يعني أن نفس كود العميل يمكنه التحدث مع نموذج محلي أو مستضاف، ويمكنك التبديل عن طريق تغيير عنوان URL الأساسي واسم النموذج:
from openai import OpenAI
# Local Ollama (the key is ignored but must be non-empty)
local = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")
# Hosted endpoint
hosted = OpenAI(base_url="https://api.ornith.top/v1", api_key="YOUR_API_KEY")
def ask(client, model, text):
r = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": text}],
)
return r.choices[0].message.content
prompt = "Write a tense two-paragraph scene set in an abandoned lighthouse."
print(ask(local, "MODEL_NAME", prompt))
print(ask(hosted, "uncensored", prompt))
تشغيلهما على نفس الموجّهات هو أسرع طريقة للإجابة على السؤال لحالتك الخاصة. إذا كانت المخرجات المحلية جيدة بما فيه الكفاية، فأنت قد أنهيت الأمر ويتطلب الأمر منك فقط الكهرباء. إذا لم يكن كذلك، لديك معيار لما ستحصل عليه.
Ollama المحلي مقابل واجهة برمجة التطبيقات المستضافة
لا يوجد أفضل في كل الحالات. يلتزم هذا الجدول بما هو صحيح هيكلياً لكل نهج.
| النقطة | محلي مع Ollama | واجهة برمجة التطبيقات المستضافة |
|---|---|---|
| التكلفة الأولية | وحدة معالجة الرسومات الخاصة بك أو جهاز يحتوي على ذاكرة كافية | لا شيء؛ رصيد مسبق الدفع من $20 |
| تكلفة التشغيل | الكهرباء ووقتك | $0.15 لكل مليون رمز إدخال، $0.50 لكل مليون رمز إخراج |
| حجم النموذج | محدود بذاكرة جهازك | نموذج واحد يختاره المزود |
| يعمل دون اتصال | نعم | لا، يحتاج إلى إنترنت |
| تغادر البيانات جهازك | لا | نعم، تذهب الموجّهات إلى المزوّد؛ ولا تُستخدم موجّهاتنا للتدريب |
| اختيار النموذج | أي شيء يمكنك تنزيله | فقط الواحد المقدم |
| المستخدمون المتزامنون | مقيد بأجهزتك | حتى 8 طلبات متزامنة على مفتاح كامل |
| الإعداد | التثبيت، السحب، ضبط الإعدادات | تغيير عنوان URL الأساسي والمفتاح |
يفوز المحلي في الخصوصية، والاستخدام دون اتصال، وحرية الاختيار. إذا كان نصك يجب ألا يغادر جهازك أبداً، أو تريد تبديل النماذج أسبوعياً، شغّل محلياً. تفوز واجهة برمجة التطبيقات المستضافة في وقت الإعداد، وفي عدم إرباك وحدة معالجة الرسومات أثناء عملك، وفي خدمة تطبيق بعدة مستخدمين في وقت واحد.
من العدل أيضاً أن نقول ما لا نقدمه. هذه الخدمة هي نقطة نهاية مستضافة فقط. لا يوجد ملف نموذج للتحميل، ولا ضبط دقيق، ولا طريقة لجلب أوزانك الخاصة. إذا كنت تريد امتلاك النموذج، فإن Ollama هي الأداة المناسبة، ويتناول دليل واجهة برمجة تطبيقات LLM مفتوح المصدر مجموعة الخيارات الأوسع.
ما هي تكاليف الاستضافة، بعد الحساب
غالباً ما يظن الناس أن تشغيل النموذج المستضاف مكلف مقارنة بالتشغيل المحلي المجاني. لكن التشغيل المحلي ليس مجانياً إذا حسبنا تكلفة الأجهزة، والمقارنة تصبح أسهل مع استخدام ملموس. الأسعار هنا هي $0.15 لكل مليون رمز مدخل و $0.50 لكل مليون رمز مخرج.
- لعب أدوار عادي، 100 رسالة في اليوم. افترض أن كل دور يرسل 3000 رمز من السجل ويستقبل 300 رمز. المدخلات لكل دور: 3000 بسعر $0.15 لكل مليون هي $0.00045. المخرجات: 300 بسعر $0.50 لكل مليون هي $0.00015. هذا $0.0006 لكل دور، و$0.06 لـ 100 دور، حوالي $1.80 على مدار 30 يوماً.
- مشروع كتابة. 5 ملايين رمز مدخل و 1 مليون رمز مخرج في الشهر تكلف $0.75 بالإضافة إلى $0.50، أي المجموع $1.25.
- تطبيق صغير. 200 مليون رمز مدخل و 40 مليون رمز مخرج في الشهر تكلف $30 بالإضافة إلى $20، أي المجموع $50.
يمكنك فقط تحديد سعر وحدة معالجة الرسومات الخاصة بك، لكن الاستخدام الخفيف والمتوسط يكلف القليل جدًا عند الاستضافة. الحد الأدنى لشحن الرصيد بقيمة $20 يغطي فترة طويلة في المستويين الأولين، والرصيد لا ينتهي، لذا لن يختفي إذا أخذت شهرًا من الراحة. الشحنات الأكبر تحمل مكافأة: 5% من $50، و10% من $100، و15% من $200. التفاصيل الكاملة موجودة في صفحة الأسعار.
طريقة معقولة لدمج الاثنين
لا تحتاج إلى الاختيار مرة واحدة. يدير الكثيرون نموذجاً محلياً صغيراً للمسودات السريعة والملاحظات الخاصة، ويرسلون المهام الأطول أو الأكثر طلباً إلى نقطة النهاية المستضافة. بما أن الاثنين يتبعان تنسيق OpenAI، يمكن لتطبيقك الاحتفاظ بكائني عميل وتوجيه الطلب حسب المهمة، كما هو موضح في الكود أعلاه.
عند اختبار الجانب المستضاف، يمكن للمستخدمين الجدد المطالبة برصيد تجريبي مجاني بقيمة $0.50 بنقرة واحدة في صفحة مفتاح API، بدون بطاقة، لكل شخص، صالح لمدة 7 أيام. بناءً على الأرقام لكل دور المذكورة أعلاه، فهذا يعني مئات أدوار لعب الأدوار، وهو ما يكفي للمقارنة مع أفضل نموذج محلي لديك على نفس الموجّهات. يمكنك إنشاء مفتاح API بعد تسجيل الدخول باستخدام Google أو عبر البريد الإلكتروني وكلمة المرور. تذكر وثائق API المعلمات مثل temperature و top_p و stop و seed، والتي يتم تمريرها كما هي، لذا فإن إعدادات أخذ العينات المحلية الخاصة بك تنطبق.
بعض الحدود التي يجب التخطيط لها. يسمح المفتاح التجريبي بـ 2 طلبات متزامنة و 60 طلباً في الدقيقة؛ بينما يسمح المفتاح الكامل بـ 8 و 300. نافذة السياق هي 100,000 رمز، وهي أكبر بكثير مما يمكن لمعظم الإعدادات المحلية تشغيله بسلاسة. والقاعدة الوحيدة التي لا يتغير بإعدادات: النموذج مخصص للاستخدام القانوني للبالغين ولن ينتج محتوى جنسياً يتضمن القاصرين.
