Inspiration
The inspiration for Humanitarian Forecast came when I saw a YouTube video explaining how a 16-year-old used machine learning to predict hurricanes and help evacuate residents of at-risk cities. When I connected that idea to my own life and experiences, I quickly came up with the concept for Humanitarian Forecast.
What it does
Humanitarian Forecast uses a large pool of data, ranging from historical conflict patterns to elevation maps, along with existing machine learning techniques to predict the next likely conflict zone in the Ethiopian Civil War. The most amazing feature of HF is the continuous self-improvement that uses data from conflicts to validate its guesses. Every Sunday without human intervention, it retrains itself and makes the newest model the default! Its primary aim is to help humanitarian organizations evacuate civilians before violence reaches them, reducing the risk of mass casualties.
How I built it
I used PyTorch alongside several machine learning techniques to train a geospatial prediction model capable of identifying the most likely candidates for future battle zones. The system outputs probabilities as well as predicted geographic ranges, allowing users to see both where conflict may occur and how confident the model is in each prediction.
Challenges I ran into
The biggest challenge I encountered during the development of HF was the sheer lack of high-quality data. Much of the most useful data was owned by institutions, meaning I often had to request special permission to access it.
Another major challenge was building the automatic feedback and retraining loop. This required creating online agents powered by the Groq API that could continuously collect and interpret new information, convert it into structured validation data, and feed it back into the model.
The final major challenge was designing the model architecture, TheSwarm. TheSwarm is a mixture-of-experts architecture designed to combine several specialized models into a larger predictive system. As someone relatively new to machine learning, it was especially challenging to quantize these models so they could run efficiently online while still maintaining a full f64 version for automatic retraining.
Accomplishments that I'm proud of
I am especially proud of:
- Creating a war-front prediction model with a reasonable median prediction error.
- Designing a new model architecture that combines multiple smaller models into a more capable overall system.
- Building an automated data-collection and retraining pipeline that uses free compute resources to support continuous inference and improvement of the war-front prediction models.
What I learned
I learned that machine learning can be used for far more than common applications such as image recognition or consumer-facing features like facial tracking. It can also be used to build systems intended to address serious real-world problems and potentially protect human lives.
I also learned about several new and exciting machine learning architectures that I am eager to explore further in future projects.
Most importantly, I learned the value of making a project self-sustaining. By automating the collection of new data, evaluation, and retraining process, I can return to this project five or six years from now and see how much the model has improved and what can be learned from its long-term performance.
This project does not end with me! :)
What's next for Humanitarian Forecast
Over the next several months, Humanitarian Forecast will continue to autonomously collect new data, evaluate its predictions, retrain itself, and improve.
My long-term goal is to deploy the system in real-world humanitarian settings and make it useful to organizations working directly with civilians in conflict zones.
We are already in talks!
Built With
- dynamic-ai
- machine-learning
- multi-model
- node.js
- python
- pytorch
- react
- retraining
- rsi
Log in or sign up for Devpost to join the conversation.