Views
No views yet
<bos><start_of_turn>user
Дайте розгорнуту відповідь на завдання, починаючи з ключового слова "Відповідь:" та використовуючи лише наведені нижче варіанти.
Завдання: З’ясуйте, якими частинами мови є виділені слова в реченні (цифра позначає наступне слово).
Сучасна людина, щоб бути (1)успішною, має вчитися (2)впродовж (3)усього життя, (4)опановуючи нові галузі знань.
Варіанти відповіді:
А – займенник
Б – прикметник
В – форма дієслова (дієприкметник)
Г – форма дієслова (дієприслівник)
Д – прийменник<end_of_turn>
<start_of_turn>model
Відповідь:
ТЕМА: Морфологія. Частини мови
Завдання перевіряє ваше вміння визначати частини мови.
Необхідно бути дуже уважним, тому що частиномовна приналежність конкретного слова часто залежить від контексту. Проаналізуймо кожне із запропонованих слів.
Слово успішною відповідає на питання яка? та вказує на ознаку предмета. Отже, це прикметник.
Слово впродовж не відповідає на питання, а лише поєднує слова в реченні. Отже, це прийменник.
Слово усього відповідає на питання що? і вказує на предмет. Отже, це займенник.
А от слово опановуючи відповідає на питання що роблячи? та вказує на додаткову дію. Отже, це особлива форма дієслова дієприслівник.
Відповідь: 1 – Б, 2 – Д, 3 – А, 4 – Г.<end_of_turn>import torch
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
quantization_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_compute_dtype=torch.float16, # computation in fp16
bnb_4bit_use_double_quant=True, # enables double quantization for better accuracy
bnb_4bit_quant_type="nf4" # choose "nf4" (normal float4) or other types as supported
)
base_model = "google/gemma-2-9b-it"
tokenizer = AutoTokenizer.from_pretrained(base_model, max_sequence_length=3072, model_max_length=3072)
model_base = AutoModelForCausalLM.from_pretrained(base_model, quantization_config=quantization_config, device_map="auto", torch_dtype=torch.float16, use_flash_attention_2=False)
model = PeftModel.from_pretrained(model_base, "NLPForUA/gemma-2-it-zno-cot-with-topic", quantization_config=quantization_config, device_map="auto", torch_dtype=torch.float16, use_flash_attention_2=False)
input_text = """
Дайте розгорнуту відповідь на завдання, починаючи з ключового слова "Відповідь:" та використовуючи лише наведені нижче варіанти.
Завдання: Обчисліть площу бічної поверхні правильної трикутної піраміди, сторона основи якої дорівнює 8 см, а апофема на 2 см більша за сторону основи піраміди.
Варіанти відповіді:
А - 72 см^2
Б - 384 см^2
В - 192 см^2
Г - 120 см^2
Д - 240 см^2
"""
messages = [{"role": "user", "content": input_text}]
inputs = tokenizer.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_tensors="pt",
add_special_tokens=False,
).to("cuda")
print(tokenizer.decode(
model.generate(
input_ids=inputs,
max_new_tokens=1024,
use_cache=True,
temperature=0.0,
do_sample=False,
repetition_penalty=1.0,
pad_token_id=tokenizer.eos_token_id,
eos_token_id=[101, 107]
)[0]))<start_of_turn>model
Відповідь:
ТЕМА: Форми кривих поверхонь. Стосовний куб. Піраміди.
Завдання перевіряє ваше вміння визначати форму кривих поверхонь, обчислювати площу кривих поверхонь.
Згадаймо, що бічна поверхня піраміди – це сукупність її бічних трикутників.
Площу одного такого трикутника можна обчислити за формулою S = (1/2) * a * l, де a – довжина сторони трикутника, l – довжина його висоти.
У нашому випадку a = 8 см, а l = 8 + 2 = 10 см. Отже, площа одного бічного трикутника дорівнює (1/2) * 8 * 10 = 40 см^2.
Площа бічної поверхні піраміди дорівнює трічі площі одного бічного трикутника, тобто 40 * 3 = 120 см^2.
Відповідь – Г.<end_of_turn>1@article{EmpoweringSmallerModels,
2 author = {Mykyta Syromiatnikov, Victoria Ruvinskaya, and Nataliia Komleva},
3 title = {Empowering Smaller Models: Tuning LLaMA and Gemma with Chain-of-Thought for Ukrainian Exam Tasks},
4 journal = {arXiv preprint arXiv:2503.13988},
5 year = {2025}
6}