AGCobra georgesung commited on
Commit
817699d
0 Parent(s):

Duplicate from georgesung/llama2_7b_uncensored_chat

Browse files

Co-authored-by: George Sung <georgesung@users.noreply.huggingface.co>

Files changed (4) hide show
  1. .gitattributes +35 -0
  2. README.md +13 -0
  3. app.py +78 -0
  4. requirements.txt +6 -0
.gitattributes ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tar filter=lfs diff=lfs merge=lfs -text
29
+ *.tflite filter=lfs diff=lfs merge=lfs -text
30
+ *.tgz filter=lfs diff=lfs merge=lfs -text
31
+ *.wasm filter=lfs diff=lfs merge=lfs -text
32
+ *.xz filter=lfs diff=lfs merge=lfs -text
33
+ *.zip filter=lfs diff=lfs merge=lfs -text
34
+ *.zst filter=lfs diff=lfs merge=lfs -text
35
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
README.md ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: Llama2 7b Uncensored Chat
3
+ emoji: 🏢
4
+ colorFrom: blue
5
+ colorTo: pink
6
+ sdk: gradio
7
+ sdk_version: 3.37.0
8
+ app_file: app.py
9
+ pinned: false
10
+ duplicated_from: georgesung/llama2_7b_uncensored_chat
11
+ ---
12
+
13
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
app.py ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from transformers import LlamaForCausalLM, LlamaTokenizer, pipeline
2
+ import torch
3
+
4
+ import gradio as gr
5
+
6
+ # LLM helper functions
7
+ def get_response_text(data):
8
+ text = data[0]["generated_text"]
9
+
10
+ assistant_text_index = text.rfind('### RESPONSE:')
11
+ if assistant_text_index != -1:
12
+ text = text[assistant_text_index+len('### RESPONSE:'):].strip()
13
+
14
+ return text
15
+
16
+ def get_llm_response(prompt, pipe):
17
+ raw_output = pipe(prompt)
18
+ text = get_response_text(raw_output)
19
+ return text
20
+
21
+ # Load LLM
22
+ model_id = "georgesung/llama2_7b_chat_uncensored"
23
+ tokenizer = LlamaTokenizer.from_pretrained(model_id)
24
+ model = LlamaForCausalLM.from_pretrained(model_id, device_map="auto", load_in_8bit=True)
25
+
26
+ # Llama tokenizer missing pad token
27
+ tokenizer.add_special_tokens({'pad_token': '[PAD]'})
28
+
29
+ pipe = pipeline(
30
+ "text-generation",
31
+ model=model,
32
+ tokenizer=tokenizer,
33
+ max_length=4096, # Llama-2 default context window
34
+ temperature=0.7,
35
+ top_p=0.95,
36
+ repetition_penalty=1.15
37
+ )
38
+
39
+ with gr.Blocks() as demo:
40
+ chatbot = gr.Chatbot()
41
+ msg = gr.Textbox()
42
+ clear = gr.Button("Clear")
43
+
44
+ def hist_to_prompt(history):
45
+ prompt = ""
46
+ for human_text, bot_text in history:
47
+ prompt += f"### HUMAN:\n{human_text}\n\n### RESPONSE:\n"
48
+ if bot_text:
49
+ prompt += f"{bot_text}\n\n"
50
+ return prompt
51
+
52
+ def get_bot_response(text):
53
+ bot_text_index = text.rfind('### RESPONSE:')
54
+ if bot_text_index != -1:
55
+ text = text[bot_text_index + len('### RESPONSE:'):].strip()
56
+ return text
57
+
58
+ def user(user_message, history):
59
+ return "", history + [[user_message, None]]
60
+
61
+ def bot(history):
62
+ #bot_message = random.choice(["How are you?", "I love you", "I'm very hungry"])
63
+ #history[-1][1] = bot_message + '</s>'
64
+
65
+ hist_text = hist_to_prompt(history)
66
+ print(hist_text)
67
+ bot_message = get_llm_response(hist_text, pipe) + tokenizer.eos_token
68
+ history[-1][1] = bot_message # add bot message to overall history
69
+
70
+ return history
71
+
72
+ msg.submit(user, [msg, chatbot], [msg, chatbot], queue=False).then(
73
+ bot, chatbot, chatbot
74
+ )
75
+ clear.click(lambda: None, None, chatbot, queue=False)
76
+
77
+ demo.queue()
78
+ demo.launch()
requirements.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ transformers
2
+ torch
3
+ sentencepiece
4
+ accelerate
5
+ bitsandbytes
6
+ scipy