class_docstr: Test case for Llama models using LoRA
class_docstr_tok: ["Test","case","for","Llama","models","using","LoRA"]
code: def test_lora(self, temp_dir):
      # pylint: disable=duplicate-code
      cfg = DictDefault(
          {
              "base_model": "JackFram/llama-68m",
              "tokenizer_type": "LlamaTokenizer",
              "sequence_len": 1024,
              "load_in_8bit": True,
              "adapter": "lora",
              "lora_r": 32,
              "lora_alpha": 64,
              "lora_dropout": 0.05,
              "lora_target_linear": True,
              "val_set_size": 0.1,
              "special_tokens": {
                  "unk_token": "<unk>",
                  "bos_token": "<s>",
                  "eos_token": "</s>",
              },
              "datasets": [
                  {
                      "path": "mhenrichsen/alpaca_2k_test",
                      "type": "alpaca",
                  },
              ],
              "num_epochs": 2,
              "micro_batch_size": 8,
              "gradient_accumulation_steps": 1,
              "output_dir": temp_dir,
              "learning_rate": 0.00001,
              "optimizer": "adamw_torch",
              "lr_scheduler": "cosine",
          }
      )
      normalize_config(cfg)
      cli_args = TrainerCliArgs()
      dataset_meta = load_datasets(cfg=cfg, cli_args=cli_args)
  
      train(cfg=cfg, cli_args=cli_args, dataset_meta=dataset_meta)
      assert (Path(temp_dir) / "adapter_model.bin").exists()
  
file_path: axolotl/tests/e2e/test_lora_llama.py
imports: import logging
  import os
  import unittest
  from pathlib import Path
  from axolotl.cli import load_datasets
  from axolotl.common.cli import TrainerCliArgs
  from axolotl.train import train
  from axolotl.utils.config import normalize_config
  from axolotl.utils.dict import DictDefault
  from .utils import with_temp_dir
label_desc: Use image node_id 1 for calling the TestLoraLlama obj's underlying member method code with example usage: obj.test_lora(temp_dir) without return types