انسانی نگرانی میں DAgger، شروع سے آخر تک

جب پالیسی غلطی کرے تو کنٹرول سنبھالیں، پھر اپنی تصحیح پر اسے تربیت دیں۔

صرف Behavior Cloning سے تربیت یافتہ پالیسی صرف انہی حالتوں کو جانتی ہے جو آپ کی demonstrations میں آئیں۔ DAgger اس خلا کو انہی حالتوں کے ڈیٹا سے پُر کرتا ہے جہاں پالیسی خود پہنچتی ہے۔ AY-Robots یہ پورا لوپ SO-100 پر چلاتا ہے: ایک checkpoint چلائیں، دورانِ رن کنٹرول سنبھالیں، تصحیح شدہ episodes محفوظ رکھیں، مکسچر خود ترتیب دیں، اور اسی checkpoint سے تربیت جاری رکھیں جسے ابھی آپ نے چلایا تھا۔

  • HG-DAgger، انسانی نگرانی میں
  • SO-100 / SO-101
  • ACT, SmolVLA, Pi0, GR00T N1.5 / N1.7
  • ہر راؤنڈ میں مداخلت کی شرح

تربیت یافتہ پالیسی ایسا کام کیوں کرتی ہے جو کبھی دکھایا نہیں گیا

Behavior Cloning کنٹرول کو ایک عام supervised learning مسئلہ سمجھتا ہے: مشاہدہ اندر جاتا ہے، جوڑ کا ہدف باہر آتا ہے، اور یہ سب انہی frames پر فٹ کیا جاتا ہے جو کسی انسان نے ریکارڈ کیے تھے۔ یہ صرف اسی وقت تک درست رہتا ہے جب تک روبوٹ انہی حالتوں میں رہے جن میں وہ انسان گیا تھا، اور ایسا ہوتا نہیں۔ ایک gripper جو چالیس ملی سیکنڈ جلدی بند ہو جائے، کیوب کو اس کی دکھائی گئی پوزیشن سے دو ملی میٹر ہٹا دیتا ہے۔ اگلا مشاہدہ وہ ہے جو training set میں موجود ہی نہیں، اس لیے وہاں کا عمل ایک extrapolation ہے، اور اس کے بعد کی حالت مزید دور جا چکی ہوتی ہے۔ training کی distribution اور وہ distribution جو سیکھی ہوئی پالیسی خود پیدا کرتی ہے، دو الگ چیزیں ہیں، اور episode کے آگے بڑھنے کے ساتھ ساتھ دوسری، پہلی سے دور ہوتی چلی جاتی ہے۔

Ross، Gordon اور Bagnell نے 2011 میں بالکل یہی ناکامی بیان کی اور نقصان کا حساب لگایا: ایک classifier جو expert کی distribution کے تحت e احتمال کے ساتھ غلطی کرتا ہے، وہ اپنی خود پیدا کردہ distribution کے تحت T قدموں کے horizon پر تقریباً T کے مربع ضرب e کے برابر غلطیاں کر سکتا ہے، کیونکہ ایک غلطی ایسے مشاہدات پیدا کرتی ہے جو expert نے کبھی پیدا نہیں کیے تھے، اور غلطیاں یوں بڑھتی چلی جاتی ہیں۔ ان کا حل وہی الگورتھم ہے جس کے بارے میں یہ صفحہ ہے: موجودہ پالیسی چلائیں، جن حالتوں سے وہ گزرتی ہے ان کے لیے expert کے labels جمع کریں، انہیں اب تک جمع شدہ ہر چیز کے ساتھ یکجا کریں، دوبارہ تربیت دیں، اور یہ عمل دہرائیں۔ اسی طرح کی مزید demonstrations مدد نہیں کرتیں کیونکہ وہ اسی distribution کو دوبارہ نمونہ کرتی ہیں۔ جن حالتوں تک پالیسی خود پہنچتی ہے، ان کے labels مدد کرتے ہیں۔ یہاں لاگو کیا گیا ورژن انسانی نگرانی میں ہے (HG-DAgger، Kelly et al.): پالیسی کنٹرول اسی وقت تک رکھتی ہے جب تک کوئی انسان یہ فیصلہ نہ کرے کہ معاملہ بگڑ رہا ہے اور کنٹرول سنبھال لے، اس لیے تصحیحات صرف وہیں پیدا ہوتی ہیں جہاں ان کی ضرورت ہو، اور آرم کو کبھی ایسی حالت میں جانے کے لیے نہیں کہا جاتا جسے operator اجازت نہ دے۔

  • Behavior Cloning صرف اسی distribution پر درست ہے جس پر اسے تربیت دی گئی تھی۔
  • یہ ناکامی خود کو بڑھاتی ہے: ایک چھوٹا سا انحراف ایک نامانوس حالت پیدا کرتا ہے، جو ایک بڑا انحراف پیدا کرتی ہے۔
  • علاج مزید demonstrations نہیں، بلکہ ان حالتوں کے labels ہیں جہاں پالیسی خود پہنچتی ہے۔
  • انسانی نگرانی کا مطلب ہے کہ کب مداخلت کرنی ہے یہ operator طے کرتا ہے، نہ کہ کوئی خودمختاری کا اسکور۔

