diff --git a/src/everyai/classfier/classfy.py b/src/everyai/classfier/classfy.py index 1013fd1..cb22d05 100644 --- a/src/everyai/classfier/classfy.py +++ b/src/everyai/classfier/classfy.py @@ -13,9 +13,16 @@ from sklearn.ensemble import RandomForestClassifier from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer from sklearn.linear_model import LogisticRegression -from sklearn.metrics import (accuracy_score, auc, confusion_matrix, f1_score, - precision_recall_curve, precision_score, - recall_score, roc_curve) +from sklearn.metrics import ( + accuracy_score, + auc, + confusion_matrix, + f1_score, + precision_recall_curve, + precision_score, + recall_score, + roc_curve, +) from sklearn.model_selection import train_test_split from sklearn.pipeline import make_pipeline from sklearn.svm import SVC @@ -168,8 +175,7 @@ def __init__( ) self.model_config = None self.model_path = ( - MODEL_PATH - / f"{self.model_name}_{self.tokenizer_name}_{self.data_name}.pkl" + MODEL_PATH / f"{self.model_name}_{self.tokenizer_name}_{self.data_name}.pkl" ) self.pipeline = pipeline if pipeline is not None else None @@ -179,15 +185,13 @@ def load_data(self, texts, labels, data_name): raise ValueError("Length of texts and labels should be same") self.texts = texts self.labels = labels - logging.info( - f"Loading data: {data_name} to classfier {self.model_name}" - ) + logging.info(f"Loading data: {data_name} to classfier {self.model_name}") self.data_name = data_name self.classfier_name = ( f"{self.model_name}_{self.tokenizer_name}_{self.data_name}" ) return self.texts, self.labels, self.data_name - + def show_score(self): self.score = evaluate_classification_model( self.data.y_test, @@ -257,9 +261,7 @@ def __init__(self, **classfiy_config): else: logging.warning("Split size not provided or not valid") if self.texts is None or self.labels is None or self.data_name is None: - logging.warning( - "Data not provided, please use the load_data method" - ) + logging.warning("Data not provided, please use the load_data method") if "device" in classfiy_config and classfiy_config["device"] == "cuda": logging.warning( "Cuda is not supported in sklearn and setting device to cpu" @@ -334,8 +336,7 @@ def _split_data(self, x, y): x_train, y_train, train_indices, - test_size=self.valid_size - / (self.train_size + self.valid_size), + test_size=self.valid_size / (self.train_size + self.valid_size), random_state=42, ) ) @@ -424,4 +425,4 @@ def __init__( device, model, tokenizer, - ) \ No newline at end of file + ) diff --git a/src/everyai/data_loader/data_load.py b/src/everyai/data_loader/data_load.py index 923a7f2..540b537 100644 --- a/src/everyai/data_loader/data_load.py +++ b/src/everyai/data_loader/data_load.py @@ -77,7 +77,11 @@ def load_data2list(self, max_count: int = None): return data[["question", "answer"]].to_dict(orient="records") def apply_filter(self, orginal_data: pd.DataFrame) -> pd.DataFrame: - return orginal_data if self.filter is None else orginal_data[orginal_data.apply(self.filter, axis=1)] + return ( + orginal_data + if self.filter is None + else orginal_data[orginal_data.apply(self.filter, axis=1)] + ) if __name__ == "__main__": diff --git a/src/everyai/main.py b/src/everyai/main.py index d4a5ac4..ce758f5 100644 --- a/src/everyai/main.py +++ b/src/everyai/main.py @@ -39,16 +39,12 @@ def generate(): file_path=data_config["file_path"], data_type=data_config["data_type"], ) - qa_datas = data_loader.load_data2list( - max_count=data_config["max_count"] - ) + qa_datas = data_loader.load_data2list(max_count=data_config["max_count"]) everyai_dataset = EveryaiDataset( dataname=data_config["data_name"], ai_list=[generate_config["model_name"]], ) - for data in tqdm( - qa_datas, desc="Generating data", total=len(qa_datas) - ): + for data in tqdm(qa_datas, desc="Generating data", total=len(qa_datas)): ai_response: str = generator.generate(data["question"]) everyai_dataset.insert_ai_response( question=data["question"], @@ -106,9 +102,7 @@ def classfiy(): ) everyai_dataset.load(format="mongodb") logging.info(f"Loaded data: {everyai_dataset.data_name}") - texts, labels = everyai_dataset.get_records_with_1ai( - ["THUDM/glm-4-9b-chat-hf"] - ) + texts, labels = everyai_dataset.get_records_with_1ai(["THUDM/glm-4-9b-chat-hf"]) for classfiy_config in get_config(file_path=CLASSFIY_CONFIG_PATH)[ "classfier_list" ]: @@ -119,9 +113,7 @@ def classfiy(): ) case _: raise ValueError("Classfier type not supported") - text_classfier.load_data( - texts, labels, data_name=everyai_dataset.data_name - ) + text_classfier.load_data(texts, labels, data_name=everyai_dataset.data_name) text_classfier.train() text_classfier.test() text_classfier.save_model()