Giter Site home page Giter Site logo

mlops-club's Introduction

๐Ÿ“ฃ Welcome to the MLOps Club

This repo is for our group project, trying to build an end-to-end MLOps platform.

Project Philosophies

  • This will be a fully-functional, opinionated MLOps platform. It should be considered a reference implementation that can be forked and adapted to a different set of opinions.
  • It should be useful the average hobbyist, i.e. cheap to run, doesn't need a whole team to maintain, etc.
  • BUT, this project should develop our careers, so the platform should have a straightforward way to scale to small-to-medium-sized enterprise needs.
  • To reduce complexity, we'll start off as a monorepo, and split off into separate repos if the monorepo becomes challenging.

Project Kickoff video

15 minutes if you watch on 2x speed ๐Ÿ”ฅ

Contributing

The setup has only been tested for Linux and MacOS, not Windows :(. If you're on windows, you'll have the best contributor experience using the Windows Subsystem for Linux 2 (WSL2).

How do I run this project locally?

# install "just"; it's like "make", but less frustrating
brew install just

# install the project's python packages and pre-commit
just install

# start all of the metaflow services in docker-compose (don't forget to start docker first ๐Ÿ˜ƒ)
# http://localhost:9001          -> minIO UI (simulates S3)
# http://localhost:3000          -> the Metaflow UI
# http://localhost:8080/api/doc  -> swagger API docs (currently broken when we run locally, not sure why ๐Ÿค”)
just run-local-metaflow

# run a metaflow DAG (flow) against your local metaflow instance!
just run-sample-flow

With any luck, you'll see this lovely output:

Metaflow successful flow run output

๐Ÿ“Œ Go look at the Justfile and docker-compose.mlops-club.yml to see how it all works :)

How do I add code?

We use pull requests. Create new branches based on trunk for experimentation, then open a PR for it. You don't have to wait until you want to merge code to open a PR. For this project, the main purpose of doing PRs is to share knowledge and get early feedback on your ideas.

Passing the pre-commit checks isn't a huge deal. They are mostly for your own benefit to prevent you committing things to the repo that you don't want. You can always override pre-commit by running

git commit -m "I really want to commit this large file" --no-verify

Notes on commits

Ask Eric or Ryan if you need any help with these.

DON'T COMMIT...

  • credentials. Feel free to put them in a .env file, but make sure it's gitignored!
  • large files (large CSV, ML model weights, C binaries, video, etc.) use git LFS rather than committing it directly.
  • unformatted code

The pre-commit hooks setup for this repo when you ran just install will remind you about these each time you commit :)

mlops-club's People

Contributors

phitoduck avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

thedatafiend

mlops-club's Issues

running ui/service/minio locally - won't return dag etc..

@phitoduck ... came across your repo .. was interested in it for its local integration of minio with metaflow. However, in running some basic flows, I'm hitting some obstacles ... when calling a python helloworld.py run, I'm passing in the various METAFLOW parameters you list here.

image

The only parameter where I don't have a value for is METAFLOW_SERVICE_AUTH_KEY ... where does this come from? I tried creating an access key in minio, but this isn't working for me.

export METAFLOW_SERVICE_AUTH_KEY=iigKSNbmWb4To3dWBgmE17KyHcFyxEAn5NlU5aR8

Thanks for your input.

which code fails in justfile

What is the code command in that first line of just? Should we add setup dependencies to the readme? Should we update the justfile to install them?

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.