পলিসি ভুল করলে নিয়ন্ত্রণ নিয়ে নিন, তারপর সেই সংশোধনের ওপর প্রশিক্ষণ দিন।
Behavior Cloning দিয়ে প্রশিক্ষিত একটি পলিসি কেবল সেই অবস্থাগুলোই জানে, যেগুলো আপনার ডেমোনস্ট্রেশনে দেখা গিয়েছিল। DAgger এই ফাঁক পূরণ করে এমন ডেটা দিয়ে, যা পলিসি নিজে যেসব অবস্থায় পৌঁছায় সেখান থেকে আসে। AY-Robots পুরো লুপটি একটি SO-100-এ চালায়: একটি checkpoint চালান, লুপ চলাকালীন মাঝপথে নিয়ন্ত্রণ নিন, সংশোধিত এপিসোডগুলো রেখে দিন, মিশ্রণটি নিজে সাজান, এবং আপনি এইমাত্র যে checkpoint চালিয়েছেন সেখান থেকেই প্রশিক্ষণ চালিয়ে যান।
- HG-DAgger, মানব-নিয়ন্ত্রিত
- SO-100 / SO-101
- ACT, SmolVLA, Pi0, GR00T N1.5 / N1.7
- প্রতি রাউন্ডে হস্তক্ষেপের হার
একটি প্রশিক্ষিত পলিসি কেন এমন কিছু করে যা কখনো দেখানো হয়নি
Behavior Cloning নিয়ন্ত্রণকে সাধারণ সুপারভাইজড লার্নিং হিসেবে দেখে: পর্যবেক্ষণ ভেতরে যায়, জয়েন্ট-টার্গেট বাইরে আসে, যা একজন মানুষের রেকর্ড করা ফ্রেমের ওপর ফিট করা হয়। এটি ততক্ষণই সঠিক থাকে যতক্ষণ রোবট সেই অবস্থাগুলোতেই থাকে যা সেই মানুষটি ঘুরে দেখেছিল, আর বাস্তবে তা হয় না। একটি গ্রিপার যা চল্লিশ মিলিসেকেন্ড আগেই বন্ধ হয়ে যায়, তা কিউবটিকে তার দেখানো অবস্থান থেকে দুই মিলিমিটার সরিয়ে দেয়। পরের পর্যবেক্ষণটি এমন একটি, যা প্রশিক্ষণ সেটে নেই, তাই সেখানকার অ্যাকশনটি একটি এক্সট্রাপোলেশন, আর তারপরের অবস্থাটি আরও দূরে চলে যায়। প্রশিক্ষণ বিতরণ এবং শেখা পলিসিটি নিজে যে বিতরণ তৈরি করে, এই দুটি ভিন্ন জিনিস, আর এপিসোড চলার সাথে সাথে দ্বিতীয়টি প্রথমটি থেকে ক্রমশ দূরে সরে যায়।
Ross, Gordon এবং Bagnell ঠিক এই ব্যর্থতাই ২০১১ সালে বর্ণনা করেছিলেন আর ক্ষতির পরিমাণ বার করেছিলেন: এক্সপার্ট বিতরণের অধীনে যে ক্লাসিফায়ার সম্ভাবনা e দিয়ে ভুল করে, সে নিজের তৈরি করা বিতরণের অধীনে T ধাপের দিগন্তে মোটামুটি T-এর বর্গ গুণ e সংখ্যক ভুল করতে পারে, কারণ একটি ভুল এমন পর্যবেক্ষণ তৈরি করে যা এক্সপার্ট কখনো তৈরি করেনি, আর ভুলগুলো এভাবেই জমতে থাকে। তাদের সমাধানটাই এই পাতার বিষয়: বর্তমান পলিসি চালান, সে যেসব অবস্থায় পৌঁছায় তার জন্য এক্সপার্ট লেবেল জোগাড় করুন, এখন পর্যন্ত জোগাড় করা সবকিছুর সাথে তা একত্র করুন, আবার প্রশিক্ষণ দিন, পুনরাবৃত্তি করুন। একই ধরনের আরও বেশি ডেমোনস্ট্রেশন সাহায্য করে না, কারণ সেগুলো একই বিতরণ থেকেই আবার নমুনা নেয়। পলিসি নিজে যেসব অবস্থায় পৌঁছায় তার লেবেলই সাহায্য করে। এখানে বাস্তবায়িত সংস্করণটি মানব-নিয়ন্ত্রিত (HG-DAgger, Kelly et al.): পলিসি নিয়ন্ত্রণ ধরে রাখে যতক্ষণ না কোনো মানুষ সিদ্ধান্ত নেন যে কিছু ভুল হচ্ছে আর নিয়ন্ত্রণ নিয়ে নেন, ফলে সংশোধন কেবল সেখানেই তৈরি হয় যেখানে তার দরকার, আর অপারেটর যা অনুমতি দেবেন না এমন কোনো অবস্থায় আর্মকে কখনো যেতে বলা হয় না।
- Behavior Cloning কেবল সেই অবস্থা-বিতরণেই সঠিক, যার ওপর এটি প্রশিক্ষিত হয়েছিল।
- এই ব্যর্থতা নিজে নিজেই বাড়ে: একটি ছোট বিচ্যুতি একটি অপরিচিত অবস্থা তৈরি করে, যা আরও বড় বিচ্যুতি তৈরি করে।
- সমাধান আরও বেশি ডেমোনস্ট্রেশন নয়, বরং পলিসি নিজে যেসব অবস্থায় পৌঁছায় তার লেবেল।
- মানব-নিয়ন্ত্রিত মানে হলো অপারেটর ঠিক করেন কখন হস্তক্ষেপ করবেন, কোনো অটোনমি স্কোর নয়।
ভুল কেন জমতে থাকে
দিগন্ত টেনে দেখুন। Behavior Cloning-এর অধীনে প্রত্যাশিত বাড়তি খরচ মোটামুটি ধাপের সংখ্যার বর্গ অনুপাতে বাড়ে, কারণ প্রতিটি ভুল এমন অবস্থা তৈরি করে যা ডেমোনস্ট্রেশন কখনো কভার করেনি; একটি অ্যাগ্রিগেশন লুপ এই বৃদ্ধিকে প্রায় রৈখিক রাখে (Ross et al., 2011)।
Ross et al. (2011)-এর সীমা থেকে নেওয়া দৃষ্টান্তমূলক রেখা, আপনার রোবটের কোনো পরিমাপ নয়। মূল বিষয় আকৃতি, সংখ্যা নয়।
একটি DAgger রাউন্ড, ছয়টি ধাপে
প্ল্যাটফর্মে লুপটি আসলে যেভাবে চলে, ঠিক তেমনই এটি, কোনো স্কিম্যাটিক নয়। নিচের প্রতিটি ধাপ ককপিটের একটি নিয়ন্ত্রণের সাথে মিলে যায়।
লুপটি ধাপে ধাপে দেখুন
একই ছয়টি ধাপ, একে একে, প্রতিটিতে আর্মে আর ডেটাসেটে কী ঘটে তাসহ।
পলিসি চালান এবং রেকর্ড করুন
আপনার প্রশিক্ষিত একটি checkpoint-এর বিপরীতে একটি ইনফারেন্স রান শুরু করুন। রান চলাকালীনই তা রেকর্ড হয়, রানের নিজস্ব টাস্ক টেক্সটসহ, যাতে পরে ফ্রেমগুলো কেবল দেখার মতো ভিডিও না হয়ে প্রশিক্ষণের ডেটা হিসেবে কাজে লাগে।
নিয়ন্ত্রণ নিন এবং সংশোধন করুন
আর্ম যে মুহূর্তে ভুল কিছু করে, Take over চাপুন। রানার থেমে যায় আর আর্ম আপনার হাতে চলে আসে। leader arm দিয়ে হলে এটি প্রথমে follower পোজে গিয়ে তারপর নিয়ন্ত্রণ হস্তান্তর করে; কিবোর্ড বা স্লাইডার ইনপুট দিয়ে হলে, যা রানের শুরুতেই বেছে নেওয়া হয়, নিয়ন্ত্রণ নেওয়াটা সঙ্গে সঙ্গেই ম্যানুয়াল হয়ে যায়। গতি সংশোধন করুন, তারপর নিয়ন্ত্রণ আবার পলিসিকে ফিরিয়ে দিন। নিয়ন্ত্রণ নেওয়ার সময় রেকর্ড হওয়া ফ্রেমগুলো স্বয়ংক্রিয়ভাবে ইন্টারভেনশন হিসেবে চিহ্নিত হয়।
রান বাছাই করুন
প্রতিটি রান সম্পর্কে সিদ্ধান্ত নিন এটি আসলে কী ছিল: সংশোধন হিসেবে রাখুন, মূল্যায়ন রান হিসেবে রাখুন, অথবা বাতিল করুন। হস্তান্তরের চারপাশের স্থির ফ্রেমগুলো raw ডিরেক্টরিতেই থেকে যায় আর কখনো ডেটাসেটে ঢোকে না।
সংশোধন ডেটাসেট সিঙ্ক করুন
সংশোধনগুলো প্রতিটি পলিসির নিজস্ব একটি সংশোধন ডেটাসেটে জমা হয় আর স্বয়ংক্রিয় ক্লাউড সিঙ্কের মাধ্যমে আপনার bucket-এ চলে যায়। এই পর্যায়ে কিছুই কারও সাথে মেশানো হয় না; সংশোধনগুলো আপাতত শুধু নিজস্ব একটি ডেটাসেট।
মিশ্রণ নিজে সাজান
পরের রাউন্ডের প্রশিক্ষণ সেট তৈরি করতে Compose dataset ব্যবহার করুন: মূল ডেটাসেট প্লাস সংশোধন, প্রতিটি উৎস থেকে স্পষ্টভাবে বেছে নেওয়া এপিসোডসহ। ফলাফলটি একটি সাধারণ ডেটাসেট, যা অন্য যেকোনো ডেটাসেটের মতোই সিঙ্ক হয় আর প্রশিক্ষণ নেয়। পেছন থেকে কিছু মেশানো হয় না, আর কোনো সিমুলেশন ডেটা এমনিতে যোগ হয় না।
checkpoint থেকে প্রশিক্ষণ চালিয়ে যান
বেস মডেল থেকে শুরু করার বদলে Continue from checkpoint দিয়ে সাজানো ডেটাসেটটি প্রশিক্ষণ দিন, যাতে রাউন্ডটি আপনার এইমাত্র চালানো পলিসি থেকে শুরু হয়। স্পষ্ট করে বললে: এটি সেই checkpoint থেকে ওয়েট শুরু করে মাত্র, এটি কোনো অপটিমাইজার রিজিউম নয়।
প্ল্যাটফর্ম আপনার হাত থেকে যা সরিয়ে নেয়
এখানকার প্রতিটি বিষয় লুপের এমন একটি ধাপ, যা না হলে আপনাকে নিজেই বানাতে আর চালু রাখতে হতো।
leader arm ছাড়াই নিয়ন্ত্রণ নেওয়া
রানের শুরুতে কিবোর্ড বা স্লাইডার ইনপুট বেছে নিন, তাহলে শুধু ল্যাপটপ দিয়েই সংশোধন করতে পারবেন। কিবোর্ডের নাজ সার্ভার-সাইডে প্রতি জয়েন্টে দুই ডিগ্রি আর গ্রিপারে চার ডিগ্রিতে বাঁধা থাকে; স্লাইডার টার্গেট পরম, আর সার্ভার প্রতি কলে তার দিকে সর্বোচ্চ ছয় ডিগ্রি এগোয়। এই সীমা সার্ভার প্রয়োগ করে, UI নয়, তাই আটকে যাওয়া একটি কি আর্মকে ছুড়ে দিতে পারে না।
টেলিঅপারেশন ডকসপ্রতি ফ্রেমে চিহ্নিত ইন্টারভেনশন
আপনি আর্ম ধরে থাকা অবস্থায় রেকর্ড হওয়া প্রতিটি ফ্রেমে একটি ইন্টারভেনশন ফ্ল্যাগ থাকে, আর action কলামে সম্পূর্ণ কমান্ড করা পোজ থাকে। ফ্ল্যাগ কলাম আপনাকে হাতে রাখতে হয় না, বা পরে ফ্রেম ইনডেক্সের সাথে মেলাতে হয় না।
LeRobot ডেটাসেট ফরম্যাটবাছাই: সংশোধন, মূল্যায়ন, নাকি বাতিল
প্রতিটি রান save কার্ডে একটিমাত্র সিদ্ধান্ত পায়। সংশোধন রান পরের প্রশিক্ষণ রাউন্ডে যায়, মূল্যায়ন রান প্রশিক্ষণের বাইরে থেকে যায় বলে তা একটি পরিষ্কার পরিমাপ থেকে যায়, আর খারাপ রান নিঃশব্দে মিশ্রণ নষ্ট করার বদলে সরে যায়।
সেশন ও এপিসোডমিশ্রণ স্পষ্টভাবে সাজান
রাউন্ড n-এর প্রশিক্ষণ সেট আপনি নিজে তৈরি করেন: মূল ডেটাসেট প্লাস সংশোধন, প্রতিটি উৎস থেকে বেছে নেওয়া এপিসোডসহ। কোনো স্বয়ংক্রিয় মিশ্রণ নেই, কোনো গোপন সিমুলেশন ডেটা নেই, আর সাজানো ফলাফলটি অন্য যেকোনো ডেটাসেটের মতোই আচরণ করে।
ডেটাসেটএকটি checkpoint থেকে চালিয়ে যান
বেস মডেলের বদলে আপনি এইমাত্র চালানো checkpoint-এ একটি প্রশিক্ষণ রান নির্দেশ করুন, যাতে প্রতিটি রাউন্ড আগেরটি যেখানে শেষ হয়েছিল সেখান থেকে শুরু হয়। এটি শুধু ওয়েট শুরু করে; অপটিমাইজারের অবস্থা পুনরুদ্ধার হয় না, তাই রাউন্ড একটাকে সম্ভাব্যতা পরীক্ষা হিসেবে দেখাই ভালো।
প্রশিক্ষণরাউন্ড অনুযায়ী ভাড়া নেওয়া GPU
ACT ও SmolVLA একটি 4090-এ, Pi0 আর GR00T N1.5 বা N1.7 80 GB-র একটি A100-এ। আপনি একটি রাউন্ড শুরু করেন, pod চালু হয়, checkpoint আপনার bucket-এ পৌঁছায়, আর রাউন্ডটি যে কয় ঘণ্টা নিয়েছে শুধু তারই দাম আপনি দেন।
GPU দামআপনার রাউন্ড পরিকল্পনা করুন
হস্তক্ষেপের হার হলো লুপের অগ্রগতি মাপার মেট্রিক: সংশোধিত ফ্রেম ভাগ রানের ফ্রেম দিয়ে। আপনি কোথা থেকে শুরু করছেন আর প্রতিটি রাউন্ড কতটা এগিয়ে দেয় তা ঠিক করুন, আর দেখুন লক্ষ্যে পৌঁছাতে কত রাউন্ড লাগে।
| রাউন্ড | হস্তক্ষেপের হার | সংশোধিত ফ্রেম |
|---|---|---|
| 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 arm, অথবা সার্ভো বাসে নিজের কোড। কিবোর্ড আর স্লাইডার দিয়ে নিয়ন্ত্রণ নেওয়া, নিরাপদ সীমাসহ, এমন কিছু যা আপনি লেখেন আর তারপর আসল হার্ডওয়্যারে ডিবাগ করেন। | leader arm, কিবোর্ড, অথবা স্লাইডার, রান শুরুর সময় বেছে নেওয়া। অ্যাঙ্গেল ক্ল্যাম্প সার্ভারে থাকে। |
| ইন্টারভেনশন চিহ্নিত করা | আপনি ফ্ল্যাগ কলাম যোগ করেন, ফ্রেম ইনডেক্সের সাথে মিলিয়ে রাখেন, আর রেকর্ডিং ফরম্যাট বদলালেই প্রতিবার আবার যাচাই করেন। | নিয়ন্ত্রণ নেওয়ার সময় রেকর্ড হওয়া প্রতিটি ফ্রেম স্বয়ংক্রিয়ভাবে চিহ্নিত হয়, action কলামে কমান্ড করা পোজসহ। |
| রান সাজানো | ডিরেক্টরি কনভেনশন আর শেল স্ক্রিপ্ট। হস্তান্তরের চারপাশের স্থির ফ্রেম আপনাকেই খুঁজে বার করে বাদ দিতে হয়। | সেভ কার্ডে প্রতি রানে একটি সিদ্ধান্ত। হস্তান্তরের ফ্রেম raw ডিরেক্টরিতেই থেকে যায়। |
| মিশ্র ডেটাসেট তৈরি করা | প্রতি ফরম্যাট ভার্সনের জন্য মার্জ স্ক্রিপ্ট। এপিসোড ইনডেক্স, মেটাডেটা আর ভিডিও রেফারেন্স সঙ্গতিপূর্ণ রাখাই আসল খাটুনি। | মূল ডেটাসেট প্লাস সংশোধন থেকে প্রতি-উৎস এপিসোড বাছাই করে সাজানো; ফলাফলটি একটি সাধারণ ডেটাসেট। |
| শেষ পলিসি থেকে পরের রাউন্ড শুরু করা | আপনি নিজেই checkpoint-টি ট্রেইনারে যুক্ত করেন, আর চাইলে সত্যিকারের রিজিউমের জন্য অপটিমাইজারের অবস্থাও পুনরুদ্ধার করতে পারেন। | বেস checkpoint-এর জন্য একটি ফিল্ড। শুধু ওয়েট: checkpoint থেকে শুরু হয় মাত্র, এটি অপটিমাইজার রিজিউম নয়। |
| প্রশিক্ষণ লুপের ওপর নিয়ন্ত্রণ | সম্পূর্ণ। নিজের লস, নিজের শিডিউল, নিজের অ্যাবলেশন, নিজের ইনস্ট্রুমেন্টেশন, মাঝে কোনো প্ল্যাটফর্ম নেই। গবেষণার প্রশ্নটাই যদি প্রশিক্ষণ লুপ হয়, তাহলে হাতে করুন। | নির্দিষ্ট তালিকার পলিসি আর ফর্মে থাকা হাইপারপ্যারামিটার নিয়ে একটি নির্দিষ্ট পথ, যা-খুশি কোড নয়। |
যেসব পেপারের ওপর এটি তৈরি
লুপ নিয়ে তর্ক করার আগে এগুলো পড়ুন। প্রতিটি লিঙ্ক অ্যাবস্ট্র্যাক্ট পাতায় যায়, পেওয়ালের পেছনে নয়।
- 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 পেপার: এটি জমতে থাকা ভুলের সমস্যা তুলে ধরে, সাধারণ সুপারভাইজড পদ্ধতির জন্য T-বর্গ সীমা দেয়, আর লার্নার নিজে যেসব অবস্থায় যায় সেখান থেকে ডেটা একত্র করার প্রস্তাব দেয়।
- HG-DAgger: Interactive Imitation Learning with Human Experts
Michael Kelly, Chelsea Sidrane, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1810.02890, ICRA 2019
মানব-নিয়ন্ত্রিত সংস্করণ: পলিসির বেছে নেওয়া অবস্থা নিয়ে জিজ্ঞাসিত হওয়ার বদলে এক্সপার্টই ঠিক করেন কখন নিয়ন্ত্রণ নেবেন, এটাই এই প্ল্যাটফর্মে বাস্তবায়িত মোড।
- EnsembleDAgger: A Bayesian Approach to Safe Imitation Learning
Kunal Menda, Katherine Driggs-Campbell, Mykel J. Kochenderfer · 2019 · arXiv:1807.08364, IROS 2019
হস্তক্ষেপ নিয়ন্ত্রণের আরেকটি পথ: লার্নার একা কাজ করতে পারবে কিনা তার আত্মবিশ্বাস সংকেত হিসেবে এনসেম্বলের মতপার্থক্য। মানুষকে বিচার করতে দেওয়ার সাথে তুলনা করার মতো একটি বিকল্প।
- 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
মানুষের মনোযোগকে দুর্লভ সম্পদ হিসেবে দেখে আর কেবল নতুন বা ঝুঁকিপূর্ণ অবস্থাতেই সাহায্য চায়, যা তখনই ঠিক দৃষ্টিভঙ্গি যখন একজন মানুষ সারা বিকেল আর্ম দেখাশোনা করেন।
- DART: Noise Injection for Robust Imitation Learning
Michael Laskey, Jonathan Lee, Roy Fox, Anca Dragan, Ken Goldberg · 2017 · CoRL 2017
সৎ বিকল্প: পলিসিকে সরাসরি সংশোধন করার বদলে ডেমোনস্ট্রেশনে গোলমাল যোগ করা হয়, যাতে এক্সপার্ট ফিরে আসার পথ দেখান। হস্তক্ষেপের পথে যাওয়ার আগে জানা দরকার।
- 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
ক্ষেত্রটির মানচিত্র: মানুষের ফিডব্যাকের কোন কোন রূপ আছে, কোন ইন্টারফেস সেগুলো বহন করে, আর DAgger-ধাঁচের হস্তক্ষেপ তার মধ্যে কোথায় বসে।
- Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware
Tony Z. Zhao, Vikash Kumar, Sergey Levine, Chelsea Finn · 2023 · arXiv:2304.13705
ACT পেপার। Action chunking-ই একমাত্র কারণ যে একটি সস্তা আর্মকে ইমিটেশন পলিসি দিয়ে আদৌ চালানো যায়, আর ACT-ই সবচেয়ে দ্রুত একটি DAgger রাউন্ড চালিয়ে দেখা যায় এমন পলিসি।
- π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
একটি প্রি-ট্রেইনড ভিশন-ল্যাঙ্গুয়েজ মডেলের ওপর তৈরি ফ্লো-ম্যাচিং VLA, আর এখানে ফাইন-টিউন করা যায় এমন checkpoint-গুলোর একটি; পেপারটি স্পষ্ট করে বলে যে নতুন দক্ষতা আসে ফাইন-টিউনিং থেকে, শুধু বেস মডেল থেকে নয়।
মানুষ আসলেই যা জিজ্ঞেস করে
DAgger-এর জন্য কি leader arm লাগবে?
না। রান শুরু করার সময় কিবোর্ড বা স্লাইডার ইনপুট বেছে নিন, তাহলে ব্রাউজার থেকেই প্রথম ফ্রেম থেকে নিয়ন্ত্রণ নেওয়াটা ম্যানুয়াল হয়ে যায়। সূক্ষ্ম নড়াচড়ার জন্য leader arm বেশি আরামদায়ক, আর এটাই একমাত্র মোড যেখানে হস্তান্তরের আগে আর্ম নিজেকে মিলিয়ে নেয়, কিন্তু লুপ তা ছাড়াই চলে।
কতগুলো DAgger রাউন্ড দরকার?
কোনো সৎ নির্দিষ্ট সংখ্যা নেই। হস্তক্ষেপের হার লক্ষ রাখুন: এক রাউন্ড থেকে পরের রাউন্ডে যদি তা না কমে, সেই রাউন্ড কিছুই দেয়নি, আর সমস্যা সাধারণত রাউন্ডের সংখ্যায় নয়, টাস্কের সেটআপে, ক্যামেরায়, অথবা মূল ডেটাসেটে থাকে।
এটা কি আসল DAgger, নাকি একটু আলগা কিছু?
এটা HG-DAgger, মানব-নিয়ন্ত্রিত সংস্করণ। ক্লাসিক DAgger পলিসির বেছে নেওয়া অবস্থা নিয়ে এক্সপার্টকে জিজ্ঞেস করে, এমনকি এমন অবস্থাতেও যেখানে কোনো সুস্থ অপারেটর আসল আর্মকে যেতে দেবেন না। এখানে একজন মানুষ ঠিক করেন কখন হস্তক্ষেপ করবেন, আর শুধু সেই অংশগুলোই লেবেল হয়ে ওঠে।
আমি কি শুধু সংশোধনের ওপরই প্রশিক্ষণ দিই?
না, আর তা করাও উচিত নয়। শুধু সংশোধনের ওপর প্রশিক্ষণ দিলে এমন একটি পলিসি পাবেন যে শুধু ফিরে আসতে জানে। সাজানো ডেটাসেটটি হলো মূল ডেটা প্লাস সংশোধন, প্রতিটি উৎস থেকে স্পষ্টভাবে বেছে নেওয়া এপিসোডসহ।
checkpoint থেকে চালিয়ে যাওয়া কি প্রশিক্ষণ রানটি আবার শুরু করে?
এটি সেই checkpoint থেকে ওয়েট শুরু করে। অপটিমাইজারের অবস্থা পুনরুদ্ধার হয় না, তাই কঠোর অর্থে এটি রিজিউম নয়। বাস্তবে ওয়েটই একটি রাউন্ড জুড়ে শেখা আচরণ বহন করে, তবে দুটির মধ্যে কোনটি পাচ্ছেন তা জানা দরকার।
হস্তক্ষেপের হার কীভাবে গণনা হয়?
ইন্টারভেনশন হিসেবে চিহ্নিত ফ্রেম ভাগ রানের মোট ফ্রেম দিয়ে। এটি টেকওভার স্ট্যাটাসে দেখানো হয়, আর চালানো checkpoint আর প্রশিক্ষণ দেওয়া মিশ্রণের পাশে প্রতি রাউন্ডে লিখে রাখার মতো একটিমাত্র সংখ্যা এটাই।
কোন কোন পলিসি দিয়ে এই লুপ চালানো যায়?
ACT, SmolVLA, Pi0, আর GR00T N1.5 বা N1.7। লুপটি নিজে পলিসি-নিরপেক্ষ, কারণ এটি শুধু ডেটাসেট আর checkpoint তৈরি করে; বাস্তব পার্থক্য হলো একটি রাউন্ডে কত সময় লাগে আর কোন GPU দরকার।
রোবট না থাকলেও কি এটা করা যায়?
রোবট ছাড়াই রেকর্ড আর প্রশিক্ষণ করা যায়, মার্কেটপ্লেসে ডেটাসেট কিনে বা অপারেটর নিয়োগ করে, আর live পাতায় ব্রাউজার থেকে একটি আসল SO-100 চালানো যায়। DAgger রাউন্ড আলাদা জিনিস: এর জন্য এমন একটি আর্ম দরকার যা আপনি মাঝপথে নিয়ন্ত্রণ নিতে পারেন, তাই লুপটার জন্যই নিজের ডেস্কে হার্ডওয়্যার থাকা দরকার।
A real SO-100, live in the browser. No signup, no hardware needed.
এই সপ্তাহেই প্রথম রাউন্ডটি চালান
ক্লায়েন্ট ইনস্টল করুন, আগে থেকে থাকা একটি checkpoint চালান, আর আর্ম যখন প্রথমবার কিউব ছাড়িয়ে যাবে তখন নিয়ন্ত্রণ নিন। এই একটি রানই একটি ছোট আকারের DAgger রাউন্ড; এরপরের সবকিছু হলো মিশ্রণ সাজানো আর GPU-এর ঘণ্টার দাম দেওয়া।