الاختبارات

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

ما الذي تقيسه الاختبارات

المجموع

المجموع هو مجموع درجة الكود ودرجة الدردشة. كل منهما يساوي 10 في حالة إجراء الاختبارات القياسية بشكل مثالي، وبالتالي فإن الحد الأقصى الممكن هو 20. تضيف حزم المكافآت (انظر مجموعات المكافآت) نقاطًا إضافية، لذا يمكن لنموذج ما أن يحقق درجة تتجاوز 20؛ في هذه المجموعة، يمكن للكود أن يصل إلى 13 وللدردشة إلى 15 مع كل حزمة. تمتد أشرطة كل صف إلى ذلك الرقم الأقصى الممكن، مع وجود علامة تدل على نهاية المجموعة القياسية. للاختبارات غير الخاضعة للرقابة تب خاص بها ولا يتم إضافتها أبدًا. الرقم الموجود بجانب المجموع يمثل نصف فترة الثقة بنسبة 90% المستخلصة من طريقة البوستراب على حالات الاختبار، وبالتالي فإن أي نموذجين يقعان أقرب إلى بعضهما من حدودهما هما متعادلان إحصائيًا.

دردشة

يختص النموذج باللعب التمثيلي وأحاديث الرفقة، وليس بالقيام بمهام المساعد العامة. يقوم بتشغيل 8 جلسة متعددة الأدوار: لعب تمثيلي غني بالخلفيات القصصية، وأحاديث رفقة، وشخصية لها عدة أصوات، وقصة يتم كتابتها معًا. تتحقق كل جلسة من أن النموذج يتذكر الحقائق التي تم زرعها مسبقًا، ويقبل التصويبات، ويحافظ على صوت الشخصية ومنظورها، كما يلتزم بقواعد الكتابة المتعددة. يقوم نموذج تقييم منفصل، وهو Gemma 4 31B (uncensored “heretic” build, Q8) on our own GPU rig، بتقييم الردود بناءً على قائمة تدقيق لكل حالة، بينما تغطي القواعد النصية البسيطة بقية الأمور. لا يتم تقييم الإجابة على الأسئلة أو تنفيذ التعليمات المنفردة هنا. يحصل النموذج على درجة 10 في حال إجابته بشكل مثالي على الأسئلة القياسية؛ كما تضيف حزم المكافآت نقاطًا إضافية، ليصل المجموع إلى 15 في هذه الحزمة.

نظرة شاملة على GitHub

دردشة: أمثلة على أسئلة

بضعة أمثلة حقيقية من مجموعة الاختبار مفتوحة المصدر، مختصرة.

  1. يحافظ على تماسك الدردشة الجماعية على مدار الأسابيع

    User (Fri 6 Nov) Evening, Hettie. Day off. I did nothing at all until two o'clock and I regret nothing. Biscuit and I sat at the window watching the park like two old men on a bench. The flat's mostly sorted now. One odd thing though. Biscuit goes out fine in the morning, but when we get back in he just flops down by the front door, and in the evening he won't go out for his walk at all. He's gone a bit off his food as well.

    طريقة التقييم: يجيب نموذج القاضي على 12 سؤالاً من نوع نعم/لا بخصوص الردود، ويتم التحقق من 13 قاعدة نصية بجانبه.

    اطلع على هذه الحالة على GitHub

  2. يؤدي ثلاث شخصيات، كل منها بصوته الخاص

    User The door of the Lamp and Ladle bangs open on wind and rain. Daro Kessen, thirty, a river-guild assessor with a satchel of papers under his oilskin, shakes the water off his hat and looks at the three people at the table by the stove. "Evening. Daro Kessen, river guild. I'm here about your toll-ledger. I gather it went missing three nights ago? …

    طريقة التقييم: يجيب نموذج القاضي على 10 أسئلة من نوع “نعم/لا” بخصوص الردود، ويتم التحقق من 11 قاعدة نصية بجانبه.

    اطلع على هذه الحالة على GitHub

  3. يكتب قصة تحت قيود متعددة

    User Hi! Let's write a short story together, one section per message. Ground rules for the whole piece: first person, past tense; the narrator is Wren Adair, 34, a piano tuner. …

    Several turns later

    User One more author's change, from here to the end: the Hales live on a houseboat moored on the canal, not in a flat. Don't use the word "flat" again, in any sense, and call it the boat. Earlier sections stay as they are. …

    طريقة التقييم: يجيب نموذج القاضي على 5 أسئلة من نوع نعم/لا بخصوص الردود، ويتم التحقق من 25 قاعدة نصية بجانبه.

    اطلع على هذه الحالة على GitHub

نظرة شاملة على GitHub

الكود

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

نظرة شاملة على GitHub

الكود: أمثلة على أسئلة

