Chameleon: Foundation Models for Fairness-aware Multi-modal Data Augmentation to Enhance Coverage of Minorities
Chameleon is a project developed by UIC-InDeXLab focusing on improving fairness in data representation. It leverages foundation models to perform multi-modal data augmentation, aiming to enhance the coverage of minority groups.
Chameleon has been developed using a micro-service architecture, each directory represents a microservice that can easily be modified. If you want to run the pre-configured project, we suggest using docker
to build and develop the project.
In order to run the project using Docker, first make sure that you have docker
and docker compose
installed. In addition, ensure that your user has access to Docker service without sudo.
Then, clone the project and specify some environment variables for each microservice to work properly. Refer to the Configuration section for more details.
You can simply run the project using this command:
docker compose up --build
If you want to develop the project from scratch, you need to create a virtual environment for each microservice and install the requirements. When you are done creating all virtual environments and installing the requirements, you can start the project by running:
bash start.sh
This command will activate each microservice independently and will run all projects.
If you need to develop and test only one microservice independent from others, follow these instructions:
- Navigate to the microservice directory (
cd microservice-dir/
) - Create a virtual environment (
python -m venv venv
) - Install requirements (
pip install -r requirements
) - Add required environment variables to
.env
file - Run the project (
uvicorn main:app --reload
)
Note that Python 3.8 and Python 3.10 are the most suitable versions for microservices. We tried to future-proof the project as much as possible, and each project should work fine with Python version >= 3.8.
Some microservices have some configurations in form of .env
file that need to be configured in order to have a working project, since .env
files are private files they all have been ignored in github but there is an .env-example
file that has the default configuration, you can copy this file and rename it to .env
for all projects except ImageEditor that needs your OPENAI
credentials to contact DALL-E.
This project is licensed under the MIT License. See the LICENSE file for details.