← Voltar ao Blog
Robotics & Physical AI

Integração LeRobot LanceDB: Um mapa de passagem do conjunto de dados para a política

A integração nativa do LeRobot com o LanceDB conecta o treinamento de robôs e a curadoria de conjuntos de dados por meio de um layout de armazenamento compartilhado. Este guia explica as três tabelas nativas, a migração a partir da saída do plugin legado e as verificações necessárias para preservar exemplos temporais, divisões limpas e comparações de desempenho significativas.

Escrito por Hamza Diaz
25 de setembro de 202610 min de leitura16 visualizações

O que a integração LeRobot LanceDB realmente muda

Um conjunto de dados pode servir ao treinamento e a curadoria, se a passagem sobreviver

A integração LeRobot LanceDB é interessante por um motivo simples: ela permite que LeRobotDataset leia conjuntos de dados Lance nativos enquanto os mesmos dados tambem podem ser inspecionados e curados. Isso pode remover uma dor de cabeça conhecida em dados de robotica, em que codigo de treinamento, notebooks de curadoria e exportacoes de armazenamento se afastam silenciosamente.

O risco e igualmente simples. Armazenamento compartilhado nao prova que o treinador recebe os mesmos exemplos que o curador aprovou. Uma equipe de robotica pode consultar demonstracoes, aceitar um conjunto de episodios e depois treinar a partir do que parece ser o mesmo nome de conjunto de dados. Se janelas de frames, conteudos de tabelas ou alinhamento de acoes mudaram no intervalo, os exemplos retornados podem diferir dos aprovados. Apenas uma mudanca na ordem de amostragem pode preservar a pertinencia ao conjunto enquanto torna uma comparacao de carregadores menos controlada.

O anuncio de integracao de 24 de setembro de 2026 descreve leitura nativa de Lance por meio de LeRobotDataset, acesso aleatorio remoto e curadoria junto aos dados de treinamento. Essa e a parte util. O ponto mais rigoroso e que o formato de armazenamento nao e o exemplo de treinamento inteiro. Exemplos sao feitos de ativos, carimbos de tempo, janelas, acoes, transformacoes e regras de divisao. Mude qualquer um desses elementos, e uma migracao limpa ainda pode alterar o problema de aprendizado.

O Mapa de Passagem do Conjunto de Dados para a Politica da Optijara e uma estrutura editorial para esse problema. Ele acompanha tres identidades da gravacao ao treinador: identidade do ativo, identidade temporal e identidade da selecao. Uma recapitulação de lancamento pergunta o que ha de novo. Este mapa pergunta o que deve permanecer igual.

O codigo nativo existe, mas misturar versoes e onde os problemas comecam

A evidencia aqui se limita a documentacao e inspecao de codigo-fonte. As verificacoes de migracao abaixo sao verificacoes propostas. Nenhum conjunto de dados foi baixado, nenhuma instalacao de pacote foi verificada, nenhum modelo foi treinado e nenhum robo foi acionado.

A revisao LeRobot inspecionada e e624f3f7f8411ec3a02635d06e79373341e5ef35; a referencia complementar e 40bcb659a52df5511cb1c8035b80775a2ff773a7. O registro de armazenamento nativo registra um backend Lance. Os metadados do pacote complementar declaram a versao 0.3.1, mas uma string de versao no codigo-fonte nao prova que todo ambiente consiga instalar um conjunto compativel. A documentacao complementar gerada ainda descreve classes de plugin mais antigas. Nao combine esses exemplos antigos de API com o caminho de leitor nativo e chame isso de plano de migracao.

Esta e minha opiniao mais forte sobre este lancamento: o modo de falha mais dificil nao e carregamento lento de dados. E uma equipe acreditar que um carimbo de formato significa que o conjunto de dados e equivalente. Alterar storage_format nao e conversao. Copiar importacoes antigas de plugin para uma receita de armazenamento nativo nao e migracao. Antes de mover uma carga de trabalho, corresponda o conversor, o leitor, a faixa de dependencias e o runtime Python ao caminho de codigo exato que esta sendo testado.

Leia o layout de tres tabelas antes de tocar no treinamento

frames.lance, videos.lance e meta.lance

O README complementar fixado por revisao descreve um layout de saida nativo com tres tabelas Lance ao lado de um diretorio meta/ padrao.

frames.lance contem recursos tabulares de frames, uma linha por frame, ordenada por index. Vetores numericos sao representados como listas de tamanho fixo, e nomes de recursos sao mapeados para a forma da tabela.

