Headroom: أداة نتفليكس التي تجعل وكلاء الذكاء الاصطناعي أرخص بـ 10 أضعاف

BBetter Stack
Computing/SoftwareSmall Business/StartupsInternet Technology

Transcript

00:00:00هذه هي Headroom، أداة مفتوحة المصدر تضغط كل ما يقرأه وكيل الذكاء الاصطناعي الخاص بك،
00:00:04أي استدعاءات الأدوات، وملفات التعليمات البرمجية، وRAG، قبل أن تصل إلى النموذج اللغوي الكبير، مما يعني أنه يمكنك تقليل الرموز
00:00:09بنسبة 60 أو حتى 95% للحصول على نفس الإجابة تماماً. والجزء الذكي هو أنها قابلة للعكس، لذا
00:00:14يمكن للنموذج طلب المعلومات الكاملة مرة أخرى متى احتاج إليها فعلياً. لكن الضغط
00:00:18عادة ما يعني فقدان شيء ما، فكيف يمكنك إزالة معظم السياق وما زلت تحصل على الإجابة
00:00:23الصحيحة؟ هذا سؤال مثير للاهتمام حقاً، لذا اضغط على اشتراك ودعنا نكتشف ذلك.
00:00:31إذا سبق لك استخدام أداة مثل ClaudeCode، فأنت تعلم أنها تستهلك الكثير من الرموز. كل استدعاء لأداة
00:00:35يمكن أن يفرغ سجلات JSON ضخمة، وهي في الغالب مجرد ضوضاء، مما يشتت الانتباه عن المعلومات المهمة،
00:00:40وكل هذا يتم حشوه في نافذة السياق، وهو ما تدفع ثمنه.
00:00:45خاصة إذا كنت تستخدم شيئاً مثل Opus في وضع UltraCode، والذي يشغل سير عمل ديناميكي،
00:00:50مما يؤدي إلى تشغيل وكلاء فرعيين متوازيين بدون حد أقصى للرموز. ولهذا السبب قام Tejas Chopra، وهو مطور أول في Netflix،
00:00:57بإنشاء Headroom، التي تعمل عن طريق اكتشاف نوع المحتوى والاحتفاظ بالمعلومات المهمة.
00:01:01بالنسبة لمصفوفات JSON، فهي تحتفظ بالحالات الشاذة والحواف، ولديها ضاغط تعليمات برمجية يقرأ
00:01:06شجرة النحو الفعلية، وعندما تقرأ سجلات البناء، فإنها تحتفظ بالإخفاقات وتتخلص من الاختبارات الناجحة.
00:01:11لكن إليك الجزء المثير للاهتمام. بالنسبة للنص العادي، تستخدم Headroom نموذجها الخاص المسمى CompressBase،
00:01:17الذي دربه Tejas بنفسه خصيصاً للضغط، وهذا النموذج يعمل محلياً على جهازك.
00:01:22تدعي Headroom أنها وفرت بالفعل للمستخدمين حوالي 700 ألف دولار من الرموز،
00:01:26والأمر الذكي حقاً هو أنها تترك خيطاً في النص المضغوط،
00:01:30يحتوي على تجزئة يمكن للنموذج استخدامها لاستعادة البيانات غير المضغوطة إذا احتاج إليها في أي وقت.
00:01:35الآن، إذا كنت قد شاهدت فيديو جيمس عن Caveman، فهو يقلل السياق أيضاً،
00:01:39لكن من الاتجاه المعاكس، وسأشرح المزيد عن ذلك لاحقاً في الفيديو.
00:01:43ولكن الآن، دعنا نرى مثالاً أساسياً على Headroom لفهم كيفية عملها.
00:01:46تعمل Headroom باستخدام خادم Python يقع بين تطبيقك،
00:01:50أي يمكن أن تكون رموزاً برمجية زاحفة، وعلى سبيل المثال، خوادم Anthropic.
00:01:54لذا عندما تعود نتيجة استدعاء الأداة، يقوم الوكيل بضغطها باستخدام لغة Rust خلف الكواليس،
00:01:59ويرسل النسخة المضغوطة فقط إلى واجهة برمجة التطبيقات.
00:02:01يمكنك تثبيت الخادم باستخدام pip، لكنني سأستخدم uv وأتأكد من أن إصدار Python
00:02:06هو 3.12، لأنه لن يعمل على إصدارات أحدث من ذلك.
00:02:09ثم قم بتشغيل أمر وكيل headroom من هذه المكتبة، والذي يقوم بتشغيل الوكيل على هذا المنفذ.
00:02:14تحتوي Headroom أيضاً على SDK لـ TypeScript أو Python،
00:02:17وفي العرض التوضيحي، سنستخدم لغة Python لإنشاء تطبيق باستخدام SDK الخاص بـ Claude.
00:02:22لذا يمكننا تثبيت كلاهما هكذا، ونحن جاهزون للبدء في التطبيق.
00:02:25الآن، الخطة هي أن أريكم كيفية استخدام Headroom مع ClaudeCode لاحقاً،
00:02:29ولكنني أردت فقط أن أريكم كيف تعمل خلف الكواليس أولاً.
00:02:32بالنسبة لهذا التطبيق، لدينا مطالبة من المستخدم لقراءة جميع ملفات السجل ومعرفة الخطأ،
00:02:36بالإضافة إلى السبب الجذري. ومن هنا، سنقوم بتزييف استدعاء الأداة.
00:02:40لذا سنجعل Claude يقوم باستدعاء أداة bash لقراءة ملف سجل الخادم،
00:02:44الذي يحتوي على مجموعة من السجلات المزيفة ويتم استيراده هنا في الأعلى.
00:02:47وبعد ذلك سنقوم بإرجاع نتائج استدعاء الأداة.
00:02:49الآن، السبب في أننا لا نعطي Headroom ملف النص مباشرة
00:02:52هو أنها تضغط فقط مخرجات استدعاء الأداة.
00:02:54لذا هنا نحدد النموذج، وتحته نستخدم دالة ضغط headroom
00:02:59لأخذ الرسالة مع النموذج لعد الرموز بدقة.
00:03:02Headroom لا تستخدم Haiku فعلياً.
00:03:04ثم نعطيها عنوان URL الأساسي للوكيل.
00:03:06وبعد ذلك لدينا مجموعة من سجلات التحكم لأغراض الاختبار،
00:03:08تظهر لك الرسالة قبل وبعد headroom،
00:03:11وبعض سجلات التحكم الإضافية التي تظهر نسبة التوفير.
00:03:13وبعد ذلك، نمرر الرسالة المضغوطة من headroom إلى ClaudeCode،
00:03:17الذي يحتوي أيضاً على مطالبة المستخدم.
00:03:18لذا الآن إذا قمنا بتشغيل ذلك الملف، يمكننا رؤية أن headroom قد وفرت 98% من الرموز.
00:03:23إليك الرموز قبل، وإليك الرموز بعد ذلك.
00:03:26إذن فقد وفرت أكثر من 17,000 رمز.
00:03:28ومن السهل رؤية ذلك عندما ننظر إلى ما قبل وما بعد.
00:03:31لذا إذا قمنا بالتمرير للأعلى، فهذا هو ما قبل، وهذا هو ما يتم إرساله عادةً إلى ClaudeCode.
00:03:35نحصل على مطالبة المستخدم، واستدعاء الأداة، واستجابة الأداة، وهي ملف السجل بالكامل.
00:03:39وإذا نظرنا هنا إلى ما ترسله headroom، يمكننا رؤية أننا نحصل على نفس رسالة المستخدم واستدعاء الأداة،
00:03:43لكن استجابة الأداة أقل بكثير.
00:03:45وما فعلته هنا هو استخدام الضغط الإحصائي لإسقاط الرموز الزائدة.
00:03:50لذا فقد أزالت 419 سجل معلومات متشابه وضغطتها إلى ملخص.
00:03:54الآن هنا يمكننا رؤية أن headroom تخبر Claude أن هذه هي المخرجات المضغوطة.
00:03:58يمكنه استعادتها باستخدام هذه التجزئة.
00:04:00الآن هنا نرى إحدى العيوب الفورية لـ headroom وهي أن Claude يظن أنه لا يملك
00:04:05معلومات كافية لإكمال المهمة، لكنه يملكها بالتأكيد.
00:04:08لذا ما سنفعله هو تشغيل ملفنا مرة أخرى.
00:04:10ويمكننا رؤية أنه هذه المرة لا يزال لدينا توفير بنسبة 98%، لكن لدينا معلومات أكثر بكثير من Claude.
00:04:16دعونا نجرب عرضاً توضيحياً آخر.
00:04:17كالعادة، نحتاج إلى تشغيل وكيل headroom، ولكن هذه المرة أعطيه المزيد من المعلمات.
00:04:21لذا هنا يمكننا رؤية أنني أضيف قيمة ML، التي تستخدم النموذج المضغوط محلياً لضغط النص العادي.
00:04:26وقد أضفت تعليمة برمجية لإتاحة الضاغط المدرك للتعليمات البرمجية.
00:04:30ثم أضفت علامة إدراك التعليمات البرمجية لتشغيله.
00:04:32لذا يمكننا الآن رؤية أنه مفعل هنا.
00:04:34ثم سأقوم بتشغيل ClaudeCode، ولكن أولاً سأضبط عنوان URL الأساسي للوكيل.
00:04:39ومع وجود ذلك، سأعطي Claude مطالبة بقراءة كل ملف TS في هذا المشروع
00:04:44وإعطائي نظرة عامة عميقة عما يفعله هذا المشروع مع استشهادات بالتعليمات البرمجية ذات الصلة.
00:04:49وبعد فترة، يعطيني استجابة يخبرني فيها أنه قرأ جميع ملفات TypeScript
00:04:53عبر الحزم الخمس وأعطاني نظرة عامة افتراضية.
00:04:56ولكن إذا قمنا بتشغيل أمر السياق الشرطي، الذي قمت به سابقاً، يمكننا رؤية أنه استخدم 89.1 ألف رمز.
00:05:02الآن ذهبت بالفعل وقمت بتشغيل مطالبة مماثلة في Claude دون استخدام headroom.
00:05:06وإذا قمنا بالتمرير للأسفل ورأينا أين تسببنا في أمر السياق الفرعي،
00:05:10هذا استخدم المزيد من الرموز.
00:05:11الآن، لست متأكداً لماذا اختار استخدام نافذة سياق Opus المليون هنا.
00:05:16واختار نافذة سياق 200 ألف هنا، ولكن يمكننا عمل curl لهذه النهاية بتنسيق jq
00:05:21لمعرفة بالضبط أين كان الضغط من الوكيل.
00:05:23الآن، هذا يحتوي على الكثير من المعلومات، لذا استغرق الأمر بعض الوقت للعثور عليه.
00:05:26ولكن إذا قمنا بالتمرير للأعلى، يمكننا رؤية عدد الرموز التي تم توفيرها بواسطة ضغط headroom
00:05:30وحتى معرفة مقدار المال الذي وفره الضغط لنا.
00:05:32الآن، بالطبع، كل هذا كان من مطالبة واحدة فقط.
00:05:35لكن تخيل لو كان لدي جلسات ClaudeCode متعددة قيد التشغيل وكان لدي headroom يضغط جميع استدعاءات
00:05:39الأدوات. تخيل فقط عدد الرموز الإضافية التي سأوفرها.
00:05:42أريد أيضاً أن أشير إلى أنه عندما قمت بتشغيل المطالبة بالضبط بجهود منخفضة على Opus،
00:05:46لم تقم headroom فعلياً بأي توفير في الرموز.
00:05:49فقط عندما انتقلت من منخفض إلى متوسط كانت وفورات الرموز مرئية.
00:05:53لذا ربما إذا كنت على مستوى عالٍ، أو مرتفع جداً، أو حتى الحد الأقصى، لكانت ستوفر المزيد من الرموز.
00:05:57لكن على أي حال، كانت تلك نظرة عامة سريعة على headroom.
00:06:00وبالطبع، هناك العديد من الميزات التي كان بإمكاني استعراضها،
00:06:03مثل ذاكرة الوكيل المتقاطع، التي تسمح لـ Claude وCodex وغيرها من الأدوات
00:06:07بمشاركة نفس السياق المضغوط تماماً.
00:06:09ميزة Headroom Learn، التي تنقب في جلساتك الفاشلة لمعرفة ما ضغطته
00:06:12بشدة وتتعلم حتى لا تكرر نفس الخطأ في المستقبل،
00:06:15بالإضافة إلى عمليات التكامل مع حزم SDK الشهيرة.
00:06:18ولكن هناك شيء مهم نوعاً ما يجب مراعاته بشأن Headroom.
00:06:21في كل مرة لا يحصل النموذج على المعلومات التي يحتاجها
00:06:24ويطلب من Headroom تقديم البيانات الكاملة، فإنه يقوم برحلة ذهاب وإياب ثانية،
00:06:28مما يعني نوعاً ما أنك ينتهي بك الأمر باستخدام رموز أكثر مع Headroom في بعض الحالات مما لو لم تكن موجودة.
00:06:33لكنني أعتقد أن هذه هي ميزة استخدام ميزة Headroom Learn،
00:06:36التي تحاول منع حدوث ذلك أكثر فأكثر في المستقبل.
00:06:39لكن هل تتذكر عندما تحدثت عن Caveman في وقت سابق من الفيديو؟
00:06:42حسناً، يقلل Caveman الرموز عن طريق توجيه النموذج للاستجابة في أجزاء قصيرة،
00:06:46وإسقاط الكلمات الحشو وما إلى ذلك.
00:06:48ولكن كما رأيت للتو في العرض التوضيحي، تقوم Headroom بتقليص ما يقرأه النموذج
00:06:51قبل أن يصل حتى إلى النموذج.
00:06:52لذا أحدهما يقطع المخرجات بينما يقطع الآخر المدخلات،
00:06:56مما يعني تقنياً أنه يمكنك استخدامهما معاً لتحقيق أقصى قدر من توفير الرموز،
00:07:00إذا كنت تهتم حقاً بتوفير الرموز كثيراً.

