Skip to content

Releases: onnx/turnkeyml

v3.0.2

01 Aug 16:11
aa4b398
Compare
Choose a tag to compare

What's Changed

Bug Fixes:

Full Changelog: v3.0.1...v3.0.2

v3.0.1

24 Jul 03:59
44d9026
Compare
Choose a tag to compare

What's Changed

Full Changelog: v3.0.0...v3.0.1

v3.0.0

23 Jul 17:22
44717af
Compare
Choose a tag to compare

Summary

This release is the culmination of a month of work in the refresh branch to re-architect TurnkeyML for the future.

The high-level changes are:

  • Stages have been replaced by Tools, which each have their own arguments parser to enable maximum configurability
  • Sequences are no longer hardcoded lists of Stages - now users can enter any list of Tools they like
  • Everything is a Tool: model discovery, benchmarking, and even cache management functionality (report, list, delete, etc.) are all now modular Tools.
  • Plugins now primarily add new Tools. These new Tools can do a lot more than Stages used to be able to, such as:
    • Add a new frontend into the sequence, as a replacement for model discovery. For example, load an LLM checkpoint.
    • Replace the backend of the sequence with something other than our standard benchmarking flow. For example, run an accuracy test.
    • Add utility functions, such as managing the cache or built-in models.
  • There is a brand new command line interface and API to expose the new way of doing things.
  • The tools documentation has been completely re-written.

Breaking Changes

There are almost too many to list since the whole project has been re-architected. Here are the major things to be aware of:

  • Stage classes need to be ported to on to the Tool class.
    • Any reference to stage should be changed to tool, for example the stage_status:: stat is now tool_status::
    • The names of most Tools have been renamed to fit our new naming scheme (see contribution guide).
  • There is no longer a notion of benchmark_status, since benchmarking is now a Tool. It's now tool_status::benchmark.
  • The build_model() API has been removed. Instead, Tools should be called as their own standalone APIs.
  • The benchmark_files() API has been re-named to evaluate_files().
  • The repository directory structure has been redone, which changes a lot of imports.
    • For example, turnkeyml.state has State and load_state().
    • See the code organization doc for the full set of changes.

v2.0.3

03 Apr 15:07
69a203e
Compare
Choose a tag to compare

What's Changed

Full Changelog: v2.0.2...v2.0.3

v2.0.2

02 Apr 19:23
7c13aa6
Compare
Choose a tag to compare

What's Changed

Full Changelog: v2.0.1...v2.0.2

v2.0.1

21 Mar 15:00
5c59aa1
Compare
Choose a tag to compare

What's Changed

This is a hotfix release for this one bug fix:

v2.0.0

15 Mar 14:53
4bfaa36
Compare
Choose a tag to compare

What's Changed

This update improves TKML's support for LLMs and significantly improves data quality for mass-benchmarking scenarios.

LLM Support:

Data Quality Improvements:

Quality of Life

Bug fixes

Breaking Changes

  • Plugin interface: BaseRT.device_name() is now a static method instead of a property.

Full Changelog: v1.1.3...v2.0.0

v1.1.3

26 Feb 20:14
e92b760
Compare
Choose a tag to compare

Summary

This update improves turnkey's mass-benchmark abilities, particularly for LLMs and large pre-compiled caches.

Improvements

  • New features:
  • Data quality:
    • turnkey arguments and timestamp are stored in the stats and report @jeremyfowers in #105
    • Record the contents of error logs into stats and report by @jeremyfowers in #111
    • torch-eager and torch-compiled runtimes now perform cache warmup and can be extended to implement other torch-based runtimes (e.g., IPEX) by @jeremyfowers in #119

Bug Fixes

  • Fixed confusing error reporting in no-build runtimes (e.g., PyTorch, IPEX, etc.) by @jeremyfowers in #106
  • Use the correct 6B parameter checkpoint for GPT-J instead of the "tiny" one by @jeremyfowers in #108
  • Fix FLOPs counting for large models by @pcolange in #109

PyPI: https://pypi.org/project/turnkeyml/1.1.3/
Full Changelog: v1.1.2...v1.1.3