Inspiration

During the course of this past academic year, while diligently preparing for math tests and other subjects, our study group discovered the need for additional study resources. This realization became the idea of our project, Problem.ai. Our overarching mission was to create a comprehensive platform that offers educators and students a vast source of high-quality problems and solutions spanning diverse fields such as mathematics, physics, English, arts, and beyond. Our vision was to enhance the studying process by providing a diverse range of practice materials that catered to various learning preferences and skill levels, ultimately deepening students' understanding of complex concepts. By crafting a user-friendly and fully functional platform, our objective was to help students enhance the studying process and have access to materials, while also allowing teachers to have an efficient and simple method to developing classroom materials. 

What it does

At its core, Problem.ai is an AI-powered platform designed to streamline the studying experience for both students and teachers. The user interface design was methodically crafted to provide an intuitive and seamless experience for users. It incorporates a series of input fields that solicit prompt information from the user, enabling them to specify their preferences and requirements. This prompt information is then efficiently processed and fed into a sophisticated and fine-tuned model, which employs advanced algorithms to generate a diverse range of problems tailored precisely to the user's desires. These generated problems are elegantly presented on the user interface, providing a visually engaging and informative display. Moreover, to enhance usability and flexibility, the app allows users to export the generated problems as editable PDF files. This feature enables users to customize the problems according to their preferences, should they wish to make any adjustments or additions. By seamlessly combining intuitive input mechanisms, cutting-edge algorithms, and an export functionality, the app ensures an enriching and user-centric problem generation experience.

How we built it

The design of the front-end for Problem.ai involved a meticulous approach. From requirement gathering to user-friendly design, development, and testing, our team employed cutting-edge technologies and advanced methods to deliver a highly functional, visually appealing, and user-friendly application. Based on the gathered requirements, our team formulated an architectural design strategy for the front-end. We opted for an input-based architecture, using Swift and SwiftUI, which allows for a functional and appealing user interface. Performance optimization was a critical consideration in the design process. Our team designed the front end based on numerous factors such as loading speed, asset loading, and API referencing to ensure the app's high efficiency and manage its complexity to the user. Continuous reworking and iterative improvements ensured that the app fulfilled its objective and provided a useful tool to all users. The development of the back-end for Problem.ai involved fine-tuning models based on mass data. Acquiring data was a major challenge throughout the duration of the hackathon, but our team persevered and generated the below major JSONL file to use to fine tune the main problem generation model. Our team implemented and fine-tuned OpenAI's API to make algorithms and processes for generating different types of problems based on user preferences, difficulty levels, and subject categories. The AI model was precisely fine-tuned using hundreds of data files to ensure algorithms were optimized to provide efficient problem generation and minimize processing times. We ended up working with 1 ada models and 2 curie models. On the diagram generation side of things, we consistently worked to fine tune a LoRa model to improve stable diffusion's generation as a proof of concept. In addition, we worked with HTTP requests to communicate between our frontend and backend.

Challenges we ran into

Throughout the development process, the front-end underwent rigorous testing and debugging. Integration testing, and end-to-end testing were conducted to identify and fix any issues. Manual testing processes and meticulous debugging were employed to ensure a high-quality, bug-free application. For diagram generation, we ran into a variety of issues including data gathering, training our LoRa model, python version issues, dependency issues, loading LoRa model issues, dataset cleaning & preparation issues, and much more. The backend development also presented our team with numerous challenges. The model took three attempts to train. Each time the tuning process took over four hours because OpenAI is slow at processing. OPENAI API was of a too high of a version causing the data preparer to not function properly on the training data we generated. It took numerous hours to generate good training data because our request and formatting was a very unique task for the completion. The first two tries at tuning the model were a complete failure because of the way we structured the training data.

Accomplishments that we're proud of

Problem.ai has the potential to revolutionize the educational landscape, offering a myriad of advances on both learning and teaching experiences. This technology can significantly enhance the efficiency, personalization, and effectiveness of educational materials, the studying process, and assessment.

What we learned

We learned to have all of our materials ready before coding and not to go straight into coding before having an organized layout.

What's next for Problem.ai

We wish to add diagrams and graphs to better represent questions. We also hope to generate problems from example problems and also pictures taken from the user, rather than directly from a prompt.

Built With

Share this project:

Updates