--- license: apache-2.0 datasets: - wikimedia/wikipedia - custom language: - en pipeline_tag: text-generation --- ## Description This is "Lemnos" , a new Instruction Tuned model based on the Llama 2 model architecture. It was trained on general wikipedia corpus and then finetuned on a custom instruction dataset. It is only for use as an experimental version prior launching a new one which also supports Greek. ## Usage: Prerequisites packages: - transformers - accelerate - bitsandbytes-0.43.1 Minimum Environment: T4 GPU (The free of charge Google Colab T4, should run fine) or just run all this Colab (make sure you select T4 GPU): https://colab.research.google.com/drive/1lp-JygPxsaQp-NdB7Mh_uVVYeIIXcAlt?usp=sharing Notice: Since it is a 7B parameter model, in FP32 and it takes some time to load all the safetensors. An alternative, 4-bit quantized will be uploaded soon. ```python # Upgrade in case bitsandbytes already installed pip install transformers accelerate bitsandbytes -U # or from Colab !pip install transformers accelerate bitsandbytes -U ``` ```python from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig import torch # Specify the model hub hub_model = 'gsar78/Lemnos_it_en_v2' # Load the tokenizer tokenizer = AutoTokenizer.from_pretrained(hub_model, trust_remote_code=True) # Configure the BitsAndBytesConfig for 4-bit quantization bnb_config = BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_quant_type='nf4', bnb_4bit_compute_dtype=torch.bfloat16, bnb_4bit_use_double_quant=False ) # Load the model with the specified configuration model = AutoModelForCausalLM.from_pretrained( hub_model, quantization_config=bnb_config, trust_remote_code=True, device_map="auto" ) # Function to generate text based on a prompt using the Alpaca format def generate_text(prompt, max_length=512): # Format the prompt according to the Alpaca format alpaca_prompt = f"### Instruction:\n{prompt}\n\n### Response:\n" # Tokenize the input prompt inputs = tokenizer(alpaca_prompt, return_tensors="pt").to(model.device) # Generate text using the model outputs = model.generate( input_ids=inputs['input_ids'], max_length=max_length, num_return_sequences=1, pad_token_id=tokenizer.eos_token_id ) # Decode the generated tokens to text generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True) # Remove the prompt part from the output to get only the response response = generated_text[len(alpaca_prompt):] return response # Example question prompt = "What are the three basic colors?" generated_text = generate_text(prompt) print(generated_text) # Output: # Red, blue, and yellow. ```