Meta FAIR lanza NeuralSet: un paquete Python para Neuro-AI que admite incrustaciones de fMRI, M/EEG, Spikes y HuggingFace

Los investigadores del laboratorio FAIR de Meta han lanzado NeuralSet, un marco de Python diseñado para eliminar uno de los cuellos de botella más persistentes en la investigación de Neuro-IA: el doloroso y fragmentado proceso de introducir datos cerebrales en un canal de aprendizaje profundo.

https://kingjr.github.io/files/neuralset.pdf

El problema: los datos de neurociencia están estancados en la era anterior al aprendizaje profundo

La neurociencia ya cuenta con un software excelente y probado en batalla. Herramientas como MNE-Python, EEGLAB, FieldTrip, Brainstorm, Nilearn y fMRIPrep son el estándar de oro para el procesamiento de señales en electrofisiología y neuroimagen. El problema es que estas herramientas fueron diseñadas para un mundo previo al aprendizaje profundo: dependen de una carga ansiosa, asumiendo que conjuntos de datos completos caben en la RAM, y carecen de abstracciones nativas para alinear temporalmente series de tiempo neuronales con incorporaciones de alta dimensión de marcos de IA modernos como HuggingFace Transformers.

¿El resultado? Los investigadores dedican un enorme esfuerzo a crear canales ad hoc que requieren manipulación manual de datos, almacenamiento en caché manual y configuraciones complejas de backend, solo para obtener señales cerebrales combinadas con, por ejemplo, incrustaciones de texto GPT-2 para un solo experimento. A medida que los conjuntos de datos públicos en plataformas como OpenNeuro alcanzan ahora la escala de terabytes y los protocolos experimentales incorporan cada vez más estímulos continuos de voz y vídeo, esta brecha de infraestructura ya no es sólo un inconveniente: es un cuello de botella científico.

Qué hace realmente NeuralSet

El principio central de diseño de NeuralSet es el desacoplamiento estructura-datos. En lugar de cargar señales sin procesar por adelantado, NeuralSet representa la estructura lógica de cualquier experimento como metadatos livianos basados ​​en eventos, completamente separados de la extracción de señales reales con uso intensivo de memoria y computación. El marco está organizado en torno a cinco abstracciones principales: eventos, extractores, segmentos, datos por lotes y una capa de backend.

En la práctica, todo en un experimento (una realización de una resonancia magnética funcional, una palabra pronunciada durante una tarea, un estímulo en video) se modela como un Evento: un diccionario Python liviano definido por un tipo, una hora de inicio, una duración y una línea de tiempo (un identificador único para una sesión de grabación continua). Un objeto de estudio reúne todos los eventos de un conjunto de datos completo en un único DataFrame de pandas. Es importante destacar que NeuralSet admite conjuntos de datos compatibles con BIDS, aunque no se limita a ellos. Debido a que DataFrame contiene solo metadatos livianos (no las señales sin procesar en sí), los ingenieros pueden filtrar, explorar y recombinar conjuntos de datos masivos utilizando operaciones estándar de pandas sin cargar un solo byte de datos sin procesar en la memoria.

Luego, las operaciones Composable EventsTransform se pueden encadenar para enriquecer o filtrar eventos, por ejemplo, anotar palabras con el contexto de su oración, asignar divisiones de validación cruzada o dividir eventos largos de audio y video en segmentos más cortos. También se pueden componer varios pasos de Estudio y Transformación mediante una Cadena, que crea un único objeto de canalización reproducible y almacenable en caché.

https://kingjr.github.io/files/neuralset.pdf

Cuando llega el momento de trabajar con datos, NeuralSet utiliza extractores para cerrar la brecha entre la capa de metadatos y las matrices numéricas requeridas por los modelos de aprendizaje automático. Para las grabaciones neuronales, NeuralSet envuelve directamente las pilas de preprocesamiento de bibliotecas específicas de dominio: un FmriExtractor delega en Nilearn la limpieza de señales, el suavizado espacial y la proyección basada en superficies o atlas, mientras que un MegExtractor o EegExtractor delega en MNE-Python el filtrado, la nueva referencia y el remuestreo. La misma interfaz unificada cubre iEEG, fNIRS, EMG y registros de picos: cambiar de modalidad solo requiere cambiar un parámetro de configuración, no reescribir una tubería.

Para estímulos experimentales, NeuralSet proporciona integración nativa con el ecosistema HuggingFace. Un único extractor HuggingFaceImage puede incorporar cuadros de estímulo a través de DINOv2 o CLIP; Existen extractores análogos para audio (Wav2Vec, Whisper), texto (GPT-2, LLaMA) y vídeo (VideoMAE). Fundamentalmente, NeuralSet puede expandir una incrustación estática (digamos, un único vector por imagen) en una serie temporal a una frecuencia arbitraria, de modo que las representaciones de estímulos siempre estén temporalmente alineadas con las grabaciones neuronales.

