Spaces:
Runtime error
Runtime error
work on dialogue models
Browse files- .gitignore +2 -0
- LICENSE.txt +0 -126
- app.py +15 -28
- model.py +7 -5
.gitignore
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
__pycache__/*
|
2 |
+
gradio_cached_examples/*
|
LICENSE.txt
DELETED
@@ -1,126 +0,0 @@
|
|
1 |
-
LLAMA 2 COMMUNITY LICENSE AGREEMENT
|
2 |
-
Llama 2 Version Release Date: July 18, 2023
|
3 |
-
|
4 |
-
"Agreement" means the terms and conditions for use, reproduction, distribution and
|
5 |
-
modification of the Llama Materials set forth herein.
|
6 |
-
|
7 |
-
"Documentation" means the specifications, manuals and documentation
|
8 |
-
accompanying Llama 2 distributed by Meta at ai.meta.com/resources/models-and-
|
9 |
-
libraries/llama-downloads/.
|
10 |
-
|
11 |
-
"Licensee" or "you" means you, or your employer or any other person or entity (if
|
12 |
-
you are entering into this Agreement on such person or entity's behalf), of the age
|
13 |
-
required under applicable laws, rules or regulations to provide legal consent and that
|
14 |
-
has legal authority to bind your employer or such other person or entity if you are
|
15 |
-
entering in this Agreement on their behalf.
|
16 |
-
|
17 |
-
"Llama 2" means the foundational large language models and software and
|
18 |
-
algorithms, including machine-learning model code, trained model weights,
|
19 |
-
inference-enabling code, training-enabling code, fine-tuning enabling code and other
|
20 |
-
elements of the foregoing distributed by Meta at ai.meta.com/resources/models-and-
|
21 |
-
libraries/llama-downloads/.
|
22 |
-
|
23 |
-
"Llama Materials" means, collectively, Meta's proprietary Llama 2 and
|
24 |
-
Documentation (and any portion thereof) made available under this Agreement.
|
25 |
-
|
26 |
-
"Meta" or "we" means Meta Platforms Ireland Limited (if you are located in or, if you
|
27 |
-
are an entity, your principal place of business is in the EEA or Switzerland) and Meta
|
28 |
-
Platforms, Inc. (if you are located outside of the EEA or Switzerland).
|
29 |
-
|
30 |
-
By clicking "I Accept" below or by using or distributing any portion or element of the
|
31 |
-
Llama Materials, you agree to be bound by this Agreement.
|
32 |
-
|
33 |
-
1. License Rights and Redistribution.
|
34 |
-
|
35 |
-
a. Grant of Rights. You are granted a non-exclusive, worldwide, non-
|
36 |
-
transferable and royalty-free limited license under Meta's intellectual property or
|
37 |
-
other rights owned by Meta embodied in the Llama Materials to use, reproduce,
|
38 |
-
distribute, copy, create derivative works of, and make modifications to the Llama
|
39 |
-
Materials.
|
40 |
-
|
41 |
-
b. Redistribution and Use.
|
42 |
-
|
43 |
-
i. If you distribute or make the Llama Materials, or any derivative works
|
44 |
-
thereof, available to a third party, you shall provide a copy of this Agreement to such
|
45 |
-
third party.
|
46 |
-
ii. If you receive Llama Materials, or any derivative works thereof, from
|
47 |
-
a Licensee as part of an integrated end user product, then Section 2 of this
|
48 |
-
Agreement will not apply to you.
|
49 |
-
|
50 |
-
iii. You must retain in all copies of the Llama Materials that you
|
51 |
-
distribute the following attribution notice within a "Notice" text file distributed as a
|
52 |
-
part of such copies: "Llama 2 is licensed under the LLAMA 2 Community License,
|
53 |
-
Copyright (c) Meta Platforms, Inc. All Rights Reserved."
|
54 |
-
|
55 |
-
iv. Your use of the Llama Materials must comply with applicable laws
|
56 |
-
and regulations (including trade compliance laws and regulations) and adhere to the
|
57 |
-
Acceptable Use Policy for the Llama Materials (available at
|
58 |
-
https://ai.meta.com/llama/use-policy), which is hereby incorporated by reference into
|
59 |
-
this Agreement.
|
60 |
-
|
61 |
-
v. You will not use the Llama Materials or any output or results of the
|
62 |
-
Llama Materials to improve any other large language model (excluding Llama 2 or
|
63 |
-
derivative works thereof).
|
64 |
-
|
65 |
-
2. Additional Commercial Terms. If, on the Llama 2 version release date, the
|
66 |
-
monthly active users of the products or services made available by or for Licensee,
|
67 |
-
or Licensee's affiliates, is greater than 700 million monthly active users in the
|
68 |
-
preceding calendar month, you must request a license from Meta, which Meta may
|
69 |
-
grant to you in its sole discretion, and you are not authorized to exercise any of the
|
70 |
-
rights under this Agreement unless or until Meta otherwise expressly grants you
|
71 |
-
such rights.
|
72 |
-
|
73 |
-
3. Disclaimer of Warranty. UNLESS REQUIRED BY APPLICABLE LAW, THE
|
74 |
-
LLAMA MATERIALS AND ANY OUTPUT AND RESULTS THEREFROM ARE
|
75 |
-
PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
76 |
-
EITHER EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY
|
77 |
-
WARRANTIES OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY, OR
|
78 |
-
FITNESS FOR A PARTICULAR PURPOSE. YOU ARE SOLELY RESPONSIBLE
|
79 |
-
FOR DETERMINING THE APPROPRIATENESS OF USING OR REDISTRIBUTING
|
80 |
-
THE LLAMA MATERIALS AND ASSUME ANY RISKS ASSOCIATED WITH YOUR
|
81 |
-
USE OF THE LLAMA MATERIALS AND ANY OUTPUT AND RESULTS.
|
82 |
-
|
83 |
-
4. Limitation of Liability. IN NO EVENT WILL META OR ITS AFFILIATES BE
|
84 |
-
LIABLE UNDER ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, TORT,
|
85 |
-
NEGLIGENCE, PRODUCTS LIABILITY, OR OTHERWISE, ARISING OUT OF THIS
|
86 |
-
AGREEMENT, FOR ANY LOST PROFITS OR ANY INDIRECT, SPECIAL,
|
87 |
-
CONSEQUENTIAL, INCIDENTAL, EXEMPLARY OR PUNITIVE DAMAGES, EVEN
|
88 |
-
IF META OR ITS AFFILIATES HAVE BEEN ADVISED OF THE POSSIBILITY OF
|
89 |
-
ANY OF THE FOREGOING.
|
90 |
-
|
91 |
-
5. Intellectual Property.
|
92 |
-
|
93 |
-
a. No trademark licenses are granted under this Agreement, and in
|
94 |
-
connection with the Llama Materials, neither Meta nor Licensee may use any name
|
95 |
-
or mark owned by or associated with the other or any of its affiliates, except as
|
96 |
-
required for reasonable and customary use in describing and redistributing the
|
97 |
-
Llama Materials.
|
98 |
-
|
99 |
-
b. Subject to Meta's ownership of Llama Materials and derivatives made by or
|
100 |
-
for Meta, with respect to any derivative works and modifications of the Llama
|
101 |
-
Materials that are made by you, as between you and Meta, you are and will be the
|
102 |
-
owner of such derivative works and modifications.
|
103 |
-
|
104 |
-
c. If you institute litigation or other proceedings against Meta or any entity
|
105 |
-
(including a cross-claim or counterclaim in a lawsuit) alleging that the Llama
|
106 |
-
Materials or Llama 2 outputs or results, or any portion of any of the foregoing,
|
107 |
-
constitutes infringement of intellectual property or other rights owned or licensable
|
108 |
-
by you, then any licenses granted to you under this Agreement shall terminate as of
|
109 |
-
the date such litigation or claim is filed or instituted. You will indemnify and hold
|
110 |
-
harmless Meta from and against any claim by any third party arising out of or related
|
111 |
-
to your use or distribution of the Llama Materials.
|
112 |
-
|
113 |
-
6. Term and Termination. The term of this Agreement will commence upon your
|
114 |
-
acceptance of this Agreement or access to the Llama Materials and will continue in
|
115 |
-
full force and effect until terminated in accordance with the terms and conditions
|
116 |
-
herein. Meta may terminate this Agreement if you are in breach of any term or
|
117 |
-
condition of this Agreement. Upon termination of this Agreement, you shall delete
|
118 |
-
and cease use of the Llama Materials. Sections 3, 4 and 7 shall survive the
|
119 |
-
termination of this Agreement.
|
120 |
-
|
121 |
-
7. Governing Law and Jurisdiction. This Agreement will be governed and
|
122 |
-
construed under the laws of the State of California without regard to choice of law
|
123 |
-
principles, and the UN Convention on Contracts for the International Sale of Goods
|
124 |
-
does not apply to this Agreement. The courts of California shall have exclusive
|
125 |
-
jurisdiction of any dispute arising out of this Agreement.
|
126 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
app.py
CHANGED
@@ -1,36 +1,24 @@
|
|
1 |
from typing import Iterator
|
2 |
-
|
3 |
import gradio as gr
|
4 |
import torch
|
5 |
-
|
6 |
from model import get_input_token_length, run
|
7 |
|
8 |
DEFAULT_SYSTEM_PROMPT = """\
|
9 |
-
|
10 |
"""
|
11 |
MAX_MAX_NEW_TOKENS = 2048
|
12 |
DEFAULT_MAX_NEW_TOKENS = 1024
|
13 |
MAX_INPUT_TOKEN_LENGTH = 4000
|
14 |
|
15 |
DESCRIPTION = """
|
16 |
-
#
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
π For more details about the Llama 2 family of models and how to use them with `transformers`, take a look [at our blog post](https://huggingface.co/blog/llama2).
|
21 |
-
|
22 |
-
π¨ Looking for an even more powerful model? Check out the large [**70B** model demo](https://huggingface.co/spaces/ysharma/Explore_llamav2_with_TGI).
|
23 |
-
π For a smaller model that you can run on many GPUs, check our [7B model demo](https://huggingface.co/spaces/huggingface-projects/llama-2-7b-chat).
|
24 |
|
25 |
"""
|
|
|
|
|
26 |
|
27 |
-
LICENSE = """
|
28 |
-
<p/>
|
29 |
-
|
30 |
-
---
|
31 |
-
As a derivate work of [Llama-2-13b-chat](https://huggingface.co/meta-llama/Llama-2-13b-chat) by Meta,
|
32 |
-
this demo is governed by the original [license](https://huggingface.co/spaces/huggingface-projects/llama-2-13b-chat/blob/main/LICENSE.txt) and [acceptable use policy](https://huggingface.co/spaces/huggingface-projects/llama-2-13b-chat/blob/main/USE_POLICY.md).
|
33 |
-
"""
|
34 |
|
35 |
if not torch.cuda.is_available():
|
36 |
DESCRIPTION += '\n<p>Running on CPU π₯Ά This demo does not work on CPU.</p>'
|
@@ -93,8 +81,8 @@ def check_input_token_length(message: str, chat_history: list[tuple[str, str]],
|
|
93 |
|
94 |
with gr.Blocks(css='style.css') as demo:
|
95 |
gr.Markdown(DESCRIPTION)
|
96 |
-
gr.DuplicateButton(value='Duplicate Space for private use',
|
97 |
-
|
98 |
|
99 |
with gr.Group():
|
100 |
chatbot = gr.Chatbot(label='Chatbot')
|
@@ -110,9 +98,9 @@ with gr.Blocks(css='style.css') as demo:
|
|
110 |
scale=1,
|
111 |
min_width=0)
|
112 |
with gr.Row():
|
113 |
-
retry_button = gr.Button('π
|
114 |
undo_button = gr.Button('β©οΈ Undo', variant='secondary')
|
115 |
-
clear_button = gr.Button('ποΈ
|
116 |
|
117 |
saved_input = gr.State()
|
118 |
|
@@ -151,11 +139,10 @@ with gr.Blocks(css='style.css') as demo:
|
|
151 |
|
152 |
gr.Examples(
|
153 |
examples=[
|
154 |
-
'
|
155 |
-
'
|
156 |
-
'
|
157 |
-
'
|
158 |
-
"Write a 100-word article on 'Benefits of Open-Source in AI research'",
|
159 |
],
|
160 |
inputs=textbox,
|
161 |
outputs=[textbox, chatbot],
|
@@ -163,7 +150,7 @@ with gr.Blocks(css='style.css') as demo:
|
|
163 |
cache_examples=True,
|
164 |
)
|
165 |
|
166 |
-
gr.Markdown(LICENSE)
|
167 |
|
168 |
textbox.submit(
|
169 |
fn=clear_and_save_textbox,
|
|
|
1 |
from typing import Iterator
|
|
|
2 |
import gradio as gr
|
3 |
import torch
|
|
|
4 |
from model import get_input_token_length, run
|
5 |
|
6 |
DEFAULT_SYSTEM_PROMPT = """\
|
7 |
+
Wetin be your name ?\
|
8 |
"""
|
9 |
MAX_MAX_NEW_TOKENS = 2048
|
10 |
DEFAULT_MAX_NEW_TOKENS = 1024
|
11 |
MAX_INPUT_TOKEN_LENGTH = 4000
|
12 |
|
13 |
DESCRIPTION = """
|
14 |
+
# Masakhane Dialogue Models
|
15 |
+
This Space demonstrates the dialogue models for Nigerian Pidgin, an African langage.\
|
16 |
+
π For more about visit [our homepage](https://www.masakhane.io/).
|
|
|
|
|
|
|
|
|
|
|
17 |
|
18 |
"""
|
19 |
+
#π¨ Looking for an even more powerful model? Check out the large [**70B** model demo](https://huggingface.co/spaces/ysharma/Explore_llamav2_with_TGI).
|
20 |
+
#π For a smaller model that you can run on many GPUs, check our [7B model demo](https://huggingface.co/spaces/huggingface-projects/llama-2-7b-chat).
|
21 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
|
23 |
if not torch.cuda.is_available():
|
24 |
DESCRIPTION += '\n<p>Running on CPU π₯Ά This demo does not work on CPU.</p>'
|
|
|
81 |
|
82 |
with gr.Blocks(css='style.css') as demo:
|
83 |
gr.Markdown(DESCRIPTION)
|
84 |
+
#gr.DuplicateButton(value='Duplicate Space for private use',
|
85 |
+
# elem_id='duplicate-button')
|
86 |
|
87 |
with gr.Group():
|
88 |
chatbot = gr.Chatbot(label='Chatbot')
|
|
|
98 |
scale=1,
|
99 |
min_width=0)
|
100 |
with gr.Row():
|
101 |
+
retry_button = gr.Button('π Retry', variant='secondary')
|
102 |
undo_button = gr.Button('β©οΈ Undo', variant='secondary')
|
103 |
+
clear_button = gr.Button('ποΈ Clear', variant='secondary')
|
104 |
|
105 |
saved_input = gr.State()
|
106 |
|
|
|
139 |
|
140 |
gr.Examples(
|
141 |
examples=[
|
142 |
+
'How I fit chop for here?',
|
143 |
+
'I hear say restaurant dey here.',
|
144 |
+
'Abeg you fit tell me which kind chop dey?',
|
145 |
+
'I dey find restauarant.',
|
|
|
146 |
],
|
147 |
inputs=textbox,
|
148 |
outputs=[textbox, chatbot],
|
|
|
150 |
cache_examples=True,
|
151 |
)
|
152 |
|
153 |
+
#gr.Markdown(LICENSE)
|
154 |
|
155 |
textbox.submit(
|
156 |
fn=clear_and_save_textbox,
|
model.py
CHANGED
@@ -1,10 +1,9 @@
|
|
1 |
from threading import Thread
|
2 |
from typing import Iterator
|
3 |
-
|
4 |
import torch
|
5 |
from transformers import AutoConfig, AutoModelForCausalLM, AutoTokenizer, TextIteratorStreamer
|
6 |
|
7 |
-
model_id = '
|
8 |
|
9 |
if torch.cuda.is_available():
|
10 |
config = AutoConfig.from_pretrained(model_id)
|
@@ -23,15 +22,18 @@ tokenizer = AutoTokenizer.from_pretrained(model_id)
|
|
23 |
|
24 |
def get_prompt(message: str, chat_history: list[tuple[str, str]],
|
25 |
system_prompt: str) -> str:
|
26 |
-
texts = [f'<s>[INST] <<SYS>>\n{system_prompt}\n<</SYS>>\n\n']
|
|
|
27 |
# The first user input is _not_ stripped
|
28 |
do_strip = False
|
29 |
for user_input, response in chat_history:
|
30 |
user_input = user_input.strip() if do_strip else user_input
|
31 |
do_strip = True
|
32 |
-
texts.append(f'{user_input} [/INST] {response.strip()} </s><s>[INST] ')
|
|
|
|
|
33 |
message = message.strip() if do_strip else message
|
34 |
-
texts.append(
|
35 |
return ''.join(texts)
|
36 |
|
37 |
|
|
|
1 |
from threading import Thread
|
2 |
from typing import Iterator
|
|
|
3 |
import torch
|
4 |
from transformers import AutoConfig, AutoModelForCausalLM, AutoTokenizer, TextIteratorStreamer
|
5 |
|
6 |
+
model_id = 'tosin/dialogpt_afriwoz_pidgin'
|
7 |
|
8 |
if torch.cuda.is_available():
|
9 |
config = AutoConfig.from_pretrained(model_id)
|
|
|
22 |
|
23 |
def get_prompt(message: str, chat_history: list[tuple[str, str]],
|
24 |
system_prompt: str) -> str:
|
25 |
+
#texts = [f'<s>[INST] <<SYS>>\n{system_prompt}\n<</SYS>>\n\n']
|
26 |
+
texts = [system_prompt]
|
27 |
# The first user input is _not_ stripped
|
28 |
do_strip = False
|
29 |
for user_input, response in chat_history:
|
30 |
user_input = user_input.strip() if do_strip else user_input
|
31 |
do_strip = True
|
32 |
+
#texts.append(f'{user_input} [/INST] {response.strip()} </s><s>[INST] ')
|
33 |
+
texts.append(user_input)
|
34 |
+
texts.append(response.strip())
|
35 |
message = message.strip() if do_strip else message
|
36 |
+
texts.append(message)
|
37 |
return ''.join(texts)
|
38 |
|
39 |
|