Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Thoughts on Model Management #28

Open
fiatrete opened this issue Apr 6, 2023 · 5 comments
Open

Thoughts on Model Management #28

fiatrete opened this issue Apr 6, 2023 · 5 comments

Comments

@fiatrete
Copy link
Owner

fiatrete commented Apr 6, 2023

After play with Playground for a while, I feel that the models supported by DAN are still too few. I am thinking about how to make DAN support as many models as possible.

Here is a possible solution:

  • dan-server provides a list of supported models.
  • Donors decide which models to add to their donated nodes.
  • The model list on the node is automatically reported to the dan-server.
  • API users specify the model in the task.
    • After receiving the task, dan-server searches for nodes that have these models.
    • Among the nodes that have the target model, the one with the lowest load is selected to schedule the task.

This solution requires dan-node to provide a set of management functions, so the implementation of this solution may have to be postponed until the implementation of custom nodes.

@sharpbai
Copy link

sharpbai commented Apr 6, 2023

Hmm,

  • Dornors decide which models to add or not seems make the donation process complicated.
  • the flexiblity of model selection on donated nodes leads to n^2 level increased complexity in scheduling which request should send to which node, which is not suitable for single-point dan-server
  • the flexibility of model selection on donated nodes leads to unexpected generation power of different models, which makes some generation requests never or hardly be completed, due to the difference between donor expectations and producer needs

Make the model selection less flexible while keep the multi-model support capability seems important in design.

@fiatrete
Copy link
Owner Author

fiatrete commented Apr 6, 2023

Hmm,

  • Dornors decide which models to add or not seems make the donation process complicated.

the approach will not make the donation process complicated, but will require donors to put more effort into managing donated nodes.

  • the flexiblity of model selection on donated nodes leads to n^2 level increased complexity in scheduling which request should send to which node, which is not suitable for single-point dan-server

by setting up an index of <model, node> mapping, the operation can be completed in O(1) complexity.

  • the flexibility of model selection on donated nodes leads to unexpected generation power of different models, which makes some generation requests never or hardly be completed, due to the difference between donor expectations and producer needs

This is inevitable. We need a solution that classifies the workload of tasks and the computing power of nodes. However, that's another story. We can add it as a to-do item to our roadmap for now.

Make the model selection less flexible while keep the multi-model support capability seems important in design.

agree

@Ox2098
Copy link

Ox2098 commented Apr 6, 2023

Your model is very poor

@suntodai
Copy link
Contributor

Similar to many ML frameworks such as tensorflow, pytorch etc. which provide various models in a model zoo, we could add a few (e.g. 3-5) typical/SOTA models with wide applications. With more contributors later on, more models/APIs could be integrated.

@fiatrete
Copy link
Owner Author

Similar to many ML frameworks such as tensorflow, pytorch etc. which provide various models in a model zoo, we could add a few (e.g. 3-5) typical/SOTA models with wide applications. With more contributors later on, more models/APIs could be integrated.

Absolutely! As an open AI infrastructure platform, it's crucial for model support to be freely available. However, we can take a step-by-step approach to the process. We'll gradually expand model support and eventually transition to allowing users to define their own models.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants