clemdesr commited on
Commit
f4e2c1f
·
1 Parent(s): 9685f7b

feat: initial commit

Browse files
Files changed (3) hide show
  1. poetry.lock +0 -0
  2. pyproject.toml +24 -0
  3. tasks/text.py +21 -21
poetry.lock ADDED
The diff for this file is too large to render. See raw diff
 
pyproject.toml ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [tool.poetry]
2
+ name = "submission-template"
3
+ version = "0.1.0"
4
+ description = ""
5
+ authors = ["clemdesr <[email protected]>"]
6
+ readme = "README.md"
7
+
8
+ [tool.poetry.dependencies]
9
+ python = "^3.11"
10
+ fastapi = ">=0.68.0"
11
+ uvicorn = ">=0.15.0"
12
+ codecarbon = ">=2.3.1"
13
+ datasets = ">=2.14.0"
14
+ scikit-learn = ">=1.0.2"
15
+ pydantic = ">=1.10.0"
16
+ python-dotenv = ">=1.0.0"
17
+ gradio = ">=4.0.0"
18
+ requests = ">=2.31.0"
19
+ librosa = "0.10.2.post1"
20
+
21
+
22
+ [build-system]
23
+ requires = ["poetry-core"]
24
+ build-backend = "poetry.core.masonry.api"
tasks/text.py CHANGED
@@ -1,23 +1,24 @@
1
- from fastapi import APIRouter
2
  from datetime import datetime
 
3
  from datasets import load_dataset
 
4
  from sklearn.metrics import accuracy_score
5
- import random
6
 
 
7
  from .utils.evaluation import TextEvaluationRequest
8
- from .utils.emissions import tracker, clean_emissions_data, get_space_info
9
 
10
  router = APIRouter()
11
 
12
- DESCRIPTION = "Random Baseline"
13
  ROUTE = "/text"
14
 
15
- @router.post(ROUTE, tags=["Text Task"],
16
- description=DESCRIPTION)
17
  async def evaluate_text(request: TextEvaluationRequest):
18
  """
19
  Evaluate text classification for climate disinformation detection.
20
-
21
  Current Model: Random Baseline
22
  - Makes random predictions from the label space (0-7)
23
  - Used as a baseline for comparison
@@ -34,7 +35,7 @@ async def evaluate_text(request: TextEvaluationRequest):
34
  "4_solutions_harmful_unnecessary": 4,
35
  "5_science_unreliable": 5,
36
  "6_proponents_biased": 6,
37
- "7_fossil_fuels_needed": 7
38
  }
39
 
40
  # Load and prepare the dataset
@@ -46,31 +47,30 @@ async def evaluate_text(request: TextEvaluationRequest):
46
  # Split dataset
47
  train_test = dataset["train"].train_test_split(test_size=request.test_size, seed=request.test_seed)
48
  test_dataset = train_test["test"]
49
-
50
  # Start tracking emissions
51
  tracker.start()
52
  tracker.start_task("inference")
53
 
54
- #--------------------------------------------------------------------------------------------
55
  # YOUR MODEL INFERENCE CODE HERE
56
  # 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.
57
- #--------------------------------------------------------------------------------------------
58
-
59
  # Make random predictions (placeholder for actual model inference)
60
  true_labels = test_dataset["label"]
61
  predictions = [random.randint(0, 7) for _ in range(len(true_labels))]
62
 
63
- #--------------------------------------------------------------------------------------------
64
  # YOUR MODEL INFERENCE STOPS HERE
65
- #--------------------------------------------------------------------------------------------
66
 
67
-
68
  # Stop tracking emissions
69
  emissions_data = tracker.stop_task()
70
-
71
  # Calculate accuracy
72
  accuracy = accuracy_score(true_labels, predictions)
73
-
74
  # Prepare results dictionary
75
  results = {
76
  "username": username,
@@ -85,8 +85,8 @@ async def evaluate_text(request: TextEvaluationRequest):
85
  "dataset_config": {
86
  "dataset_name": request.dataset_name,
87
  "test_size": request.test_size,
88
- "test_seed": request.test_seed
89
- }
90
  }
91
-
92
- return results
 
1
+ import random
2
  from datetime import datetime
3
+
4
  from datasets import load_dataset
5
+ from fastapi import APIRouter
6
  from sklearn.metrics import accuracy_score
 
7
 
8
+ from .utils.emissions import clean_emissions_data, get_space_info, tracker
9
  from .utils.evaluation import TextEvaluationRequest
 
10
 
11
  router = APIRouter()
12
 
13
+ DESCRIPTION = "Setup Baseline"
14
  ROUTE = "/text"
15
 
16
+
17
+ @router.post(ROUTE, tags=["Text Task"], description=DESCRIPTION)
18
  async def evaluate_text(request: TextEvaluationRequest):
19
  """
20
  Evaluate text classification for climate disinformation detection.
21
+
22
  Current Model: Random Baseline
23
  - Makes random predictions from the label space (0-7)
24
  - Used as a baseline for comparison
 
35
  "4_solutions_harmful_unnecessary": 4,
36
  "5_science_unreliable": 5,
37
  "6_proponents_biased": 6,
38
+ "7_fossil_fuels_needed": 7,
39
  }
40
 
41
  # Load and prepare the dataset
 
47
  # Split dataset
48
  train_test = dataset["train"].train_test_split(test_size=request.test_size, seed=request.test_seed)
49
  test_dataset = train_test["test"]
50
+
51
  # Start tracking emissions
52
  tracker.start()
53
  tracker.start_task("inference")
54
 
55
+ # --------------------------------------------------------------------------------------------
56
  # YOUR MODEL INFERENCE CODE HERE
57
  # 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.
58
+ # --------------------------------------------------------------------------------------------
59
+
60
  # Make random predictions (placeholder for actual model inference)
61
  true_labels = test_dataset["label"]
62
  predictions = [random.randint(0, 7) for _ in range(len(true_labels))]
63
 
64
+ # --------------------------------------------------------------------------------------------
65
  # YOUR MODEL INFERENCE STOPS HERE
66
+ # --------------------------------------------------------------------------------------------
67
 
 
68
  # Stop tracking emissions
69
  emissions_data = tracker.stop_task()
70
+
71
  # Calculate accuracy
72
  accuracy = accuracy_score(true_labels, predictions)
73
+
74
  # Prepare results dictionary
75
  results = {
76
  "username": username,
 
85
  "dataset_config": {
86
  "dataset_name": request.dataset_name,
87
  "test_size": request.test_size,
88
+ "test_seed": request.test_seed,
89
+ },
90
  }
91
+
92
+ return results