code: def test_load_lang_adapter_from_hub(self):
      for config in ["seq_bn_inv", "double_seq_bn_inv"]:
          with self.subTest(config=config):
              model = AutoModel.from_pretrained(
                  "bert-base-multilingual-cased"
              )
              adapters.init(model)
              config = AdapterConfig.load(
                  config, non_linearity="gelu", reduction_factor=2
              )
  
              loading_info = {}
              adapter_name = model.load_adapter(
                  "fi/wiki@ukp",
                  config=config,
                  set_active=True,
                  loading_info=loading_info,
              )
  
              self.assertEqual(0, len(loading_info["missing_keys"]))
              self.assertEqual(0, len(loading_info["unexpected_keys"]))
  
              # check if adapter & invertible adapter were added
              self.assertIn(
                  adapter_name, model.adapters_config.adapters
              )
              self.assertIn(adapter_name, model.invertible_adapters)
  
              # check if config is valid
              # TODO-AH hashes are not guaranteed to be equal because of legacy keys in lang adapter config
              # expected_hash = get_adapter_config_hash(config)
              # real_hash = get_adapter_config_hash(model.adapters_config.get(adapter_name))
              # self.assertEqual(expected_hash, real_hash)
  
              # check size of output
              in_data = ids_tensor((1, 128), 1000)
              model.to(torch_device)
              output = model(in_data)
              self.assertEqual([1, 128, 768], list(output[0].size()))
  
file_path: adapters/tests/test_adapter_hub.py
imports: import os
  import unittest
  import numpy
  import adapters
  from adapters import ADAPTER_CONFIG_MAP, AdapterConfig, BertAdapterModel, get_adapter_config_hash
  from adapters.trainer import AdapterTrainer
  from adapters.utils import find_in_index
  from transformers import AutoModel, AutoTokenizer, BertForSequenceClassification, GlueDataset, GlueDataTrainingArguments, TrainingArguments, glue_compute_metrics
  from transformers.testing_utils import require_torch, torch_device
  from .test_adapter import ids_tensor
label_desc: Use image node_id 5 for calling the AdapterHubTest obj's underlying member method code with example usage: obj.test_load_lang_adapter_from_hub() without return types