Abigail commited on
Commit
863d316
·
1 Parent(s): 5817c5e

llama2 with a little bit of context

Browse files
Files changed (1) hide show
  1. llama2.py +86 -0
llama2.py ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # -*- coding: utf-8 -*-
2
+ """llama2
3
+
4
+ Automatically generated by Colaboratory.
5
+
6
+ Original file is located at
7
+ https://colab.research.google.com/drive/15UK6iHd1y0pMMQc-DbZIYhSteoTCUsMH
8
+ """
9
+
10
+ #install and then restart execution
11
+ !pip install accelerate
12
+ !pip install bitsandbytes
13
+ !pip install optimum
14
+ !pip install auto-gptq
15
+
16
+ !pip install transformers
17
+ from transformers import AutoModelForCausalLM,AutoTokenizer
18
+ import torch
19
+ !pip install transformers huggingface_hub
20
+ from huggingface_hub import notebook_login
21
+
22
+ notebook_login()
23
+
24
+ mn = 'stabilityai/StableBeluga-7B'
25
+ #mn = "TheBloke/Llama-2-7b-Chat-GPTQ"
26
+
27
+ model = AutoModelForCausalLM.from_pretrained(mn, device_map=0, load_in_8bit=True)
28
+
29
+ #model = AutoModelForCausalLM.from_pretrained(mn, device_map=0, torch_dtype=torch.float16)
30
+
31
+ sb_sys = "### System:\nYou are a AI driving assistant in my car, that follows instructions extremely well. Help as much as you can.\n\n"
32
+
33
+ def gen(p, maxlen=15, sample=True):
34
+ toks = tokr(p, return_tensors="pt")
35
+ res = model.generate(**toks.to("cuda"), max_new_tokens=maxlen, do_sample=sample).to('cpu')
36
+ return tokr.batch_decode(res)
37
+
38
+ tokr = AutoTokenizer.from_pretrained(mn)
39
+
40
+ #to have a prompt corresponding to the specific format required by the fine-tuned model Stable Beluga
41
+ def mk_prompt(user, syst=sb_sys): return f"{syst}### User: {user}\n\n### Assistant:\n"
42
+
43
+ complete_answer= ''
44
+
45
+ #attempt to get user location
46
+
47
+ import requests
48
+
49
+ response = requests.get("http://ip-api.com/json/")
50
+ data = response.json()
51
+ print(data['city'], data['lat'], data['lon'])
52
+ city= data['city']
53
+ lat = data['lat']
54
+ lon = data['lon']
55
+
56
+ import re
57
+ model_answer= ''
58
+ general_context= f'I am in my car in {city}, latitude {lat}, longitude {lon}, I can move with my car to reach a destination'
59
+ pattern = r"Assistant:\\n(.*?)</s>"
60
+
61
+ ques = "I hate pizzas"
62
+
63
+ ques_ctx = f"""Answer the question with the help of the provided context.
64
+
65
+ ## Context
66
+
67
+ {general_context} .
68
+
69
+ ## Question
70
+
71
+ {ques}"""
72
+
73
+ complete_answer = str(gen(mk_prompt(ques_ctx), 150))
74
+
75
+ match = re.search(pattern, complete_answer, re.DOTALL)
76
+
77
+ if match:
78
+ # Extracting the text
79
+ model_answer = match.group(1)
80
+ else:
81
+ model_answer = "There has been an error with the generated response."
82
+
83
+ general_context += model_answer
84
+ print(model_answer)
85
+
86
+ print(complete_answer)