غلطی کیوں بڑھتی چلی جاتی ہے

horizon کو گھسیٹیں۔ Behavior Cloning کے تحت متوقع اضافی لاگت تقریباً قدموں کی تعداد کے مربع کے ساتھ بڑھتی ہے، کیونکہ ہر غلطی ایسی حالتیں پیدا کرتی ہے جنہیں demonstrations نے کبھی احاطہ نہیں کیا؛ ایک aggregation لوپ اس اضافے کو تقریباً linear رکھتا ہے (Ross et al., 2011)۔

200
1.0 %
Behavior Cloning
400
DAgger
2.00
200×
Behavior Cloning ÷ DAgger
0.000100200300400050100150200متوقع اضافی لاگت (حد)
کام کا horizon (قدم)

یہ Ross et al. (2011) کی حدود سے اخذ کردہ وضاحتی curves ہیں، آپ کے روبوٹ کی پیمائشیں نہیں۔ بات شکل کی ہے، اعداد کی نہیں۔

ایک DAgger راؤنڈ، چھ مراحل

یہ وہی لوپ ہے جیسے پلیٹ فارم اسے حقیقت میں چلاتا ہے، کوئی خاکہ نہیں۔ ذیل کا ہر مرحلہ cockpit کے کسی نہ کسی control سے مطابقت رکھتا ہے۔

لوپ کو مرحلہ وار دیکھیں

وہی چھ مراحل، ایک ایک کر کے، ساتھ ہی یہ کہ ہر مرحلے پر آرم اور ڈیٹا سیٹ میں کیا ہوتا ہے۔

01

پالیسی چلائیں اور ریکارڈ کریں

اپنے تربیت یافتہ checkpoint کے خلاف ایک inference run شروع کریں۔ رن کے دوران ہی اسے اسی رن کے task text کے ساتھ ریکارڈ کیا جاتا ہے، تاکہ یہ frames بعد میں تربیتی ڈیٹا کے طور پر استعمال ہو سکیں، نہ کہ صرف ایک ویڈیو بن کر رہ جائیں جسے صرف دیکھا جا سکے۔

1 از 6

پلیٹ فارم آپ سے کیا بوجھ اتارتا ہے

یہاں ہر آئٹم لوپ کا وہ مرحلہ ہے جسے آپ کو بصورتِ دیگر خود بنانا اور برقرار رکھنا پڑتا۔

بغیر leader آرم کے ٹیک اوور

رن کے آغاز پر کی بورڈ یا سلائیڈر ان پٹ منتخب کریں اور صرف لیپ ٹاپ سے تصحیح کر سکتے ہیں۔ کی بورڈ کے nudges سرور کی جانب سے فی جوڑ دو ڈگری اور gripper پر چار ڈگری تک محدود ہیں؛ سلائیڈر کے اہداف absolute ہوتے ہیں اور سرور ہر call پر زیادہ سے زیادہ چھ ڈگری ان کی طرف حرکت کرتا ہے۔ یہ حدیں سرور میں نافذ ہیں، UI میں نہیں، اس لیے کوئی پھنسی ہوئی کلید آرم کو نہیں پھینک سکتی۔

Teleoperation کی دستاویزات

ہر frame پر نشان زد مداخلتیں

