Hugging Faceتاريخ نشر المصدر

AnyLanguageModel 1.0: عام واحد من النماذج المحلية على منصات آبل

في نوفمبر الماضي، قدّمنا AnyLanguageModel على هذه المدونة: بديل جاهز الاستبدال لإطار عمل Foundation Models من Apple يتيح لك اختيار النموذج ومزوّد الخدمة الذي يستخدمه تطبيقك. سمعنا من مطوّري التطبيقات الذين كانوا فضوليين حيال النماذج المحلية لكنهم لم يكونوا دائمًا متأكدين من كيفية البدء.

في نوفمبر الماضي، قدّمنا AnyLanguageModel على هذه المدونة: بديل جاهز الاستبدال لإطار عمل Foundation Models من Apple يتيح لك اختيار النموذج ومزوّد الخدمة الذي يستخدمه تطبيقك. سمعنا من مطوّري التطبيقات الذين كانوا فضوليين حيال النماذج المحلية لكنهم لم يكونوا دائمًا متأكدين من كيفية البدء. كما أرادوا تجنّب التعقيد الإضافي الناجم عن دعم مزوّدي استدلال متعددين. وقد نشأ AnyLanguageModel من تلك الملاحظات.

للاستدلال المحلي والاستدلال المستضاف نقاط قوة لكل منهما، ولكل منهما دوره في بناء هذا الجيل الجديد من التطبيقات الذكية. إن الواجهة البرمجية المشتركة تجعل اختيار النموذج المناسب لكل مهمة أمرًا أسهل.

بعد عام وعشرات الإصدارات، AnyLanguageModel 1.0 صدر الآن، إلى جانب swift-huggingface 1.0 و swift-xet 1.0.

إليك ما تغيّر، وما هو قادم:

واجهة برمجة تطبيقات متوافقة دون تغييرات

لا تزال الفكرة الأساسية لـ AnyLanguageModel كما هي: استخدم واجهة Foundation Models API مع النموذج المناسب لتطبيقك. للبدء، غيّر import بيان:

- import FoundationModels
+ import AnyLanguageModel

ثم يعمل رمز الجلسة نفسه مع نموذج النظام، ومع النماذج مفتوحة الأوزان عبر llama.cpp و MLX و Core ML، ومع مزودي الاستضافة المذكورين أدناه.

خلال العام الماضي، أضفنا عدة ميزات رئيسية:

  • استدعاء الأدوات يعمل مع كل مزوّد خدمة.
  • التوليد الموجَّه يعمل مع كل مزوّد أيضًا، بما في ذلك المزوّد المتداخل @Generable الأنواع ومصفوفات منها.
  • دعم الصور يتيح لك إرفاق صور بالأوامر باستخدام صيغة Foundation Models 27، بما في ذلك عند استخدام نموذج النظام على iOS وmacOS وvisionOS 27.

على OS 27، يعمل AnyLanguageModel أيضًا مع أي نموذج يتوافق مع واجهة Foundation Models' LanguageModel بروتوكول، بما في ذلك الذكاء الاصطناعي الأساسي النماذج.

إلى جانب AnyLanguageModel، قمنا أيضًا ببناء swift-huggingface و swift-xet لجلب تنزيلات النماذج المُسرّعة من الـ Hub إلى تطبيقات Swift.

النماذج المستضافة أيضًا

توسّع هذا العام أيضًا دعم النماذج المستضافة. يدعم AnyLanguageModel الآن:

  • واجهات Chat Completions وResponses من OpenAI
  • Open Responses، مع أي مزوّد يوفّر نقطة نهاية متوافقة
  • واجهة Messages من Anthropic، مع خيارات التفكير التكيفي والجهد
  • واجهة Gemini من Google
  • Ollama
  • Private Cloud Compute، على OS 27
  • Hugging Face Inference Providers، ونقاط نهاية أخرى متوافقة مع OpenAI مثل OpenRouter، عبر عنوان URL أساسي مخصص

مع Inference Providers، يمكنك استخدام نماذج مفتوحة الأوزان يتعذّر تشغيلها على الجهاز لكبر حجمها بنفس كود الجلسة:

