Spaces:
Runtime error
Runtime error
initializing space with basic settings
Browse files- .gitignore +1 -0
- app.py +102 -0
- css/index.css +9 -0
- models/.gitkeep +0 -0
.gitignore
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
*.gguf
|
app.py
ADDED
@@ -0,0 +1,102 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import gradio as gr
|
2 |
+
from gpt4all import GPT4All
|
3 |
+
from huggingface_hub import hf_hub_download
|
4 |
+
|
5 |
+
title = "Tamil-LLaMA-7B-Instruct-GGUF (CPU Demo)"
|
6 |
+
|
7 |
+
description = """
|
8 |
+
🔎 [Tamil LLaMA 7B Instruct v0.1](https://huggingface.co/abhinand/tamil-llama-7b-instruct-v0.1) [GGUF format model](https://huggingface.co/abhinand/tamil-llama-7b-instruct-v0.1-gguf). Running the Q5_KM Quantized version.
|
9 |
+
|
10 |
+
🔨 Running on free CPU hardware. Suggest duplicating this space to run without a queue.
|
11 |
+
"""
|
12 |
+
|
13 |
+
model_path = "models"
|
14 |
+
model_name = "tamil-llama-7b-v0.1-q5_k_m.gguf"
|
15 |
+
# hf_hub_download(repo_id="abhinand/tamil-llama-7b-instruct-v0.1-gguf", filename=model_name, local_dir=model_path, local_dir_use_symlinks=False)
|
16 |
+
|
17 |
+
print("Start the model init process")
|
18 |
+
model = model = GPT4All(model_name, model_path, allow_download = False, device="cpu")
|
19 |
+
print("Finish the model init process")
|
20 |
+
|
21 |
+
model.config["promptTemplate"] = """நீங்கள் உதவிகரமான மற்றும் மரியாதைக்குரிய மற்றும் நேர்மையான AI உதவியாளர். பாதுகாப்பாக இருக்கும்போது எப்போதும் முடிந்தவரை உதவிகரமாக பதிலளிக்கவும். உங்கள் பதில்களில் தீங்கு விளைவிக்கும், நெறிமுறையற்ற, இனவெறி, பாலியல், நச்சு, ஆபத்தான அல்லது சட்டவிரோதமான உள்ளடக்கம் இருக்கக்கூடாது. உங்கள் பதில்கள் சமூக சார்பற்றதாகவும் நேர்மறையான இயல்புடையதாகவும் இருப்பதை உறுதிசெய்யவும். ஒரு கேள்விக்கு எந்த அர்த்தமும் இல்லை என்றால் அல்லது அது உண்மையாக ஒத்திசைந்ததாக இல்லை என்றால், சிலவற்றுக்குப் பதிலளிப்பதற்குப் பதிலாக ஏன் என்று விளக்கவும். ஒரு கேள்விக்கான பதில் உங்களுக்குத் தெரியாவிட்டால், தவறான தகவல்களைப் பகிர வேண்டாம்.
|
22 |
+
|
23 |
+
### Instruction:
|
24 |
+
{0}
|
25 |
+
|
26 |
+
### Response:
|
27 |
+
"""
|
28 |
+
|
29 |
+
model.config["systemPrompt"] = ""
|
30 |
+
model._is_chat_session_activated = False
|
31 |
+
|
32 |
+
max_new_tokens = 2048
|
33 |
+
|
34 |
+
def generator(message, history, temperature, top_p, top_k):
|
35 |
+
prompt = ""
|
36 |
+
for user_message, assistant_message in history:
|
37 |
+
prompt += model.config["promptTemplate"].format(user_message)
|
38 |
+
|
39 |
+
prompt += model.config["promptTemplate"].format(message)
|
40 |
+
outputs = []
|
41 |
+
for token in model.generate(prompt=prompt, temp=temperature, top_k = top_k, top_p = top_p, max_tokens = max_new_tokens, streaming=True):
|
42 |
+
outputs.append(token)
|
43 |
+
yield "".join(outputs)
|
44 |
+
|
45 |
+
def vote(data: gr.LikeData):
|
46 |
+
if data.liked:
|
47 |
+
return
|
48 |
+
else:
|
49 |
+
return
|
50 |
+
|
51 |
+
chatbot = gr.Chatbot(bubble_full_width=False)
|
52 |
+
|
53 |
+
additional_inputs=[
|
54 |
+
gr.Slider(
|
55 |
+
label="temperature",
|
56 |
+
value=0.5,
|
57 |
+
minimum=0.0,
|
58 |
+
maximum=2.0,
|
59 |
+
step=0.05,
|
60 |
+
interactive=True,
|
61 |
+
info="Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.",
|
62 |
+
),
|
63 |
+
gr.Slider(
|
64 |
+
label="top_p",
|
65 |
+
value=1.0,
|
66 |
+
minimum=0.0,
|
67 |
+
maximum=1.0,
|
68 |
+
step=0.01,
|
69 |
+
interactive=True,
|
70 |
+
info="0.1 means only the tokens comprising the top 10% probability mass are considered. Suggest set to 1 and use temperature. 1 means 100% and will disable it",
|
71 |
+
),
|
72 |
+
gr.Slider(
|
73 |
+
label="top_k",
|
74 |
+
value=40,
|
75 |
+
minimum=0,
|
76 |
+
maximum=1000,
|
77 |
+
step=1,
|
78 |
+
interactive=True,
|
79 |
+
info="limits candidate tokens to a fixed number after sorting by probability. Setting it higher than the vocabulary size deactivates this limit.",
|
80 |
+
)
|
81 |
+
]
|
82 |
+
|
83 |
+
iface = gr.ChatInterface(
|
84 |
+
fn = generator,
|
85 |
+
title=title,
|
86 |
+
description = description,
|
87 |
+
chatbot=chatbot,
|
88 |
+
additional_inputs=additional_inputs,
|
89 |
+
examples=[
|
90 |
+
["வணக்கம்! எப்படி இருக்கிறீர்கள்?"],
|
91 |
+
["நான் பெரிய பணக்காரன் இல்லை, லேட்டஸ்ட் ஃபோனில் நிறைய பணம் செலவழிக்க வேண்டுமா?"],
|
92 |
+
["பைத்தானில் 'Quick Sort' அல்காரிதத்தை செயல்படுத்தவும்."],
|
93 |
+
["சிவப்பும் மஞ்சளும் கலந்தால் என்ன நிற��ாக இருக்கும்?"],
|
94 |
+
]
|
95 |
+
)
|
96 |
+
|
97 |
+
with gr.Blocks(css="css/index.css") as demo:
|
98 |
+
chatbot.like(vote, None, None)
|
99 |
+
iface.render()
|
100 |
+
|
101 |
+
if __name__ == "__main__":
|
102 |
+
demo.queue(max_size=3).launch()
|
css/index.css
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
h1 {
|
2 |
+
text-align: center;
|
3 |
+
}
|
4 |
+
|
5 |
+
.contain {
|
6 |
+
max-width: 1000px;
|
7 |
+
margin: auto;
|
8 |
+
padding-top: 1.5rem;
|
9 |
+
}
|
models/.gitkeep
ADDED
File without changes
|