Як розмічати мультимодальні дані для робототехнічних foundation-моделей
Шість модальностей у сучасному VLA-стеку
Публічно доступна архітектура RLDX-1 від RLWRLD — гарний канонічний приклад, бо вона описана відкрито. Їх Multi-Stream Action Transformer (MSAT) пропускає шість модальностей через окремі stream'и обробки і дозволяє їм взаємодіяти через joint self-attention замість того щоб згортати все в один спільний repr:
| Модальність | Що несе | Як виглядає розмітка |
|---|---|---|
| Vision-Language | Відео з камер робота + текстова інструкція | Ідентифікація об'єктів, просторова композиція, language-grounding теги, стан сцени на початку і в кінці |
| Proprioception | Позиції суглобів, швидкості — внутрішнє відчуття роботом свого тіла | Межі фаз за конфігурацією суглобів; мітки стану руху/гейту |
| Action | Моторні команди — що робот робить | Мітки action primitive; intent-анотації; success/failure прапорці |
| Memory | Минулі cognition features — long-horizon контекст | Декомпозиція на під-задачі; long-horizon goal мітки; cross-episode references |
| Tactile | Дані тиску/текстури з пальцевих сенсорів | Події contact/no-contact; якість захвату; маркери проковзування |
| Torque | Крутні моменти в суглобах — фізичне зусилля на кожному суглобі | Переходи фаз контакту; силові підписи моменту захвату і відпускання |
Кожна модальність має свою власну дисципліну розмітки. Об'єднання їх — коли один анотатор робить усі шість в одному прохідці по відеоплеєру — найпоширеніша помилка в ранніх стадіях VLA-розмітки. Правильний підхід: один анотатор на потік плюс прохідця cross-modal узгодження в кінці.
Проблема меж фаз
Причина чому multi-stream розмітка має значення — найважливіші події в роботизованій маніпуляції візуально неоднозначні. Чистий приклад з RLDX-1: задача card-slide pick, розбита на чотири фази — Approach → Contact → Pick → Hand-Over.
Якщо дивитись тільки на відео, ти не зможеш надійно сказати коли захоплювач реально зчіплюється з карткою. Рука приблизно в потрібній позиції за кілька кадрів до того як вона захопила, і сам контакт відбувається десь усередині цієї неоднозначності. Анотатор, який покладається на відео, обере якийсь кадр — але його обраний кадр і вибір іншого анотатора не співпадуть.
Подивись на трасу joint torque натомість — і момент контакту безпомилковий: різкий пік у мілісекунду коли пальці зчепились. Torque-траса не несе просторового контексту як відео, але для цієї конкретної межі вона володіє істиною. Physics Stream в RLDX-1 споживає torque як власну модальність саме щоб модель могла навчитись асоціювати цю сигнатуру з поняттям контакту.
Принцип узагальнюється: для будь-якої межі фази в маніпуляційній задачі одна модальність володіє істиною. Розмічай там, не на відео.
| Межа | Authoritative модальність | Чому |
|---|---|---|
| Approach → Contact | Joint torque | Візуальний контакт неоднозначний; torque стрибає в мить коли пальці зчіпляються |
| Contact → Pick | Tactile + швидкість суглобів | Pick = "стабільний захват + початок руху"; tactile підтверджує захват, швидкість підтверджує рух |
| Pick → Transport | Proprioception (траєкторія суглобів) | Визначається формою траєкторії end-effector, не візуальним маркером |
| Transport → Hand-Over | Vision-Language (детекція простягнутої руки людини) | Намір людини входить у сцену; vision-language модель краще його реєструє |
| Hand-Over → Release | Torque + спад tactile | Сила і тиск обидва падають до нуля характерним способом |
Синхронізація часу: тихий вбивця
У мультимодальної розмітки є одна технічна передумова, відсутність якої робить усе інше безглуздим: hardware-clock синхронізація між усіма сенсорами.
Один кадр відео при 30fps — це приблизно 33мс. Зчитування torque при 1кГц резолвиться до 1мс. Tactile-події при вищих частотах ще щільніші. Якщо ці годинники не синхронізовані на рівні заліза при capture, мітки які ти продукуєш дрейфуватимуть відносно подій які вони мають маркувати — і дрейф буде безмовним. Модель тренується, точність плато на кілька пунктів нижче ніж мала б бути, і нічого в дашбордах не пояснює чому.
Практичні правила:
- Годинники сенсорів мають збігатись до спільної референції з sub-5мс дрейфом протягом 8-годинної сесії. Перевір через audit-запис перед тим як починати реальний збір даних.
- Timestamp'и мають ставитись на рівні заліза при capture, не програмно при отриманні. Сама затримка мережі може додати десятки мілісекунд варіацій.
- Кожен фрагмент датасету повинен нести флаг якості синхронізації. Знижуй вагу або відкидай фрагменти де дрейф перевищив толеранс.
- Вбудуй синтетичний alignment-тест у пайплайн: відома подія (наприклад різкий тап по пальцевому сенсору з маркером видимим камері) яка пишеться періодично, з виміряним зміщенням між модальностями.
Профіль навичок анотатора
Найбільша прихована вартість у VLA-розмітці — це профіль навичок labeler'а. Читати torque-трасу і розпізнавати різницю між справжнім пиком контакту, gripper backlash подією, і дрейфом сенсора — це навичка яку треба вчитись, на що йдуть тижні структурованого занурення в реальні приклади. Те ж саме з tactile, те ж саме з proprioception.
Labeler має інтерналізувати, як виглядає "чиста" траса в кожній модальності, і виробити чуття де сигнал, де шум. Бери людей які вже комфортно почуваються з сигнальними даними — інженерів, лаборантів, людей з instrumentation або biomedical бекграундом — і тренуй їх на конкретних модальностях які ти збираєш.
Практичні рекомендації:
- Спеціалізуй labeler'ів по модальностях, не по проєктах. Torque-тренований labeler залишається на torque; tactile-тренований — на tactile. Cross-training деградує обидва напрями.
- Парь senior labeler'а з кожним новим співробітником на перші два тижні. Дрейф калібрування в ментальній моделі labeler'а — друге найпоширеніше джерело шуму в датасеті після timestamp drift.
- Використовуй об'єктивні бенчмарки при найманні. Покажи кандидатам реальні сигнальні траси з прихованою ground truth і виміряй їх точність на ідентифікації меж фаз перш ніж пускати на продакшн дані.
Memory і long-horizon мітки
Memory Module з RLDX-1 заслуговує окремого абзацу, бо вона виносить на поверхню проблему розмітки якої немає в single-frame CV. Memory Module стискає vision-language контекст минулих кадрів у "cognition tokens" і пропускає їх через transformer-блоки, щоб підтримувати long-horizon state — еквівалент того, що модель пам'ятає що вона робила тридцять секунд тому.
Для розмітки це означає що задачі мають бути розмічені на кількох часових масштабах. Frame-level межі (контакт, release) отримують один прохід розмітки. Sub-task межі (наблизитись до об'єкта, маніпулювати ним, поставити на місце) — інший. Whole-episode цілі (зварити каву) — третій. Мітки на кожному рівні мають бути узгоджені між собою — у тебе не може бути frame-level міток що суперечать sub-task мітками, або sub-task міток що не композуються у whole-episode ціль.
Hierarchical label consistency enforce'иться інструментарієм, не доброю волею. Якщо твоя annotation платформа не підтримує nested labels з автоматичною перевіркою консистентності, ти не зробиш це правильно вручну.
Дисципліна онтології до запису
Найдорожча помилка яку ми бачимо в ранніх VLA-білдах — "ми розберемось з action taxonomy по ходу". Ти не розберешся. Через три місяці виявиш що у тебе тисячі демонстрацій з неузгодженими мітками, які неможливо примирити без повторного збору.
Action ontology, mode taxonomy, metadata-схема, визначення модальностей — все це має існувати на папері, підписаним і ML, і operations сторонами, до того як який-небудь сенсор хоч щось запише. Анотатори можуть заповнювати fine-grained фазові маркери після capture. Високорівнева структура має бути зафіксована першою.
Корисна дисципліна: будь-яка зміна онтології після першого тижня тригерить переразмітку зачеплених шматків датасету. Вартість цієї переразмітки і є механізмом дисципліни — це змушує команду думати уважно перш ніж змінювати схему, замість того щоб міняти її ad-hoc і сподіватись що нічого не зламається.
Workflow QA
Cross-modal alignment-помилки кластеризовані, а не випадкові. Дрейф годинника одного сенсора впливає на кожну мітку згенеровану під час цієї сесії. Заплутаний labeler буде неправильно маркувати кожну подію контакту в певному типі задачі. Тому QA має бути структурний, не статистичний:
- Для кожної розміченої сесії — перевір time alignment через відому референтну подію вбудовану в запис.
- Для кожного типу phase boundary — аудит усіх міток у модальності що володіє цією межею (full census, не sample).
- Spot-check cross-modal консистентності: коли torque-траса каже контакт, а відео каже немає контакту — флагуй розбіжність і вирішуй вручну.
- Трекай статистику inter-labeler agreement по labeler'у і по модальності. Labeler якого згода з консенсусом на torque-boundaries падає нижче порогу — перенавчається або переводиться.
Як ми пораховуємо ціну на мультимодальну роботу: Кожне співробітництво починається з тестового батча на твоїх реальних даних. Ти бачиш швидкість і якість на репрезентативному зрізі перед будь-яким зобов'язанням, і ціна калібрується під твою конкретну кількість модальностей, складність фаз і глибину QA — не за загальним per-frame тарифом. Подивитись як ми структуруємо співпрацю по розмітці.
Failure modes
| Failure mode | Симптом у тренуванні | Корінна причина в пайплайні розмітки |
|---|---|---|
| Silent timestamp drift | Точність гладко плато'нить під час тренування; без явного бага | Годинники сенсорів не hardware-sync'нуті; дрейф накопичується між сесіями |
| Phase-мітки тільки з video | Модель провалює contact-rich задачі попри багато даних | Labeler'и використали тільки відео; події контакту мітились на не тому кадрі |
| Дрейф онтології посеред збору | Різні шматки датасету використовують несумісні action labels | Action taxonomy переглянута під час збору без переразмітки попередніх батчів |
| Невідповідність навичок анотатора | Phase boundaries неузгоджені між labeler'ами | Visual-тренованих labeler'ів призначили на torque/tactile роботу без фізичного тренінгу |
| QA через random spot-check | Модель провалюється в реальному deployment, але pre-deploy тести пройшли | Cross-modal alignment помилки кластеризовані, не випадкові — random sampling їх не ловить |
| Плоска структура міток для long-horizon задач | Модель вчиться sub-tasks але не може скомпонувати їх у довшу поведінку | Немає hierarchical labeling — frame-level, sub-task-level і episode-level мітки не enforce'ються узгоджено |
Що ми б зробили на нульовий день нового білду
Якби ми зараз з нуля піднімали розмітку для humanoid VLA foundation-моделі, перші три пункти punch list:
- Audit hardware-clock sync ще до того як хоч щось записати. Доведи sub-5мс дрейф протягом 8-годинної сесії. Не пропускай це і не відкривай під час тренування.
- Комітет action-таксономії, підписаний письмово. Двоє ML-інженерів плюс один operations lead визначають phase ontology з опрацьованими прикладами. Документ стає labeling rubric. Зміни після першого тижня тригерять переразмітку — вартість цієї переразмітки і є механізм дисципліни.
- Спеціалізовані labeler'и по модальностях, з відповідною оплатою. Не gig-economy кліковщики. Люди тренувані читати сигнатури кожного потоку. Менша команда, повільніший ramp, набагато вища якість.
Чому ми це публікуємо
Команди які швидко скейляться на VLA-роботі ставляться до labeling як до first-class engineering проблеми з нульового дня. Ті які виходять на плато — наймають більше ML-інженерів коли насправді їм потрібна labeling-операція яка вміє читати фізику. Ми написали цей playbook бо цей gap — найбільший податок на галузь зараз, і нам здається відповідь не мусить бути проприєтарною.
Якщо ти будуєш VLA-модель і щось з цього резонує з твоїм болем — напиши нам. Multi-stream, time-aligned, physics-literate розмітка — це робота яку ми знаємо найкраще.
Будуєш робототехнічну foundation-модель і починаєш відчувати дата-сайд? Ми ведемо мультимодальні annotation пайплайни — video, proprioception, torque, tactile, time-aligned, physics-literate labeler'и. Подивись наші послуги розмітки, забронюй безкоштовну 30-хв розмову або напиши напряму.
FAQ
Яку модальність анотатори мають використовувати щоб мітити contact-події?
Joint torque, майже завжди. Візуальний контакт неоднозначний — на момент коли захоплювач здається зчепленим з об'єктом на відео, реальний контакт уже стався, або ще на кілька кадрів попереду. Torque стрибає в мить коли пальці фізично зчіпляються, з різкою сигнатурою яку важко переплутати. Використовуй відео як контекст, torque — як істину.
Чи можуть існуючі computer vision labeler'и працювати з torque або tactile?
Не без перенавчання. Читати torque-трасу і відрізняти справжній contact spike від gripper backlash або sensor drift — це навичка яку треба вчитись, на що йдуть тижні структурованого занурення в реальні приклади. Бери людей які вже комфортно почуваються з сигнальними даними і спеціалізуй їх по модальностях, не по проєктах.
Які годинники сенсорів треба hardware-синхронізувати для VLA-тренування?
Кожен сенсор чий вихід модель буде споживати. Як мінімум: камери, joint encoders, torque-сенсори, tactile-сенсори. Ціль — sub-5мс дрейф протягом 8-годинної сесії. Software timestamps які ставляться при отриманні — недостатньо: тільки мережева і buffer затримка вже додають десятки мілісекунд варіацій. Hardware-stamp при capture.
Як перевірити time alignment між сенсорами?
Вбудуй відому референтну подію в сесії запису — наприклад, різкий тап по пальцевому сенсору з маркером видимим камері. Виміряй зміщення між модальностями на цій події. Роби це на початку кожної сесії і аудитуй щотижня. Сесія де дрейф перевищив толеранс — флагується в метаданих і або відкидається, або зменшує вагу при тренуванні.
В чому різниця між frame-level, sub-task і episode мітками?
Frame-level мітки маркують конкретні моменти — контакт у t=12.34с, release у t=14.89с. Sub-task мітки групують послідовності кадрів у осмислені операції — "Взяти чашку", "Поставити під машину". Episode-мітки описують усю задачу — "Зварити каву". Сучасні VLA-архітектури з memory модулями (як cognition tokens у RLDX-1) споживають усі три рівні. Інструментарій розмітки має enforce'ити консистентність між ними, не тільки на frame-рівні.
Як QA мультимодальну розмітку коли random sampling не працює?
Cross-modal alignment-помилки кластеризовані, не випадкові. Аудит має бути структурний, не sampling: перевір time alignment через вбудовані референтні події, full-census кожну phase boundary в її authoritative модальності, spot-check cross-modal незгод (torque каже контакт, відео каже немає — флагуй для ручного вирішення), і трекай статистику inter-labeler agreement по labeler'у і модальності.