let model = OpenAILanguageModel(
    baseURL: URL(string: "https://router.huggingface.co/v1/")!,
    apiKey: ProcessInfo.processInfo.environment["HF_TOKEN"]!,
    model: "openai/gpt-oss-120b",
    apiVariant: .chatCompletions
)

المزوّدون المستضافون يحصلون على نفس مزايا النماذج المحلية: التوليد الموجّه، واستدعاء الأدوات مع البث المباشر، وبيانات استخدام التوكنات في الردود.

أصبح التفكير (Reasoning) جزءًا من السجل أيضًا. عند تبديل المزوّد، يتم حذف كتل التفكير تلقائيًا من الطلبات إذا لم يكن المزوّد الجديد قادرًا على إعادة تشغيلها.

تأتي مفاتيح الـ API من closure بدلًا من سلسلة نصية، حتى يتمكن تطبيقك من جلب توكنات قصيرة الأجل من خادمك الخاص. يشرح README متى تسمح للمستخدمين بإحضار مفاتيحهم الخاصة ومتى توجّه الطلبات عبر وسيط (proxy).

يعمل AnyLanguageModel أيضًا على لينكس، حتى يعمل نفس الكود على خادم.

تحسّنت النماذج مفتوحة الأوزان

بينما سهّلنا استخدام النماذج المحلية، أصبحت النماذج نفسها أكثر قدرة، مما يجعل النماذج الصغيرة نقطة بداية جيدة. إليك بعض النماذج الأكثر تنزيلًا على الـ Hub حاليًا:

  • Gemma 4 E2B من Google، بصيغة GGUF، بحجم حوالي 3.4 GB عند Q4_0 مع تدريب واعٍ بالتكميم (quantization-aware training).
  • LFM2.5 2.6B من Liquid AI، بصيغة GGUF، بحجم حوالي 1.7 غيغابايت عند Q4_K_M.
  • Qwen3.8 27B لـ MLX من Alibaba، بحجم حوالي 16 غيغابايت عند 4 بتات.

أول نموذجين يعملان على iPhone، بينما يعمل Qwen3.8 27B على جهاز Mac بذاكرة 32 غيغابايت أو أكثر. اختيار نموذج MLX يستغرق سطرًا واحدًا:

let model = MLXLanguageModel(modelId: "mlx-community/Qwen3.8-27B-4bit")

وإذا كان لديك أربعة أجهزة Mac Studios بكل إمكاناتها في متناول يدك، GLM-5.3 من Z.ai يحتاج حوالي 1.5 تيرابايت بصيغة BF16. وبالنسبة لبقيتنا، فهو متاح من خلال Inference Providers.

الترقية إلى 1.0

dependencies: [
    .package(
        url: "https://github.com/huggingface/AnyLanguageModel",
        from: "1.0.0",
        traits: ["MLX"]
    )
]

إذا كنت تُرقّي تطبيقًا قائمًا، فاطلع على إرشادات الترحيل في AnyLanguageModel, swift-huggingfaceو swift-xet ملاحظات الإصدار للحصول على مساعدة في تحديث شفرتك البرمجية.

لقد شكّلت ملاحظات ومساهمات المجتمع أساسًا لعدة ميزات رئيسية لدينا. شكرًا لـ كل من ساهم على المساعدة في جعل AnyLanguageModel أكثر فائدة لمطوّري التطبيقات.

ما التالي

لقد أثبتت نماذج اللغة أنها أداة قوية لبناء الذكاء في المنتجات. وهي أيضًا واحدة من أنواع كثيرة من النماذج التي يمكن للمطورين توظيفها. نحن متحمسون لتطبيق النهج نفسه على قدرات أكثر: واجهات Swift مألوفة مع خيار من النماذج التي تعمل على الجهاز نفسه. قريبًا: نماذج تتخذ القرارات، ونماذج تستمع.

روابط

المصدر الأصلي

Hugging Face

ملاحظات المحتوى

النشر الأصلي والحقوق تعود إلى المصدر.

ترجمة آلية · يُرجى الرجوع إلى الأصل