بضعة أمثلة حقيقية من مجموعة الاختبار مفتوحة المصدر، مختصرة.

  1. يحسب أيام العمل مع عطلة نهاية أسبوع مخصصة

    def workday_intl(start, days, weekend=1, holidays=()):
        """
        Implement `def workday_intl(start, days, weekend=1,
        holidays=()):` in the spirit
        of a spreadsheet WORKDAY.INTL function, with exactly these
        rules:
    
        - Dates are strings of the exact shape `YYYY-MM-DD` (ASCII
        digits, a real
          calendar date). `start` and every holiday must be valid, else
        ValueError.
          The result is a date string of the same shape.
        - `days` is an `int` (not `bool`), else ValueError. …
        """

    طريقة التقييم: اختبارات وحدات مخفية (35 فحصًا في 16 مجموعة)

    اطلع على هذه الحالة على GitHub

  2. يتنبأ بدقة بما ستطبعه مقاطع كود بايثون

    # Q1: shared basket (Python 3.13) - what does it print?
    class Basket:
        items = []
        count = 0
    
        def add(self, thing):
            self.items.append(thing)
            self.count += 1
    
    a, b = Basket(), Basket()
    a.add("milk")
    b.add("eggs")
    b.add("tea")
    Basket.count = 10
    print(a.items, a.count, b.count, Basket.count, Basket().count)

    طريقة التقييم: تطابق دقيق في الـ8 مخرجات المتوقعة

    اطلع على هذه الحالة على GitHub

  3. يكتشف برغيين خلف تقرير خطأ واحد

    Bug report: "I have 750 g of flour, the bread recipe needs 1.25 kg, and the shopping list tells me to buy the whole 1.25 kg. Also, after I bought another 500 g and added it, the pantry shows 500 g of flour instead of 1250 g." tests/test_shopping.py::test_partial_stock fails too.

    Find the causes and fix them so the package does what README.md says.

    طريقة التقييم: اختبارات وحدات مخفية (4 مجموعات: تحويل، إضافة، تسوق، موجودة)

    اطلع على هذه الحالة على GitHub

نظرة شاملة على GitHub

مجموعات المكافآت

Each category is 10 for a perfect run of the standard questions. A model that scores at least 90% on a part earns access to a harder bonus set for that part, and a model that clears that set can unlock the next one. Each pack is worth 1 point, added on top, so a category can pass 10; the most a category can reach is 10 plus one point per pack in the suite, and a new pack raises it. A row's details list each pack: its points, or locked. Bonus sets are the only way past 10, which keeps the top of the board from bunching up at a perfect score.

كيف ينمو المقياس

برامج

يُعطي البرنامج النموذج 6 مهمة، وكل مهمة تطلب كتابة دالة بايثون واحدة بناءً على وصف دقيق ومليء بالفخاخ (التواريخ، التقريب، تنسيق النصوص، الجدولة). يتم تشغيل الإجابة في بيئة معزولة ضد اختبارات وحدة مخفية، والدرجة هي نسبة مجموعات الاختبارات التي تجتازها؛ لذا فإن الإجابة التي تقترب من الصواب تحصل على درجات جزئية.

نظرة شاملة على GitHub

برامج: أمثلة على أسئلة

بضعة أمثلة حقيقية من مجموعة الاختبار مفتوحة المصدر، مختصرة.

  1. يُرتِّب النص في أسطر ذات عرض ثابت

    def wrap(text, width):
        """
        Implement `def wrap(text, width):` that lays `text` out into
        lines of at most
        `width` characters and returns them as a list of strings.
    
        Rules:
    
        1. `width` must be an `int` >= 2, otherwise raise ValueError.
        2. Whitespace means exactly these four characters: space, tab,
        `\r`, `\n`.
           Every other character (including non-breaking space U+00A0)
        is part of a
           word. Words are maximal runs of non-whitespace characters.
        3. …
        """

    طريقة التقييم: اختبارات وحدات مخفية (28 فحصًا في 15 مجموعة)

    اطلع على هذه الحالة على GitHub

  2. يقوم بالتقريب كما تفعل جداول البيانات

    def sheet_round(func, number, *args):
        """
        Implement `def sheet_round(func, number, *args):` — six
        spreadsheet rounding
        functions with exact decimal arithmetic.
    
        Numbers (`number`, a multiple, a significance) are given as an
        `int` or as a
        `str` decimal: optional `-`, one or more digits, optionally `.`
        and one or more
        digits (`"-0.125"`, `"12"`, `"007.50"`). Floats, bools and other
        shapes raise
        ValueError. `digits` and `mode` are `int`s (not `bool`). …
        """

    طريقة التقييم: اختبارات وحدات مخفية (44 فحصًا في 15 مجموعة)

    اطلع على هذه الحالة على GitHub

  3. توزيع المهام على الأجهزة للحصول على أفضل نتيجة إجمالية

    def best_plan(tasks, k, gap=0, machine_cost=0):
        """
        Implement `def best_plan(tasks, k, gap=0, machine_cost=0):` that
        returns an `int`.
    
        - `tasks` is a list of `(start, end, value)` tuples of ints with
        `start < end` and
          `value >= 1`. There are `k` identical machines (`k >= 1`).
        - A machine runs one task at a time. On the same machine, a task
        `y` may run after
          a task `x` only if `y.start >= x.end + gap` (`gap` is an int
        >= 0). …
        """

    طريقة التقييم: اختبارات وحدات مخفية (72 فحصًا في 14 مجموعة)

    اطلع على هذه الحالة على GitHub

