Polpaca: The Alpaca Speaks Polish
The blogpost: https://medium.com/@mmosiolek/can-alpacas-learn-languages-df48a03b6d8
LLaMA is a state-of-the-art, foundational, open-source large language model designed to help engineers and researchers advance their work in NLP. For example, Stanford researchers have fine-tuned LLaMA to construct an alternative to the famous ChatGPT - a model called Alpaca. Unfortunately, LLaMA was trained on a dataset consisting mainly of English texts, with only 4.5% of the data relating to other languages. In addition, the Alpaca instruction training dataset consists only of examples of English instructions. So Alpaca simply doesn't work for the other languages.
This repo makes Alpaca-Lora-7B speak Polish.
Usage
from transformers import LlamaTokenizer, LlamaForCausalLM
from peft import PeftModel
import bitsandbytes as bnb
base = "decapoda-research/llama-7b-hf"
finetuned = "mmosiolek/polpaca-lora-7b"
tokenizer = LlamaTokenizer.from_pretrained(base)
tokenizer.pad_token_id = 0
tokenizer.padding_side = "left"
model = LlamaForCausalLM.from_pretrained(base)
model = PeftModel.from_pretrained(model, finetuned).to("cuda")
For output generation use the following code. Feel free to adjust the parameters according to your needs.
from transformers import GenerationConfig
config = GenerationConfig(
temperature=0.1,
top_p=0.5,
top_k=40,
num_beams=4,
max_new_tokens=128,
repetition_penalty=1.2
)
def run(instruction, model, tokenizer):
encodings = tokenizer(instruction, padding=True, return_tensors="pt").to('cuda')
generated_ids = model.generate(
**encodings,
generation_config=GENERATION_CONFIG,
)
decoded = tokenizer.batch_decode(generated_ids)
del encodings, generated_ids
torch.cuda.empty_cache()
return decoded[0].split("\n")[-1]
Example input/output
instruction:
Wymyśl kilka zapytań w google na temat kodowania.
output
Jaki jest najpopularniejszy język programowania? Jaki jest najbardziej powszechnie używany język programowania? Jaki jest najnowszy język programowania? Jaki jest najbardziej efektywny język programowania?
instruction
Zrób listę pożądanych umiejętności inżynierów oprogramowania, którą możesz dodać do LinkedIn.
output
Pożądane umiejętności dla inżyniera oprogramowania obejmują: - Programowanie w językach takich jak Java, C++, C#, Python, JavaScript i HTML - Wnioskowanie logiczne - Rozwiązywanie problemów - Inżynieria oprogramowania - Uczenie maszynowe - Przetwarzanie języka naturalnego (NLP) - Systemy zarządzania bazami danych (DBMS) - Architektura
instruction
W odniesieniu do danego scenariusza pogody podaj kilka wskazówek, jak dostosować do niego plany podróży.
input
nagłą zmianę temperatury
output
Kilka wskazówek dotyczących dostosowania planów podróży w przypadku nagłej zmiany temperatury obejmują:
1. Upewnij się, że masz odpowiednie ubrania i akcesoria, takie jak krem przeciwsłoneczny, kapelusze i okulary przeciwsłoneczne.
2. Upewnij się, że masz wystarczającą ilość płynów, takich jak woda i napoje gazowane.