ডেটাসেট নিয়ে কাজ করা
AY-Robots-এর প্রতিটি টেলিঅপারেশন সেশন LeRobot ফরম্যাটে স্ট্রাকচার্ড ডেমোনস্ট্রেশন ডেটা তৈরি করে, যা ম্যানিপুলেশন ডেটার জন্য প্রকৃত অর্থে ইন্টারচেঞ্জ ফরম্যাট। এই পাতায় ব্যাখ্যা করা হয়েছে একটি ডেটাসেটের ভেতরে কী থাকে, ড্যাশবোর্ডে এপিসোড কীভাবে পরীক্ষা ও কিউরেট করবেন, মার্জিং কীভাবে কাজ করে, এবং মার্কেটপ্লেস কোথায় খাপ খায়।
সর্বশেষ আপডেট 2026-08-09
LeRobot ডেটাসেট ফরম্যাট
AY-Robots সব ডেমোনস্ট্রেশন ডেটা Hugging Face-এর রক্ষণাবেক্ষণ করা LeRobot ডেটাসেট ফরম্যাটে সংরক্ষণ করে। ব্যবহারিক সুবিধা হলো পোর্টেবিলিটি: এখানে রেকর্ড করা একটি ডেটাসেট সরাসরি LeRobot-ভিত্তিক ট্রেনিং কোডে লোড হয়, এবং একই ফরম্যাটে অন্য কোথাও রেকর্ড করা ডেটাসেট রূপান্তর ছাড়াই আপলোড করে প্ল্যাটফর্মে ব্যবহার করা যায়।
একটি ডেটাসেট হলো এপিসোডের একটি সংগ্রহ। একটি এপিসোড হলো একটি নির্ধারিত শুরুর অবস্থা থেকে রেকর্ডিং থামানোর মুহূর্ত পর্যন্ত কোনো টাস্কের একটি সম্পূর্ণ প্রচেষ্টা। ডিস্কে, একটি এপিসোড তিন ধরনের ফাইলে বিভক্ত থাকে: সংখ্যাগত স্ট্রিমসহ একটি Parquet ফাইল, প্রতি ক্যামেরায় একটি ভিডিও ফাইল, এবং সবকিছুকে সংযুক্ত করা মেটাডেটা।
| পাথ | বিষয়বস্তু |
|---|---|
| data/.../episode_XXXXXX.parquet | প্রতি এপিসোডে একটি Parquet ফাইল: ফ্রেম-বাই-ফ্রেম টাইমস্ট্যাম্প, অবজারভেশন স্টেট, এবং অ্যাকশনস |
| videos/... | প্রতি এপিসোডে প্রতি ক্যামেরায় একটি MP4, Parquet ডেটার সঙ্গে ফ্রেম-অ্যালাইনড |
| meta/info.json | ডেটাসেট-স্তরের মেটাডেটা: রোবট টাইপ, fps, ফিচার স্কিমা, এবং এপিসোড ও ফ্রেম কাউন্টস |
| meta/episodes.jsonl | প্রতিটি এপিসোডের জন্য একটি লাইন, যাতে তার ইনডেক্স, দৈর্ঘ্য, এবং যে টাস্কের অন্তর্গত তা থাকে |
| meta/tasks.jsonl | ন্যাচারাল-ল্যাঙ্গুয়েজ টাস্ক স্ট্রিং যা এপিসোডগুলো ইনডেক্স অনুযায়ী রেফারেন্স করে |
info.json-এর ফিচার স্কিমা হলো তা যা ট্রেনিং কোড পড়ে আপনার ডেটা বুঝতে পারে: কোন অবজারভেশন কী বিদ্যমান, তাদের শেপ, এবং রেকর্ডিং রেট। দুটো ডেটাসেট তখনই সামঞ্জস্যপূর্ণ যখন তাদের স্কিমা মেলে, যা ঠিক মার্জ ভ্যালিডেশন যাচাই করে।
জয়েন্ট ভ্যালু শতাংশ, ডিগ্রি নয়
AY-Robots ডেটাসেটের সব জয়েন্ট ভ্যালু LeRobot-নরমালাইজড: প্রতিটি ভ্যালু -100 থেকে 100 পর্যন্ত থাকে এবং সেই জয়েন্টের ক্যালিব্রেটেড রেঞ্জের একটি শতাংশ প্রতিনিধিত্ব করে, ডিগ্রিতে কোণ নয়। 0 রিডিং হলো ক্যালিব্রেটেড রেঞ্জের কেন্দ্র, -100 এবং 100 হলো এর সীমা।
ফিজিক্যাল আর্মের মধ্যে সার্ভো জিরো পয়েন্ট আলাদা হয়, তাই দুটো SO-100 ইউনিটের raw অ্যাঙ্গেল ভিন্ন পোজ বর্ণনা করে। ক্যালিব্রেটেড রেঞ্জে নরমালাইজ করা রেকর্ডিংগুলোকে আর্মের মধ্যে তুলনাযোগ্য করে তোলে এবং এটাই LeRobot ট্রেনিং পাইপলাইন প্রত্যাশা করে। যদি আপনার নিজের টুলিংয়ের জন্য অ্যাঙ্গেল দরকার হয়, আপনার ক্যালিব্রেশন ডেটা ব্যবহার করে রূপান্তর করুন; প্ল্যাটফর্ম ডিগ্রি সংরক্ষণ করে না।
ড্যাশবোর্ডে ক্লাউড ডেটাসেটস
Dashboard > Datasets আপনার ক্লাউড ডেটাসেটগুলো এপিসোড কাউন্ট, ফাইল সাইজ, এবং কালেকশন স্ট্যাটাস সহ তালিকাভুক্ত করে। একটি টেলিঅপারেশন সেশন ডেটা রেকর্ড করলে ডেটাসেট স্বয়ংক্রিয়ভাবে তৈরি হয়, এবং আপনি স্পষ্টভাবে একটি তৈরি করে ডেস্কটপ ক্লায়েন্ট থেকে রেকর্ডিং আপলোড করে তা পূরণও করতে পারেন।
- তৈরি করা: সেশন থেকে নতুন ডেটাসেট স্বয়ংক্রিয়ভাবে তৈরি হয়, অথবা একটি খালি তৈরি করে তাতে আপলোড করুন।
- নাম পরিবর্তন: যেকোনো সময় ডিসপ্লে নাম পরিবর্তন করুন; পরিবর্তনটি ডেটাকে নিজে স্পর্শ করে না।
- মুছে ফেলা: ডেটাসেট এবং এর সব এপিসোড ও ফাইল সরিয়ে দেয়। মুছে ফেলা স্থায়ী, তাই ভবিষ্যতে ডেটা দরকার হতে পারে মনে হলে আগে একটি আর্কাইভ ডাউনলোড করুন।
এপিসোড ব্রাউজার
একটি ডেটাসেট খুললে আপনি এপিসোড ব্রাউজারে পৌঁছান। প্রতিটি এপিসোডে থাকে তার ক্যামেরা স্ট্রিমের জন্য একটি ভিডিও প্লেয়ার এবং এপিসোড জুড়ে নরমালাইজড জয়েন্ট ভ্যালু প্লট করা সিঙ্ক্রোনাইজড জয়েন্ট চার্ট। ভিডিও স্ক্রাব করলে চার্ট কারসার তার সঙ্গে সরে, যা সমস্যা চিহ্নিত করা দ্রুত করে তোলে: একটি ঝাঁকুনিপূর্ণ পন্থা চার্টে স্পাইক হিসেবে দেখা যায়, একটি ব্যর্থ গ্রাসপ ভিডিও দেখার আগেই গ্রিপার চ্যানেলে দৃশ্যমান হয়।
এপিসোড লেবেল: Success, Recovery, Failure
প্রতিটি এপিসোড তিনটি লেবেলের একটি বহন করতে পারে। Success একটি পরিষ্কার টাস্ক ডেমোনস্ট্রেশন চিহ্নিত করে। Recovery এমন একটি এপিসোড চিহ্নিত করে যেখানে চেষ্টার মাঝপথে কিছু ভুল হয়েছিল এবং আপনি তা সংশোধন করেছেন; এগুলো মূল্যবান কারণ এগুলো একটি পলিসিকে সঠিক পথে ফিরে আসতে শেখায়। Failure এমন এপিসোড চিহ্নিত করে যা লক্ষ্যে পৌঁছায়নি এবং সাধারণত ট্রেনিং থেকে বাদ রাখা উচিত। রিভিউ করার সময় লেবেল করা এমন একটি পলিসি ডিবাগ করার চেয়ে অনেক সস্তা যা চুপচাপ খারাপ ডেমোনস্ট্রেশন থেকে শিখেছে।
ডেটাসেট মার্জ করা
মার্জিং কয়েকটি রেকর্ডিংকে একটি বড় ডেটাসেটে একত্র করে, যেমন একই টাস্কের এক সপ্তাহের সেশন অথবা দুটো ক্যালিব্রেটেড আর্ম থেকে রেকর্ডিং। মার্জ একাধিক tar.gz আর্কাইভ নেয়, প্রতিটিতে একটি LeRobot ডেটাসেট থাকে, এবং পুনরায় ইনডেক্স করা এপিসোডসহ একটি একক ডেটাসেট তৈরি করে।
- 1আর্কাইভ প্রস্তুত করুন
প্রতিটি ইনপুট অবশ্যই একটি সম্পূর্ণ LeRobot ডেটাসেট হতে হবে যা tar.gz আর্কাইভ হিসেবে প্যাক করা, তার meta ডিরেক্টরি সহ। info.json ছাড়া আংশিক আর্কাইভ যাচাই করা যায় না এবং প্রত্যাখ্যাত হয়।
- 2একাধিক আর্কাইভ আপলোড করুন
Dashboard > Datasets-এ, একটি মার্জ শুরু করুন এবং যে সব tar.gz আর্কাইভ একসঙ্গে করতে চান তা এক ধাপে নির্বাচন করুন।
- 3ভ্যালিডেশন
প্ল্যাটফর্ম যাচাই করে যে সব ইনপুটে fps, ফিচার স্কিমা, এবং robot_type মিলছে কিনা। এই তিনটির যেকোনো একটি ভিন্ন হলে, মার্জ প্রত্যাখ্যাত হয় এবং অমিলটি নাম দিয়ে দেখানো হয়, কারণ অসঙ্গত স্ট্রিমসহ একটি মিলিত ডেটাসেট নীরবে ট্রেনিং নষ্ট করে দেবে।
- 4ফলাফল রিভিউ করুন
মার্জ করা ডেটাসেট আপনার তালিকায় সম্মিলিত এপিসোড কাউন্ট সহ দেখা যায়। এপিসোড ব্রাউজার খুলুন এবং ট্রেন করার আগে প্রতিটি সোর্স থেকে কয়েকটি এপিসোড স্পট-চেক করুন।
তিনটি সামঞ্জস্য নিয়ম ইচ্ছাকৃতভাবে কঠোর। ফ্রেম রেটের অমিল প্রতিটি টাইমস্টেপের অর্থ বদলে দেয়, স্কিমার অমিল লোডারদের সম্পূর্ণভাবে ভেঙে দেয়, এবং রোবট টাইপ মেশানো এমন একটি ডেটাসেট তৈরি করে যার উপর কোনো একক পলিসি কাজ করতে পারবে না। একই মডেলের ভিন্ন ভিন্ন আর্ম থেকে ডেটা একত্র করতে হলে, তা ঠিক আছে: robot_type মডেলকে বোঝায়, ফিজিক্যাল ইউনিটকে নয়।
ডেটাসেট মার্কেটপ্লেস
মার্কেটপ্লেস আপনাকে অন্যদের রেকর্ড করা ডেটাসেট কিনতে এবং নিজেরটি বিক্রি করতে দেয়। কেনা ডেটাসেটগুলো আপনার ড্যাশবোর্ডে আপনার নিজের রেকর্ডিংয়ের মতো একই LeRobot লেআউটে পৌঁছায়, তাই কোনো অতিরিক্ত ধাপ ছাড়াই এগুলো এপিসোড ব্রাউজার, মার্জিং, এবং ট্রেনিংয়ের সঙ্গে কাজ করে।
আপনি যদি বিক্রি করেন, তালিকাভুক্ত করার আগে কিউরেট করুন। এপিসোডগুলো রিভিউ করুন, সততার সঙ্গে লেবেল করুন, এবং নিশ্চিত করুন যে টাস্ক স্ট্রিং রেকর্ডিংয়ে আসলে যা ঘটে তা বর্ণনা করে। আপনার ডেটাসেট মূল্যায়ন করা একজন ক্রেতা আপনার মতো একই এপিসোড ব্রাউজার দেখেন, এবং পরিষ্কার লেবেল ও সামঞ্জস্যপূর্ণ ডেমোনস্ট্রেশনসহ ডেটাসেট আপনার রেকর্ড করা সবকিছুর কাঁচা ডাম্পের চেয়ে বেশি মূল্যবান।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
একটি সাধারণ এপিসোড কত বড়?▾
দৃশ্যের জটিলতার উপর নির্ভর করে, দুটো ক্যামেরায় 30 fps-এ 10 থেকে 20 সেকেন্ডের একটি এপিসোডের জন্য প্রায় 5 থেকে 15 MB। কয়েকশো এপিসোডসহ একটি সিরিয়াস ডেটাসেট কম গিগাবাইটের পরিসরে পৌঁছায়।
আমি কি আমার ডেটাসেট ডাউনলোড করতে পারি?▾
হ্যাঁ। ডেটাসেট ড্যাশবোর্ড থেকে আর্কাইভ হিসেবে ডাউনলোড করা যায়। যেহেতু লেআউট স্ট্যান্ডার্ড LeRobot, ডাউনলোড সরাসরি LeRobot টুলিং এবং আপনার নিজের ট্রেনিং কোডের সঙ্গে কাজ করে।
আমি কি ভিন্ন রোবট টাইপের ডেটাসেট মার্জ করতে পারি?▾
না। মার্জের জন্য সব ইনপুটে fps, ফিচার স্কিমা, এবং robot_type মিলতে হবে। একই মডেলের দুটো ভিন্ন ফিজিক্যাল আর্মের ডেটা মার্জ করা যায়, শর্ত থাকে যে দুটো আর্মই ক্যালিব্রেটেড।
জয়েন্ট চার্ট কি ডিগ্রি দেখায়?▾
না। সব জয়েন্ট ভ্যালু -100 থেকে 100 রেঞ্জে LeRobot-নরমালাইজড, প্রতিটি জয়েন্টের ক্যালিব্রেটেড রেঞ্জের শতাংশ হিসেবে প্রকাশিত। Parquet ফাইলেও ঠিক এটাই সংরক্ষিত থাকে।
আমি একটি ডেটাসেট মুছে ফেললে কী হয়?▾
ডেটাসেট এবং এর সব এপিসোড, ভিডিও, এবং মেটাডেটা স্থায়ীভাবে সরিয়ে ফেলা হয়। কোনো আনডু নেই, তাই নিশ্চিত না হলে আগে একটি আর্কাইভ ডাউনলোড করুন।
ক্লাউডে আপনার টেলিঅপারেশন ডেটাসেটের উপর ACT, Diffusion Policy, SmolVLA, এবং GR00T ফাইন-টিউন ট্রেন করুন, তারপর নিজের আর্মে ট্রেন করা পলিসি চালান।
macOS, Windows, বা Linux-এ AY-Robots ডেস্কটপ অ্যাপ ইনস্টল করুন, গাইডেড ফ্লো দিয়ে SO-100 এপিসোড রেকর্ড করুন, LeRobot ডেটা এক্সপোর্ট করুন, এবং CLI ও MCP ব্যবহার করুন।