NIR-Hub: storing neuromorphic models online using NIR#133
Draft
stevenabreu7 wants to merge 2 commits intomainfrom
Draft
NIR-Hub: storing neuromorphic models online using NIR#133stevenabreu7 wants to merge 2 commits intomainfrom
stevenabreu7 wants to merge 2 commits intomainfrom
Conversation
… and documentation)
Collaborator
|
Wow, you really slammed this one out fast! :) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Feature: NIR Hub
This PR presents a mock example for a new "NIR Hub" feature to the NIR project. The NIR Hub provides a centralized platform where researchers and developers can:
This creates a "model zoo" for neuromorphic computing similar to PyTorch Hub or HuggingFace Hub, but specifically for cross-framework neuromorphic model sharing.
What's Included
Core Components
nir/hub/client.py): with upload and downloadnir/hub/version.py)nir/hub/server.py): REST API for model storage and retrieval, search, etc.nir/hub/cli.py)Documentation and Examples
docs/source/hub.md)examples/hub/)tests/test_hub.py)Usage Examples
Starting a Hub Server
Uploading a Model
Downloading a Model
Searching models with the CLI
Example output:
Implementation Notes
Database Schema
See ./nir/hub/HUB_DATABASE.md:
erDiagram User ||--o{ Model : uploads User ||--o{ Vote : casts Model ||--o{ Vote : receives Model ||--o{ Version : has Model ||--o{ Tag : tagged_with Model ||--o{ Platform : compatible_with Model ||--o{ File : contains User { string id PK string username string email string name string organization string website string bio string avatar_url datetime created_at datetime last_login boolean is_admin } Model { string id PK string model_name string description string user_id FK string nir_version string framework_origin datetime created_at datetime updated_at int download_count int upvote_count int downvote_count } Version { string id PK string model_id FK string version_number string changelog datetime released_at string nir_version } File { string id PK string model_id FK string filename string filetype string description int size_bytes string content string path } Vote { string id PK string user_id FK string model_id FK boolean is_upvote datetime created_at } Tag { string id PK string name } ModelTag { string model_id FK string tag_id FK } Platform { string id PK string name } ModelPlatform { string model_id FK string platform_id FK boolean verified_compatible }TODOs:
flaskdependency (needed only for the mock server which will not be released)org_or_user/model_id)Things to think about: