Skip to content

إسناد المهام

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

يتحكّم إسناد المهام في العناصر التي يراها كل مُوسِّم، وعددها التي يكملها، وعدد التوسيمات التي يتلقّاها كل عنصر، والترتيب الذي تظهر به العناصر. تتناول هذه الصفحة استراتيجيات الإسناد في Potato، واستراتيجية Batch المخصّصة لتصاميم الدراسات متعدّدة الجولات، وكيفية استعادة الإسنادات التي يهجرها عمّال التعهيد الجماعي.

استراتيجيات الإسناد

اضبط assignment_strategy على إحدى القيم التالية:

الاستراتيجيةما تفعله
randomتُسند العناصر عشوائيًا (القيمة الافتراضية).
fixed_orderتُسند العناصر بترتيب مجموعة البيانات.
least_annotatedتُعطي الأولوية للعناصر الأقل عددًا من التوسيمات حتى الآن.
max_diversityتُعطي الأولوية للعناصر ذات أكبر قدر من الاختلاف بين التوسيمات الموجودة.
diversity_clusteringتضمّن العناصر وتُجمّعها في عناقيد، ثم تقدّمها بالتناوب عبر العناقيد.
batchتقصر الإسناد على مجموعات محدّدة من المُوسِّمين/العناصر (انظر أدناه).
priorityتقدّم العناصر ذات الأولوية الأعلى أولًا؛ انظر قائمة الفرز.
active_learningتستخدم نموذجًا لإعطاء الأولوية للعناصر غير المؤكّدة.
yaml
assignment_strategy: random
max_annotations_per_user: 10    # -1 for unlimited
max_annotations_per_item: 3     # -1 for unlimited

إسناد Batch المخصّص

تُسند استراتيجية batch دفعات مُحدّدة مسبقًا من العناصر إلى مُوسِّمين بعينهم. وهي مبنيّة لتصاميم الدراسات متعدّدة الجولات، حيث يجب أن يتلقّى المُوسِّمون أنفسهم الذين رأوا دفعة الجولة الأولى دفعة الجولة الثانية المطابقة لها.

yaml
assignment_strategy: batch
num_annotators_per_item: 4
 
batch_assignment:
  groups:
    - name: round1_batch_a
      annotators: ["u1", "u2", "u3", "u4"]
      instances: ["r2_item_001", "r2_item_002"]

بالنسبة إلى الدفعات الطويلة، انقل قائمة المثيلات إلى ملف بيانات منفصل (json أو jsonl أو csv أو tsv أو parquet)؛ تُقرأ المعرّفات باستخدام item_properties.id_key:

yaml
batch_assignment:
  groups:
    - name: round1_batch_a
      annotators: ["u1", "u2", "u3", "u4"]
      instances_file: batches/round1_batch_a.csv

يمكن أيضًا للعناصر أن تُسمّي المُوسِّمين المسموح لهم مباشرةً، وهو أمر مفيد عند توليد بيانات الجولة الثانية من توسيمات الجولة الأولى:

yaml
assignment_strategy: batch
 
batch_assignment:
  annotator_key: round1_annotators

لا يتلقّى المستخدمون خارج المجموعات المُهيّأة أيّ عناصر ضمن هذه الاستراتيجية.

استعادة الإسنادات المهجورة

في دفعات التعهيد الجماعي، قد يُعيد العمّال العناصر المُسندة إليهم، أو تنتهي مهلتهم، أو يخفقون في فحوص الجودة بعد استلامها. عند تفعيل instance_reclaim، يُعيد Potato العناصر المُسندة وغير المُوسَّمة إلى المجمّع لكي يُعاد إسنادها.

yaml
instance_reclaim:
  enabled: true
  timeout_hours: 24
  preserve_completed_annotations: true

تُنفَّذ الاستعادة تلقائيًا للإسنادات القديمة عند تشغيل الإسناد، ولعمّال Prolific الذين تصبح حالة تقديماتهم RETURNED أو TIMED-OUT أو REJECTED، وللمستخدمين المحظورين بسبب فشل فحص الانتباه (الذين يُحرّرون عناصرهم غير المُوسَّمة فورًا).

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

yaml
instance_reclaim:
  enabled: true
  timeout_hours: 24
  preserve_completed_annotations: true   # default for reasons not overridden below
 
  prolific:
    status_policies:
      TIMED-OUT:
        preserve_completed_annotations: true
      RETURNED:
        preserve_completed_annotations: true
      REJECTED:
        preserve_completed_annotations: false
 
  quality_control:
    preserve_completed_annotations: false

عندما تكون قيمة preserve_completed_annotations هي false، يمسح Potato توسيمات ذلك المستخدم للعناصر المُسندة إليه، ويزيل اعتماده كمُوسِّم، ويُعيد العناصر إلى المجمّع. أمّا إجابة فحص الانتباه الفاشلة التي تؤدّي إلى الحظر فلا يُحتفظ بها أبدًا.

ذات صلة

للاطّلاع على تفاصيل التنفيذ، راجع الوثائق المصدرية.