قياس اجتماع المعايرة
فرق التعليق التوضيحي تعقد جلسات توحيد معايير أصلاً، وتتمنى أصلاً لو عرفت كيف يفكّر معلّقوها. تقيس الغرف الجماعية اجتماع المعايرة بمقياس اتفاق حي؛ ويسجّل وضع Think-Aloud الاستدلال المنطوق، محلياً، بلا LLM.
أمران يؤديهما كل فريق تعليق توضيحي أداءً سيئاً، لأن أدواته لا تساعده: اجتماع المعايرة، الذي يجري عبر مشاركة الشاشة ولا يترك أثراً، وفهم لماذا اختار معلّق تصنيفاً بعينه، وهو ما ينتهي عادةً إلى مربع نص حر لا يملؤه أحد. ويقيس Potato 2.7 الاثنين: غرفة توحيد معايير حية بمقياس اتفاق لحظي، ومسجّل تفكير بصوت مسموع يشغّل تحويل الكلام إلى نص محلياً. ولا يحتاج أي منهما إلى LLM.
الاجتماع الذي لا يترك دليلاً
إن سبق أن أدرت مشروع تعليق توضيحي بأكثر من شخصين، فقد أدرت جلسة توحيد معايير. يصنّف الجميع الحفنة نفسها من العناصر، ثم تجتمعون في مكالمة، وتتجادلون حول مواضع الاختلاف، وفي النهاية تتقاربون على ما يعنيه الإرشاد فعلاً.
وهي تنفع. وهي أيضاً غير مقيسة إطلاقاً. فالأصوات التي كان الناس يحملونها قبل النقاش ضاعت. ومن غيّر رأيه، وهل غيّره لأنه اقتنع أم لأن زميلاً أقدم تكلّم أولاً، ضاع أيضاً. وسؤال هل حسّن الاجتماع الاتفاق أصلاً سؤال لا يستطيع أحد الإجابة عنه، لأن أحداً لم يقسه.
وتنقل الغرف الجماعية تلك الجلسة إلى داخل الأداة.
غرفة توحيد معايير في منتصف الجلسة
rooms:
enabled: true
who_can_create: any
persist_votes: true
schema: sarcasmافتح /rooms، وأنشئ غرفة، فتحصل على رمز من ستة أحرف يمكنك قراءته بصوت مسموع في المكالمة. والمسار مقصود:
- يصوّت الجميع بشكل أعمى. يرى الأعضاء من صوّت، ولا يرون بماذا أبداً. وهذا مفروض على الخادم، فتكون الانطباعات الأولى مستقلة فعلاً.
- يكشف المضيف. وعند هذه اللحظة تصير الأصوات العمياء غير قابلة للتغيير.
- تتناقش المجموعة، في دردشة جانبية أو في مكالمتكم.
- لأي أحد أن يغيّر تصويته. ويُسجَّل كل تغيير بعد الكشف مع ما تحوّل عنه وما تحوّل إليه وما كانت الأغلبية في تلك اللحظة.
والخطوة الرابعة هي المثيرة للاهتمام. فتغيير الصوت بعد الكشف ليس الحدث نفسه الذي هو التصويت؛ إنه تغيير بحضور أغلبية معلومة. وتسجيله يعطيك سجل مسايرة لكل عضو، وهو ما يجعلك تلاحظ أن معلّقاً بعينه ينقلب إلى الأغلبية في كل مرة دون استثناء. وذلك يستحق أن يُعرَف قبل أن تعامل اتفاقه دليلاً مستقلاً.
مقياس الاتفاق يجيب عن سؤال "هل استحق ذلك؟"
تُحسب Krippendorff's α مرتين، لحظياً، على العناصر المكشوفة: مرة على الأصوات العمياء، ومرة على الأصوات الحالية. والفارق بينهما هو مكسب الجلسة من توحيد المعايير، وهو على الشاشة أثناء جريان الجلسة.
وهذا هو الرقم الذي يجعل الاجتماع خاضعاً للمساءلة. فإن نقلت ساعة من النقاش قيمة α من 0.61 إلى 0.78، فأنت تعرف أن الساعة اشترت شيئاً. وإن نقلتها من 0.61 إلى 0.62، فقد تعلّمت أن الاختلاف ليس حول التأويل. إنه حول الإرشاد، ولن يصلحه أي قدر من الكلام. اذهب وأعد كتابة الإرشاد بدل ذلك.
وثمة نوعان يستحقان المعرفة. تُعبَّأ لقاءات Huddle من العناصر التي يختلف عليها فريقك حالياً بالضبط، محسوبة لحظياً من حالة التعليق التوضيحي، وهو ما يجعلها نسخة متزامنة من البتّ. وتتيح غرف Shadow للمتدربين مشاهدة معلّق خبير وهو يعمل لحظياً، بما في ذلك المقطع الذي يظلّله من النص. وهي أقرب شيء إلى الجلوس بجانب أحدهم وهو يعلّق.
والغرف مبنية على مصدر الأحداث في سجل JSONL، فتنجو الغرفة الحية من إعادة تشغيل الخادم، ويؤدي السجل أيضاً دور مسار التدقيق للجلسة. ولا تدخل فيها WebSockets؛ إذ يستقصي العملاء بمؤشر موضع، ما يعني أن الغرف تعمل تحت أي نشر WSGI.
الاستدلال الذي لم تلتقطه قط
الإخفاق الصامت الآخر هو المبرّرات. فمعظم الأدوات تعرض مربع نص حر، ومعظم المعلّقين يكتبون فيه "واضح"، أو لا يكتبون شيئاً.
وهذا ليس كسلاً. فكتابة استدلالك أبطأ فعلاً من امتلاكه، وإن كانت المهمة 400 عنصر فمربع المبرّر أول ما يسقط.
ويزيل وضع Think-Aloud هذا الاحتكاك بتغيير الوسيط: يتحدث المعلّقون ببساطة أثناء عملهم.
Think-Aloud، مع تصنيف مكشوف
thinkaloud:
enabled: true
schema: politeness
model: tiny.enويعمل تحويل الكلام إلى نص محلياً عبر faster-whisper، وهو يعمل بزمن حقيقي على المعالج مع نموذج tiny.en بحجم 39 ميغابايت. لا يغادر الصوت الجهاز، ولا توجد واجهة سحابية تُستدعى ولا فاتورة تُدفع لكل رمز. ولكثير من البيانات الحساسة، ذلك هو الفرق بين "نستطيع استخدام هذا" و"القسم القانوني رفض".
وكان بروتوكول التفكير بصوت مسموع المعيار الذهبي لدراسة كيفية اتخاذ الناس قراراتهم قبل أن يصير أي من هذا حاسوبياً بزمن طويل. ولم يدخل قط في أدوات التعليق التوضيحي، لأن أن تطلب من أحد أن يسرد في مسجّل ثم تفرّغ ما قاله يدوياً ليس مساراً يواظب عليه أحد.
حرفياً، عن قصد
يُخزَّن النص التفريغي كما نُطق بالضبط وبلا تلخيص عن قصد. وهذا قرار تصميم حقيقي لا كسل: فإعادة صياغة بروتوكول التفكير بصوت مسموع تلوّث الأثر. التردد، والتصحيح الذاتي، وعبارة "حسناً، قد يكون ساخراً، لكن…": تلك هي البيانات. والملخّص المرتّب لها شيء آخر وأقل نفعاً بكثير.
ويستطيع المعلّقون أيضاً تثبيت تصنيف بالصوت، عبر صيغ لفظية محدّدة يكشفها محلّل قائم على القواعد:
- "I label this Polite"
- "My answer is impolite"
- "Final answer: neutral"
ولا تثبّت إلا تلك الصيغ. ويُتجاهل كل ما يُقال أثناء التفكير، وهو ما يجعل المحلّل القائم على القواعد كافياً. فلا يوجد LLM في أي موضع من المسار، ولا نموذج يقرر ما قصدته. وقول عبارة جديدة لاحقاً يجعل آخر تثبيت هو المعتمد.
وتحصل كذلك على إشارات تردد حتمية (أعداد المقاطع الصامتة، وأعداد كلمات الحشو) محسوبة بالحساب لا بنموذج. فالوقفات الطويلة على عنصر مؤشر بديل لا بأس به على الصعوبة، وجمعها لا يكلّف شيئاً.
لماذا يهم هذا أبعد من المبرّرات
وهنا الجزء الذي يتصل ببقية Potato 2.7.
Think-Aloud مسجّل سلسلة تفكير بشرية. فهو يلتقط كيف يستدل شخص فعلاً وصولاً إلى تصنيف: لا تبريراً منقّحاً يُكتب بعد الحدث، بل الاستدلال وهو يجري، بانطلاقاته الخاطئة.
ويؤدي تعليق مكافأة العملية في Potato العمل نفسه على نموذج: فهو يقسّم سلسلة تفكير النموذج ويسجّلها خطوة بخطوة.
العنصر نفسه، وسلسلتا تفكير، واحدة بشرية وواحدة لنموذج. ويمكنك وضعهما جنباً إلى جنب والنظر في موضع تباعد الاستدلال. وذلك شيء جديد فعلاً أن تملكه، وهو المادة الخام لبيانات مكافأة عملية أفضل، لأن "النموذج أصاب الإجابة لسبب خاطئ" هو بالضبط الإخفاق الذي لا يستطيع تسجيل الإجابة النهائية رؤيته.
ويعطيك Potato سطحَي الالتقاط كليهما. لكنه لا يحسب لك فرقاً بينهما. فذلك سؤال بحثي لا ميزة، ونحن نفضّل أن نسلّمك الأثر على أن نسلّمك مقياساً اخترعناه.
قراءات إضافية
- الغرف الجماعية ووضع Think-Aloud — التهيئة الكاملة
- شرح اتفاق المُعلّقين — ما الذي تقيسه α فعلاً
- البتّ ومعالجة الاختلاف
- التصنيفات بأشرطة خطأ — القياس النفسي يشير إلى أخطاء دليل الترميز؛ والغرف هي حيث تصلحها
- نماذج مكافأة العملية والتعليق على مستوى الخطوة — سلسلة التفكير من جهة النموذج