Views
No views yet
1import torch
2from unsloth import FastLlamaModel
3
4max_seq_length = 2048
5dtype = None # None for auto detection. Float16 for Tesla T4, V100, Bfloat16 for Ampere+
6load_in_4bit = True # Use 4bit quantization to reduce memory usage. Can be False.
7
8
9use_unsloth = True
10# use_transformers = True
11
12# LOADING MODEL USIINIG TRANSFORMERS assumes at least 16GB of memory. Tested with this configuration
13# If you have less memory use load_in_4bit or load_in_8_bit as needed
14if use_transformers:
15 major_version, minor_version = torch.cuda.get_device_capability()
16 model = AutoModelForCausalLM.from_pretrained("Finnish-NLP/llama-7b-finnish-instruct-v0.2", device_map='cuda:0', torch_dtype = torch.bfloat16 if major_version >=8 else torch.float16)
17 tokenizer = AutoTokenizer.from_pretrained("Finnish-NLP/llama-7b-finnish-instruct-v0.2")
18
19# USING UNSLOTH, tested with load_in_4bit
20if use_unsloth:
21 model, tokenizer = FastLlamaModel.from_pretrained(
22 model_name = "Finnish-NLP/llama-7b-finnish-instruct-v0.2"
23 max_seq_length = max_seq_length,
24 dtype = dtype,
25 load_in_4bit = load_in_4bit
26 )
27
28alpaca_prompt = """<|alku|> Olet tekoälyavustaja. Seuraavaksi saat kysymyksen tai tehtävän. Kirjoita vastaus parhaasi mukaan siten että se täyttää kysymyksen tai tehtävän vaatimukset.
29<|ihminen|> Kysymys/Tehtävä:
30{}
31<|avustaja|> Vastauksesi:
32"""
33
34sample_questions = ["Ketkä ovat Aku Ankan luona asuvat kolme ankanpoikaa?",\
35"Mikä on Suomen korkein tunturi?",\
36"Suomi soti Neuvostoliittoa vastaan talvisodan 1939-1940. Kuinka monta päivää sota kesti?",\
37"Luettele viisi yleistä Suomessa yleisesti käytettyä pojan nimeä. Nimet:",\
38"Luettele lyhyt, maksimissaan 50 sanan mittainen runo Suomesta. Runo:",\
39]
40
41from transformers import GenerationConfig
42
43generation_config = GenerationConfig(
44 pad_token_id=tokenizer.eos_token_id,
45 eos_token_id=tokenizer.convert_tokens_to_ids("<|loppu|>"),
46)
47
48
49for sample_question in sample_questions:
50
51 model.eval()
52
53 inputs = tokenizer(
54[
55 alpaca_prompt.format(
56 sample_question, # instruction
57 )
58]*1, return_tensors = "pt").to("cuda")
59
60 with torch.no_grad():
61 generated_ids = model.generate(
62 input_ids=inputs["input_ids"],
63 attention_mask=inputs["attention_mask"],
64 generation_config=generation_config, **{
65 "temperature": 0.1,
66 "penalty_alpha": 0.6,
67 "top_k": 3,
68 "do_sample": True,
69 "repetition_penalty": 1.28,
70 "min_length": 10,
71 "max_new_tokens": 200
72 })
73
74 generated_text = tokenizer.batch_decode(generated_ids, skip_special_tokens=True, clean_up_tokenization_spaces=True)[0]
75 print(len(generated_ids[0]))
76 print("KYSYMYS:")
77 print(generated_text.split('<|avustaja|>')[0])
78 print("VASTAUS:")
79 print(generated_text.split('<|avustaja|> Vastauksesi:')[1])
80 print('##################################')
81
82'''
83-->
84<s><|alku|> Olet tekoälyavustaja. Seuraavaksi saat kysymyksen tai tehtävän. Kirjoita vastaus parhaasi mukaan siten että se täyttää kysymyksen tai tehtävän vaatimukset.
85<|ihminen|> Kysymys/Tehtävä:
86 Aku Ankan luona asuu kolme ankanpoikaa. Mitkä ovat heidän nimet?
87VASTAUS:
88 Ankka Akun kanssa asuvat pojat ovat nimeltään Tupu, Hupu ja Lupu <|loppu|>
89##################################
90
91KYSYMYS:
92<s><|alku|> Olet tekoälyavustaja. Seuraavaksi saat kysymyksen tai tehtävän. Kirjoita vastaus parhaasi mukaan siten että se täyttää kysymyksen tai tehtävän vaatimukset.
93<|ihminen|> Kysymys/Tehtävä:
94 Mikä on Suomen korkein tunturi?
95VASTAUS:
96 Suomen korkein tunturihuippu on Haltitunturi (1 324 metriä). <|loppu|>
97##################################
98
99KYSYMYS:
100<s><|alku|> Olet tekoälyavustaja. Seuraavaksi saat kysymyksen tai tehtävän. Kirjoita vastaus parhaasi mukaan siten että se täyttää kysymyksen tai tehtävän vaatimukset.
101<|ihminen|> Kysymys/Tehtävä:
102 Suomi soti Neuvostoliittoa vastaan talvisodan 1939-1940. Kuinka monta päivää sota kesti?
103VASTAUS:
104 Talvisodan aikana Neuvostoliitto hyökkäsi Suomeen 30. marraskuuta ja 13. maaliskuuta välisenä aikana. Tämä tarkoittaa, että talvisota kesti 105 päivää. <|loppu|>
105##################################
106
107KYSYMYS:
108<s><|alku|> Olet tekoälyavustaja. Seuraavaksi saat kysymyksen tai tehtävän. Kirjoita vastaus parhaasi mukaan siten että se täyttää kysymyksen tai tehtävän vaatimukset.
109<|ihminen|> Kysymys/Tehtävä:
110 Luettele viisi yleistä Suomessa yleisesti käytettyä pojan nimeä. Nimet:
111VASTAUS:
112 Yleisiä suomalaisia poikien nimiä ovat Eino, Onni, Olavi, Väinö ja Ilmari. <|loppu|>
113##################################
114
115KYSYMYS:
116<s><|alku|> Olet tekoälyavustaja. Seuraavaksi saat kysymyksen tai tehtävän. Kirjoita vastaus parhaasi mukaan siten että se täyttää kysymyksen tai tehtävän vaatimukset.
117<|ihminen|> Kysymys/Tehtävä:
118 Luettele lyhyt, maksimissaan 50 sanan mittainen runo Suomesta. Runo:
119VASTAUS:
120 Olipa kerran kaunis maa,
121 jossa ihmiset elivät sopusoinnussa.
122 Se oli täynnä metsiä ja järviä,
123 ja siellä asui onnellisia ja ystävällisiä ihmisiä. <|loppu|>| Task | Version | Metric | Value | Stderr | |
|---|---|---|---|---|---|
| bigbench_analogies | 0 | multiple_choice_grade | 0.5385 | ± | 0.0439 |
| bigbench_arithmetic_1_digit_addition | 0 | multiple_choice_grade | 0.3400 | ± | 0.0476 |
| bigbench_arithmetic_1_digit_division | 0 | multiple_choice_grade | 0.4783 | ± | 0.1065 |
| bigbench_arithmetic_1_digit_multiplication | 0 | multiple_choice_grade | 0.5200 | ± | 0.0502 |
| bigbench_arithmetic_1_digit_subtraction | 0 | multiple_choice_grade | 0.3400 | ± | 0.0476 |
| bigbench_arithmetic_2_digit_addition | 0 | multiple_choice_grade | 0.3200 | ± | 0.0469 |
| bigbench_arithmetic_2_digit_division | 0 | multiple_choice_grade | 0.3400 | ± | 0.0476 |
| bigbench_arithmetic_2_digit_multiplication | 0 | multiple_choice_grade | 0.2200 | ± | 0.0416 |
| bigbench_arithmetic_2_digit_subtraction | 0 | multiple_choice_grade | 0.2800 | ± | 0.0451 |
| bigbench_arithmetic_3_digit_addition | 0 | multiple_choice_grade | 0.3000 | ± | 0.0461 |
| bigbench_arithmetic_3_digit_division | 0 | multiple_choice_grade | 0.2500 | ± | 0.0435 |
| bigbench_arithmetic_3_digit_multiplication | 0 | multiple_choice_grade | 0.2200 | ± | 0.0416 |
| bigbench_arithmetic_3_digit_subtraction | 0 | multiple_choice_grade | 0.4000 | ± | 0.0492 |
| bigbench_arithmetic_4_digit_addition | 0 | multiple_choice_grade | 0.3500 | ± | 0.0479 |
| bigbench_arithmetic_4_digit_division | 0 | multiple_choice_grade | 0.2600 | ± | 0.0441 |
| bigbench_arithmetic_4_digit_multiplication | 0 | multiple_choice_grade | 0.2100 | ± | 0.0409 |
| bigbench_arithmetic_4_digit_subtraction | 0 | multiple_choice_grade | 0.4400 | ± | 0.0499 |
| bigbench_arithmetic_5_digit_addition | 0 | multiple_choice_grade | 0.4500 | ± | 0.0500 |
| bigbench_arithmetic_5_digit_division | 0 | multiple_choice_grade | 0.1800 | ± | 0.0386 |
| bigbench_arithmetic_5_digit_multiplication | 0 | multiple_choice_grade | 0.2000 | ± | 0.0402 |
| bigbench_arithmetic_5_digit_subtraction | 0 | multiple_choice_grade | 0.5000 | ± | 0.0503 |
| bigbench_cause_and_effect_one_sentence | 0 | multiple_choice_grade | 0.5294 | ± | 0.0706 |
| bigbench_cause_and_effect_one_sentence_no_prompt | 0 | multiple_choice_grade | 0.8627 | ± | 0.0487 |
| bigbench_cause_and_effect_two_sentences | 0 | multiple_choice_grade | 0.4314 | ± | 0.0700 |
| bigbench_emotions | 0 | multiple_choice_grade | 0.4750 | ± | 0.0396 |
| bigbench_empirical_judgments | 0 | multiple_choice_grade | 0.4141 | ± | 0.0498 |
| bigbench_general_knowledge | 0 | multiple_choice_grade | 0.4429 | ± | 0.0598 |
| bigbench_hhh_alignment_harmless | 0 | multiple_choice_grade | 0.3793 | ± | 0.0643 |
| bigbench_hhh_alignment_helpful | 0 | multiple_choice_grade | 0.3220 | ± | 0.0614 |
| bigbench_hhh_alignment_honest | 0 | multiple_choice_grade | 0.3898 | ± | 0.0640 |
| bigbench_hhh_alignment_other | 0 | multiple_choice_grade | 0.5581 | ± | 0.0766 |
| bigbench_intent_recognition | 0 | multiple_choice_grade | 0.2717 | ± | 0.0169 |
| bigbench_misconceptions | 0 | multiple_choice_grade | 0.5373 | ± | 0.0432 |
| bigbench_paraphrase | 0 | multiple_choice_grade | 0.5000 | ± | 0.0354 |
| bigbench_sentence_ambiguity | 0 | multiple_choice_grade | 0.5333 | ± | 0.0649 |
| bigbench_similarities_abstraction | 0 | multiple_choice_grade | 0.5921 | ± | 0.0567 |