Giter Club home page Giter Club logo

Comments (4)

htahir1 avatar htahir1 commented on May 22, 2024 1

@dr3s I think we're on the same page here. I'd love for you to take a look as this develops. Please keep an eye on it

from zenml.

dr3s avatar dr3s commented on May 22, 2024

I think the terminology is confusing me a bit. Model and configuration to me are somewhat synonymous whereas execution is the result of calling run(). I think what you have described above is that:

var training_pipeline is a Pipeline Model/Configuration/Plan
var pipeline is a Pipeline Execution

Correct?

Each execution would be immutable. The model or config could also be immutable if there is a register() call that creates a history of immutable changes to the model. I would use this for linking the model to the execution and performing experiment tracking and analysis.

I think the key difference here is that there is one name training_pipeline that the user associates with the canonical pipeline model (all it's versions and executions).

from zenml.

htahir1 avatar htahir1 commented on May 22, 2024

@dr3s You're right -> The word model is not reflective at all. I updated the comment and adopted the word execution.

The model or config could also be immutable if there is a register() call that creates history of immutable changes to the model.

I'm not sure about this part of your comment here. The config itself would be mutable, while the execution would be immutable. Perhaps my updated comment would clarify this -> Do let me know if I misunderstood your comment.

I think the key difference here is that there is one name training_pipeline that the user associates with the canonical pipeline
model (all it's versions and executions).

Yes, the name is unique and should be defined at execution time rather than construction time.

from zenml.

dr3s avatar dr3s commented on May 22, 2024

I'm not sure about this part of your comment here. The config itself would be mutable, while the execution would be immutable. Perhaps my updated comment would clarify this -> Do let me know if I misunderstood your comment.

I think it's helpful to be specific here. There are at least two things with the PipelineConfig that could be mutable: the object reference in code and the data that zenml persists to record that config. The former could be mutable or immutable (using something like the builder pattern). The latter could also be mutable or immutable regardless of how the execution is treated. If the config is only persisted at execution time, it could overwrite the config from the last execution or create a new immutable version of the config that is then attached to the execution when it's created. Having a history of immutable config versions can be useful IMO. You could do this as part of the execution but I prefer to model the config and execution as different domain models.

Yes, the name is unique and should be defined at execution time rather than construction time.

This is confusing to me because the issue is more about using a non-unique name across executions. Yes, it's unique in as far as the user wants to make it unique. We want training_pipeline to always refer to the same pipeline across all executions and versions of it's config. The name wouldn't be defined at execution time but at design time.

from zenml.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.