Releases: kitops-ml/kitops
Release v1.4.0
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
Full Changelog: v1.3.0...v1.4.0
Release v1.3.0
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
- Call networkOptions.complete in login command by @amisevsk in #806
- Fix init container reference in docs by @gorkem in #800
- Fix ldflags in build to use new module name by @amisevsk in #811
- Fix typo in flags for MacOS goreleaser build by @amisevsk in #812
- Update numbering in hf-import.md by @nodroghsu in #808
New Contributors
- @nodroghsu made their first contribution in #808
Full Changelog: v1.2.2...v1.3.0
Release v1.2.2
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
- Update the video in the home page with a new version by @javisperez in #775
- Update PyKitOps documentation by @gorkem in #776
- Add docs on $KITOPS_HOME by @bmicklea in #781
- Use monolithic uploads when pushing to Google Artifact Registry by @amisevsk in #780
Full Changelog: v1.2.1...v1.2.2
Release v1.2.1
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
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:
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
Bug Fixes
- Fix importing from HF repositories using the full URL by @amisevsk in #761
- Improve error logging by @gorkem in #760
New Contributors
Full Changelog: v1.1.0...v1.2.0
Release v1.1.0
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
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
- New kit import doc by @bmicklea in #711
- Update documentation for Kit import by @amisevsk in #712
- Doc updates for import by @bmicklea in #719
- Filtering and KITOPS_HOME updates by @bmicklea in #720
Full Changelog: v1.0.0...v1.0.1
Release v1.0.0
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
- Fix race condition when pulling manifest with duplicate digests by @amisevsk in #688
- Clean up error messages on push failures by @amisevsk in #694
- Fixups for
kit import
by @amisevsk in #706
Full Changelog: v0.5.0...v1.0.0
Release v0.5.0
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
- Add modelpart mediatype to ModelKits spec document by @amisevsk in #618
- Updates to ModelKit format by @amisevsk in #635
- Add Model format field to Kitfile by @amisevsk in #645
- [feat:] Add Log tailing by @srikary12 in #610
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
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
- Bump the actions-minor group with 3 updates by @dependabot in #576
- docs: update CLI documentation for v0.3.4 by @github-actions in #575
- Fixed TAG_NAME environment variable assignment by @brett-hodges in #577
- Updates to why and use cases by @bmicklea in #580
- Docs for containerizing and Kubernetes deployment by @bmicklea in #579
- fix trailing spaces by @bmicklea in #581
- feat: add back to top button by @SagarSharma101 in #561
- Node selection capability by @srikary12 in #541
- Update deploy.md by @javisperez in #582
- Make release container job depend on release job in actions by @amisevsk in #578
- Changes to the homepage by @javisperez in #585
- Update README with Deploy and Dagger by @bmicklea in #588
- Add Dagger to docs by @bmicklea in #586
- Switch
dev
Command to Usellamafile
by @gorkem in #559 - add deploy & dagger to README by @bmicklea in #593
New Contributors
- @SagarSharma101 made their first contribution in #561
Full Changelog: v0.3.4...v0.4.0