{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/large-brain-model-for-learning-generic","title":"Large Brain Model for Learning Generic Representations with Tremendous EEG Data in BCI","arxiv_id":"2405.18765","date":"2024-05-29","proceeding":null,"authors":["Wei-Bang Jiang","Li-Ming Zhao","Bao-liang Lu"],"abstract":"The current electroencephalogram (EEG) based deep learning models are typically designed for specific datasets and applications in brain-computer interaction (BCI), limiting the scale of the models and thus diminishing their perceptual capabilities and generalizability. Recently, Large Language Models (LLMs) have achieved unprecedented success in text processing, prompting us to explore the capabilities of Large EEG Models (LEMs). We hope that LEMs can break through the limitations of different task types of EEG datasets, and obtain universal perceptual capabilities of EEG signals through unsupervised pre-training. Then the models can be fine-tuned for different downstream tasks. However, compared to text data, the volume of EEG datasets is generally small and the format varies widely. For example, there can be mismatched numbers of electrodes, unequal length data samples, varied task designs, and low signal-to-noise ratio. To overcome these challenges, we propose a unified foundation model for EEG called Large Brain Model (LaBraM). LaBraM enables cross-dataset learning by segmenting the EEG signals into EEG channel patches. Vector-quantized neural spectrum prediction is used to train a semantically rich neural tokenizer that encodes continuous raw EEG channel patches into compact neural codes. We then pre-train neural Transformers by predicting the original neural codes for the masked EEG channel patches. The LaBraMs were pre-trained on about 2,500 hours of various types of EEG signals from around 20 datasets and validated on multiple different types of downstream tasks. Experiments on abnormal detection, event type classification, emotion recognition, and gait prediction show that our LaBraM outperforms all compared SOTA methods in their respective fields. Our code is available at https://github.com/935963004/LaBraM.","url_abs":"https://arxiv.org/abs/2405.18765v1","url_pdf":"https://arxiv.org/pdf/2405.18765v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"large-brain-model-for-learning-generic","repo_url":"https://github.com/935963004/labram","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"pytorch","reach":{"status":"ok","spdx":"MIT"}}],"tasks":[{"task_slug":"eeg-1","task_name":"EEG"},{"task_slug":"eeg","task_name":"Electroencephalogram (EEG)"},{"task_slug":"emotion-recognition","task_name":"Emotion Recognition"},{"task_slug":"unsupervised-pre-training","task_name":"Unsupervised Pre-training"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":"https://app.syntology.ai/?focus=2405.18765","mcp":{"get_harvested_code_for_paper":{"arxiv_id":"2405.18765"}},"developers":"https://syntology.ai/developers","read_at":"2026-09-24T18:15:14+00:00","read_at_is":"when the build read Syntology's graph, not when any sample ran","claim":"Per-sample execution status on synthesized fixtures; not a correctness claim about the paper. Samples come from repositories linked to the paper, official or community; repo_kind says which.","repos":[{"provenance":"external:paperswithcode_snapshot_2025-07-28","url":"https://github.com/935963004/labram","reach":{"status":"ok","spdx":"MIT"}}],"summary":{"ran":6,"ran_draft_wrong":1,"ran_fixture":1,"unverified":5},"by_repo_kind":{"official":{"samples":13,"ran":8,"repositories":1}},"repo_kind_vocabulary":{"official":"The archive marks this repository official for the paper","named_in_paper":"The archive records that the paper mentions this repository; it is not marked official","listed":"In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper","found_in_text":"Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted","community":"Not in the archive's code links for this paper; a community repository Syntology harvested"},"n_pointer_only_for_licence":0,"samples":[{"code_sha256_prefix":"d1a3f21c13b11e46","entry":"all_reduce","repo":"935963004/labram","repo_kind":"official","path":"utils.py","file_url":"https://github.com/935963004/labram/blob/HEAD/utils.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"d1a3f21c13b11e46"}},{"code_sha256_prefix":"4d25be8ebf17fde1","entry":"bool_flag","repo":"935963004/labram","repo_kind":"official","path":"utils.py","file_url":"https://github.com/935963004/labram/blob/HEAD/utils.py","link_basis":"harvester_set","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4d25be8ebf17fde1"}},{"code_sha256_prefix":"a3448702d6025ce6","entry":"get_num_layer_for_vit","repo":"935963004/labram","repo_kind":"official","path":"optim_factory.py","file_url":"https://github.com/935963004/labram/blob/HEAD/optim_factory.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"a3448702d6025ce6"}},{"code_sha256_prefix":"731a7e8b4363c5ab","entry":"get_parameter_groups","repo":"935963004/labram","repo_kind":"official","path":"optim_factory.py","file_url":"https://github.com/935963004/labram/blob/HEAD/optim_factory.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"731a7e8b4363c5ab"}},{"code_sha256_prefix":"eca6cdf05972a95e","entry":"l2norm","repo":"935963004/labram","repo_kind":"official","path":"norm_ema_quantizer.py","file_url":"https://github.com/935963004/labram/blob/HEAD/norm_ema_quantizer.py","link_basis":"harvester_set","language":"python","status":"ran_draft_wrong","verification_level":1,"contract_check":"MISDECLARED","metamorphic_tier":"invariant","behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"eca6cdf05972a95e"}},{"code_sha256_prefix":"81bb873654a12b23","entry":"random_masking","repo":"935963004/labram","repo_kind":"official","path":"engine_for_pretraining.py","file_url":"https://github.com/935963004/labram/blob/HEAD/engine_for_pretraining.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"81bb873654a12b23"}},{"code_sha256_prefix":"ada1d74afbd92171","entry":"sample_vectors","repo":"935963004/labram","repo_kind":"official","path":"norm_ema_quantizer.py","file_url":"https://github.com/935963004/labram/blob/HEAD/norm_ema_quantizer.py","link_basis":"harvester_set","language":"python","status":"ran_fixture","verification_level":1,"contract_check":"RAISES","metamorphic_tier":null,"behaviour_fingerprint":true,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"ada1d74afbd92171"}},{"code_sha256_prefix":"bd7dd95069160f2e","entry":"train_class_batch","repo":"935963004/labram","repo_kind":"official","path":"engine_for_finetuning.py","file_url":"https://github.com/935963004/labram/blob/HEAD/engine_for_finetuning.py","link_basis":"first_harvest_node","language":"python","status":"ran","verification_level":1,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"bd7dd95069160f2e"}},{"code_sha256_prefix":"29416043c7035e7c","entry":"get_loss_scale_for_deepspeed","repo":"935963004/labram","repo_kind":"official","path":"engine_for_finetuning.py","file_url":"https://github.com/935963004/labram/blob/HEAD/engine_for_finetuning.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"29416043c7035e7c"}},{"code_sha256_prefix":"69ca085c52f4a9bc","entry":"get_model","repo":"935963004/labram","repo_kind":"official","path":"run_labram_pretraining.py","file_url":"https://github.com/935963004/labram/blob/HEAD/run_labram_pretraining.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"69ca085c52f4a9bc"}},{"code_sha256_prefix":"41fe7c73b82c0541","entry":"get_models","repo":"935963004/labram","repo_kind":"official","path":"run_class_finetuning.py","file_url":"https://github.com/935963004/labram/blob/HEAD/run_class_finetuning.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"41fe7c73b82c0541"}},{"code_sha256_prefix":"fa68a81207125e62","entry":"get_visual_tokenizer","repo":"935963004/labram","repo_kind":"official","path":"run_labram_pretraining.py","file_url":"https://github.com/935963004/labram/blob/HEAD/run_labram_pretraining.py","link_basis":"first_harvest_node","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"fa68a81207125e62"}},{"code_sha256_prefix":"4e63eaa872a45c44","entry":"kmeans","repo":"935963004/labram","repo_kind":"official","path":"norm_ema_quantizer.py","file_url":"https://github.com/935963004/labram/blob/HEAD/norm_ema_quantizer.py","link_basis":"harvester_set","language":"python","status":"unverified","verification_level":0,"contract_check":null,"metamorphic_tier":null,"behaviour_fingerprint":false,"licence":"MIT","inline_ok":true,"mcp_get_code":{"code_sha256":"4e63eaa872a45c44"}}]},"arxiv_metadata":null,"syntology_extracted_results":null}