MishaGGG commited on
Commit
7f5def6
·
verified ·
1 Parent(s): 6fb4fa1

Upload use.py

Browse files
Files changed (1) hide show
  1. use.py +62 -0
use.py ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+ from transformers import AutoModelForCausalLM, AutoTokenizer
3
+
4
+ MODEL_PATH = "SmallDront2-50M-Instruct"
5
+ TEMPERATURE = 0.4
6
+ DEVICE = "cuda" if torch.cuda.is_available() else "cpu"
7
+
8
+
9
+ def load_model_and_tokenizer(model_path):
10
+ tokenizer = AutoTokenizer.from_pretrained(model_path, trust_remote_code=False)
11
+ model = AutoModelForCausalLM.from_pretrained(
12
+ model_path,
13
+ torch_dtype=torch.float16 if DEVICE == "cuda" else torch.float32,
14
+ device_map="auto",
15
+ trust_remote_code=False
16
+ )
17
+ if tokenizer.pad_token is None:
18
+ tokenizer.pad_token = tokenizer.eos_token
19
+ return model, tokenizer
20
+
21
+
22
+ def generate_response(model, tokenizer, prompt, temperature=0.4, max_new_tokens=64):
23
+ inputs = tokenizer(prompt, return_tensors="pt", truncation=True, max_length=2048)
24
+ inputs = {k: v.to(model.device) for k, v in inputs.items()}
25
+
26
+ with torch.no_grad():
27
+ output_ids = model.generate(
28
+ **inputs,
29
+ max_new_tokens=max_new_tokens,
30
+ temperature=temperature,
31
+ do_sample=True,
32
+ top_p=0.96,
33
+ repetition_penalty=1.1,
34
+ pad_token_id=tokenizer.pad_token_id,
35
+ eos_token_id=tokenizer.eos_token_id
36
+ )
37
+
38
+ input_length = inputs["input_ids"].shape[1]
39
+ new_tokens = output_ids[0][input_length:]
40
+ return tokenizer.decode(new_tokens, skip_special_tokens=True).strip()
41
+
42
+
43
+ def interactive_chat(model, tokenizer, temperature):
44
+ print(f"Chat with model (temp={temperature}) - type 'exit' or 'quit' to stop")
45
+
46
+ while True:
47
+ user_input = input("\nYou: ").strip()
48
+
49
+ if user_input.lower() in ["exit", "quit"]:
50
+ print("Goodbye!")
51
+ break
52
+
53
+ if not user_input:
54
+ continue
55
+
56
+ response = generate_response(model, tokenizer, f"<|user|>{user_input}<|assistant|>", temperature=temperature)
57
+ print(f"Assistant: {response}")
58
+
59
+
60
+ if __name__ == "__main__":
61
+ model, tokenizer = load_model_and_tokenizer(MODEL_PATH)
62
+ interactive_chat(model, tokenizer, temperature=TEMPERATURE)