Week 7
Reflect on Our Group Work
This week, our group decided to contribute to Hugging Face, a leading open-source machine learning library that provides state-of-the-art models for natural language processing (NLP) and other AI applications. We chose this project because we all share a strong interest in AI and large language models (LLMs), and many of us have extensively used Hugging Face tools in coursework and research projects. Contributing to this repository not only aligns with our academic and professional interests but also provides an opportunity to gain hands-on experience in open-source collaboration. Another factor that made Hugging Face a suitable choice for us is that it primarily uses Python, which is the language we are most familiar with. This allowed us to focus more on understanding the library’s structure and contribution process rather than struggling with an unfamiliar programming language.
Obstacles We Encountered
Our first major challenge was identifying suitable issues to contribute to. Hugging Face has a well-documented but extensive CONTRIBUTING.md, which outlines various contribution guidelines. However, navigating this documentation and finding tasks that matched our skill level and interests proved to be time-consuming. Additionally, setting up the development environment was more complex than expected, requiring multiple dependencies and configurations.
Another challenge was the testing process. Hugging Face employs a rigorous testing framework that includes fast tests, slow tests, and model/function-specific tests. Understanding when and how to run the appropriate tests took some time. Additionally, we noticed that some of the existing code already failed certain tests, making it difficult to determine whether the issues were caused by our modifications or pre-existing conditions in the codebase.
Moving Forward
To overcome these obstacles, we are taking the following steps:
Breaking Down the Contribution Guidelines – We are dividing the documentation among group members and summarizing key points to make the process easier to follow. Seeking Guidance from the Community – We have started engaging with Hugging Face’s GitHub discussions and forums to clarify doubts and get insights from experienced contributors. Systematic Debugging for Testing – We are learning to isolate our changes and run targeted tests to ensure we correctly identify the source of any test failures. Despite these challenges, we are excited about the learning experience and look forward to making meaningful contributions to Hugging Face!