Key Takeaway

تقلل أداة Headroom تكاليف استهلاك وكلاء الذكاء الاصطناعي عبر ضغط المدخلات وتوفير ميزة استعادة البيانات الكاملة عند الحاجة، مما يؤدي إلى خفض استخدام الرموز بنسبة تصل إلى 95%.

Highlights

  • Headroom هي أداة مفتوحة المصدر تعمل على تقليل استهلاك الرموز البرمجية (tokens) لوكلاء الذكاء الاصطناعي بنسبة تتراوح بين 60% و95%.

  • تستخدم الأداة تقنيات ضغط متخصصة لمصفوفات JSON، وسجلات البناء، والتعليمات البرمجية، بالإضافة إلى نموذج CompressBase المحلي للنصوص العادية.

  • تتم عملية الضغط خلف الكواليس باستخدام خادم مكتوب بلغة Python ولغة Rust، مما يسمح للنموذج باستعادة البيانات الأصلية عبر تجزئة (hash) في حال الحاجة.

  • تساهم الأداة في تقليل تكاليف استخدام النماذج اللغوية الكبيرة، حيث تدعي توفير حوالي 700 ألف دولار من تكاليف الرموز للمستخدمين.

  • تتضمن الأداة ميزة Headroom Learn التي تحلل الجلسات الفاشلة لتعديل سياسات الضغط وتجنب فقدان المعلومات الضرورية مستقبلاً.

Timeline

آلية عمل Headroom وفوائدها

  • تضغط الأداة ملفات التعليمات البرمجية، وRAG، واستدعاءات الأدوات قبل وصولها للنموذج اللغوي.
  • توفر الأداة إمكانية عكس عملية الضغط لاستعادة المعلومات الأصلية عند احتياج النموذج لها.
  • تستهدف الأداة التخلص من ضجيج سجلات JSON الضخمة لتركيز نافذة السياق على المعلومات الجوهرية.

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

طرق التنفيذ والتكامل التقني

  • يتم تشغيل خادم Headroom محلياً باستخدام Python 3.12 وأداة uv.
  • توفر الأداة SDKs للغات TypeScript وPython لدمجها مباشرة في تطبيقات الذكاء الاصطناعي.
  • تتم عملية الضغط الفعلي باستخدام لغة Rust خلف الكواليس لإرسال النسخ المصغرة فقط إلى واجهة برمجة تطبيقات النموذج.

تتطلب الأداة تثبيت خادم وربطه بمسار الوكلاء البرمجيين. عند إجراء استدعاء لأداة، تقوم Headroom باعتراض المخرجات وضغطها قبل إرسالها للنموذج، مع إبقاء خيط نصي يحتوي على تجزئة تسمح للوكيل بطلب البيانات الكاملة عند الضرورة.