نظرة شاملة على GitHub

بنك الكودات

يعرض بنك الكود مقاطع قصيرة من كودات بايثون وجافاسكريبت المستخدمة في الحياة اليومية، وهو نوع من الكود المساعد الذي تحتوي عليه التطبيقات المنزلية، ويطلب من المستخدم تحديد ما يطبعه كل منها بالضبط. هناك 2 مجموعة، واحدة لكل لغة، ويتم التحقق من كل نتيجة متوقعة عبر مطابقة دقيقة. يكافئ هذا الاختبار معرفة كيفية تصرف اللغة فعليًا (الإعدادات الافتراضية المشتركة، ترتيب الفرز، التقريب، قيمة الصدق)، وليس كتابة كود جديد. الدرجة هي النسبة المئوية للنتائج المتوقعة التي كانت صحيحة تمامًا.

نظرة شاملة على GitHub

بنك الكودات: أمثلة على أسئلة

بضعة أمثلة حقيقية من مجموعة الاختبار مفتوحة المصدر، مختصرة.

  1. يتنبأ بما ستطبعه مقاطع كود بايثون

    # Q1: shared basket (Python 3.13) - what does it print?
    class Basket:
        items = []
        count = 0
    
        def add(self, thing):
            self.items.append(thing)
            self.count += 1
    
    a, b = Basket(), Basket()
    a.add("milk")
    b.add("eggs")
    b.add("tea")
    Basket.count = 10
    print(a.items, a.count, b.count, Basket.count, Basket().count)

    طريقة التقييم: تطابق دقيق في الـ8 مخرجات المتوقعة

    اطلع على هذه الحالة على GitHub

  2. يتنبأ بما ستطبعه مقاطع كود جافاسكريبت

    // Q1: sorting quantities (Node 24 (ES module)) - what does it print?
    const qty = ["10", "9", "1", "25"];
    console.log([...qty].sort().join(","), qty.map(parseInt).join(","), qty.map(Number).sort().join(","));
    console.log([3, 20, 100].sort().join(","), [3, 20, 100].sort((a, b) => b - a).join(","));

    طريقة التقييم: تطابق دقيق في الـ8 مخرجات المتوقعة

    اطلع على هذه الحالة على GitHub

نظرة شاملة على GitHub

وكيل

يقدم الوكيل للنموذج تقرير خطأ واحد بخصوص مشروع صغير يتكون من عدة ملفات، والأدوات التي يستخدمها مساعد الكود: إدراج الملفات وقراءتها والبحث فيها وتحريرها وتشغيل الاختبارات. وهي مهمة واحدة (1 في الحزمة)، لذا فإن تشغيلها مرة واحدة يمكن أن يحرك هذا العمود بشكل كبير. يتم تقييم المشروع المصحح عن طريق تشغيل اختباراته.

نظرة شاملة على GitHub

وكيل: أمثلة على أسئلة

بضعة أمثلة حقيقية من مجموعة الاختبار مفتوحة المصدر، مختصرة.

  1. يكتشف خطأين خلف تقرير خطأ واحد

    Bug report: "I have 750 g of flour, the bread recipe needs 1.25 kg, and the shopping list tells me to buy the whole 1.25 kg. Also, after I bought another 500 g and added it, the pantry shows 500 g of flour instead of 1250 g." tests/test_shopping.py::test_partial_stock fails too.

    Find the causes and fix them so the package does what README.md says.

    طريقة التقييم: اختبارات وحدات مخفية (4 مجموعات: تحويل، إضافة، تسوق، موجودة)

    اطلع على هذه الحالة على GitHub

نظرة شاملة على GitHub

أدوات

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

نظرة شاملة على GitHub

أدوات: أمثلة على أسئلة