جب تک آپ آرم پکڑے رکھتے ہیں، ریکارڈ ہونے والا ہر frame ایک مداخلت کا flag رکھتا ہے، اور action کالم مکمل commanded pose رکھتا ہے۔ آپ کو خود سے کوئی flag کالم برقرار رکھنے یا اسے بعد میں frame indices سے ملانے کی ضرورت نہیں۔

LeRobot ڈیٹا سیٹ فارمیٹ

چھانٹنا: تصحیح، evaluation یا ردی

ہر رن کو save کارڈ پر ایک فیصلہ ملتا ہے۔ تصحیحی رنز اگلے تربیتی راؤنڈ میں جاتے ہیں، evaluation رنز تربیت سے باہر رہتے ہیں تاکہ وہ ایک صاف پیمائش بنے رہیں، اور خراب رنز غائب ہو جاتے ہیں بجائے اس کے کہ خاموشی سے مکسچر کو خراب کریں۔

Sessions اور episodes

مکسچر کو واضح طور پر ترتیب دیں

راؤنڈ n کا تربیتی سیٹ آپ خود ترتیب دیتے ہیں: اصل ڈیٹا سیٹ جمع تصحیحات، جہاں episodes ہر source کے مطابق منتخب کیے جاتے ہیں۔ نہ کوئی خودکار ملاوٹ، نہ کوئی چھپا ہوا simulation ڈیٹا، اور compose کیا گیا نتیجہ کسی بھی دوسرے ڈیٹا سیٹ کی طرح برتاؤ کرتا ہے۔

ڈیٹا سیٹس

کسی checkpoint سے جاری رکھیں

تربیتی رن کو base model کے بجائے اسی checkpoint کی طرف اشارہ کریں جسے آپ نے ابھی چلایا، تاکہ ہر راؤنڈ وہیں سے شروع ہو جہاں پچھلا ختم ہوا تھا۔ یہ صرف weights کو initialize کرتا ہے؛ optimizer کی حالت بحال نہیں کی جاتی، اسی لیے راؤنڈ ایک کو ایک feasibility test کے طور پر لینا مناسب ہے۔

تربیت

فی راؤنڈ کرائے پر GPUs

ACT اور SmolVLA ایک 4090 پر، Pi0 اور GR00T N1.5 یا N1.7 ایک 80 GB والے A100 پر۔ آپ ایک راؤنڈ شروع کرتے ہیں، pod چل پڑتا ہے، checkpoints آپ کے bucket میں پہنچ جاتے ہیں، اور آپ صرف انہی گھنٹوں کی ادائیگی کرتے ہیں جو راؤنڈ نے لیے۔

GPU قیمتیں

اپنے راؤنڈز کی منصوبہ بندی کریں

مداخلت کی شرح اس لوپ کی پیش رفت کا پیمانہ ہے: تصحیح شدہ frames کو رن کے frames پر تقسیم کیا جائے۔ یہ طے کریں کہ آپ کہاں سے شروع کرتے ہیں اور ہر راؤنڈ کتنا فائدہ دیتا ہے، اور دیکھیں کہ مطلوبہ مقام تک پہنچنے میں کتنے راؤنڈز لگتے ہیں۔

30 %
25 %
3 000
راؤنڈمداخلت کی شرحتصحیح شدہ frames
1
30.0%
900
2
22.5%
675
3
16.9%
506
4
12.7%
380
5
9.5%
285
6
7.1%
214
Σ2 960

یہ ایک ماڈل ہے، پیشگوئی نہیں۔ حقیقی راؤنڈز ہموار نہیں ہوتے، اور جو راؤنڈ شرح کو حرکت نہ دے وہ کچھ فائدہ نہیں دیتا؛ بالکل یہی وہ اشارہ ہے جس پر نظر رکھنی چاہیے۔

لوپ خود بنانا بمقابلہ یہاں چلانا

ان میں سے کچھ بھی ہاتھ سے کرنا ناممکن نہیں۔ سوال یہ ہے کہ کتنی شامیں راؤنڈز کے بجائے بنیادی ڈھانچے پر خرچ ہوتی ہیں، اور ایک قطار ایسی ہے جہاں خود کرنا واضح طور پر بہتر جواب ہے۔

