disha2005's picture
updated
2aa1223
|
Raw
History Blame Contribute Delete
4.56 kB
metadata
title: Data Cleaning Env
emoji: 🧹
colorFrom: blue
colorTo: green
sdk: docker
app_file: app.py
pinned: false

Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference

🧠 AI-Powered Data Cleaning Environment (OpenEnv)

πŸ“Œ Overview

This project implements an AI-driven data cleaning environment following the OpenEnv specification.
An LLM-based agent interacts with the environment step-by-step and performs data cleaning actions to improve dataset quality.

The system evaluates:

  • Decision-making ability of AI
  • Data cleaning strategies
  • Efficiency (steps vs quality)

🎯 Objective

To build an environment where an AI agent can:

  • Detect data issues
  • Apply cleaning actions
  • Maximize final data quality score

βš™οΈ Environment Design

πŸ”Ή Observation Space

Each step returns:

{
  "dataset": {...},
  "shape": [rows, columns],
  "steps": n
}
  • dataset: current dataset state
  • shape: dimensions
  • steps: steps taken so far

πŸ”Ή Action Space

Agent can perform:

Action Description
fill_nulls Fill missing values
remove_nulls Remove rows with nulls
deduplicate Remove duplicate rows
convert_types Fix incorrect data types
trim_whitespace Clean text formatting
normalize Normalize numeric columns
inspect_column Analyze a column

Action Format:

{
  "type": "action_name",
  "column": "column_name"
}

πŸ”Ή Reward System

  • Positive reward β†’ correct cleaning
  • Negative reward β†’ unnecessary/wrong action

Example:

  • Fill nulls β†’ +0.12
  • Wrong removal β†’ -0.08

πŸ”Ή Episode Termination

Episode ends when:

  • done = True OR
  • max steps reached

Final score is computed using:

score ∈ [0, 1]

πŸ§ͺ Tasks

βœ… Task 1: Basic Cleaning

  • Handle null values
  • Remove duplicates
  • Fix data types

βœ… Task 2: Intermediate Cleaning

  • Better decision strategies
  • Column-wise reasoning

βœ… Task 3: Full Pipeline

  • Complete dataset cleaning
  • Optimal sequence of actions

πŸ€– AI Agent (Inference)

The agent uses an LLM to:

  1. Analyze dataset summary
  2. Choose next action
  3. Avoid repeating actions
  4. Improve data quality iteratively

πŸ”Ή Strategy Used

Instead of sending full dataset, we send:

  • Column statistics (null %, dtype, unique values)
  • Duplicate count
  • Sample rows
  • Action history

πŸ‘‰ This improves reasoning and reduces noise.


πŸ“Š Baseline Performance

Task Score
Task 1 ~0.70
Task 2 ~0.75
Task 3 ~0.80

πŸš€ Setup Instructions

1️⃣ Clone Repository

git clone <repo-url>
cd data-cleaning-env

2️⃣ Install Dependencies

pip install -r requirements.txt

3️⃣ Set Environment Variables

Windows (PowerShell):

setx HF_TOKEN "your_token_here"
setx MODEL_NAME "Qwen/Qwen2.5-72B-Instruct"
setx API_BASE_URL "https://router.huggingface.co/v1"

Linux/Mac:

export HF_TOKEN="your_token_here"
export MODEL_NAME="Qwen/Qwen2.5-72B-Instruct"
export API_BASE_URL="https://router.huggingface.co/v1"

4️⃣ Run Inference

python inference.py

πŸ“‘ API Endpoints

πŸ”Ή Reset

POST /reset

πŸ”Ή Step

POST /step

Example:

{
  "type": "fill_nulls",
  "column": "city"
}

πŸ”Ή State

GET /state

🐳 Docker Setup

Build:

docker build -t data-cleaning-env .

Run:

docker run -p 7860:7860 data-cleaning-env

🌐 Hugging Face Deployment

  1. Create Space β†’ Docker
  2. Push code
  3. Add environment variables:
    • HF_TOKEN
    • MODEL_NAME
    • API_BASE_URL

βœ… Validation

openenv validate
bash validate-submission.sh <your-space-url>

πŸ“ Project Structure

.
β”œβ”€β”€ app.py
β”œβ”€β”€ inference.py
β”œβ”€β”€ Dockerfile
β”œβ”€β”€ requirements.txt
β”œβ”€β”€ README.md
└── env/
    β”œβ”€β”€ environment.py
    β”œβ”€β”€ actions.py
    β”œβ”€β”€ data_generator.py
    β”œβ”€β”€ issue_injector.py
    └── graders/

⚠️ Constraints

  • Runtime < 20 minutes
  • Compatible with:
    • 2 vCPU
    • 8GB RAM
  • Must follow OpenEnv spec

πŸŽ‰ Conclusion

This project demonstrates:

  • AI-based decision making
  • Reinforcement-style environment
  • Automated data cleaning

πŸ‘©β€πŸ’» Authors

  • Tanushree Gupta
  • Disha Singla