تحليل الأداء والنتائج العملية

  • حققت الاختبارات توفيراً في الرموز بنسبة 98% في بعض سيناريوهات قراءة السجلات.
  • تظهر ميزة الضغط بوضوح أكبر عند رفع مستويات الأداء في النماذج مثل Opus.
  • يؤدي تقليل المدخلات المباشر إلى خفض التكلفة الإجمالية بشكل ملموس للمطالبات الفردية والجلسات المتعددة.

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

الميزات المتقدمة وتكامل Caveman

  • تدعم الأداة ذاكرة الوكيل المتقاطع للسماح بمشاركة السياق المضغوط بين أدوات مختلفة.
  • تسمح ميزة Headroom Learn بتطوير دقة الضغط بناءً على تجارب الجلسات السابقة.
  • يمكن دمج Headroom مع أداة Caveman التي تركز على تقليص مخرجات النموذج لتحقيق أقصى توفير ممكن.

تتكامل Headroom مع بيئات عمل متنوعة وتوفر ميزات إضافية لتطوير الأداء المستمر. بوجود تقنية Headroom Learn، يتم تقليل حالات الرحلات الذهاب والإياب لطلب البيانات الكاملة، كما يفتح دمجها مع أدوات تقليص المخرجات مثل Caveman مجالاً لتحسين كفاءة استخدام الرموز في كلا اتجاهي التواصل.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video