The "exo" project by exo-explore is an open-source software solution designed to enable users to run AI clusters using everyday devices like smartphones, laptops, and desktops. It aims to democratize AI access by leveraging existing hardware instead of expensive GPUs. The project is under the GNU GPL v3.0 license and is maintained by exo labs. Currently, the project is in an active development phase with significant community engagement and contributions.
Alex Cheema (AlexCheema)
Sami Khan (samiamjidkhan)
Smacker of Bats (BatSmacker84)
Mukund Mauji (maujim)
Logan (thenatlog)
Timespan | Opened | Closed | Comments | Labeled | Milestones |
---|---|---|---|---|---|
7 Days | 8 | 1 | 5 | 8 | 1 |
30 Days | 40 | 19 | 67 | 40 | 1 |
90 Days | 160 | 49 | 441 | 153 | 1 |
All Time | 276 | 98 | - | - | - |
Like all software activity quantification, these numbers are imperfect but sometimes useful. Comments, Labels, and Milestones refer to those issues opened in the timespan in question.
Developer | Avatar | Branches | PRs | Commits | Files | Changes |
---|---|---|---|---|---|---|
Alex Cheema | 6 | 7/6/0 | 42 | 58 | 4086 | |
logan | 1 | 1/1/0 | 4 | 4 | 1052 | |
Smacker of Bats | 1 | 2/1/0 | 3 | 3 | 54 | |
Sami Khan | 1 | 1/1/0 | 1 | 4 | 40 | |
Mukund Mauji | 1 | 1/1/0 | 3 | 1 | 20 | |
None (FFAMax) | 0 | 2/0/0 | 0 | 0 | 0 | |
Daniel Newman (dtnewman) | 0 | 1/0/0 | 0 | 0 | 0 | |
Pandelis Zembashis (PandelisZ) | 0 | 0/0/1 | 0 | 0 | 0 | |
Rahat (rahat2134) | 0 | 1/0/0 | 0 | 0 | 0 | |
Samuel (JustSamuel) | 0 | 1/0/0 | 0 | 0 | 0 | |
None (blindcrone) | 0 | 1/0/0 | 0 | 0 | 0 | |
Varshith Bathini (varshith15) | 0 | 0/0/1 | 0 | 0 | 0 | |
Rashik Shahjahan (RashikShahjahan) | 0 | 1/0/0 | 0 | 0 | 0 |
PRs: created by that dev and opened/merged/closed-unmerged during the period
Risk | Level (1-5) | Rationale |
---|---|---|
Delivery | 4 | The project faces significant delivery risks due to a backlog of unresolved issues, with only 1 issue closed out of 8 opened in the last week. The imbalance between opened and closed issues over the past 90 days (160 opened vs. 49 closed) suggests challenges in meeting project goals. Additionally, the lack of achieved milestones further indicates potential difficulties in delivering on time. |
Velocity | 4 | Velocity is at risk due to a high concentration of work on a few individuals, particularly Alex Cheema, who has contributed the majority of commits. This bottleneck could slow progress if Alex becomes unavailable. The disparity in contributions among team members and pending pull requests also indicate potential delays. |
Dependency | 3 | The introduction of new dependencies like pyamdgpuinfo and reliance on specific versions of libraries pose moderate risks. While these dependencies enhance functionality, they require careful management to avoid compatibility issues or disruptions if updates occur. |
Team | 3 | Team dynamics show potential risks due to the heavy reliance on key contributors like Alex Cheema. This could lead to burnout or bottlenecks if these individuals are unavailable. The high volume of unresolved issues may also impact team morale and efficiency. |
Code Quality | 3 | Code quality is moderately at risk due to inconsistencies in review processes and minor oversights noted in pull requests, such as unnecessary imports. While there are efforts to maintain high standards, the lack of comprehensive documentation and testing in some areas could affect maintainability. |
Technical Debt | 4 | Technical debt is accumulating due to unresolved issues and outdated practices noted in several areas. The backlog of issues and rushed implementations, such as those seen in PR #420, suggest that technical debt could hinder future development efforts. |
Test Coverage | 4 | Test coverage is insufficient as indicated by the lack of explicit testing details in several pull requests and code files. This gap could lead to undetected bugs affecting delivery and velocity, especially given the complex nature of recent code changes. |
Error Handling | 3 | Error handling shows moderate risk due to unhandled exceptions noted in several code files. While there are improvements in some areas, such as download protection, the overall approach lacks consistency across the codebase. |
Recent GitHub issue activity for the exo-explore/exo project shows a high level of engagement with numerous issues being created, updated, and closed. The project is actively maintained, with contributors addressing various technical challenges and feature requests.
Missing Critical Information: Some issues, like #427, lack sufficient detail for resolution, such as the model download location change request without context or specifics.
Unaddressed Urgent Issues: Issues like #425, where nodes fail to connect on Ubuntu, remain unresolved, potentially impacting user experience and network functionality.
Common Themes: Several issues focus on hardware compatibility (#365, #192), model loading errors (#97, #128), and performance optimization (#366). These indicate ongoing efforts to enhance device support and efficiency.
Community Engagement: The presence of bounties on issues like #304 and #223 highlights community-driven development and incentivizes contributions.
The project is actively evolving with a focus on enhancing model support, improving documentation, and addressing connectivity issues across different platforms.
#420: Initial Inference Engine Refactors
#417: Get Device Capabilities for AMD GPUs
pyamdgpuinfo
) to query AMD GPU capabilities. This is important for expanding hardware compatibility.#415: Add GitHub Issue Templates
#413: Quantized Models Support Tinygrad
#407: Make process_prompt Cancellable Outside Downloads
#426: Tinygrad CI Test
#422: Added a Clear All History Button
#418: Llama-3.2 Tinygrad Support (1B & 3B Models)
#403 & #399 (Tidy): Use Smallest Model with ChatGPT API
Overall, the "exo" project appears to be progressing well with active contributions addressing both technical enhancements and user experience improvements. Continued attention to testing and integration will be crucial as new features are developed and deployed.
.circleci/config.yml
exo/inference/tinygrad/inference.py
infer_prompt
and infer_tensor
could benefit from additional comments explaining key steps.exo/inference/tinygrad/models/llama.py
exo/models.py
test/test_tokenizers.py
exo/inference/mlx/models/gemma2.py
exo/api/chatgpt_api.py
exo/orchestration/standard_node.py
setup.py
install_requires
.Alex Cheema (AlexCheema)
Sami Khan (samiamjidkhan)
Smacker of Bats (BatSmacker84)
Mukund Mauji (maujim)
Logan (thenatlog)
Overall, the team is actively working on both improving existing functionalities and adding new capabilities to the project, demonstrating a dynamic development environment.