videos.lance armazena os arquivos MP4 originais usando armazenamento blob v2, com informacoes de indice de bytes que incluem posicoes de keyframes. O backend nativo mapeia janelas solicitadas para intervalos de bytes alinhados a keyframes. Portanto, um frame solicitado esta ligado ao contexto de decodificacao de video. Ele nao e uma consulta isolada de bytes.

meta.lance carrega arquivos de metadados para raizes remotas. O conversor tambem grava storage_format: lance nos metadados para que o leitor possa selecionar o backend. Esse carimbo descreve um layout ja criado pela conversao. Sozinho, ele nao cria nada.

A conversao nativa mantem video comprimido em vez de recodifica-lo. Isso importa porque uma rota mais antiga de frames JPEG tinha saida nao exatamente igual em bits mesmo com qualidade 100, segundo a comparacao da documentacao legada. Ainda assim, bytes MP4 preservados estabelecem apenas continuidade do ativo comprimido. Eles nao estabelecem igualdade de tensor decodificado, equivalencia de carimbo de tempo ou janelas de treinamento correspondentes. Versao do decodificador, transformacoes, dtype, tolerancia, preenchimento e deslocamentos de acao ainda precisam ser verificados.

Matriz de decisao: layout padrao, saida de plugin antigo ou Lance nativo

Representacao existenteRelacao com o leitorAcao de migracaoVerificacao necessaria
LeRobot padrao com Parquet, MP4 e metadadosLeitor padrao do conjunto de dadosManter como referencia e converter um subconjunto de origem suportado se for utilIntervalos de episodios originais, recursos e associacoes de video
Saida do plugin complementar pre-0.3Classes e layouts especificos do plugin antigoReconverter a partir dos dados originais suportados com lerobot-lance-convertNao trate saida antiga como entrada nativa
Saida Lance nativa de tres tabelasLeRobotDataset seleciona o backend Lance no codigo inspecionadoCorresponder a saida do conversor a revisao pretendida do leitorCarimbo de metadados, estrutura de tabela, amostras temporais e selecao

Treinamento remoto sem pre-download do corpus completo nao e o mesmo que treinamento sem trafego. Linhas numericas, metadados e intervalos de video ainda se movem. Workers precisam de memoria, buffers e caches. A conversao a partir de um identificador do Hub pode baixar dados de origem nao armazenados em cache. Mantenha trafego de conversao e trafego de treinamento separados em qualquer modelo de custos.

Aplique o Mapa de Passagem do Conjunto de Dados para a Politica

Carregue identidade do ativo, identidade temporal e identidade da selecao juntas

A identidade do ativo registra quais gravacoes, metadados e representacao de armazenamento estao em uso. A identidade temporal registra como indices de frames, carimbos de tempo, observacoes, acoes e limites de episodios se relacionam. A identidade da selecao registra quais exemplos uma execucao inclui e em que ordem.

Uma passagem correta carrega as tres. O mesmo video pareado com acoes deslocadas e um conjunto de dados diferente para aprendizado de politica. Os mesmos episodios visitados em uma ordem diferente nao sao uma comparacao controlada de carregador. Uma consulta que retorna linhas diferentes apos atualizacoes de tabela e uma nova populacao de treinamento, mesmo que o texto da consulta nao tenha mudado.

flowchart TD A[MP4 original e metadados] --> F[frames.lance] A --> V[videos.lance] A --> M[meta.lance e diretorio meta] F --> P[Manifesto proposto de selecao fixada] V --> P M --> P P --> T[Treinador] P --> C[Curadoria e inspecao]

O no de selecao e um manifesto de execucao proposto, nao uma afirmacao de que a integracao implementa snapshots transacionais nas tres tabelas. Registre as versoes de tabela disponiveis e prove que elas sao compativeis. Congele gravacoes, ou controle-as de outra forma, enquanto captura a selecao.

Este JSON ilustrativo e contabilidade, nao um arquivo de configuracao LeRobot aceito:

{
  "framework": "Dataset-to-Policy Handoff Map",
  "identities": ["asset", "temporal", "selection"],
  "testsExecuted": false,
  "codeRevision": "<verified-reader-and-converter-revisions>",
  "datasetRevision": "<immutable-source-revision>",
  "tableVersions": {"frames": "<version>", "videos": "<version>", "meta": "<version>"},
  "episodeSelection": "<fixed-train-and-heldout-manifests>",
  "rowSelection": "<stable-identifiers-at-recorded-versions>",
  "sampler": "<implementation-and-order-record>",
  "seed": "<recorded-seed>",
  "delta_timestamps": "<feature-offset-map>",
  "decoderSettings": "<decoder-version-transforms-and-padding>"
}

Preserve identificadores semanticos de frames junto com referencias de linhas de armazenamento e versoes de tabela. Uma posicao fisica de linha e uma identidade ruim no longo prazo depois de reescritas. Exporte a lista de episodios aceita. Mantenha a consulta, o codigo de pontuacao e a versao de pontuacao que a produziram.

O anuncio distingue embaralhamento global de amostragem por janelas. Teste acesso aleatorio, embaralhamento global e qualquer configuracao de embaralhamento por janela separadamente. Conseguir buscar qualquer linha nao prova que um amostrador visita a distribuicao pretendida. Para comparacoes controladas, registre a ordem real das amostras em vez de depender apenas de uma semente.

Mantenha delta_timestamps, preenchimento de limites de episodio e alinhamento observacao-acao explicitos. O backend nativo expoe comportamento de janela temporal e preenchimento, mas usar a mesma API publica de treinamento nao remove a necessidade de comparar itens retornados. Busca visual pode indicar demonstracoes para revisao. Ela nao deve certificar rotulos. Separe tambem os niveis de produto: o exemplo add_columns e backfill adiado do anuncio e identificado como LanceDB Enterprise, portanto nao deve ser orcado como um fluxo de trabalho open-source padrao.

Reconvertendo um pequeno conjunto de dados antes de mover uma carga de trabalho

Checklist de migracao proposto

Comece com um pequeno subconjunto de origem autorizado que contenha varios episodios, fluxos de camera e casos de limite. Mantenha o original como referencia. Registre a revisao imutavel, os identificadores de episodio e a licenca antes da conversao. Deixe o treinamento de producao inalterado durante esta comparacao.

Para dados de plugin pre-0.3, reconverta a partir da entrada original suportada. Nao renomeie saida antiga. Verifique a disponibilidade do pacote lancado e as opcoes de CLI correspondentes antes de publicar um comando de instalacao, porque somente a inspecao de codigo-fonte nao estabelece que um ambiente funciona.

Verificacao propostaEvidencia a reterMotivo para parar
Estabelecer identidade da origemRevisao do conjunto de dados, licenca, lista de episodios e metadados originaisA origem muda durante a comparacao
Comparar registros tabularesContagens, ordem de indices, carimbos de tempo, observacoes, acoes e associacoes de cameraLinhas ausentes ou mudancas de valor sem explicacao
Comparar ativos de video e decodificacaoChecksums de ativos comprimidos mais amostras decodificadas sob configuracoes correspondentesDiferencas de ativo ou tensor sem explicacao
Exercitar janelas temporaisdelta_timestamps, amostras de limite, mascaras de preenchimento e alinhamento de acoesJanelas cruzam limites de episodios nao pretendidos
Congelar exemplos selecionadosVersoes de tabela, identificadores estaveis, listas de episodios e ordem de amostras registradaSelecao muda entre inspecao e treinamento
Auditar estrutura e semanticaRelatorio estrutural mais rotulos, temporizacao e pertinencia a divisao revisadosArquivos validos escondem significado incorreto ou contaminacao

Use a mesma versao de decodificador, transformacoes, dtype de saida e tolerancia de carimbo de tempo ao comparar amostras decodificadas. Se uma tolerancia for necessaria, vincule-a a representacao e ao uso de treinamento pretendido. Um limite generico pode esconder a incompatibilidade que o piloto deveria encontrar.

Inspecione janelas nos inicios e fins de episodios, nao apenas frames medios faceis. Compare mascaras de preenchimento e horizontes de acao solicitados. Confirme associacao de camera e temporizacao de acoes de forma independente, porque contagens correspondentes nao provam essas relacoes.

O doctor de conjuntos de dados do repositorio verifica a estrutura de conjuntos de dados no formato upstream, incluindo intervalos de episodios, arquivos referenciados e fornecimento de frames de video inferido de metadados de contêiner sem decodificacao. Use-o onde houver suporte. Ele nao estabelece integridade de frames decodificados, rotulos corretos, acoes alinhadas ou avaliacao livre de vazamento.

Expanda apenas depois que as incompatibilidades tiverem explicacoes e outra execucao puder reproduzir a comparacao. Se os ativos corresponderem mas os exemplos diferirem, verifique a decodificacao e a selecao temporal antes de mudar configuracoes de treinamento. Se a selecao diferir, retorne ao manifesto. Mantenha o conjunto de dados de referencia ate que a discrepancia seja entendida. Uma curva de perda plausivel nao substitui a explicacao de uma incompatibilidade de dados.

O que as equipes erram ao curar dados de robotica

Divisoes por frames aleatorios e contaminacao de retencao

Separe gravacoes relacionadas antes de ajustar a curadoria. Divisoes por frames aleatorios podem colocar vistas vizinhas do mesmo evento em ambos os lados. Separacao no nivel de episodio e um ponto de partida melhor, mas nem sempre e suficiente.

Se a afirmacao e sobre novos ambientes, coletores ou tarefas, agrupe a divisao em torno dessa afirmacao. Os autores do lancamento relatam sobreposicao entre predios e coletores na divisao DROID examinada. Essa descoberta pertence a analise deles, mas e um aviso util: uma porcentagem em nivel de frame nao define por si so uma populacao retida significativa.

Ajuste escolhas de pontuacao e limiares nos dados de treinamento. Mantenha episodios retidos fixos e exclua-os de ajustes repetidos de filtro. Examinar falhas de avaliacao e depois alterar o filtro ainda e feedback, mesmo quando nenhum otimizador consome esses frames. Registre esse ciclo e reserve um novo conjunto de avaliacao intocado quando a afirmacao exigir isso.

Filtros universais de suavidade e selecoes moveis

O lancamento relata que episodios DROID naturais bem-sucedidos eram mais bruscos em sua analise. Um experimento LIBERO separado injetou corrupcao e testou detectores direcionados. Essas sao perguntas diferentes. Elas nao sustentam um limiar universal de movimento para toda tarefa robotica.

Trate pontuacoes de movimento irregular como sinais de inspecao cujo significado depende da tarefa e da configuracao de gravacao. Um movimento rapido valido nao deve ser descartado simplesmente porque uma heuristica de suavidade nao gosta dele.

Outros erros evitaveis sao mais mundanos: misturar documentacao de plugin antigo com codigo nativo, tratar similaridade visual como verdade de rotulo, treinar a partir de uma consulta depois que as versoes subjacentes mudam e chamar velocidade do carregador de habilidade do robo. Um conjunto de dados com aparencia mais limpa nao e automaticamente um sinal de ensino melhor. A curadoria ajuda quando preserva os exemplos certos, nao quando favorece o painel.

Meca o comportamento do carregador separadamente do sucesso da tarefa do robo

Um plano de medicao com escopo

Mantenha codigo, exemplos selecionados, ordem do amostrador, semente, configuracao de lote e configuracoes temporais constantes ao comparar caminhos de armazenamento. Relate comportamento de cache frio e cache quente separadamente. Mantenha fases de download da origem e conversao fora do treinamento medido, a menos que o objetivo seja medir custo de migracao.

MedicaoRegistrar juntoO que responde
Bytes de redeRegiao do armazenamento de objetos, padrao de requisicoes e trafego de conversaoQuantos dados se movem?
Cache e memoriaEstado do cache, contagem de workers e configuracoes de cache do decodificadorQuais recursos sustentam as leituras?
Tempo de decodificacao na CPUDecodificador, transformacoes e configuracao de camerasA decodificacao limita a entrega?
Tempo ocioso da GPUCarga de trabalho do modelo e configuracao de loteO acelerador esta esperando pelos dados?
Amostras por segundo somente do carregadorModo de amostragem e verificacoes dos itens retornadosCom que rapidez este carregador pode fornecer exemplos?
Tempo de parede de passo ponta a pontaModelo, precisao, otimizador e configuracao da execucaoA entrega muda a duracao do treinamento?

As comparacoes de treinamento do lancamento relatam vazao estavel correspondente em uma pequena comparacao Koch e uma execucao Lance remota mais rapida em uma configuracao DROID. Esses sao resultados relatados pelos autores sob condicoes especificadas, nao medicoes da Optijara e nao uma vantagem universal de armazenamento remoto. Comparacoes somente de carregador tambem usaram um leitor upstream em desenvolvimento, entao a revisao testada importa. O guia da Optijara sobre protocolos de benchmark explica por que detalhes de protocolo pertencem ao lado dos resultados.

Perda de treinamento e erro de proxima acao nao sao sucesso de tarefa em circuito fechado. O experimento DROID descrito nao forneceu evidencia de sucesso de tarefa baseada em simulador. O experimento LIBERO corrompido e separado e deve permanecer separado. Para a distincao downstream, veja o mapa de avaliacao de sucesso de tarefa robotica da Optijara.

