مفتوح المصدر 🇺🇸 27.07.2026 21:04

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

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