Views
No views yet
| Metric | Value |
|---|---|
| Avg. | 43.91 |
| ARC (25-shot) | 53.07 |
| HellaSwag (10-shot) | 77.57 |
| MMLU (5-shot) | 46.03 |
| TruthfulQA (0-shot) | 44.57 |
| Winogrande (5-shot) | 74.19 |
| GSM8K (5-shot) | 6.29 |
| DROP (3-shot) | 5.65 |
1from transformers import AutoModelForCausalLM, LlamaTokenizer, BitsAndBytesConfig, TextStreamer, StoppingCriteria, StoppingCriteriaList
2import torch
3
4class StopTokenCriteria(StoppingCriteria):
5 def __init__(self, stop_tokens, tokenizer, prompt_length):
6 self.stop_tokens = stop_tokens
7 if tokenizer.pad_token not in stop_tokens:
8 self.stop_tokens.append(tokenizer.pad_token)
9 if tokenizer.bos_token not in stop_tokens:
10 self.stop_tokens.append(tokenizer.bos_token)
11 if tokenizer.eos_token not in stop_tokens:
12 self.stop_tokens.append(tokenizer.eos_token)
13 self.tokenizer = tokenizer
14 self.prompt_length = prompt_length
15
16 def __call__(self, input_ids: torch.LongTensor, scores: torch.FloatTensor, **kwargs) -> bool:
17 is_done = False
18 tokens = tokenizer.decode(input_ids[0])[self.prompt_length:]
19 for st in self.stop_tokens:
20 if st in tokens:
21 is_done = True
22 break
23 return is_done
24
25model_name = "willnguyen/lacda-2-7B-chat-v0.1"
26tokenizer = LlamaTokenizer.from_pretrained(
27 model_name,
28 use_fast=False,
29 padding_side="right",
30 tokenizer_type='llama',
31)
32tokenizer.pad_token_id = 0
33
34model = AutoModelForCausalLM.from_pretrained(
35 model_name,
36 device_map="auto",
37 torch_dtype=torch.float16,
38)
39
40prompt = "<s> [INST] who is Hồ Chí Minh [/INST]"
41
42stopping_criteria = StoppingCriteriaList([StopTokenCriteria(["[INST]", "[/INST]"], tokenizer, len(prompt))])
43with torch.inference_mode():
44 input_ids = tokenizer(prompt, return_tensors="pt", add_special_tokens=False).input_ids.to('cuda')
45 streamer = TextStreamer(tokenizer)
46 _ = model.generate(
47 input_ids=input_ids,
48 max_new_tokens=1024,
49 do_sample=False,
50 temperature=1.0,
51 top_p=1.0,
52 top_k=50,
53 repetition_penalty=1.0,
54 use_cache=True,
55 streamer=streamer,
56 stopping_criteria=stopping_criteria
57 )