Ressalvas e limites

Orce conversao, armazenamento duplicado temporario, localidade de rede, egresso, acesso a metadados e memoria de workers. Controle credenciais e acesso a gravacoes, especialmente para cenas privadas. Verifique retencao antes de reutilizar manifestos antigos. Trate selecoes obsoletas como suspeitas ate que suas versoes de tabela e registros de consulta sejam verificados.

A licenca Apache-2.0 do codigo complementar nao substitui permissoes do conjunto de dados. Esta inspecao estabelece comportamento documentado e estrutura de codigo-fonte, nao sucesso de instalacao, compatibilidade de carga de trabalho ou desempenho do robo. Mantenha a primeira decisao de adocao estreita: este caminho de armazenamento consegue preservar os exemplos pretendidos enquanto melhora o problema medido de entrega de dados?

Pontos principais

  • 1A saida Lance nativa usa tres tabelas e nao e um conjunto de dados de plugin legado renomeado.
  • 2Bytes MP4 preservados e exemplos temporais de treinamento equivalentes exigem verificacoes separadas.
  • 3Registre identidade do ativo, relacoes temporais, selecoes, versoes e ordem de amostras em conjunto.
  • 4Separe grupos retidos antes da curadoria e mantenha o ajuste de filtros nos dados de treinamento.
  • 5Vazao do carregador e evidencia de infraestrutura, nao evidencia de sucesso de tarefa do robo.

Conclusão

Preserve a passagem primeiro, depois teste a politica. A integracao nativa do LeRobot com o LanceDB oferece as equipes de robotica um caminho compartilhado promissor para treinamento e curadoria, mas o valor depende de armazenamento compativel, exemplos temporais fieis e selecoes estaveis. Comece com uma comparacao documentada em um pequeno conjunto de dados autorizado, explique incompatibilidades antes de escalar e meca resultados do robo separadamente do comportamento do carregador. A Optijara pode ajudar a moldar uma migracao de conjunto de dados com escopo e um plano de medicao quando essa pergunta mais estreita for o bloqueador real.

Perguntas frequentes

O que a integracao nativa LeRobot LanceDB armazena?

Ela usa frames.lance para recursos tabulares de frames, videos.lance para blobs MP4 originais e informacoes de indice de bytes, e meta.lance para transporte de metadados junto a um diretorio meta padrao. Esse layout nativo difere dos layouts de plugins complementares antigos. Bytes MP4 preservados nao estabelecem automaticamente tensores decodificados iguais ou exemplos temporais equivalentes; compare separadamente configuracoes do decodificador, transformacoes, carimbos de tempo, acoes, janelas e preenchimento.

Conjuntos de dados lerobot-lancedb pre-0.3 podem ser usados sem reconversao?

Nao. O repositorio complementar diz que a saida de plugins antigos e incompativel com o carregador nativo. Reconverta dados originais suportados com lerobot-lance-convert e verifique a compatibilidade conversor-leitor. Alterar apenas storage_format nao migra os arquivos.

Treinamento remoto significa que nenhum byte do conjunto de dados e baixado?

Nao. Evitar um pre-download do corpus completo ainda exige metadados, dados numericos, leituras de video alinhadas a keyframes, buffering e caches. A conversao a partir do Hub tambem pode baixar dados de origem nao armazenados em cache.

Como os dados de treinamento e avaliacao em robotica devem ser separados?

Evite divisoes por frames aleatorios entre gravacoes relacionadas. Separe episodios e, quando a meta de generalizacao exigir, predios, coletores ou tarefas. Ajuste limiares de curadoria nos dados de treinamento e mantenha selecoes retidas fixas e fora do ajuste de filtros.

Um carregador LanceDB mais rapido torna um robo mais capaz?

Nao por si so. Vazao do carregador mede entrega de dados em uma configuracao especifica. Perda de treinamento e erro de proxima acao tambem diferem de sucesso de tarefa em circuito fechado, que precisa de sua propria avaliacao controlada de robo.

Fontes

Compartilhar este artigo

Hamza Diaz

Escrito por

Hamza Diaz

Hamza Diaz é o fundador da Optijara, onde cria agentes de IA práticos, sistemas de automação e fluxos de trabalho do Copilot para empresas de serviços. Ele escreve sobre operações de IA, estratégia de agentes e implementação no mundo real para equipes que querem sistemas úteis em vez de exagero.