Los extractores siguen un modelo de ejecución de tres fases: configurar (validación de parámetros en el momento de la construcción), preparar (precalcular y almacenar en caché resultados pesados ​​para todos los eventos) y extraer (recuperación diferida del caché durante el entrenamiento del modelo). Esto significa que cálculos costosos, como ejecutar un modelo de lenguaje grande sobre cada palabra de un corpus, se realizan una vez y se reutilizan en los experimentos. La salida de un extractor para un solo segmento son datos por lotes: un diccionario de tensores codificados por nombre del extractor, junto con los segmentos correspondientes.

Segmentador, cargador de datos e infraestructura lista para clústeres

Un segmentador divide el marco de datos de eventos en segmentos (ventanas temporales contiguas que representan ejemplos de entrenamiento únicos) ya sea en una cuadrícula de ventana deslizante o ancladas a eventos desencadenantes específicos, como imágenes o inicios de palabras. El SegmentDataset resultante es un conjunto de datos de PyTorch estándar, directamente compatible con DataLoader, PyTorch Lightning o cualquier marco basado en PyTorch.

NeuralSet se basa en el paquete exca, que maneja el almacenamiento en caché determinista basado en hash, procedencia computacional completa y ejecución independiente del hardware. Cambiar un único parámetro de preprocesamiento invalida solo la caché descendente afectada, dejando intactas las ramas independientes. Se mantiene la procedencia completa, lo que significa que cualquier tensor procesado se puede rastrear hasta la versión exacta de los datos sin procesar y la cadena de preprocesamiento específica utilizada para generarlos. Los investigadores pueden crear un prototipo de un solo sujeto en su computadora portátil y luego enviar 100 sujetos a un clúster HPC basado en SLURM cambiando un único indicador de configuración, sin necesidad de un código específico de la infraestructura.

NeuralSet utiliza Pydantic para imponer una validación estricta del esquema en el momento de la inicialización en cada objeto configurable: eventos, estudios, extractores, segmentadores y transformaciones son todas subclases de Pydantic BaseModel. Esto significa que un parámetro mal configurado (por ejemplo, una frecuencia de filtro negativa o una ruta de directorio BIDS no válida) genera un error claro inmediatamente, antes de enviar cualquier trabajo, en lugar de fallar horas después de una ejecución de procesamiento.

Cómo se compara con las herramientas existentes

En el artículo de investigación, el equipo de investigación presenta una comparación detallada de NeuralSet con 18 paquetes de software de neurociencia existentes en dispositivos neuronales (fMRI, EEG, MEG, iEEG, picos y más), tipos de tareas experimentales (imagen, video, sonido, texto) y características de infraestructura (soporte de Python, memmap, procesamiento por lotes, almacenamiento en caché, ejecución en clúster). NeuralSet es el único paquete en la comparación que logra soporte completo en todas las categorías.

Conclusiones clave

NeuralSet unifica los datos del cerebro y la IA en un solo canal. Los investigadores de Meta FAIR crearon NeuralSet para cerrar la brecha entre diversos registros neuronales (fMRI, M/EEG, picos) y marcos modernos de aprendizaje profundo, ofreciendo un único cargador de datos listo para PyTorch para ambos. El desacoplamiento estructura-datos elimina los cuellos de botella en la memoria. NeuralSet separa los metadatos de eventos livianos de la extracción de señales pesadas, para que los investigadores y desarrolladores de IA puedan filtrar y explorar conjuntos de datos a escala de terabytes sin cargar un solo byte de datos sin procesar en la RAM. Cambiar las modalidades de grabación requiere cambiar solo un parámetro de configuración. Una interfaz Extractor unificada envuelve los modelos MNE-Python, Nilearn y HuggingFace (que cubren fMRI, EEG, MEG, iEEG, fNIRS, EMG, picos, texto, audio y video) sin necesidad de reescribir la canalización. La validación Pydantic y el almacenamiento en caché determinista evitan el desperdicio de cálculo. Los errores de configuración se detectan en la inicialización antes de que se ejecute cualquier trabajo, y un sistema de almacenamiento en caché basado en hash garantiza que cálculos costosos, como las incrustaciones de LLM, se realicen una vez y se reutilicen en todos los experimentos. El mismo código se ejecuta en una computadora portátil o en un clúster SLURM. El backend independiente del hardware de NeuralSet, impulsado por el paquete exca, permite a los investigadores y desarrolladores de IA escalar sin problemas desde la creación de prototipos locales hasta la ejecución de clústeres de alto rendimiento mediante la actualización de un único indicador de configuración.

Consulte la página de Paper y GitHub. Además, no dude en seguirnos en Twitter y no olvide unirse a nuestro SubReddit de más de 130.000 ML y suscribirse a nuestro boletín. ¡Esperar! estas en telegrama? Ahora también puedes unirte a nosotros en Telegram.

¿Necesita asociarse con nosotros para promocionar su repositorio de GitHub O su página principal de Hugging O su lanzamiento de producto O seminario web, etc.? Conéctate con nosotros