لوپ کا مرحلہہاتھ سے ترتیب دیناAY-Robots پر
رن کے دوران کنٹرول سنبھالناایک leader آرم، یا servo bus پر آپ کا اپنا کوڈ۔ کی بورڈ اور سلائیڈر ٹیک اوور، بشمول محفوظ حدیں، وہ چیز ہے جو آپ خود لکھتے ہیں اور پھر حقیقی ہارڈویئر پر debug کرتے ہیں۔leader آرم، کی بورڈ یا سلائیڈرز، جو رن کے آغاز پر منتخب کیے جاتے ہیں۔ زاویے کی حدیں سرور میں موجود ہیں۔
مداخلتیں نشان زد کرناآپ خود flag کالم شامل کرتے ہیں، اسے frame index سے ملا کر رکھتے ہیں، اور جب بھی recording format بدلے تو دوبارہ جانچتے ہیں۔ٹیک اوور کے دوران ریکارڈ ہونے والا ہر frame خودکار طور پر نشان زد ہوتا ہے، اور action کالم میں commanded pose موجود ہوتی ہے۔
رنز کو ترتیب دیناڈائریکٹری کے rules اور shell scripts۔ handover کے ارد گرد کے freeze frames آپ کو خود ڈھونڈ کر الگ کرنے ہوتے ہیں۔save کارڈ پر فی رن ایک فیصلہ۔ handover frames raw ڈائریکٹری میں ہی رہتے ہیں۔
ملا ہوا ڈیٹا سیٹ بناناہر format ورژن کے لیے merge scripts۔ episode indices، metadata اور ویڈیو حوالوں کو ہم آہنگ رکھنا سب سے تھکا دینے والا حصہ ہے۔اصل جمع تصحیحات سے compose کریں، جہاں episode کا انتخاب ہر source کے مطابق ہو؛ نتیجہ ایک عام ڈیٹا سیٹ ہوتا ہے۔
آخری پالیسی سے اگلا راؤنڈ شروع کرناآپ خود checkpoint کو trainer میں جوڑتے ہیں، اور اگر حقیقی resume چاہیں تو optimizer کی حالت بھی بحال کر سکتے ہیں۔بنیادی checkpoint کے لیے صرف ایک فیلڈ۔ صرف weights: یہ checkpoint سے initialize کرتا ہے، یہ optimizer کا resume نہیں۔
تربیتی لوپ پر کنٹرولمکمل۔ آپ کا loss، آپ کا شیڈول، آپ کے ablations، آپ کی instrumentation، درمیان میں کوئی پلیٹ فارم نہیں۔ اگر تحقیقی سوال خود تربیتی لوپ ہی ہے، تو یہ خود ہاتھ سے کریں۔ایک مقررہ راستہ، پالیسیوں کی ایک مقررہ فہرست اور وہی hyperparameters جو فارم دکھاتا ہے، من مانا کوڈ نہیں۔

وہ papers جن پر یہ بنا ہے

