Update tasks/text.py
Browse files- tasks/text.py +50 -16
tasks/text.py
CHANGED
|
@@ -8,14 +8,21 @@ from .utils.evaluation import TextEvaluationRequest
|
|
| 8 |
from .utils.emissions import tracker, clean_emissions_data, get_space_info
|
| 9 |
|
| 10 |
## add-on imports
|
|
|
|
|
|
|
|
|
|
| 11 |
from sentence_transformers import SentenceTransformer
|
| 12 |
from sklearn.preprocessing import MinMaxScaler
|
| 13 |
-
import numpy as np
|
| 14 |
import skops.io as sio
|
| 15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
router = APIRouter()
|
| 17 |
|
| 18 |
-
DESCRIPTION = "
|
| 19 |
ROUTE = "/text"
|
| 20 |
|
| 21 |
@router.post(ROUTE, tags=["Text Task"],
|
|
@@ -62,23 +69,50 @@ async def evaluate_text(request: TextEvaluationRequest):
|
|
| 62 |
# Update the code below to replace the random baseline by your model inference within the inference pass where the energy consumption and emissions are tracked.
|
| 63 |
#--------------------------------------------------------------------------------------------
|
| 64 |
|
| 65 |
-
|
| 66 |
-
#
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
|
|
|
|
| 73 |
|
| 74 |
-
## Data prep
|
| 75 |
-
embeddings = model.encode(list(test_dataset['quote']), prompt_name=query_prompt_name)
|
| 76 |
-
scaler = MinMaxScaler()
|
| 77 |
-
X_scaled = scaler.fit_transform(embeddings)
|
| 78 |
|
| 79 |
-
## Predictions
|
| 80 |
-
predictions = disp.predict(X_scaled)
|
|
|
|
| 81 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 82 |
#--------------------------------------------------------------------------------------------
|
| 83 |
# YOUR MODEL INFERENCE STOPS HERE
|
| 84 |
#--------------------------------------------------------------------------------------------
|
|
|
|
| 8 |
from .utils.emissions import tracker, clean_emissions_data, get_space_info
|
| 9 |
|
| 10 |
## add-on imports
|
| 11 |
+
import numpy as np
|
| 12 |
+
|
| 13 |
+
# Logistic REG reqs
|
| 14 |
from sentence_transformers import SentenceTransformer
|
| 15 |
from sklearn.preprocessing import MinMaxScaler
|
|
|
|
| 16 |
import skops.io as sio
|
| 17 |
|
| 18 |
+
# BERT reqs
|
| 19 |
+
from transformers import AutoTokenizer,BertForSequenceClassification,AutoModelForSequenceClassification,Trainer, TrainingArguments,DataCollatorWithPadding
|
| 20 |
+
from datasets import Dataset
|
| 21 |
+
import torch
|
| 22 |
+
|
| 23 |
router = APIRouter()
|
| 24 |
|
| 25 |
+
DESCRIPTION = "Simple BERT classif"
|
| 26 |
ROUTE = "/text"
|
| 27 |
|
| 28 |
@router.post(ROUTE, tags=["Text Task"],
|
|
|
|
| 69 |
# Update the code below to replace the random baseline by your model inference within the inference pass where the energy consumption and emissions are tracked.
|
| 70 |
#--------------------------------------------------------------------------------------------
|
| 71 |
|
| 72 |
+
######################## LOG REG ########################
|
| 73 |
+
# ## Models loading
|
| 74 |
+
# # Embedding model
|
| 75 |
+
# query_prompt_name = "s2s_query"
|
| 76 |
+
# model = SentenceTransformer("dunzhang/stella_en_400M_v5",trust_remote_code=True).cuda()
|
| 77 |
+
|
| 78 |
+
# # Pre-trained Logistic Regression model
|
| 79 |
+
# trusted_types = ['sklearn.feature_selection._univariate_selection.f_classif']
|
| 80 |
+
# disp = sio.load('./tasks/logistic_regression_model.skops',trusted=trusted_types)
|
| 81 |
|
| 82 |
+
# ## Data prep
|
| 83 |
+
# embeddings = model.encode(list(test_dataset['quote']), prompt_name=query_prompt_name)
|
| 84 |
+
# scaler = MinMaxScaler()
|
| 85 |
+
# X_scaled = scaler.fit_transform(embeddings)
|
| 86 |
|
| 87 |
+
# ## Predictions
|
| 88 |
+
# predictions = disp.predict(X_scaled)
|
| 89 |
+
|
| 90 |
|
| 91 |
+
######################## BERT ########################
|
| 92 |
+
## Model loading
|
| 93 |
+
model = BertForSequenceClassification.from_pretrained("Oriaz/climate_change_bert_classif")
|
| 94 |
+
tokenizer = AutoTokenizer.from_pretrained("Oriaz/climate_change_bert_classif")
|
| 95 |
+
|
| 96 |
+
## Data prep
|
| 97 |
+
def preprocess_function(df):
|
| 98 |
+
return tokenizer(df["quote"], truncation=True)
|
| 99 |
+
tokenized_test = test_dataset.map(preprocess_function, batched=True)
|
| 100 |
+
|
| 101 |
+
## Modify inference model
|
| 102 |
+
training_args = torch.load("./tasks/utils/training_args.bin")
|
| 103 |
+
training_args.eval_strategy='no'
|
| 104 |
+
|
| 105 |
+
trainer = Trainer(
|
| 106 |
+
model=model,
|
| 107 |
+
args=training_args,
|
| 108 |
+
tokenizer=tokenizer
|
| 109 |
+
)
|
| 110 |
+
|
| 111 |
+
## prediction
|
| 112 |
+
preds = trainer.predict(tokenized_test)
|
| 113 |
+
predictions = np.array([np.argmax(x) for x in preds[0]])
|
| 114 |
+
|
| 115 |
+
|
| 116 |
#--------------------------------------------------------------------------------------------
|
| 117 |
# YOUR MODEL INFERENCE STOPS HERE
|
| 118 |
#--------------------------------------------------------------------------------------------
|