Views
No views yet
transformers ir peft bibliotekomis.pip install -r requirements.txt1import torch
2from transformers import AutoTokenizer, AutoModelForCausalLM
3from peft import PeftModel
4
5MODEL_ID = "VSSA-SDSA/LT_AI_DLKVM"
6LORA_ADAPTER = "VSSA-SDSA/LT_AI_DLKVM_demo"
7MAX_NEW_TOKENS = 200
8
9tekstas = "Jūsų tekstas santraukos generavimui"
10
11tokenizer = AutoTokenizer.from_pretrained(MODEL_ID,use_fast=True)
12if tokenizer.pad_token is None:
13 tokenizer.pad_token = tokenizer.eos_token
14tokenizer.padding_side = "left"
15
16base_model = AutoModelForCausalLM.from_pretrained(
17 MODEL_ID,
18 torch_dtype=torch.bfloat16,
19 device_map={"":0},
20 attn_implementation="sdpa"
21)
22
23model = PeftModel.from_pretrained(
24 base_model,
25 LORA_ADAPTER,
26 is_trainable=False
27)
28
29model.eval()
30
31prompt = (
32 f"<|im_start|>Teksto pradžia:\n{tekstas}<|im_end|>\n"
33 f"<|im_start|>Santraukos pradžia:\n"
34)
35
36inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
37inputs.pop("token_type_ids", None)
38
39end_tokens = ["<|im_end|>"]
40eos_ids = tokenizer(end_tokens, add_special_tokens=False).input_ids
41eos_ids = [ids[0] for ids in eos_ids if len(ids) == 1]
42
43with torch.no_grad():
44 outputs = model.generate(
45 **inputs,
46 max_new_tokens=MAX_NEW_TOKENS,
47 do_sample=False,
48 repetition_penalty=2.5,
49 eos_token_id = eos_ids,
50 pad_token_id = tokenizer.pad_token_id,
51 num_beams = 2,
52 early_stopping=True
53 )
54
55generated = tokenizer.decode(outputs[0][len(inputs["input_ids"][0]):], skip_special_tokens=True).strip()
56print(generated)Flash-Attention palaikymasflash_attention_2, tačiau, siekiant jį naudoti reikalinga įsidiegti papildomas bibliotekas.Python 3.12pip install flash-attn==2.7.4.post1 --no-build-isolationPython 3.13pip install https://github.com/Dao-AILab/flash-attention/releases/download/v2.7.4.post1/flash_attn-2.7.4.post1+cu12torch2.6cxx11abiFALSE-cp313-cp313-linux_x86_64.whl1base_model = AutoModelForCausalLM.from_pretrained(
2 MODEL_ID,
3 torch_dtype=torch.bfloat16,
4 device_map={"":0},
5 attn_implementation="flash_attention_2"
6)1lora_settings:
2 r: 64
3 lora_alpha: 128
4 target_modules: ["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"]
5 lora_dropout: 0.05
6 task_type: "CAUSAL_LM"
7 use_rslora: True
8training:
9 per_device_train_batch_size: 4
10 gradient_accumulation_steps: 16
11 bf16: True
12 learning_rate: 6e-5
13 warmup_ratio: 0.063
14 weight_decay: 0.053
15 num_train_epochs: 4
16 lr_scheduler_type: "cosine"
17 optim: "adafactor"
18 adam_epsilon: 1e-6
19 max_grad_norm: 1.0| Rouge-1 | Rouge-2 | Rouge-L | BertScore Preciziškumas | BertScore iškvietimas | BertScore F1 | BLEU |
|---|---|---|---|---|---|---|
| 0.3230 | 0.1377 | 0.2135 | 0.8786 | 0.8683 | 0.8732 | 10.2290 |
1@misc{SDSA_LT-AI-DLKVM-demo_2026,
2title= {{LT-AI-DLKVM-demo}: Lithuanian Llama 3 model for abstracts generation},
3author = {{State Digital Solutions Agency (SDSA)}},
4year = {2026},
5howpublished = {\url{https://huggingface.co/VSSA-SDSA/LT_AI_DLKVM_demo}},
6note = {Developed by Vytautas Magnus University (VMU), UAB Neurotechnology, UAB Tilde informacinės technologijos, MB Krilas}
7}transformers and peft libraries.pip install -r requirements.txt1import torch
2from transformers import AutoTokenizer, AutoModelForCausalLM
3from peft import PeftModel
4
5MODEL_ID = "VSSA-SDSA/LT_AI_DLKVM"
6LORA_ADAPTER = "VSSA-SDSA/LT_AI_DLKVM_demo"
7MAX_NEW_TOKENS = 200
8
9tekstas = "Jūsų tekstas santraukos generavimui"
10
11tokenizer = AutoTokenizer.from_pretrained(MODEL_ID,use_fast=True)
12if tokenizer.pad_token is None:
13 tokenizer.pad_token = tokenizer.eos_token
14tokenizer.padding_side = "left"
15
16base_model = AutoModelForCausalLM.from_pretrained(
17 MODEL_ID,
18 torch_dtype=torch.bfloat16,
19 device_map={"":0},
20 attn_implementation="sdpa"
21)
22
23model = PeftModel.from_pretrained(
24 base_model,
25 LORA_ADAPTER,
26 is_trainable=False
27)
28
29model.eval()
30
31prompt = (
32 f"<|im_start|>Teksto pradžia:\n{tekstas}<|im_end|>\n"
33 f"<|im_start|>Santraukos pradžia:\n"
34)
35
36inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
37inputs.pop("token_type_ids", None)
38
39end_tokens = ["<|im_end|>"]
40eos_ids = tokenizer(end_tokens, add_special_tokens=False).input_ids
41eos_ids = [ids[0] for ids in eos_ids if len(ids) == 1]
42
43with torch.no_grad():
44 outputs = model.generate(
45 **inputs,
46 max_new_tokens=MAX_NEW_TOKENS,
47 do_sample=False,
48 repetition_penalty=2.5,
49 eos_token_id = eos_ids,
50 pad_token_id = tokenizer.pad_token_id,
51 num_beams = 2,
52 early_stopping=True
53 )
54
55generated = tokenizer.decode(outputs[0][len(inputs["input_ids"][0]):], skip_special_tokens=True).strip()
56print(generated)Flash-Attentionflash_attention_2, in order to use it, you need to install additional dependancies.Python 3.12pip install flash-attn==2.7.4.post1 --no-build-isolationPython 3.13pip install https://github.com/Dao-AILab/flash-attention/releases/download/v2.7.4.post1/flash_attn-2.7.4.post1+cu12torch2.6cxx11abiFALSE-cp313-cp313-linux_x86_64.whl1base_model = AutoModelForCausalLM.from_pretrained(
2 MODEL_ID,
3 torch_dtype=torch.bfloat16,
4 device_map={"":0},
5 attn_implementation="flash_attention_2"
6)1lora_settings:
2 r: 64
3 lora_alpha: 128
4 target_modules: ["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"]
5 lora_dropout: 0.05
6 task_type: "CAUSAL_LM"
7 use_rslora: True
8training:
9 per_device_train_batch_size: 4
10 gradient_accumulation_steps: 16
11 bf16: True
12 learning_rate: 6e-5
13 warmup_ratio: 0.063
14 weight_decay: 0.053
15 num_train_epochs: 4
16 lr_scheduler_type: "cosine"
17 optim: "adafactor"
18 adam_epsilon: 1e-6
19 max_grad_norm: 1.0| Rouge-1 | Rouge-2 | Rouge-L | BertScore Precision | BertScore Recall | BertScore F1 | BLEU |
|---|---|---|---|---|---|---|
| 0.3230 | 0.1377 | 0.2135 | 0.8786 | 0.8683 | 0.8732 | 10.2290 |
1@misc{SDSA_LT-AI-DLKVM-demo_2026,
2title= {{LT-AI-DLKVM-demo}: Lithuanian Llama 3 model for abstracts generation},
3author = {{State Digital Solutions Agency (SDSA)}},
4year = {2026},
5howpublished = {\url{https://huggingface.co/VSSA-SDSA/LT_AI_DLKVM_demo}},
6note = {Developed by Vytautas Magnus University (VMU), UAB Neurotechnology, UAB Tilde informacinės technologijos, MB Krilas}
7}