لوپ پر اعتراض کرنے سے پہلے یہ papers پڑھ لیں۔ ہر لنک abstract صفحے پر جاتا ہے، کسی paywall پر نہیں۔

  1. A Reduction of Imitation Learning and Structured Prediction to No-Regret Online Learning

    Stephane Ross, Geoffrey J. Gordon, J. Andrew Bagnell · 2011 · AISTATS 2011 (PMLR 15)

    اصل DAgger paper: یہ بڑھتی ہوئی غلطی کے مسئلے کو بیان کرتا ہے، سادہ supervised طریقے کے لیے T کا مربع حد فراہم کرتا ہے، اور تجویز دیتا ہے کہ ڈیٹا انہی حالتوں سے اکٹھا کیا جائے جہاں سیکھنے والا خود جاتا ہے۔

  2. HG-DAgger: Interactive Imitation Learning with Human Experts

    Michael Kelly, Chelsea Sidrane, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1810.02890, ICRA 2019

    انسانی نگرانی والا ورژن: ماہر خود فیصلہ کرتا ہے کہ کب کنٹرول سنبھالنا ہے، بجائے اس کے کہ اس سے انہی حالتوں کے بارے میں پوچھا جائے جو پالیسی نے چنی ہوں؛ یہی وہ طریقہ ہے جو یہ پلیٹ فارم لاگو کرتا ہے۔

  3. EnsembleDAgger: A Bayesian Approach to Safe Imitation Learning

    Kunal Menda, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1807.08364, IROS 2019

    مداخلتوں کو کنٹرول کرنے کا ایک اور طریقہ: ensemble کا اختلاف بطور اعتماد کا اشارہ کہ کب سیکھنے والا اکیلے عمل کر سکتا ہے۔ کسی انسان کو فیصلہ کرنے دینے کے مقابلے میں ایک کارآمد تقابل۔

  4. ThriftyDAgger: Budget-Aware Novelty and Risk Gating for Interactive Imitation Learning

    Ryan Hoque, Ashwin Balakrishna, Ellen Novoseller, Albert Wilcox, Daniel S. Brown, Ken Goldberg · 2021 · CoRL 2021

    انسانی توجہ کو ایک کم یاب وسیلہ سمجھتا ہے اور مدد صرف نئی یا خطرناک حالتوں میں مانگتا ہے؛ یہی درست نقطۂ نظر ہے جب ایک شخص پورا دوپہر آرم کی نگرانی کرے۔

  5. DART: Noise Injection for Robust Imitation Learning

    Michael Laskey, Jonathan Lee, Roy Fox, Anca Dragan, Ken Goldberg · 2017 · CoRL 2017

    ایک ایماندارانہ متبادل: پالیسی کو online تصحیح کرنے کے بجائے، demonstrations میں ہلچل ڈالی جاتی ہے تاکہ ماہر واپسی دکھائے۔ مداخلتوں کے لیے پرعزم ہونے سے پہلے جاننے کے قابل۔

  6. Interactive Imitation Learning in Robotics: A Survey

    Carlos Celemin, Rodrigo Perez-Dattari, Eugenio Chisari, Giovanni Franzese, Leandro de Souza Rosa, Ravi Prakash, Zlatan Ajanovic, Marta Ferraz, Abhinav Valada, Jens Kober · 2022 · arXiv:2211.00600

    اس میدان کا نقشہ: انسانی feedback کی کون کون سی شکلیں موجود ہیں، کون سے interfaces انہیں لے کر چلتے ہیں، اور DAgger طرز کی مداخلت ان میں کہاں کھڑی ہے۔

  7. Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware

    Tony Z. Zhao, Vikash Kumar, Sergey Levine, Chelsea Finn · 2023 · arXiv:2304.13705

    ACT کا paper۔ Action chunking ہی وہ وجہ ہے جس کی بنا پر ایک سستا آرم امیٹیشن پالیسی سے سرے سے چلایا جا سکتا ہے، اور ACT وہ پالیسی ہے جس کے ساتھ DAgger راؤنڈ سب سے تیزی سے دہرایا جا سکتا ہے۔

  8. π0: A Vision-Language-Action Flow Model for General Robot Control

    Kevin Black, Noah Brown, Danny Driess, Adnan Esmail, Michael Equi, Chelsea Finn et al. · 2024 · arXiv:2410.24164

    ایک flow-matching VLA جو pretrained vision-language model پر بنایا گیا ہے، اور یہاں fine-tune کیے جانے والے checkpoints میں سے ایک ہے؛ paper واضح طور پر کہتا ہے کہ نئی مہارتیں fine-tuning سے آتی ہیں، صرف base model سے نہیں۔

وہ سوالات جو لوگ واقعی پوچھتے ہیں

کیا DAgger کے لیے leader آرم ضروری ہے؟

نہیں۔ رن شروع کرتے وقت کی بورڈ یا سلائیڈر ان پٹ منتخب کریں تو ٹیک اوور پہلے ہی frame سے دستی ہوتا ہے اور براؤزر سے چلایا جاتا ہے۔ باریک حرکت کے لیے leader آرم زیادہ آسان ہے، اور یہ وہ موڈ ہے جس میں آرم handover سے پہلے خود کو ہم آہنگ کرتا ہے، لیکن لوپ اس کے بغیر بھی چلتا ہے۔

مجھے کتنے DAgger راؤنڈز کی ضرورت ہے؟

کوئی ایماندارانہ مقررہ عدد موجود نہیں۔ مداخلت کی شرح پر نظر رکھیں: اگر یہ ایک راؤنڈ سے اگلے تک نہ گرے، تو اس راؤنڈ نے کچھ فائدہ نہیں دیا، اور عام طور پر مسئلہ راؤنڈز کی تعداد میں نہیں بلکہ task کے setup، کیمروں یا اصل ڈیٹا سیٹ میں ہوتا ہے۔

