vhs01 commited on
Commit
ae6fdd1
·
verified ·
1 Parent(s): 9a142d3

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +88 -0
app.py ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # -*- coding: utf-8 -*-
2
+ """Model Pull and Prompt.ipynb
3
+
4
+ Automatically generated by Colab.
5
+
6
+ Original file is located at
7
+ https://colab.research.google.com/drive/1Ap0yRsMk8on-NcFPSYay6W3Oble43kyi
8
+ """
9
+
10
+ #!pip install -q -U peft bitsandbytes
11
+
12
+ import torch
13
+ from peft import PeftModel, PeftConfig
14
+ from transformers import AutoModelForCausalLM, AutoTokenizer
15
+
16
+ peft_model_id = "vhs01/mistral-7b-dolly"
17
+
18
+ config = PeftConfig.from_pretrained(peft_model_id)
19
+
20
+ #!pip install accelerate
21
+
22
+ #!pip install -i https://pypi.org/simple/ bitsandbytes
23
+
24
+ from transformers import BitsAndBytesConfig
25
+
26
+ model = AutoModelForCausalLM.from_pretrained(
27
+ config.base_model_name_or_path,
28
+ return_dict=True,
29
+ load_in_4bit=True,
30
+ device_map='auto'
31
+ )
32
+
33
+ from transformers import AutoTokenizer
34
+
35
+ tokenizer = AutoTokenizer.from_pretrained(config.base_model_name_or_path,
36
+ padding_side = "right",
37
+ add_eos_token = True)
38
+ tokenizer.pad_token = tokenizer.eos_token
39
+
40
+ fine_tuned_model = PeftModel.from_pretrained(model, peft_model_id)
41
+
42
+ from transformers import pipeline, logging
43
+
44
+ logging.set_verbosity(logging.CRITICAL)
45
+
46
+ pipe = pipeline(
47
+ task="text-generation",
48
+ model=fine_tuned_model,
49
+ tokenizer=tokenizer,
50
+ eos_token_id=model.config.eos_token_id,
51
+ max_new_tokens=500)
52
+
53
+ prompt = """
54
+ What is a Python? Here is some context: Python is a high-level, general-purpose programming language.
55
+ """
56
+ pipe = pipeline(task="text-generation",
57
+ model=fine_tuned_model,
58
+ tokenizer=tokenizer,
59
+ eos_token_id=model.config.eos_token_id,
60
+ max_new_tokens=500)
61
+
62
+ result = pipe(f"<s>[INST] {prompt} [/INST]")
63
+ generated = result[0]['generated_text']
64
+ print(generated[generated.find('[/INST]')+8:])
65
+
66
+ prompt = """
67
+ Please summarize what Linkedin does. Here is some context: LinkedIn is a business and employment-focused social media platform
68
+ """
69
+ pipe = pipeline(task="text-generation",
70
+ model=fine_tuned_model,
71
+ tokenizer=tokenizer,
72
+ eos_token_id=model.config.eos_token_id,
73
+ max_new_tokens=500)
74
+
75
+ result = pipe(f"<s>[INST] {prompt} [/INST]")
76
+ generated = result[0]['generated_text']
77
+ print(generated[generated.find('[/INST]')+8:])
78
+
79
+ #!pip install -q gradio
80
+
81
+ import gradio as gr
82
+
83
+ outputs = pipe(f"<s>[INST] {prompt} [/INST]")
84
+ demo=gr.Interface(pipe,
85
+ inputs=gr.Textbox(label="Prompt"),
86
+ outputs=gr.Textbox(generated[generated.find('[/INST]')+8:]))
87
+
88
+ demo.launch(share=True)