Skip to content

Releases: kitops-ml/kitops

Release v1.4.0

11 Apr 15:33
Compare
Choose a tag to compare

Welcome to the v1.4.0 release of Kit! This release improves kit import and fixes one bug around pushing ModelKits to Amazon ECR.

New Features

Import specific versions using kit import

We've added a flag to kit import to allow specifying a tag, branch, or SHA digest when importing a model from Huggingface. To import a specific version, use the --ref flag:

kit import myorg/myrepo --ref v1.0.0

For more information, see issue #823 or PR #824

Introducing regular builds of the kitops-kserve container image

We're now including the ghcr.io/kitops-ml/kitops-kserve:next in our regular builds, allowing you to use ModelKits with KServe on Kubernetes. For details on KServe, see the image's readme.

For more information, see issue #817 or PR #820

Bug Fixes

  • Use monolithic PUT to upload large layers to Amazon ECR by @amisevsk in #822

Full Changelog: v1.3.0...v1.4.0

Release v1.3.0

01 Apr 11:21
Compare
Choose a tag to compare

Welcome to the v1.3.0 release of Kit! This is our first release as part of the CNCF! This release mostly contains changes relevant to our new organization (kitops-ml):

Significant Changes

  • Change module path in go.mod and update internal imports by @gorkem in #805
  • Update repository to kitops-ml org instead of jozu-ai by @amisevsk in #810
  • Print update notification messages to stderr instead of stdout by @amisevsk in #809

Bug Fixes

New Contributors

Full Changelog: v1.2.2...v1.3.0

Release v1.2.2

25 Feb 22:16
Compare
Choose a tag to compare

Welcome to the v1.2.2 release of Kit! This release fixes a bug pushing to Google Artifact Registry

Bug Fixes

Issues in pushing to Google Artifact Registry

Google Artifact Registry does not support OCI chunked uploads. As Kit uses this approach by default for ModelKit layers over a certain size, this meant that uploading to Google Artifact Registry would fail for many ModelKits.

With v1.2.2, we instead use the recommended monolithic upload format as required by the registry.

For more details, see the issue and pull request

What's Changed

Full Changelog: v1.2.1...v1.2.2

Release v1.2.1

18 Feb 22:36
Compare
Choose a tag to compare

Welcome to the latest release of Kit! This bugfix release addresses one issue with the kit diff command.

Bug Fixes

The recently released kit diff command had a bug where some intended networking flags were missing. This meant that it was not possible to configure mTLS authentication and settings for remote registries.

In addition, another pull request (#742) updated how one of the common networking flags, --concurrency, worked, making it an error if the specified concurrency was less than 1. Since kit diff was not initializing these flags, it was using the default value of 0 for concurrency, leading to errors when running kit diff.

To see more details on this fix, see PR #773

Full Changelog: v1.2.0...v1.2.1

Release v1.2.0

13 Feb 15:00
Compare
Choose a tag to compare

Welcome to the latest release of Kit! We've added some exciting new features and improvements.

New Features

Change in how temporary files are handled by the CLI

With KitOps v1.2.0, we've changed how temporary files are stored. Previously, temporary files used while importing and packing ModelKits would be stored in the system's temporary directory. While this had the benefit of making sure any stray files were cleaned up eventually by the system, it made it hard to use Kit in some containerized environments, where mounting a volume to hold the (large) temporary files may be necessary. In KitOps v1.2.0, Kit will instead store temporary files in $KITOPS_HOME/cache. This has the added benefit of making packing slightly faster on systems where the temporary directory is a separate volume.

For more details on this change, see:

  • The GitHub issue: #758
  • The Pull Request: #762

New command: kit cache

Normally, Kit will clean any temporary files before exiting. However, in some cases (such as using ctrl+C to cancel the command), these files can be left on the disk, taking up space. Since Kit is no longer using a temporary directory for these files, we've added the kit cache command to check the cache directory. Use kit cache info to see current cache directory storage use, and kit cache clear to clean up any leftover files.

Significant Changes

  • Move to using cache directory in KITOPS_HOME instead of the system temp dir by @amisevsk in #762

Bug Fixes

New Contributors

Full Changelog: v1.1.0...v1.2.0

Release v1.1.0

06 Feb 20:28
Compare
Choose a tag to compare

Welcome to the v1.1.0 release of Kit! We've added some exciting new features and improvements.

New Features

Improvements to kit import

The kit import command can now handle Huggingface repositories without requiring Git to be installed. This change comes with a few improvements:

  • We read the list of files in the repository first, meaning you can now edit the Kitfile before downloading anything
  • We only download the files that will be included in the ModelKit, so you can restrict how much data is downloaded

By default, Kit will use the Huggingface API if you import a Huggingface repository, and will continue to use the current Git clone method for non-Huggingface repositories. If you would like to use Git to download repositories from Huggingface, you can use the --tool=git flag for kit import.

Compare ModelKits using the kit diff command

The kit diff command can be used to compare two ModelKits and highlight the differences between them. This command will print out whether the Kitfiles or layers match, and can be used to determine what is changed between two tagged ModelKits

Significant Changes

  • Enable kit import to download files using the huggingface API instead of Git by @amisevsk in #742
  • Add 'diff' command to compare ModelKits by @gorkem in #702
  • Add --file flag to kit import to allow using existing Kitfiles by @amisevsk in #734

Bug Fixes

  • Ensure we don't store duplicate manifests in the index by @amisevsk in #729
  • Tests for comparing manifests by @gorkem in #744
  • Fix bug where we warn of empty layers when progress bars are disabled by @amisevsk in #748

Full Changelog: v1.0.1...v1.1.0

Release v1.0.1

27 Jan 13:00
Compare
Choose a tag to compare

Welcome to the v1.0.1 release of Kit! This release includes some bug fixes for the features introduced in v1.0.0, along with some improvements to the documentation.

Bug fixes

  • Auto-fill name/author when using kit import by @amisevsk in #722
  • Use 'nano' as the default editor in import if $EDITOR is unset by @amisevsk in #721

Docs improvements

Full Changelog: v1.0.0...v1.0.1

Release v1.0.0

22 Jan 16:37
Compare
Choose a tag to compare

Welcome to the v1.0.0 release of Kit! We've added some exciting new features and improvements.

New Features

Import models from Huggingface🤗 directly

We've added the kit import command, that can be used to download a model from Huggingface and package it as a ModelKit automatically. This command will download the model to a temporary directory, generate a Kitfile, and package it all in one step.

For private repositories, you may have to provide a personal access token using the --token flag.

Currently, kit import requires that you have git and git-lfs installed, but we're working on removing this requirement in a future release. We've been playing with the feature a lot ourselves, but would love any feedback you may have!

As an added bonus, kit import works on any git repository -- try running

kit import https://github.com/jozu-ai/kitops

to see it in action!

For more information, see kit import --help or the PR that added the feature: #684

Automatically generate Kitfiles

Most ModelKits are relatively simple -- they may contain model weights, some metadata, some documentation, and a few other files. To make using Kit in these situations simpler, we've added the kit init command, which will generate a Kitfile for you to use. This generation is fairly simple, but should handle some common cases:

  • Model weights should be detected automatically
  • Certain files (e.g. a README.md) are handled specially
  • The license is automatically detected from a LICENSE file

You may need to tweak the Kitfile slightly to get the exact result you desire, but it should be an easy starting point for creating your own ModelKit

For more information, see kit init --help, or the PR #661

Significant Changes

  • Allow specifying a separate target reference to push in kit push by @amisevsk in #685
  • Add tests for generating Kitfiles. by @amisevsk in #693
  • Install git and git-lfs in default kitops images by @amisevsk in #704

Bug Fixes

Full Changelog: v0.5.0...v1.0.0

Release v0.5.0

09 Jan 20:13
Compare
Choose a tag to compare

Welcome to the latest release of Kit! We've added some exciting new features and improvements.

New Features

Updates to the ModelKit format

We've updated how files are packaged into ModelKits internally, which is why we've decided to increase the minor version number for this release. These changes are intended to make it easier to consume ModelKits in other contexts:

  • The config object for ModelKits now stores digests with each layer, to make it easier to access a specific layer's blob
  • Layers are now packed to include directories relative to the context directory, making unpacking tarballs simpler.

While these changes are backwards compatible (the current Kit CLI still processes ModelKits created with an earlier version), packing the same data will result in a different digest after updating to version v0.5.0.

For a detailed description of changes, see PR #635

Log tailing for dev logs command

Added flag -f or --follow that allows to tail the logs of the development server. To tail logs use the command

    kit dev logs -f

Thanks @srikary12 for this contribution

New format field for Kitfile

Kitfile model object has the new format field to store the model's data format (e.g. safetensors, gguf, onnx, etc.).

manifestVersion: 1.0.0
...
model:
  name: Phi-3-mini-4k-instruct-fp16
  path: Phi-3-mini-4k-instruct-fp16.gguf
  format: gguf
  license: MIT License

Significant Changes

Bug fixes

  • Better defer and subpath checks for unpack by @gorkem in #630
  • Handle file close in defer better for dev command by @gorkem in #628
  • Normalize paths when deciding if files should be ignored by @amisevsk in #631

New Contributors

Full Changelog: v0.4.0...v0.5.0

Release v0.4.0

06 Nov 20:03
e2e83d9
Compare
Choose a tag to compare

Welcome to the latest release of Kit! We've added some exciting new features and improvements.

New Features

dev Command Now Available on Windows and Linux

You can now test your LLM applications locally on Windows and Linux using the kit dev command, which was previously available only on macOS.

We've integrated the llamafile project to implement the dev command, enhancing cross-platform compatibility.

Packaging Changes

To keep kit easy to use in automation pipelines, llamafile is no longer included by default in Kit packages. Instead, it is downloaded when the dev command is invoked. For users who need to work offline, we provide packages that include llamafile, marked as "offline".

📖 Learn more: See the kit dev documentation for additional details.

New --filter Option for kit info Command

We've made scripting with Kitfile values easier. The kit info command now supports a new --filter flag that allows you to select specific values from your Kitfile.

Example

Suppose you have the following Kitfile:

manifestVersion: 1.0.0
package:
  # ...
model:
  name: llama3.2-1b-1B-instruct-f16
  path: ./llama3.2-1b-1B-instruct-f16.gguf
  license: LLAMA 3.2 COMMUNITY LICENSE AGREEMENT
  description: Llama 3.2 1B instruct model
# ...

To get the path value of the model, run:

kit info model:tag --filter model.path

This command returns:

 `./llama3.2-1b-1B-instruct-f16.gguf`

What's Changed

New Contributors

Full Changelog: v0.3.4...v0.4.0