nicholasKluge commited on
Commit
da7c3ac
1 Parent(s): 5790ab4

Upload 6 files

Browse files
app.py CHANGED
@@ -3,9 +3,21 @@ import time
3
  import torch
4
  import joblib
5
  import gradio as gr
6
- from datasets import load_dataset
 
 
7
  from transformers import AutoTokenizer, AutoModelForCausalLM, AutoModelForSequenceClassification
8
 
 
 
 
 
 
 
 
 
 
 
9
  hub_token = os.environ.get("HUB_TOKEN")
10
  model_id = "nicholasKluge/TeenyTinyLlama-160m-Chat"
11
  device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
@@ -40,6 +52,14 @@ Desenvolvemos este modelo de conversação através de ajuste fino por instruç
40
  TeenyTinyLlama destina-se apenas à investigação academica. Para mais informações, leia nossa [carta modelo](https://huggingface.co/nicholasKluge/TeenyTinyLlama-160m).
41
  """
42
 
 
 
 
 
 
 
 
 
43
  disclaimer = """
44
  **Isenção de responsabilidade:** Esta demonstração deve ser utilizada apenas para fins de investigação. Os moderadores não censuram a saída do modelo, e os autores não endossam as opiniões geradas por este modelo.
45
 
@@ -72,6 +92,22 @@ with gr.Blocks(theme='freddyaboulton/dracula_revamped') as demo:
72
  max_new_tokens = gr.Slider(minimum=10, maximum=500, value=200, step=10, interactive=True, label="Comprimento Máximo", info="Controla o número máximo de tokens a serem produzidos (ignorando o prompt).")
73
 
74
  clear = gr.Button("Limpar Conversa 🧹")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
75
 
76
  gr.Markdown(disclaimer)
77
 
@@ -107,7 +143,27 @@ with gr.Blocks(theme='freddyaboulton/dracula_revamped') as demo:
107
  for character in bot_message:
108
  chat_history[-1][1] += character
109
  time.sleep(0.005)
110
- yield chat_history
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
111
 
112
  response = msg.submit(user, [msg, chatbot], [msg, chatbot], queue=False).then(
113
  generate_response, [msg, top_p, temperature, top_k, max_new_tokens, repetition_penalty, chatbot], chatbot
@@ -115,6 +171,7 @@ with gr.Blocks(theme='freddyaboulton/dracula_revamped') as demo:
115
  response.then(lambda: gr.update(interactive=True), None, [msg], queue=False)
116
  msg.submit(lambda x: gr.update(value=''), None,[msg])
117
  clear.click(lambda: None, None, chatbot, queue=False)
 
118
 
119
  demo.queue()
120
  demo.launch()
 
3
  import torch
4
  import joblib
5
  import gradio as gr
6
+ import pandas as pd
7
+ from sklearn.metrics.pairwise import cosine_similarity
8
+ from sklearn.feature_extraction.text import TfidfVectorizer
9
  from transformers import AutoTokenizer, AutoModelForCausalLM, AutoModelForSequenceClassification
10
 
11
+ df = pd.read_parquet("fine-tuning-data.parquet")
12
+ df.columns = ['Prompt', 'Completion']
13
+ df['Cosine Similarity'] = None
14
+
15
+ prompt_tfidf_vectorizer = joblib.load('prompt-vectorizer.pkl')
16
+ prompt_tfidf_matrix = joblib.load('prompt-tfidf-matrix.pkl')
17
+
18
+ completion_tfidf_vectorizer = joblib.load('completion-vectorizer.pkl')
19
+ completion_tfidf_matrix = joblib.load('completion-tfidf-matrix.pkl')
20
+
21
  hub_token = os.environ.get("HUB_TOKEN")
22
  model_id = "nicholasKluge/TeenyTinyLlama-160m-Chat"
23
  device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
 
52
  TeenyTinyLlama destina-se apenas à investigação academica. Para mais informações, leia nossa [carta modelo](https://huggingface.co/nicholasKluge/TeenyTinyLlama-160m).
53
  """
54
 
55
+ search_intro ="""
56
+ <h2><center>Explore o conjunto de dados da Aira 🔍</h2></center>
57
+
58
+ Aqui, os usuários podem procurar instâncias no conjunto de dados de ajuste fino. Para permitir uma pesquisa rápida, usamos a representação Term Frequency-Inverse Document Frequency (TF-IDF) e a similaridade de cosseno para explorar o conjunto de dados. Os vetorizadores TF-IDF pré-treinados e as matrizes TF-IDF correspondentes estão disponíveis neste repositório. Abaixo, apresentamos as dez instâncias mais semelhantes no conjunto de dados de ajuste fino utilizado.
59
+
60
+ Os usuários podem usar essa ferramenta para explorar como o modelo interpola os dados de ajuste fino e se ele é capaz de seguir instruções que estão fora da distribuição de ajuste fino.
61
+ """
62
+
63
  disclaimer = """
64
  **Isenção de responsabilidade:** Esta demonstração deve ser utilizada apenas para fins de investigação. Os moderadores não censuram a saída do modelo, e os autores não endossam as opiniões geradas por este modelo.
65
 
 
92
  max_new_tokens = gr.Slider(minimum=10, maximum=500, value=200, step=10, interactive=True, label="Comprimento Máximo", info="Controla o número máximo de tokens a serem produzidos (ignorando o prompt).")
93
 
94
  clear = gr.Button("Limpar Conversa 🧹")
95
+
96
+ gr.Markdown(search_intro)
97
+
98
+ search_input = gr.Textbox(label="Cole aqui o prompt ou a conclusão que você gostaria de pesquisar...", placeholder="Qual a Capital do Brasil?")
99
+ search_field = gr.Radio(['Prompt', 'Completion'], label="Coluna do Dataset", value='Prompt')
100
+ submit = gr.Button(value="Buscar")
101
+
102
+ with gr.Row():
103
+ out_dataframe = gr.Dataframe(
104
+ headers=df.columns.tolist(),
105
+ datatype=["str", "str", "str"],
106
+ row_count=10,
107
+ col_count=(3, "fixed"),
108
+ wrap=True,
109
+ interactive=False
110
+ )
111
 
112
  gr.Markdown(disclaimer)
113
 
 
143
  for character in bot_message:
144
  chat_history[-1][1] += character
145
  time.sleep(0.005)
146
+ yield chat_history
147
+
148
+ def search_in_datset(column_name, search_string):
149
+ """
150
+ Search in the dataset for the most similar instances.
151
+ """
152
+ temp_df = df.copy()
153
+
154
+ if column_name == 'Prompt':
155
+ search_vector = prompt_tfidf_vectorizer.transform([search_string])
156
+ cosine_similarities = cosine_similarity(prompt_tfidf_matrix, search_vector)
157
+ temp_df['Cosine Similarity'] = cosine_similarities
158
+ temp_df.sort_values('Cosine Similarity', ascending=False, inplace=True)
159
+ return temp_df.head(10)
160
+
161
+ elif column_name == 'Completion':
162
+ search_vector = completion_tfidf_vectorizer.transform([search_string])
163
+ cosine_similarities = cosine_similarity(completion_tfidf_matrix, search_vector)
164
+ temp_df['Cosine Similarity'] = cosine_similarities
165
+ temp_df.sort_values('Cosine Similarity', ascending=False, inplace=True)
166
+ return temp_df.head(10)
167
 
168
  response = msg.submit(user, [msg, chatbot], [msg, chatbot], queue=False).then(
169
  generate_response, [msg, top_p, temperature, top_k, max_new_tokens, repetition_penalty, chatbot], chatbot
 
171
  response.then(lambda: gr.update(interactive=True), None, [msg], queue=False)
172
  msg.submit(lambda x: gr.update(value=''), None,[msg])
173
  clear.click(lambda: None, None, chatbot, queue=False)
174
+ submit.click(fn=search_in_datset, inputs=[search_field, search_input], outputs=out_dataframe)
175
 
176
  demo.queue()
177
  demo.launch()
completion-tfidf-matrix.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:713c646967c5dff5f0c66c526553b618f7d7b9ac2d8d580ec1615d2d28211f30
3
+ size 116332899
completion-vectorizer.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:64bbd49731efda1677dca239d838058ef221de4770ed5663e451af1347c30637
3
+ size 4036115
fine-tuning-data.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c0eb2d74b25cf773e7a2edbcdc3d05818e80eaa494d124e4deb5820158958d7c
3
+ size 89839763
prompt-tfidf-matrix.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0b1c4c26ba191e97766b0c1d213277cd212cd574adcdd94cc09494a70d74b5f2
3
+ size 37979435
prompt-vectorizer.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:29a72f7e1c286ffe7c87c5384484f5471baec4b3a86238b458fdbcfb52d01a38
3
+ size 3324940