Official repository for the ICWSM '26 paper, "Large Scale Narrative Analysis of Multimodal Memes."
- Harm-C
Pramanick, S.; Dimitrov, D.; Mukherjee, R.; Sharma, S.; Akhtar, M. S.; Nakov, P.; and Chakraborty, T. 2021a. Detecting Harmful Memes and Their Targets. In Zong, C.; Xia, F.; Li, W.; and Navigli, R., eds., Findings of the Association for Computational Linguistics: ACL-IJCNLP 2021, 2783–2796. Online: Association for Computational Linguistics.
- Harm-P
Pramanick, S.; Sharma, S.; Dimitrov, D.; Akhtar, M. S.; Nakov, P.; and Chakraborty, T. 2021b. MOMENTA: A Multimodal Framework for Detecting Harmful Memes and Their Targets. In Moens, M.-F.; Huang, X.; Specia, L.; and Yih, S. W.-t., eds., Findings of the Association for Computational Linguistics: EMNLP 2021, 4439–4455. Punta Cana, Dominican Republic: Association for Computational Linguistics.
- TotalDefMeme
Prakash, N.; Hee, M. S.; and Lee, R. K.-W. 2023. TotalDefMeme: A Multi-Attribute Meme dataset on Total Defence in Singapore. In Proceedings of the 14th ACM Multimedia Systems Conference, MMSys ’23, 369–375. New York, NY, USA: Association for Computing Machinery. ISBN 9798400701481.
Note: All datasets are publicly available.
-
Create a new teamspace on Lightning AI, following the guide to create a teamspace.
-
Download all files from the
uploadsfolder in this repository. Drag-and-drop them into theuploadsfolder on your Lightning AI teamspace's Drive. -
a. Create an access key pair for an IAM user via the AWS Identity and Access Management (IAM) console, following this guide.
b. Save the key pair in a .env file named
AWS_CREDENTIALS.env, in the following format:AWS_ACCESS_KEY_ID=<insert AWS access key> AWS_SECRET_ACCESS_KEY=<insert AWS secret key> AWS_DEFAULT_REGION=<insert AWS Region> AWS_MAX_ATTEMPTS=10 AWS_RETRY_MODE="standard"
c. Upload the
AWS_CREDENTIALS.envfile to theuploadsfolder on your Lightning AI teamspace's Drive. -
a. Create a Google Cloud service account, following the guide to creating a service account and the guide to creating a service account key. Choose JSON as your key type. Rename the JSON file as
GOOGLE_APPLICATION_CREDENTIALS.json.b. Enable the Cloud Vision API under APIs & Services in your Google Cloud Console.
c. Upload the
GOOGLE_APPLICATION_CREDENTIALS.jsonfile to theuploadsfolder on your Lightning AI teamspace's Drive. -
a. Create a Google Cloud service account, following the guide to creating a service account and the guide to creating a service account key. Choose JSON as your key type. Rename the JSON file as
GOOGLE_APPLICATION_CREDENTIALS_VERTEX.json.b. Assign the Agent Platform User role to the service account created in Step 5a.
c. Enable the Agent Platform API under APIs & Services in your Google Cloud Console.
d. Upload the
GOOGLE_APPLICATION_CREDENTIALS_VERTEX.jsonfile to theuploadsfolder on your Lightning AI teamspace's Drive. -
a. Create a .env file named
GOOGLE_CLOUD_PROJECT_DETAILS.env, in the following format:GOOGLE_CLOUD_PROJECT=<insert Google Cloud Project ID> GOOGLE_CLOUD_LOCATION=<insert location> GOOGLE_GENAI_USE_VERTEXAI="True"
b. Upload the
GOOGLE_CLOUD_PROJECT_DETAILS.envfile to theuploadsfolder on your Lightning AI teamspace's Drive. -
a. Create a Fireworks AI API key following the guide, and save the key in a .env file named
FIREWORKS_CREDENTIALS.env, in the following format:FIREWORKS_API_KEY=<insert your actual API key here>
b. Upload the
FIREWORKS_CREDENTIALS.envfile to theuploadsfolder on your Lightning AI teamspace's Drive. -
a. Create a Mistral AI API key following the guide, and save the key in a .env file named
MISTRAL_CREDENTIALS.env, in the following format:MISTRAL_API_KEY=<insert your actual API key here>
b. Upload the
MISTRAL_CREDENTIALS.envfile to theuploadsfolder on your Lightning AI teamspace's Drive. -
a. Create a Cohere API key following the guide, and save the key in a .env file named
COHERE_CREDENTIALS.env, in the following format:COHERE_API_KEY=<insert your actual API key here>
b. Upload the
COHERE_CREDENTIALS.envfile to theuploadsfolder on your Lightning AI teamspace's Drive. -
a. Create a Voyage AI API key following the guide, and save the key in a .env file named
VOYAGE_CREDENTIALS.env, in the following format:VOYAGE_API_KEY=<insert your actual API key here>
b. Upload the
VOYAGE_CREDENTIALS.envfile to theuploadsfolder on your Lightning AI teamspace's Drive. -
a. Create a OpenAI API key following the guide, and save the key in a .env file named
OPENAI_CREDENTIALS.env, in the following format:OPENAI_API_KEY=<insert your actual API key here>
b. Upload the
OPENAI_CREDENTIALS.envfile to theuploadsfolder on your Lightning AI teamspace's Drive.
Note: As existing models become deprecated, you will need to update the model names accordingly in the scripts.
Each stage in the pipeline follows the same structure:
-
For each Python script directly in the stage's folder, create a new Studio in Lightning AI using the script's filename (without
.py) as the Studio name, and upload the corresponding script to it. -
Download all the Python scripts from the stage's
scriptssubfolder in this repository. These scripts enable you to programmatically launch the Studios created in Step 1. -
In a separate new Lightning AI Studio, upload and run these scripts.
Apply the three above steps to each of the following stages, in this order:
meme_preprocessing- Each subfolder under
mabsa/(12 model folders) extract_quintupletsembeddingsclustering- Each subfolder under
llm_judge/
Note: Upload the files under the
samples/rq1and thesamples/rq4folders to the6000_llm_judge_evaluate_quadruple_accuracyand the6003_llm_judge_evaluate_intercluster_qualityLightning Studios, respectively, before running.