# alpaca_orca_open_llama: An Open_LLaMA-3B model trained on Alpaca dataset using Orca Research paper approaches # Dataset and Training We train OpenLLaMa-3B model on the custom Alpaca dataset created using Orca Research Paper approaches. Please pay attention how System prompt is added and used for each instruction. The training configurations are provided in the table below. The training takes on 4 x A600(50G) GPUs and lasts for around 20 Hours for cost of $66. We used DeepSpeed with Zero-3 approaches for parallel gpu training. ||| |:-------------:|:-------------:| |**Batch Size**|16| |**train_micro_batch_size_per_gpu**|2| |**gradient_accumulation_steps**|2| |**Learning rate**|2e-5| |**Epochs**|3| |**Max length**|1024| # Example Usage Below shows an example on how to use OpenAlpaca ```python import torch from transformers import LlamaForCausalLM, LlamaTokenizer # the previewed version of OpenAlpaca model_path = r'psmathur/alpaca_orca_open_llama_3b' tokenizer = LlamaTokenizer.from_pretrained(model_path) model = LlamaForCausalLM.from_pretrained(model_path).cuda() tokenizer.bos_token_id, tokenizer.eos_token_id = 1,2 # see https://github.com/openlm-research/open_llama#preview-weights-release-and-usage # same prompt as provided by Orca Research Paper system = r'You are an AI assistant. User will you give you a task. Your goal is to complete the task as faithfully as you can. While performing the task think step-by-step and justify your steps.' instruction = r'Use the given data to calculate the median.' input = r'[7, 3, 8, 2, 10]' prompt_no_input = f'.\n\n### Instruction:\n{instruction}\n\n### Response:' tokens = tokenizer.encode(prompt_no_input) tokens = torch.LongTensor(tokens).unsqueeze(0) instance = {'input_ids': tokens, 'top_k': 50, 'top_p': 0.9, 'generate_len': 128} length = len(tokens[0]) with torch.no_grad(): rest = model.generate( input_ids=tokens, max_length=length+instance['generate_len'], use_cache=True, do_sample=True, top_p=instance['top_p'], top_k=instance['top_k'] ) output = rest[0][length:] string = tokenizer.decode(output, skip_special_tokens=True) print(f'[!] Generation results: {string}') ```