بضعة أمثلة حقيقية من مجموعة الاختبار مفتوحة المصدر، مختصرة.

  1. يتحقق من وقت الاستلام عند حدوث تغيير في التوقيت

    User Book a pickup for my mother, Maria Sousa, at Lisbon airport on Sunday 25 October. …

    User Her mobile is +351 912 345 678.

    User Her husband Joao Sousa is on TP1351 with her but his phone is broken - book him a pickup too, same place and time …

    Several steps later

    User Finally: Maria might switch to the earlier TP1349 instead, so book her a second pickup for that flight too, just in …

    طريقة التقييم: تبادل مكون من 6 خطوات مخطط له: يتم التحقق من كل استدعاء لأداة، ووسائطه والردود.

    اطلع على هذه الحالة على GitHub

  2. يحسب الموعد النهائي للحجز من استجابة الأداة.

    User Book a room at Harbour Inn Bergen (hotel BGO-2) for two nights from Friday 13 November for me, Ola …

    User Jonas really does sleep in the cot, so switch us to R-412 - it's cheaper, and the hotel's own note on …

    User OK, we stay in R-509. Until when can we still cancel this Bergen booking for free?

    Several steps later

    User Then just move that Oslo booking to the weekend of 4 December instead.

    طريقة التقييم: عملية تبادل مكونة من 11 خطوة محددة: يتم التحقق من كل استدعاء لأداة، ووسائطه والردود؛ أي رد يحتوي على محتوى ممنوع يفشل.

    اطلع على هذه الحالة على GitHub

  3. اختر اليوم والفئة العمرية المناسبة قبل الحجز

    User Please sign my son Leo Brandt (born 7 November 2021) up for this term's Saturday class at Northpool - the earliest …

    User Lovely. What time does his class start, and is anyone else still able to get a spot in it?

    User Hm, he's still only four, so the Minnows would suit him better - move him to the 09:45 Minnows. …

    Several steps later

    User His sister Mia Brandt, born 3 March 2019, wants a Saturday class at Northpool too - the earliest one she can join …

    طريقة التقييم: تبادل مكون من 8 خطوات محددة مسبقًا: يتم التحقق من كل استدعاء لأداة، ووسائطه والردود عليه.

    اطلع على هذه الحالة على GitHub

نظرة شاملة على GitHub

توك/ثانية

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

تكلفة التشغيل

تكلفة التشغيل تحسب ما تكلفه كل طلبية في عملية تشغيل كاملة، وفقًا للسعر المعلن من قبل مزود الخدمة: أي عدد الرموز المرسلة والرموز التي يتم إرجاعها، بما في ذلك الوقت المستغرق في المعالجة. يشمل ذلك اختبارات الكود والمحادثات القياسية. لكنه لا يشمل مجموعات المكافآت، أو عمليات إعادة المحاولة، أو نظام التقييم (الذي يعمل على أجهزتنا الخاصة)، أو أي خصومات متعلقة بالتخزين المؤقت أو ساعات العمل غير الذروية؛ وبالتالي فهو قريب جدًا من المبلغ الذي ستدفعه وفقًا للسعر المعلن. علامة “~” تعني أن مزود الخدمة لم يحسب التكلفة حسب عدد الرموز (بل وفق خطة تسعير ثابتة)، لذا قمنا بتحديد التكلفة بناءً على السعر المعلن. أما علامة “*” فتعني أن بعض الطلبيات لم تُرجع أي بيانات استخدام، وبالتالي قد يكون الرقم منخفضًا. كما يمكن لمرشح المحتوى الخاص بمزود الخدمة أن يمنع إرجاع بعض الردود؛ وفي هذه الحالة، يُذكر في الجدول عدد الردود التي تم حظرها، ويُعطى كل رد محظور درجة صفر.

فئة

التصنيف هو طريقة سريعة لتجميع النماذج حسب الإجمالي: S، A، B وC، حيث يُعتبر التصنيف S الأقوى. ترد قيمة الحد الفاصل لكل فئة في الملاحظات أسفل اللوحة. النموذج الذي لا يحمل درجة محادثة كاملة لا يحظى بإجمالي ولا بتصنيف.

خفيف/غير ثقيل

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

الحزمة

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

تاريخ الاختبار

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

مبني على

يحتفظ خيار “التعديل الدقيق” باسم القاعدة هنا، ولا يتم إخفاؤه أبدًا بواسطة خيار “أحدث الإصدارات فقط”. هذا الخيار مفعّل بشكل افتراضي، وهو يخفي الإصدارات القديمة من الشركة المصنعة عندما يكون هناك إصدار أحدث من نفس السلسلة متاحًا على اللوحة ويحمل رتبة معينة. عند كتابة اسم القاعدة في خانة التصفية، مثل “gemma 4”, فإنه يتم عرض كل ما تم بناؤه عليه.

كم

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

فتح المنصة الرئيسية كل درجة هنا هي عمود على اللوحة.