UAlpaca: Ukrainian instruction-tuned LLaMA

Usage

Check the Github repo with code and dataset: https://github.com/robinhad/kruk

Generation Example: Open In Colab

Requirements

pip install bitsandbytes
pip install -q datasets loralib sentencepiece
pip install -q git+https://github.com/zphang/transformers@c3dc391 # this model uses a fork of transformers that provides LLaMA tokenizer; this wasn't merged yet
pip install -q git+https://github.com/huggingface/peft.git
from peft import PeftModel
from transformers import LLaMATokenizer, LLaMAForCausalLM, GenerationConfig

tokenizer = LLaMATokenizer.from_pretrained("decapoda-research/llama-7b-hf")
model = LLaMAForCausalLM.from_pretrained(
    "decapoda-research/llama-7b-hf",
    load_in_8bit=True,
    device_map="auto",
)
model = PeftModel.from_pretrained(model, "robinhad/ualpaca-7b-llama")

# convert input to correct prompt
def generate_prompt(instruction, input=None):
    if input:
        return f"""Унизу надається інструкція, яка описує завдання разом із вхідними даними, які надають додатковий контекст. Напиши відповідь, яка правильно доповнює запит.

### Інструкція:
{instruction}

### Вхідні дані:
{input}

### Відповідь:"""
    else:
        return f"""Унизу надається інструкція, яка описує завдання. Напиши відповідь, яка правильно доповнює запит.

### Інструкція:
{instruction}

### Відповідь:"""

# config and inference
generation_config = GenerationConfig(
    temperature=0.2,
    top_p=0.75,
    num_beams=4,
)

def evaluate(instruction, input=None):
    prompt = generate_prompt(instruction, input)
    inputs = tokenizer(prompt, return_tensors="pt")
    input_ids = inputs["input_ids"].cuda()
    generation_output = model.generate(
        input_ids=input_ids,
        generation_config=generation_config,
        return_dict_in_generate=True,
        output_scores=True,
        max_new_tokens=256
    )
    for s in generation_output.sequences:
        output = tokenizer.decode(s)
        print("Відповідь:", output.split("### Відповідь:")[1].strip())

input_data = "Як звали батька Тараса Григоровича Шевченка?"
print("Інструкція:", input_data)
evaluate("Інструкція: " + input_data)
Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model is not currently available via any of the supported Inference Providers.
The model cannot be deployed to the HF Inference API: The model has no library tag.