تجربة واجهة برمجة التخزين عبر الأصل المقترحة في Transformers.js

Hugging FaceHugging Face
يهدف اقتراح واجهة برمجة التخزين عبر الأصل (Cross-Origin Storage API) إلى حل مشكلة التنزيل المتكرر والتخزين المؤقت لموارد نماذج الذكاء الاصطناعي ووقت التشغيل المشتركة عبر أصول ويب مختلفة. يعاني Transformers.js حاليًا من تخزين مكرر لأوزان النماذج وملفات Wasm بسبب عزل ذاكرة التخزين المؤقت للمتصفح. يحدد COS الملفات بواسطة التجزئة التشفيرية (cryptographic hash) بدلاً من عنوان URL، مما يتيح المشاركة عبر الأصل مع الحفاظ على التكامل والتحكم في الوصول.
Transformers.js تتيح لمطوري الويب تشغيل نماذج الذكاء الاصطناعي في المتصفح عبر مسارات عمل محددة المهام. ومع ذلك، يتم تنزيل النماذج الشائعة مثل Xenova/whisper-tiny.en وتخزينها مؤقتًا بشكل منفصل لكل أصل، مما يؤدي إلى تخزين مكرر (على سبيل المثال، 177 ميجابايت لمثال بسيط للتعرف التلقائي على الكلام). حتى ملفات وقت تشغيل WebAssembly مثل ort-wasm-simd-threaded.asyncify.wasm من ONNX Runtime يتم تخزينها مؤقتًا بشكل زائد عبر الأصول، على الرغم من المحتوى المتطابق. ويرجع ذلك إلى عزل ذاكرة التخزين المؤقت للمتصفح باستخدام مفاتيح عزل الشبكة بناءً على المواقع ذات المستوى الأعلى والإطار الحالي. تقدم واجهة برمجة التطبيقات المقترحة للتخزين عبر الأصول (COS) `navigator.crossOriginStorage` الذي يخزن الملفات المحددة بواسطة تجزئة تشفيرية (مثل SHA-256). يمكن للتطبيقات طلب مقبض ملف بواسطة التجزئة؛ إذا كان موجودًا، يقرؤونه مباشرة؛ إذا لم يكن موجودًا، يقومون بتنزيله وتخزينه مع خيارات للرؤية: `origins: '*'` للمشاركة العالمية، أو قائمة من الأصول للمشاركة المقيدة، أو نفس الموقع فقط. يتحقق المتصفح من التجزئة عند الكتابة لضمان السلامة، ولا يمكن ترقية الرؤية إلا، وليس خفضها، لمنع التضييق الخبيث. COS هو اقتراح في مرحلة مبكرة لم يتم تنفيذه أصليًا بعد، ولكن يمكن اختباره عبر إضافة متصفح.
المصدر: Hugging Face blog — الأصلي
منشوراتنا السابقة حول هذا الموضوع ↓
أخبار جديدة