کیا یہ حقیقی DAgger ہے یا کچھ ڈھیلا سا؟

یہ HG-DAgger ہے، یعنی انسانی نگرانی والا ورژن۔ کلاسیکی DAgger ماہر سے انہی حالتوں کے بارے میں پوچھتا ہے جو پالیسی نے چنی ہوں، بشمول ایسی حالتیں جن تک کوئی عقل مند operator حقیقی آرم کو کبھی نہ جانے دے۔ یہاں ایک انسان طے کرتا ہے کہ کب مداخلت کرنی ہے، اور صرف وہی حصے labels بنتے ہیں۔

کیا میں صرف تصحیحات پر تربیت دوں؟

نہیں، اور ایسا کرنا بھی نہیں چاہیے۔ صرف تصحیحات پر تربیت دینے سے ایسی پالیسی ملتی ہے جو صرف واپسی کرنا جانتی ہے۔ compose کیا گیا ڈیٹا سیٹ اصل ڈیٹا جمع تصحیحات پر مشتمل ہوتا ہے، جہاں ہر source کے episodes واضح طور پر خود منتخب کیے جاتے ہیں۔

کیا checkpoint سے جاری رکھنا تربیتی رن کو resume کرتا ہے؟

یہ صرف weights کو اس checkpoint سے initialize کرتا ہے۔ optimizer کی حالت بحال نہیں کی جاتی، اس لیے سختی سے دیکھا جائے تو یہ resume نہیں ہے۔ عملی طور پر weights ہی وہ چیز ہیں جو سیکھا ہوا رویہ راؤنڈ کے آر پار لے جاتی ہیں، لیکن یہ جاننا ضروری ہے کہ آپ کو ان دو میں سے کیا مل رہا ہے۔

مداخلت کی شرح کیسے شمار کی جاتی ہے؟

مداخلت کے طور پر نشان زد frames کو رن کے کل frames پر تقسیم کیا جاتا ہے۔ یہ takeover کی status میں دکھائی دیتی ہے، اور یہی وہ ایک عدد ہے جو ہر راؤنڈ پر، اسی checkpoint اور تربیت یافتہ مکسچر کے ساتھ نوٹ کرنے کے قابل ہے جسے آپ نے چلایا۔

یہ لوپ کن پالیسیوں کے ساتھ چلایا جا سکتا ہے؟

ACT، SmolVLA، Pi0، اور GR00T N1.5 یا N1.7۔ لوپ خود پالیسی سے آزاد ہے کیونکہ یہ صرف ڈیٹا سیٹس اور checkpoints پیدا کرتا ہے؛ عملی فرق یہ ہے کہ ایک راؤنڈ میں کتنا وقت لگتا ہے اور کون سا GPU درکار ہے۔

کیا یہ روبوٹ رکھے بغیر کیا جا سکتا ہے؟

آپ marketplace سے ڈیٹا سیٹس خرید کر یا operators کو مقرر کر کے بغیر روبوٹ کے ریکارڈ اور تربیت کر سکتے ہیں، اور live صفحے پر براؤزر میں ایک حقیقی SO-100 چلا سکتے ہیں۔ DAgger راؤنڈ الگ چیز ہے: اسے ایک ایسا آرم چاہیے جس کا کنٹرول آپ رن کے دوران سنبھال سکیں، اس لیے خود لوپ کے لیے اپنی میز پر ہارڈویئر ہونا ضروری ہے۔

Drive a real arm

A real SO-100, live in the browser. No signup, no hardware needed.

اسی ہفتے اپنا پہلا راؤنڈ چلائیں

کلائنٹ انسٹال کریں، اپنا موجودہ checkpoint چلائیں، اور جب آرم پہلی بار کیوب سے آگے نکل جائے تو کنٹرول سنبھال لیں۔ یہ ایک رن اپنے چھوٹے پیمانے پر ایک مکمل DAgger راؤنڈ ہے: اس کے بعد سب کچھ صرف مکسچر ترتیب دینا اور GPU گھنٹوں کی ادائیگی ہے۔