بث مباشر 18.11 · الدفعة 318 نوفمبر، 19:00 بتوقيت موسكو — ورشة عملية مجانية لوكلاء الذكاء الاصطناعي · الدفعة 3 تبدأ 23.11ورشة 18 نوفمبر ←الدفعة 3 (23.11)
إصدارتحليل · على الرادارHabr AI→ المصدر

Avito تطوّر بوتاً لتحليل المؤشرات: الذكاء الاصطناعي يكتب النص، والكود التقليدي يجري الحسابات

طوّر فريق BI في Avito بوت Big10 Pulse على Mattermost، ليفحص كل صباح المؤشرات المالية الرئيسية ويرسل ملف PDF يتضمن مذكرة موجزة. الفكرة الأساسية: كل ما يمكن وصفه بقاعدة يبقى في الكود التقليدي، من جاهزية البيانات إلى عتبات الشذوذ ومساهمة الشرائح. يتلقى النموذج اللغوي حقائق حُسبت مسبقاً، ويكتفي بتحويلها إلى تعليق يخضع لاحقاً للفحص بحثاً عن ادعاءات مختلقة.

معالج بواسطة الذكاء الاصطناعي من Habr AI؛ بتحرير Hamidun News
Avito تطوّر بوتاً لتحليل المؤشرات: الذكاء الاصطناعي يكتب النص، والكود التقليدي يجري الحسابات
المصدر: Habr AI. كولاج: Hamidun News.
استمع للمقال
بطاقة الحقائق والأرقام
المعيارالتفاصيل
المصدر الأصليHabr AI ↗
رئيس التحرير
حقيقة رئيسية #1لا يبدأ البوت العمل حتى تتحدّث مصادر البيانات
حقيقة رئيسية #2يرصد الكود الشذوذ وفق قواعد، ولا يرصدُه النموذج من الرسم البياني
التوفير المقدّرنحو 99 ساعة عمل بشرية شهرياً

كل صباح، يفتح المحلل لوحة المؤشرات المالية، ويتحقق من تحديث البيانات، ويراجع الإيرادات. وإذا تغيّر الرقم فجأة، يبدأ البحث عن موضع التغيّر وسببه. نصف ساعة يومياً، بلا أي سحر، لكن لا يمكن تجاوز هذه الفحوص. قررت آيغول أحمدوفا وفاليريا سميرنوفا، مطوّرتا BI في Avito، إسناد هذا العمل الروتيني إلى بوت. وكانت النتيجة Big10 Pulse على منصة Mattermost الداخلية للشركة. وأبرز ما خلصتا إليه لا يتعلق بما يمكن إسناده إلى النموذج اللغوي، بل بما لا يجوز إسناده إليه.

لماذا لا يكفي تنبيه واحد

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

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

ما الذي يفعله الكود، وما الذي يفعله النموذج

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

بعد ذلك، يبحث البوت عن الشذوذ. فيقارن القيمة بقيمة الأسبوع السابق وبمتوسط سبعة أيام. وتعتمد الحدود على نوع اليوم والسجل التاريخي لكل مؤشر، فيما تستبعد قاعدة مستقلة الارتداد المتوقع بعد العطلات. يتولى الكود التقليدي كل هذه الحسابات، لأن النظام يجب أن يتخذ القرار نفسه عند تلقي البيانات نفسها. ولم يطلب الفريق من النموذج أن «ينظر إلى الرسم البياني ويقول إن كان يبدو شاذاً».

ثم يفكك البوت الفارق الإجمالي بحسب مجالات الأعمال وأنواع الإيرادات. ويرتّبها وفق مساهمتها، لا وفق أكبر نسبة مئوية. مثال: يتكوّن انخفاض إجمالي قدره 100 وحدة افتراضية من انخفاض بمقدار 80، وآخر بمقدار 30، وزيادة بمقدار 10، فيتضح من أين ينبغي البدء. وقد تنمو فئة صغيرة بعشرات النسب المئوية من دون أن تغيّر شيئاً في المحصلة.

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

فحص النص قبل الإرسال

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

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

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

مسائل أخرى تطلّبت المعالجة

يحفظ الاشتراك شريحة البيانات واللغة ونوع التقرير، ويُضبط عبر أزرار في Mattermost. وإذا اشترك عدة أشخاص في شريحة البيانات نفسها، تُعاد الاستفادة من الحساب. ويمكن طرح سؤال توضيحي بعد الملخص، وتخضع الإجابة للفحص مجدداً. ولا تتغير صلاحيات الوصول: لن يعرض البوت ما لا يستطيع المستخدم رؤيته في النظام الأصلي. ويراقب الفريق الاستخدام والأعطال عبر Grafana، ويعدّ ملاحظات القيادات والمديرين جزءاً من المنتج.

النتائج والقيود

كان عدد المشتركين أثناء الاختبار 9، وقدّر الفريق التوفير بنحو 99 ساعة عمل بشرية شهرياً (9 أشخاص × 30 دقيقة × 22 يوم عمل). ولاحقاً، اشترك 55 مستخدماً إضافياً من تلقاء أنفسهم. هذا تقدير حسابي، وليس قياساً فعلياً للوقت. والأكثر دلالة هو تغيّر طريقة العمل: بدلاً من قضاء 30–60 دقيقة في فحص التقرير، يقضي الشخص دقيقة أو دقيقتين في قراءة تحليل جاهز.

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

ما الذي يمكن الاستفادة منه

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

القصة

أسئلة وأجوبة حول الخبر

ما أبرز التفاصيل حول لماذا لا يكفي تنبيه واحد؟

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

ما أبرز التفاصيل حول ما الذي يفعله الكود، وما الذي يفعله النموذج؟

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

ما أبرز التفاصيل حول فحص النص قبل الإرسال؟

حتى مع مدخلات صحيحة، يميل النموذج إلى المبالغة في الاستنتاج. تقول الحسابات إن مجال الأعمال A قدّم المساهمة السلبية الرئيسية. لكن النص يقول: «انخفضت الإيرادات بسبب خطأ تقني في مجال الأعمال A». لم يكن لدى النموذج أي معلومات عن وجود خطأ، لكنه يتحدث بثقة. لذلك، تخضع المذكرة لفحصين. يستبعد الأول النصوص المؤقتة والإجابات النمطية والرسائل الخالية من البيانات. ويقارن الثاني النص بمجموعة الحقائق الأصلية، ويبحث عن أرقام وادعاءات لم ترد فيها.

ZK
جمال حميدون — مدير المنتجات في Alpina Digital ومدير منتج AlpinaGPT. يبني منتجات الذكاء الاصطناعي منذ 2019. بدأ Hamidun News كمشروع شخصي ثم أصبح مُجمِّعًا إنتاجيًا بأكثر من 6000 قارئ.
✦ Unified AI Workspace · Nomad

Test Frontier LLMs & Autonomous Agents in One Workspace

Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.

Try Nomad AI →Launch Nomad Agent
ما رأيك؟
جارٍ تحميل التعليقات…