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

Add Dagger to docs #586

Merged
merged 8 commits into from
Nov 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 11 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@

### What is KitOps?

KitOps is a packaging, versioning, and sharing system for AI/ML projects that uses open standards so it works with the AI/ML, development, and DevOps tools you are already using, and can be stored in your enterprise container registry. It's AI/ML platform engineering teams' preferred solution for securely packaging and versioning assets.
KitOps is a packaging, versioning, and sharing system for AI/ML projects that uses open standards so it works with the AI/ML, development, and DevOps tools you are already using, and can be stored in your enterprise container registry.

KitOps creates a ModelKit for your AI/ML project which includes everything you need to reproduce it locally or deploy it into production. You can even **selectively unpack a ModelKit** so different team members can save time and storage space by only grabbing what they need for a task. Because ModelKits are immutable, signable, and live in your existing container registry they're easy for organizations to track, control, and audit.

ModelKits [simplify the handoffs between data scientists, application developers, and SREs](https://www.youtube.com/watch?v=j2qjHf2HzSQ) working with LLMs and other AI/ML models. Teams and enterprises use KitOps as a secure storage throughout the AI/ML project lifecycle.
ModelKits simplify the handoffs between data scientists, application developers, and SREs working with LLMs and other AI/ML models. Teams and enterprises use KitOps as a secure storage throughout the AI/ML project lifecycle.

Use KitOps to speed up and de-risk all types of AI/ML projects:
* Predictive models
Expand All @@ -36,10 +36,9 @@ For our friends in the EU - ModelKits are the perfect way to create a library of

### 😍 What's New? ✨

* 🚢 Create a **[runnable container from a ModelKit](https://tinyurl.com/5b76p5u3)** with one command! Read [KitOps deploy docs](https://kitops.ml/docs/deploy.html) for details.
* 🚢 First Look: Create a **[runnable container from a ModelKit](https://tinyurl.com/5b76p5u3)** with one command!
* 🥂 Get the most out of KitOps' ModelKits by using them with the **[Jozu Hub](https://jozu.ml/)** repository. Or, continue using ModelKits with your existing OCI registry (even on-premises and air-gapped).
* 🛠️ Use KitOps with Dagger pipelines using our modules from the [Daggerverse](https://daggerverse.dev/mod/github.com/jozu-ai/daggerverse/kit).
* ⛑️ [KitOps works great with Red Hat](https://developers.redhat.com/articles/2024/09/16/enhance-llms-instructlab-kitops) InstructLab and Quay.io products.
* ⛑️ [KitOps works great with Red Hat](https://developers.redhat.com/articles/2024/09/16/enhance-llms-instructlab-kitops) InstructLab and Quay.io products


### Features
Expand All @@ -48,7 +47,7 @@ For our friends in the EU - ModelKits are the perfect way to create a library of
* 🏭 **[Versioning](https://kitops.ml/docs/cli/cli-reference.html#kit-tag):** Each ModelKit is tagged so everyone knows which dataset and model work together.
* 🔒 **[Tamper-proofing](https://kitops.ml/docs/modelkit/spec.html):** Each ModelKit package includes an SHA digest for itself, and every artifact it holds.
* 🤩 **[Selective-unpacking](https://kitops.ml/docs/cli/cli-reference.html#kit-unpack):** Unpack only what you need from a ModelKit with the `kit unpack --filter` command - just the model, just the dataset and code, or any other combination.
* 🤖 **[Automation](https://github.com/marketplace/actions/setup-kit-cli):** Pack or unpack a ModelKit locally or as part of your CI/CD workflow for testing, integration, or deployment (e.g. [GitHub Actions](https://github.com/marketplace/actions/setup-kit-cli) or [Dagger](https://daggerverse.dev/mod/github.com/jozu-ai/daggerverse/kit).
* 🤖 **[Automation](https://github.com/marketplace/actions/setup-kit-cli):** Pack or unpack a ModelKit locally or as part of your CI/CD workflow for testing, integration, or deployment.
* 🪛 **[LLM fine-tuning](https://dev.to/kitops/fine-tune-your-first-large-language-model-llm-with-lora-llamacpp-and-kitops-in-5-easy-steps-1g7f):** Use KitOps to fine-tune a large language model using LoRA.
* 🎯 **[RAG pipelines](https://www.codeproject.com/Articles/5384392/A-Step-by-Step-Guide-to-Building-and-Distributing):** Create a RAG pipeline for tailoring an LLM with KitOps.
* 📝 **[Artifact signing](https://kitops.ml/docs/next-steps.html):** ModelKits and their assets can be signed so you can be confident of their provenance.
Expand All @@ -57,8 +56,12 @@ For our friends in the EU - ModelKits are the perfect way to create a library of
* 🩰 **[Flexible](https://kitops.ml/docs/kitfile/format.html#model):** Reference base models using `model parts`, or store key-value pairs (or any YAML-compatible JSON data) in your Kitfile - use it to keep features, hyperparameters, links to MLOps tool experiments, or validation output.
* 🏃‍♂️‍➡️ **[Run locally](./docs/src/docs/dev-mode.md):** Kit's Dev Mode lets you run an LLM locally, configure it, and prompt/chat with it instantly.
* 🤗 **Universal:** ModelKits can be used with any AI, ML, or LLM project - even multi-modal models.
* 🐳 **[Deploy containers](https://kitops.ml/docs/deploy.html):** Generate a basic or custom docker container from any ModelKit.
* 🚢 **[Kubernetes-ready](https://kitops.ml/docs/deploy.html):** Generate a Kubernetes / KServe deployment config from any ModelKit.
* 🐳 **Deploy containers:** Generate a Docker container as part of your `kit unpack` (coming soon).
* 🚢 **Kubernetes-ready:** Generate a Kubernetes / KServe deployment config as part of your `kit unpack` (coming soon).

### See KitOps in Action

There's a video of KitOps in action on the [KitOps site](https://kitops.ml/).

## 🚀 Try KitOps in under 15 Minutes

Expand Down
2 changes: 1 addition & 1 deletion docs/.vitepress/config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ export default defineConfig({
{ text: 'Get Started', link: '/docs/get-started' },
{ text: 'Next Steps', link: '/docs/next-steps' },
{ text: 'Deploy ModelKits', link: '/docs/deploy' },
{ text: 'Kit Dev', link: '/docs/dev-mode' },
{ text: 'Local LLM Dev', link: '/docs/dev-mode' },
{ text: 'Why KitOps?', link: '/docs/why-kitops' },
{ text: 'How it is Used', link: '/docs/use-cases' },
{ text: 'KitOps versus...', link: '/docs/versus' },
Expand Down
33 changes: 17 additions & 16 deletions docs/src/docs/get-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,11 @@ After entering your username and password, you'll see `Log in successful`. If yo

### 3/ Get a Sample ModelKit

Let's use the [unpack command](./cli/cli-reference.md#kit-unpack) to pull a [sample ModelKit from Jozu Hub](https://jozu.ml/browse) to our machine that we can play with. In this case, we'll unpack the whole thing, but one of the great things about Kit is that you can also selectively unpack only the artifacts you need: just the model, the model and dataset, the code, the configuration...whatever you want. Check out the `unpack` [command reference](./cli/cli-reference.md#kit-unpack) for details.
Let's use the [unpack command](./cli/cli-reference.md#kit-unpack) to pull a [sample ModelKit from Jozu Hub](https://jozu.ml/organization/jozu-quickstarts) to our machine that we can play with. In this case, we'll unpack the whole thing, but one of the great things about Kit is that you can also selectively unpack only the artifacts you need: just the model, the model and dataset, the code, the configuration...whatever you want. Check out the `unpack` [command reference](./cli/cli-reference.md#kit-unpack) for details.

You can grab <a href="https://jozu.ml/discover"
If you have a model already on your machine you can use that instead.

You can grab <a href="https://jozu.ml/browse"
v-ga-track="{
category: 'link',
label: 'grab any of the ModelKits',
Expand All @@ -51,22 +53,22 @@ You can grab <a href="https://jozu.ml/discover"
The unpack command will unpack the ModelKit contents to the current directory by default. If you want it unpacked to a specific directory use the `-d /path/to/unpacked`.

```sh
kit unpack jozu.ml/jozu/fine-tuning:latest
kit unpack jozu.ml/jozu-quickstarts/fine-tuning:latest
```

You'll see a set of messages as Kit unpacks the configuration, code, datasets, and serialized model. Now list the directory contents:

```sh
ls
tree

.
├── Kitfile
├── README.md
├── llama3-8b-8B-instruct-q4_0.gguf
├── lora-adapter.gguf
└── training-data.txt* A Kitfile
```

You'll see:
* A Kitfile
* A README file
* A Llama3 model in GGUF format
* A LoRA adapter in GGUF format
* A training dataset

The [Kitfile](./kitfile/kf-overview.md) is the manifest for our ModelKit, the serialized model, and a set of files or directories including the adapter, dataset, and docs. Every ModelKit has a Kitfile and you can use the info and inspect commands to view them from the CLI (there's more on this in our [Next Steps](next-steps.md) doc).

### 4/ Check the Local Repository
Expand Down Expand Up @@ -122,21 +124,20 @@ kit push jozu.ml/brad/quick-start:latest

Note that some registries, like Jozu Hub, don't automatically create a repository. If you receive an error from your `push` command, make sure you have created the repository in your target registry and that you have push rights to the repository.

### ModelKit to Container or Kubernetes

You can build a container or Kubernetes deployment that pulls artifacts directly from the ModelKit. This makes automating container creation and Kubernetes deployment simple. Read more in our [deployment documentation](./deploy.md).

### Congratulations

You've learned how to unpack a ModelKit, pack one up, and push it. Anyone with access to your remote repository can now pull your new ModelKit and start playing with your model using the `kit pull` or `kit unpack` commands.

If you'd like to learn more about using Kit, try our [Next Steps with Kit](./next-steps.md) document that covers:
* Creating a container or Kubernetes deployment from a ModelKit
* Signing your ModeKit
* Making your own Kitfile
* The power of `unpack`
* Tagging ModelKits
* Keeping your registry tidy

Or, if you want to run an LLM-based ModelKit locally try our [dev mode](./dev-mode.md)
Or, if you want to run an LLM-based ModelKit locally try our [dev mode](./dev-mode.md).

Finally, if you're building workflows using Dagger you can use KitOps through our [Daggerverse modules](https://daggerverse.dev/mod/github.com/jozu-ai/daggerverse/kit). Or get the [GitHub Action for Kit](https://github.com/marketplace/actions/setup-kit-cli).

Thanks for taking some time to play with Kit. We'd love to hear what you think. Feel free to drop us an [issue in our GitHub repository](https://github.com/jozu-ai/kitops/issues) or join [our Discord server](https://discord.gg/Tapeh8agYy).
20 changes: 15 additions & 5 deletions docs/src/docs/modelkit/compatibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,14 @@ ModelKit packages can be pushed to any OCI 1.1-compliant registry, whether in th

ModelKits themselves use standards like JSON, YAML, and TAR files so whatever MLOps or DevOps tools you're using...they'll work with ModelKits.

If you've tried using Kit with your favorite tool and are having trouble, please [open an issue](https://github.com/jozu-ai/kitops/issues/new/choose) in our GitHub repository.

If you've used KitOps with a product or project we've missed, please open a pull request updating this file.

## Compliant OCI Registries

The most fully-featured repository for ModelKits is the [Jozu Hub](https://jozu.ml/), however, many users find it easiest to store their ModelKits in an existing enterprise container registry:

* Amazon Elastic Container Registry (ECR)
* Azure Container Registry
* Docker Hub
Expand All @@ -15,7 +21,16 @@ ModelKits themselves use standards like JSON, YAML, and TAR files so whatever ML
* Harbor
* IBM Cloud Container Registry
* JFrog Artifactory
* Jozu Hub
* Red Hat Quay.io
* Sonatype Nexus

## CI/CD & Pipline Tools

### Pre-Built Workflows

* Dagger: see [Kit modules for Dagger](https://daggerverse.dev/mod/github.com/jozu-ai/daggerverse/kit) in the Daggerverse
* GitHub Actions: Kit CLI for [GitHub Actions](https://github.com/marketplace/actions/setup-kit-cli)

## Other Compatible Tools

Expand Down Expand Up @@ -61,12 +76,7 @@ ModelKits themselves use standards like JSON, YAML, and TAR files so whatever ML
* Red Hat OpenShift
* Red Hat OpenShift AI
* Seldon
* Sonatype Nexus
* Tensorflow Hub
* VMware
* Weights & Biases
* ZenML

If you've tried using Kit with your favorite tool and are having trouble, please [open an issue](https://github.com/jozu-ai/kitops/issues/new/choose) in our GitHub repository.

If you've used KitOps with a product or project we've missed, please open a pull request updating this file.
4 changes: 3 additions & 1 deletion docs/src/docs/modelkit/intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@

ModelKit revolutionizes the way AI/ML artifacts are shared and managed throughout the lifecycle of AI/ML projects. As an OCI-compliant packaging format, ModelKit encapsulates datasets, code, configurations, and models into a single, standardized unit. This approach not only streamlines the development process but also ensures broad compatibility and integration with a vast array of tools and platforms.

<!-- Start with a [ModelKit Quick Start](TBD), -->See the [ModelKit spec](./spec.md), or look over the [tool compatibility list](./compatibility.md).
[Get started with ModelKits](../get-started.md) in less than 15 minutes.

[See how security-conscious organization are using ModelKits](../use-cases.md) with their existing tools to develop AI/ML projects faster and safer than ever before.

## Key Features of ModelKit:

Expand Down
5 changes: 5 additions & 0 deletions docs/src/docs/next-steps.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
# Next Steps with Kit

In this guide you'll learn how to:
* Deploy a ModelKit
* Sign your ModelKit
* Make your own Kitfile
* The power of `unpack`
* Read the Kitfile or manifest from a ModelKit
* Tag ModelKits and keep your registry tidy

## Deploying a ModelKit

You can create a container or Kubernetes deployment using a ModelKit. See our [deployment instructions](./deploy.md).

## Signing your ModelKit

Because ModelKits are OCI 1.1 artifacts, they can be signed like any other OCI artifact (you may already sign your containers, for example).
Expand Down
25 changes: 21 additions & 4 deletions docs/src/docs/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,30 +8,47 @@ KitOps is an innovative open-source project designed to enhance collaboration am

At the heart of KitOps is the ModelKit, an OCI-compliant packaging format that enables the seamless sharing of all necessary artifacts involved in the AI/ML model lifecycle. This includes datasets, code, configurations, and the models themselves. By standardizing the way these components are packaged, ModelKit facilitates a more streamlined and collaborative development process that is compatible with nearly any tool. You can even [deploy ModelKits to containers or Kubernetes](./deploy.md).

### 📄 Kitfile
### 📄 Kitfile

Complementing the ModelKit is the Kitfile, a YAML-based configuration file that simplifies the sharing of model, dataset, and code configurations. The Kitfile is designed with both ease of use and security in mind, ensuring that configurations can be efficiently packaged and shared without compromising on safety or governance.

### 🖥️ Kit CLI
### 🖥️ Kit CLI

Bringing everything together is the Kit Command Line Interface (CLI). The Kit CLI is a powerful tool that enables users to create, manage, run, and deploy ModelKits using Kitfiles. Whether you are packaging a new model for development or deploying an existing model into production, the Kit CLI provides the necessary commands and functionalities to streamline your workflow.

## How KitOps is Used

KitOps is a key element in a platform engineering solution for AI/ML projects.

[See how security-conscious organization are using ModelKits](../use-cases.md) with their existing tools to develop AI/ML projects faster and safer than ever before.

## The Goal of KitOps

The primary goal of KitOps is to bridge the gaps between data science, software development, and operational deployment. By providing a standard packaging and versioning solution for AI/ML projects, KitOps drives greater speed, security, and collaboration for teams working with models.
The primary goal of KitOps is to become an open, vendor-neutral standard that simplifies and secures the packaging and versioning of AI/ML projects. In the same way that PDFs have helped people share documents, images, and diagrams between tools, KitOps makes it easy for teams to use the tools they prefer, but share the results safely and securely.

KitOps drives greater speed, security, and collaboration for teams working with models.

### 👩‍💻 For application developers

KitOps clears the path to use AI/ML with your existing tools and applications. No need to be an AI/ML expert, KitOps lets you concentrate on integrating AI/ML models into your applications, while Kit handles the packaging and sharing.

[Get Started](./get-started.md).

### 👷 For DevOps teams

ModelKits fit into your existing processes and the Kit CLI lets you pack or unpack ModelKit artifacts in the pipelines and automation you have proven over the last decade.

[Build a better golden path for AI/ML projects](./use-cases.md).
[Get Started](./get-started.md).


### 👩‍🔬 For data scientists

KitOps enables you to innovate in AI/ML without the usual infrastructure distractions. It simplifies dataset and model management and sharing, fostering closer collaboration with developers. With KitOps, you can spend more time experimenting and less time grappling with traditional software development tools.

[See how to use KitOps with Jupyter Notebooks](https://www.youtube.com/watch?v=OQPp7QEvk7Q).
[Get Started](./get-started.md).

## Benefits of KitOps

KitOps is not just another tool; it's a comprehensive CLI and packaging system specifically designed for the AI/ML workflow. It acknowledges the nuanced needs of AI/ML projects, such as:
Expand All @@ -46,7 +63,7 @@ One of the core strengths of KitOps is its ability to keep data and code version

### 🚀 Deployment Ready

Designed with a focus on deployment, ModelKits package assets in standard formats so you can depoloy them as [containers or to Kubernetes](./deploy.md). They're also [compatible with nearly any tool](./modelkit/compatibility.md) - helping you get your model to production faster and more efficiently.
Designed with a focus on deployment, ModelKits package assets in standard formats so you can depoly them as [containers or to Kubernetes](./deploy.md). They're also [compatible with nearly any tool](./modelkit/compatibility.md) - helping you get your model to production faster and more efficiently.

### 🏭 Standards-Based Approach

Expand Down
Loading