Releases: deepjavalibrary/djl
DJL v0.27.0 Release
Key Changes
- Upgrades for engines
- OnnxRuntime 1.17.1 #3019
- Enhancements for engines and API
Enhancement
- Suppress serial warning for JDK21 by @zachgk in #2935
- [api] Moves commons-compress dependency to standalone class. by @frankfliu in #2951
- [api] Allows to load .pt or .onnx file from jar url by @frankfliu in #2955
- [tokenizer] Return if exceed max token length by @frankfliu in #2957
- [tokenizer] Adds getters for HuggingfaceTokenizer by @frankfliu in #2958
- [pytorch] Upgrade android build to 0.26.0 by @frankfliu in #2975
- [pytorch] Avoid loading .lib file from PYTORCH_LIBRARY_PATH by @frankfliu in #2987
- [api] Adds utility method to Model for accessing properties by @frankfliu in #3007
- [api] Adds suffix to percentile metric name by @frankfliu in #3011
- [api] Adds dimension for prediction metric by @frankfliu in #3013
- Thread-safe FaceDetectionTranslator by @StefanOltmann in #3016
- [api] Upgrades commons compress to 1.26.0 for CVE by @frankfliu in #3018
- Avoid duplicated loading native library by @frankfliu in #3020
- [api] Allows to use relative jar uri for cache folder name by @frankfliu in #3026
- support includeTokenTypes in TextEmbeddingBatchTranslator by @morokosi in #3032
- [tokenizer] Adds includeTokenTypes for all translators by @frankfliu in #3035
- Updates dependencies version to latest by @frankfliu in #3040
- [pytorch] Allows to exclude certain DLL from pytorch directory by @frankfliu in #3043
- Update checkstyle tool version to 10.14.2 by @xyang16 in #3047
- Upgrade dependency version by @xyang16 in #3049
Bug Fixes
- [fix][ci] fix typo in publish metric workflow by @siddvenk in #2976
- [fix][ci] avoid early exit of script for failure case by @siddvenk in #2979
- [ci][fix] update path to android sdk manager cli by @siddvenk in #2980
- [dataset] Fixes broken link for mnist dataset by @frankfliu in #2984
- [database] Fixes mnist URL for local unitest by @frankfliu in #2988
- fix #2968 by @SidneyLann in #2986
- [dataset] Fixes wikitext-2 by @zachgk in #2996
- [spark] Fixes python tarslip security concern by @frankfliu in #2995
- Fixes failing CI by @ydm-amazon in #3001
- Fixes cases where the getEngine method in the EngineProvider class returns null when called concurrently. by @onaple in #3005
- [api] Fixes typo in CudaUtils by @frankfliu in #3008
- [model-zoo] Fixes typo in README by @fensch in #3009
- [ci] Fixes nightly build for onnx 1.17.1 by @frankfliu in #3021
- [pytorch] Fixes detecting wrong flavor on macOS issue by @frankfliu in #3027
- [bom] Fixes djl-serving packages in BOM by @frankfliu in #3039
Documentation
- Bump DJL version to 0.27.0 by @siddvenk in #2933
- [doc] include trtllm convert manual by @sindhuvahinis in #2941
- [docs] Updates README by @frankfliu in #2954
- [doc] Make LMI a separate tab and include I/O schema by @sindhuvahinis in #2960
- [docs] Fixes cuda version for pytorch native library by @frankfliu in #2963
- docs: add AWS Graviton3 PyTorch inference tuning details by @snadampal in #2982
- [docs] Update Huggingface tokenizer cache directory document by @frankfliu in #2994
- [docs] Disable progress bar for jupyter notebook convertion by @frankfliu in #3017
- [example] Adds document about how to trace gpt2 model by @frankfliu in #3028
- [docs] update mkdocs structure for new lmi documentation by @siddvenk in #3029
CI/CD
- removing pytorch 2.0.1 from 0.27.0 by @siddvenk in #2940
- Moves to Actions hosted M1 runner by @zachgk in #2948
- [ci] Disable run scheduled github actions in fork by @frankfliu in #2943
- [ci] add cloudwatch metrics for scheduled workflow failures by @siddvenk in #2966
- [ci] Upgrade github actions nodejs 16 to nodejs 2 by @frankfliu in #2967
- [ci] Upgrade codeql-actions to v3 by @frankfliu in #2973
- [ci] Upgrade aws-actions/configure-aws-credentials to v4 by @frankfliu in #2972
- [ci] refactor cloudwatch metric publishing to avoid needing changes i… by @siddvenk in #2974
- [ci] Downgrade github actions version for centos7 and amazonlinux by @frankfliu in #2977
- [ci] move cw publish step to github hosted runner by @siddvenk in #2978
- [CI] downgrade the version to V3 by @lanking520 in #2990
- [CI] change to cache v3 for the versions by @lanking520 in #2991
- Uses gradle dependency submission by @zachgk in #2983
- Excludes test dependencies from dependency submission by @zachgk in #2999
- Update continuous OSX to 13 by @zachgk in #3004
- Removes dependency submission by @zachgk in #3006
New Contributors
- @snadampal made their first contribution in #2982
- @ydm-amazon made their first contribution in #3001
- @onaple made their first contribution in #3005
- @fensch made their first contribution in #3009
- @StefanOltmann made their first contribution in #3016
- @morokosi made their first contribution in #3032
Full Changelog: v0.26.0...v0.27.0
DJL v0.26.0 Release
Key Changes
- LlamaCPP Support. You can use DJL to run supported LLMs using the LlamaCPP engine. See the Chatbot example here to learn more.
- Manual Engine Initialization. You can configure DJL to not load any engines at startup, and query/register engines programmatically at runtime
- Engine Updates:
- PyTorch 2.1.1
- Huggingface Tokenizers 0.15.0
- OnnxRuntime 1.16.3
- XGBoost 2.0.3
Enhancement
- Add erf and atan2 by @TalGrbr in #2842
- Add FFT2 and FFT2 inverse by @TalGrbr in #2845
- [tokenizer] Update import script for huggingface_hub api change by @frankfliu in #2850
- [tokenizer] Not returns overflow tokens by default by @frankfliu in #2857
- [pytorch] Updates PyTorch engine to 2.1.1 by @frankfliu in #2864
- Adds Device.getDevices() for all Device by @zachgk in #2820
- Creates DJL manual engine initialization by @zachgk in #2885
- [pytorch] Allows to load libstdc++.so.6 form different location by @frankfliu in #2929
- Add Evaluator support to update multiple accumulators by @petebankhead in #2894
- Adds llama.cpp engine by @bryanktliu in #2904
- Yelov8 Translator optimization by @gevant in #2908
- [pytorch] Adds Yolov8n model to pytorch model zoo. by @frankfliu in #2910
- [onnx] Adds yolov8n to model zoo by @frankfliu in #2909
- [llama.cpp] Adds unit-test and standardize input parameters by @frankfliu in #2905
- [llama.cpp] Adds llama.cpp huggingface model zoo by @frankfliu in #2911
- [XGBoost] Updates XGBoost to 2.0.3 by @frankfliu in #2915
- [pytorch] Upgrade pytorch andorid to 2.1.1 by @frankfliu in #2914
- add awscurl release by @lanking520 in #2917
- [awscurl] change build to jar by @lanking520 in #2918
- [bom] Adds llama engine to BOM by @frankfliu in #2916
- [api] Adds ModelZooResolver interface by @frankfliu in #2922
- [api] Use folk java process to avoid jvm consume GPU memory by @frankfliu in #2882
- [onnxruntime] Updates OnnxRuntime to 1.16.3 by @frankfliu in #2888
- Tokenizers: Updated huggingface_models.py to support Safetensors models as well as pytorch by @dameikle in #2880
- [tokenizer] Uses fp32 for TextembeddingTranslator clip() by @frankfliu in #2881
- [tokenizer] Updates huggingface tokenizer to 0.15.0 by @frankfliu in #2867
Bug Fixes
- [tokenizer] Fixes tokenizer bug by @frankfliu in #2843
- Fixes archiveBaseName in native builds by @zachgk in #2859
- [pytorch] Ensure shared library loading order for aarch64 by @frankfliu in #2892
- [api] Handles both JNA conflict and missing case by @frankfliu in #2896
- Minor fixes to improve Apple Silicon MPS support by @petebankhead in #2873
- [tokenizer] Handles import huggingface model zoo exception case by @frankfliu in #2872
- [api] Update offline property name to avoid conflict with other app. by @frankfliu in #2877
- [tensorflow] Revert InstanceHolder for TensorFlow engine by @frankfliu in #2884
- [pytorch] Revert InstanceHolder for PyTorch engine by @frankfliu in #2876
- [pytorch] Fixes windows load nvfuser_codegen bug by @frankfliu in #2868
Documentation
- [docs] Update serving configuration nav by @zachgk in #2853
- Updates DJL version to 0.25.0 by @frankfliu in #2860
- Bump up DJL version to 0.26.0 by @frankfliu in #2861
- [docs] Move jupyter notebooks to DJL Demo by @zachgk in #2854
- [docs] Include LMI documents by @sindhuvahinis in #2870
- [docs] Updates documents to use JDK 17 by @frankfliu in #2898
- Updates DJL version to 0.26.0 by @siddvenk in #2930
- update master branch on the website to have large model inference guide by @lanking520 in #2865
CI/CD
- [ci] Allows build project with JDK 21 by @frankfliu in #2903
- [ci] Fixes pytorch android build by @frankfliu in #2921
- [ci] Fix build failure for
build-pytorch-jni-linux
by @maaquib in #2920 - [ci] Fixes native ci build failure by @frankfliu in #2924
- [CI] Fixes flaky early stopping test by @zachgk in #2866
- [ci] Fixes flaky early stopping training test by @frankfliu in #2879
- [ci] Use JDK 17 for github actions workflow by @frankfliu in #2897
- [ci] Fixes github action for centos and amazonlinux by @frankfliu in #2913
- [ci] Use macos-13 to avoid flaky test by @frankfliu in #2927
- [test] Fixes EarlyStopping flaky test by @frankfliu in #2926
- [api] Updates dependencies to latest version by @frankfliu in #2928
- [api] Updates common-compress version to address CVE issues by @frankfliu in #2871
- only build triton binaries by @lanking520 in #2847
New Contributors
- @TalGrbr made their first contribution in #2842
- @petebankhead made their first contribution in #2873
- @dameikle made their first contribution in #2880
- @gevant made their first contribution in #2908
- @maaquib made their first contribution in #2920
Full Changelog: v0.25.0...v0.26.0
DJL v0.25.0 Release
Key Changes
- Engine Upgrades
- Early Stopping support for Training by @jagodevreede #2806
Enhancement
- [tokenizer] Allows import non-english model by @frankfliu in #2797
- [api] Allows cancel Input by @frankfliu in #2805
- [huggingface] Adds CrossEncoderTranslator by @frankfliu in #2817
- Creates MultiDevice by @zachgk in #2819
- [api] Refactor PublisherBytesSupplier.java by @frankfliu in #2831
- [api] Replace double-check singlton with lazy initialization by @frankfliu in #2826
Bug fixes
- [api] Fixed NDList decode numpy file bug by @frankfliu in #2804
Documentation and Examples
- Updates doc versions to 0.24.0 by @zachgk in #2829
- [docs] Fixes markdown headers by @zachgk in #2812
- Bump up DJL version to 0.25.0 by @frankfliu in #2809
- Update README with release update by @zachgk in #2823
CI
- [FT Deps] allow to just build for 1 flow by @lanking520 in #2798
- [ci] Fixes out of diskspace issue by @frankfliu in #2808
- Add Triton gpu flag build on by @lanking520 in #2815
New Contributors
- @jagodevreede made their first contribution in #2806
Full Changelog: v0.24.0...v0.25.0
DJL v0.24.0 Release
Key Features
- Engine Upgrades
- SafeTensors support #2763
- YoloV8 Support #2776
Enhancement
- [spark] Update djl version in dockerfile by @sindhuvahinis in #2712
- [pytorch] Makes PyTorch 2.0.1 default version for DJL 0.24.0 by @frankfliu in #2710
- pytorch support inference on separate cuda stream by @jiyuanq in #2706
- [spark] Update javacv version to 1.5.9 for spark docker by @frankfliu in #2713
- [pytorch] Upgrade pytorch andorid to 2.0.1 by @frankfliu in #2717
- [api] Makes getNeuronDevices() public by @frankfliu in #2721
- [api] Log warning message if failed to load specified class by @frankfliu in #2724
- [api] Workaround detect neuron issue on SageMaker by @frankfliu in #2729
- Setup custom ft build for Llama support by @rohithkrn in #2732
- [api] Fixes NeuronUtils issue when running as non-root user by @frankfliu in #2735
- Adds Utils.getEnvOrSystemProperty with default by @zachgk in #2742
- Issue #2693 Implement PtNDArrayEx.multiBoxPrior with validation by @juliangamble in #2715
- [api] Implements NDArray.toType() for NDArrayAdapter by @frankfliu in #2746
- [onnxruntime] Upgrades onnxruntime version to 1.15.1 by @frankfliu in #2743
- [api] Output endPosition induced by reaching EOS token by @KexinFeng in #2730
- [api] Adds Safetensors support by @frankfliu in #2763
- [SentencePiece] Make SpProcessor public by @frankfliu in #2765
- [tokenizer] Print out warning in model_zoo_importer by @frankfliu in #2759
- To support Yolov8 by @SidneyLann in #2776
- [onnxruntime] Upgrades OnnxRuntime to 1.16.0 by @frankfliu in #2784
- Build FT for sm90 by @rohithkrn in #2785
- PtndArrayEx.multiboxDetection() implementation by @juliangamble in #2769
Bug fixes
- [api] Fixes ChunkedBytesSupplier read timeout bug by @frankfliu in #2716
- [fix] Set past_kv name for corner case. by @KexinFeng in #2722
- Fix AmazonReviews by @zachgk in #2725
- Fix issue with setPadding and setTruncation overriding configurations… by @siddvenk in #2741
- Fixes #2744, support onnx model for TextEmbeddingTranslator by @bryanktliu in #2749
- [api] Fixes NDArray.toDevice() missing name issue by @frankfliu in #2751
- [pytorch] Avoid toByteBuffer() crash for large tensor by @frankfliu in #2780
Documentation and Examples
- Update DJL version to 0.23.0 in documents by @sindhuvahinis in #2694
- [docs] Updates README for pytorch 2.0.1 by @frankfliu in #2705
- Update docs and Bump up version to 0.24.0 by @sindhuvahinis in #2708
- [docs] Updates troubleshooting README to remove outdated content by @frankfliu in #2734
- [docs] Update IntelliJ debug view image by @frankfliu in #2747
- [examples] Fixes whipser model on GPU machine by @frankfliu in #2752
CI
- [api] Restore Lm search unittest to recover coverage rate by @KexinFeng in #2723
- [ci] Fixes PMD warnings by @frankfliu in #2764
- [ci] Fixes gradle deprecation warnings by @frankfliu in #2774
New Contributors
- @jiyuanq made their first contribution in #2706
- @rohithkrn made their first contribution in #2732
- @SidneyLann made their first contribution in #2776
Full Changelog: v0.23.0...v0.24.0
DJL v0.23.0 release
Key Features
-
Upgrades for engines
-
Enhancements for engines and API
-
Introduces text-generation search algorithm
Enhancement
-
DJL API improvements:
- Adds uint16, uint32, uint64, int16, bf16 data type (#2570)
- Adds NDArray topK operator for PyTorch (#2634)
- Adds support for unsigned datatype (#2574)
- Allows subclass access member variable of Predictor (#2582)
- Makes PredictorContext constructor public (#2586)
- Refactor ChunkedBytesSupplier to avoid unnecessary conversion (#2587)
- Move compileJava() into ClassLoaderUtils (#2600)
- Enable boolean input on ort (#2644)
- Adds more logs for platform detection (#2646)
- Improves DJL URL error message (#2678)
- Avoid exception if SecurityManager is applied (#2665)
- Masks sensitive env vars in debug print out (#2657)
- open isImage() method to package children for reuse-enabling custom datasets (#2662)
- Migrate google analytics (#2654)
-
PyTorch engine improvements
-
Spark extension enhancements
-
Huggingface tokenizer enhancements
- Allow creating BPE huggingface tokenizers (2550)
-
Tensorflow engine enhancements
- Reload javacpp properties (2668)
Breaking change
Bug fixes
- Avoids exception for cuda version lower than 10.x (#2583)
- Reverts "[bom] Simplify BOM build script (#2438)" 2598
- CI fails looking for v3 reverting to v2 (#2604)
- Fixes the dependencies issue (#2609)
- Fixes the usage of the repeat function for embedding (#2590)
- Adds missing djl-zero to bom (#2625)
- Fixes tabnet predictor (#2643)
- Fixes error message in X.dot(w) (#2688)
- Fixes liquid parsing issues in pytorch ndarray cheatsheet (#2690)
- Fixes getIOU bug (#2674)
- Fixes setup formatting (#2653)
- Fixes broken link (#2622)
- Fixes LocalRepository detection (#2593)
- Fix jupyter notebook links (#2704)
Documentation and Examples
- Adds docs on JNI compilation (#2510)
- Updates import tensorflow model README (#2614)
- Updates pytorch native JNI development document (#2613)
- Setup - Running on M1 Macs (#2652)
- Adds pytorch vs djl ndarray cheatsheet (#2661)
- Updates timeseries README (#2667)
- Adds PT NDArray cheat sheet to docs (#2670)
- Cleans stable_diffusion and add missing .md language blocks (#2635)
- Updates README (#2596)
- Fixes typos (#2603)
- Fixes markdown format (#2608)
CI improvements
- Upgrades github action gradle plugin to v3 (#2576)
- Avoids upload djl-serving.tar to S3 if already exist (#2578)
- Upgrades spotbugs to 5.0.14 (#2594)
- Upgrades gradle to 8.1.1 (#2611)
- Publishes PyTorch 2.0.1 jni package (#2699)
- Removes cu102 test (#2689)
- Fixes nightly publish ci bug (#2691)
- Fixes djl-serving release publish workflow script (#2568)
- Minor fix to the instance spinning (#2606)
- Adds Triton and FasterTransformers source build instruction (#2605)
- Publishes triton executable (#2617)
- Adds http endpoint in the build (#2618)
Contributors
Thank you to the following community members for contributing to this release:
@frankfliu
@KexinFeng
@lanking520
@xyang16
@zachgk
@takanori-ugai
@tosterberg
@siddvenk
New Contributors
- @larochef made their first contribution in #2550
- @Crusader99 made their first contribution in #2603
- @juliangamble made their first contribution in #2652
- @i10416 made their first contribution in #2661
Full Changelog: v0.22.1...v0.23.0
DJL v0.22.1 release
Key Features
- Upgrades and enhancements for Engines
Enhancement
-
Introduces several enhancement for HuggingFace tokenizer:
-
Introduces several enhancement for Spark extension:
- Adds audio predictors (#2466)
- Adds more image predictors and change some APIs (#2456)
- Adds more text predictors (#2443)
- Adds np_util (#2419)
- Adds pyspark TextEmbedder and update ImageClassifier (#2414)
- Adds text generation in pyspark (#2477)
- Adds text2text generation (#2506)
- Adds whisper python code (#2513)
- Upgrades spark version to 3.3.2 (#2523)
-
DJL API improvements:
- Adds support for unique, bmm, xlogy (#2415)
- Fixes NDArray.toByteArray() bug (#2436)
- Adds NDArray.copyTo() support for NDArrayAdapter (#2437)
- Improves Classifications.toString() print out (#2439)
- Makes Batchifier serializable (#2441)
- Loads inputShapes in the loadMetadata method of Linear block (#2448)
- Adds chunked output support (#2453)
- Makes audio and cv translator factory serializable (#2455)
- Adds NamedEntity.toString() function (#2468)
- Streaming Predict and streamable BytesSupplier (#2470)
- Mitigates ZipInputStream CVE. (#2473)
- Adds getProperties() to Model interface (#2476)
- Adds non-blocking poll() for BytesSupplier (#2478)
- Makes PassthroughNDManager aware of engine and device (#2484)
- Fixes telemetry opt out (#2490)
- Uses sha-256 to avoid security warning (#2495)
- Moves NeuronUtils to api package (#2496)
- Adds encode and decode to Input and Output (#2502)
- Fails model loading if specified translator not found (#2515)
- Adds a way to check if streaming is supported (#2518)
- Fixed detect platform for different CUDA version (#2527)
- Fixes neuron core detection in docker container (#2536)
-
PyTorch engine improvements:
-
OnnxRuntime engine improvements:
- Adds support for OnnxRuntime Profiler (#2472)
-
MXNet engine improvements:
- Enables boolean index on mxnet (#2427)
Breaking change
Bug fixes
- Fixes pytorch-native-cu118 package in BOM (#2535)
- Fixes spark package name in BOM (#2534)
- Fixes OnnxRuntime version (#2524)
- Fixes memory leak in get with and to long, double, float, ... (#2428)
Documentation and Examples
- Adds timeseries examples document (#2411)
- Fixes link to doc Mask detection with YOLOv5 (#2529)
- Adds DeferredTranslatorFactory to tokenizers example (#2511)
- Updates depednency manage for spark extension (#2531)
- Updates FAQ and troubleshooting documents (#2454)
- Cleans inference performance optimization doc (#2519)
- Adds Yolov5 on Face Mask Detection (#2452)
CI improvements:
- Simplifies BOM build script (#2438)
- Avoids re-publish serving tarball (#2479)
- Fixes gradle 8.0 native publish issue (#2457)
- Fixes gradle 8.0 publish to release issue (#2460)
- Upgrades gradle to 8.0.2 (#2449)
- Uses recommended way to create task in build.gradle (#2451)
Contributors
@frankfliu
@KexinFeng
@lanking520
@nezda
@tipame
@xyang16
@zachgk
New Contributors
Full Changelog: v0.21.0...v0.22.1
DJL v0.21.0 release
Key Features
- Upgrades and enhancements for Engines
- Introduces several improvements for extensions:
- Implements NDScope to automatically close NDArray in the scope (#2321)
- Allows MXNet runs on Ampere GPU (#2313)
- DJLServing release
- Adds faster transformer support (#424)
- Adds Deepspeed ahead of time partition script in DLC (#466)
- Adds SageMaker MME support (#479)
- Adds support for stable-diffusion-2-1-base model (#484)
- Adds support for stable diffusion depth model (#488)
- Adds out of memory protection for modle loading (#496)
- Makes load_on_devices per model setting (#493)
- Adds several per model settings
- Improves management console model loading and inference UI (#431, #432)
- Updates deepspeed to 0.8.0 (#465)
Enhancement
- Introduces several enhancements for timeseries extension:
- Introduces several enhancement for HuggingFace tokenizer:
- Adds batch encoding support(#2342, #2343, #2337, #2338)
- Adds batchEncode for text pair (#2339)
- Adds mean_sqrt_len and weightedmean pooling for TextEmbedding (#2272)
- Adds more pooling mode form TextEmbedding (#2261)
- Allows Huggingface model zoo list models in offline mode (#2322)
- Update TextEmbedding pooling model name (#2314)
- Introduces a few new examples:
- Introduces several enhancement for Spark extension:
- DJL API improvements:
- Adds limit and callback for Metrics API (#2362)
- Adds newBaseManager(String engineName) api (#2275)
- Falls back to PassthroughNDManager if there is no engine (#2354)
- Improves Criteria.build() error message (#2397)
- Improves hybrid engine operators (#2279)
- Improve NDArray encode/decode performance (#2361)
- Refactors Engine class (#2303)
- Implements gatherNd, partial flatten and enable BertOnCode training (#2216)
- Makes TestDataset constructor protected (#2271)
- Creates SimplePaddingStackBatchifier (#2384)
- Creates standard for PreTrained behavior (#2360)
- Creates the TabularTranslator (#2344)
- Enables tuning distill_bert embedding layer (#2203)
- Handle RuntimeException on ImageFactory::newInstance (#2241)
- Implement AdamW on Pytorch and MXNet (#2206)
- Improves TranslatorExpansions with pre-processing and post-processing (#2213)
- Opens LayerNorm.Builder for inheritance (#2309)
- Adds feature to identify NDArray if double closed (#2352)
- Adds back support for getting managed Arrays (#2386)
- Opens Conv2d block constructor for inheritance (#2231)
- PyTorch engine improvements:
- Adds scatter function to PtNDArray (#2332)
- Search for model.pt or model.onnx when loading the model (#2364)
- Better handle String tensor operations (#2380)
- Fixes typo in error message (#2355)
- Makes JNI comptible with PyTorch 1.11.0 (#2263)
- No longer search java.library.path (#2235)
- Uses runMethod to replace forward function (#2234)
- Workaround hann_window issue for PyTorch 1.12.1 (#2262)
- Adds support for torch::cuda::empty_cache(). (#2305)
- Fixes memory leak in PyTorch indexing fuction (#2300)
- LightGBM engine improvements:
- Updates library dependencies:
- Adds aarch64 and macOS M1 support for SentencePiece (#2325, #2324)
- Adds centos 7 support for SentencePiece (#2402)
- Adds aarch64 support for audio extension (#2250)
Breaking change
- Removes Neo-DLR engine from DJL #2373
- Moves RawDataset from basicdata to api module (#2375)
- Changes Spark extension API (#2388)
Bug fixes
DJL v0.20.0 release
Key Features
- Upgrades and enhancements for Engines
- Upgrades PyTorch to 1.13.0 (#2157)
- Add support for Apple's Metal Performance Shaders (MPS) in PyTorch (#2037)
- Add system property to config GraphExecutorOptimize (#2156)
- Upgrades ONNXRuntime to 1.13.1 (#2115)
- Upgrades Paddle to 2.3.2 (#2116)
- Upgrades TensorFlow to 2.7.4 (#2121)
- Upgrades HuggingFace tokenizer version to 0.13.1 (#2127)
- Upgrades XGBoost to 1.7.1 (#2143)
- DJLServing
- Adds TabNet Training (#2057)
- Publishes DJL Zero (#2091)
- Adds Spark extension (#2162)
- Introduces several improvements for timeseries extension
- Adds ImageFeatureExtractor example and resnet base model to model zoo
Enhancement
- Introduces several enhancements for timeseries extension:
- Introduces several enhancement for HuggingFace tokenizer:
- Adds new models to DJL model zoo:
- DJL API improvements:
- Adds Sparsemax block (#2028)
- Updates the SemanticSegmentationTranslator (#2032)
- Creates Ensembleable (#2043)
- Handle error when forget to initialize a child block (#2045)
- Adds draw mask for BitMapWrapper (#2071)
- Allows show NDArray content in debugger (#2078)
- Rename transparency to opacity in CategoryMask (#2081)
- Allows to show NDArray content in Debugger 2 (#2080)
- Transfer learning with pytorch engine on fresh fruit dataset (#2070)
- Ensure GradientCollector can clear gradients (#2101)
- Handles conflict JNA package issue (#2118)
- Adds Multiplication block (#2110)
- Allows non-ServingTranslatorFactory for DJLServing (#2148)
- Adds cumprod operator (#2152)
- Adds Randperm on PyTorch and MxNet (#2084)
- Creates translator options (#2145)
- CI improvements:
- Add Mac M1 build (#2039)
- Publishes serving tar and zip (#2014)
- Uploads djl-bench release artifacts to S3 (#2020)
- Upgrade deprecated github actions (#2119)
- Upgrade github actions to latest version (#2122)
- Compile JNI only when file changes (#2161)
- Speed up continuous build by not uploading jacoco report (#2166)
- Respect -SNAPSHOT version in jar manifest (#2177)
- Allows JNI to be compiled on headless jdk (#2098)
- Move model zoo download test to canary (#2169)
- Upgrades PyTorch for Android to 1.13.0 (#2171)
- Add some unit tests (#2063)
- Test accumulating gradient collector (#2111)
- Refactor unit test TestRequirements, add missing TestRequirements (#2120)
- Upgrade protobuf version to 3.20.2 (#2035)
- Update deeplabv3 model zoo metadata (#2051)
- Remove String tensor limitation for model output (#2056)
- Disables mapLocation when using MPS device (#2061)
- Adds disablePerSessionThreads option to model loading for ONNXRuntime (#2104)
- LightGBM inference result matches input type (#2129)
- Apply no_optimizer_guard only for Android (#2153)
- Update dependency version (#2176)
- Reduce nested exception level (#2181)
Documentation and Examples
- Updates Semantic Segmentation app (#263)
- Adds the object detection app demo, use onnxruntime engine (#266)
- Adds stable diffusion demo (#269)
- Adds Spark extension example (#272)
- Adds DJLServing Postman examples (#276)
- Adds DJLServing Java client demo (#277)
- Adds DJLServing Python client demo (#278)
- Update README.md (#2010)
- Update dependency docs for timeseries package (#2004)
- Update javadoc links (#2017)
- Use latest javadoc links (#2021)
- Info added (#2022)
- Add Mac M1 info in docs (#2040)
- Some doc fixes (#2042)
- Improve memory management and batchify docs (#2076)
- Move serving docs to top level and reorganize (#2100)
- Update docs top level memu (#2102)
- Change timeseries dataset source example and add test (#2109)
- Fix a document issue (#2114)
- Update dependency document (#2134)
- Upgrade pytorch 1.13.0 documents (#2158)
- Add readme for TransferFreshFruit (#2160)
- Made the sites copyright year dyanamic (#2188)
Breaking change
- NDArray.toDebugString() signature has been changed (#2078)
Bug Fixes
- Fixes flooded warning message in PyTorch (#2136)
- Fixes youtube link in quick start (#2012)
- Fixes dlr-native build script ([#2015](https://github.co...
DJL v0.19.0 release
Key Features
- Creates new LightGBM engine (#1895)
- Upgrades and enhancements for Engines
- Introduces several enhancement for HuggingFace tokenizer
- Introduces HuggingFace model zoo (#1984)
- Adds a few built-in Translators for HuggingFace NLP models
- Adds macOS M1 support for HuggingFace tokenizer
- Adds ARM support for HuggingFace tokenizer
- Adds centos 7 support for HuggingFace tokenizer (#1874)
- Adds decode API for HuggingFace tokenizer (#1843)
- Adds padding and truncation support for HuggingFace tokenizer (#1870)
- Support stride in tokenizers (#2006)
- Introduces time series extension (#1903)
- Adds new Audio API and improves audio extension (#1974)
- Adds Android support for ONNXRuntime (#1844)
- JDK18 support (#1892)
- Adds python script to import HuggingFace model into DJL model zoo (#1835)
- DJLServing
Enhancement
- Adds a few more built-in Translators:
- Adds new models to DJL model zoo:
- Image handling enhancement:
- DJL API improvements:
- Adds NDArray normalize() operator (#1924)
- Adds DeferredTranslatorFactory to let serving.properties take effect (#1868)
- Makes PtBertQATranslator compatible with huggingface model (#1827)
- Improves debug log for model loading options. (#1825)
- Allows to load block only model for PyTorch (#1831)
- Adds IdentityBlockFactory for demo/test purpose (#1854)
- Support queryString for JarRepository (#1842)
- Set arguments in serving.properties as model properties (#1853)
- Allow overriding special token flags in encode and decode methods (#1855)
- Adds support for intermediate sequential block results (#1943)
- Adds load SentencePiece model from InputStream (#1949)
- Allows use cached PyTorch native libraries in offline mode by caching "files.txt". (#1982)
- Makes Encoding class constructor protected. (#1945)
- Adds string tensor support for PyTorch (#1968)
- Adds Loss function: Coverage.java (#1653)
- Adds Loss function: QuantileLoss.java (#1652)
- Validate data type for NDArray.set(Buffer) API (#1975)
- Adds offline mode to to ensure not download engine files from network (#1987)
- Adds encodeDual support for HuggingFace tokenizer (#1826)
- Bulk batch creation and array indexing on mxnet engine (#1869)
- Adds NDArray gammaln and sample distribution function support. (#1990)
- Padding when the size of input is 2 in LSTM (#2000)
- Creates a SystemNDManager interface (#1888)
- Adds python script to import huggingface model into DJL model zoo
- Added fill-mask support for converting huggingface model to model zoo (#1849)
- Adds support for converting huggingface token-classification models (#1902)
- Adds support for converting huggingface sentence-similarity models (#1913)
- Adds support for converting huggingface text-classification models (#1972)
Documentation and Examples
- Adds Neural machine translation example (#1851)
- Adds New Bert example using Goemotions (#1682)
- Adds Semantic Segmentation example (#1808)
- Adds tokenizer readme for usage (#1981)
- Updates troubleshooting.md to remove -native-auto package (#1793)
- Document PYTORCH_PRECXX11 usage in README (#1807)
- Immutable array output from InferenceMode PyTorch (#1822)
- Fixes NDIndex javadoc issue (#1841)
- Updates pose estimation example to detect joints for all people (#2002)
- Adds Semantic segmentation and Speech recognition to README (#2003)
- Updates links in README (#2005)
- Adds an example of time series model inference (#1971)
Breaking change
- NDManager.vaildateBufferSize() has been renamed to NDManager.validateBuffer()
- Remove unnecessary DeviceType interface (#1978)
Bug Fixes
- Adds missing text_embedding application in Application.of() (#1917)
- Fixes capped manager bug for TensorFlow (#1952)
- Fixes NDArray.set() bug (#1789)
- Fixes breaking behavior for NDIndex in 0.18.0 (#1801)
- Backward compatible with Apache MXNet indexing. (#1802)
- Fixes OrtNDArray double close issue (#1809)
- Fixes ImageFactory.fromNDArray() bug (#1824)
- Fixes NDArrayAdapter toDevice() and toType() behavior (#1839)
- Fixes the parsing issue (#1857)
- Fixes OrtNDArray double free issue (#1861)
- Fixes memory leak when using NDManager.newBaseManager() (#1887)
- Fixes PyTorch download library fallback to CPU bug (#1951)
- Fixes bug in Criteria (#1964)
- Fixes issue in TrainMnistWithLSTM (#1965)
- Fixes...
DJL v0.18.0 release
Key Features
- Adds macOS M1 chip support for PyTorch #1656, #1696
- JDK 17 support #1672
- Full support of PyTorch Get Indexing for NDArrays #1719
- Full support of PyTorch Set Indexing for NDArrays #1755
- Updates Dataset documentation #1686
- Moves djl-bench to DJL Serving #1743
- Engines and Extensions
- Newly Added Datasets
Enhancement
- Increases build version to 0.18.0 #1645
- Support of take from pytorch #1627
- Upgrades JNA to 5.11.0 #1655
- Improves ServingTranslator output handling #1654
- Adds width/height conversion to ObjectDetection #1651
- Add openCV find rectangle method to improve PaddleORC performance #1662
- Removes unnecessary logics in Paddle #1676
- Adds Cyclical Tracker #1671
- Adds support of
take
on MXNet engine #1649 - Implements GhostBatchNorm #1666
- Allows indexer to attach specific manager #1688
- Upgrades android module to use DJL 0.18.0 #1693
- Uses pytorch to test API and aws-ai module #1695
- Avoid download cudf dependency for XGBoost at build time #1694
- Bumps up versions #1691
- Refactors ServingTranslatorFactory #1702
- Adds "capped" state to NDManager #1683
- Upgrades NDK version to 21.1.6352462 #1707
- Adds LinearCollection block #1658
- Adds android test code #1714
- Changes DJL repo names from aws-samples #1716
- Adds serving deb file publish for CI #1721
- Upgrades codeql github action to v2 #1730
- Fixes publish serving deb #1725
- Adds ai.djl.audio and ai.djl.tablesaw to BOM #1728
- Upgrades java formatter to 1.15.0 #1727
- Adds name to LambdaBlock #1726
- Adds disable static option in MXNet to allow some model running #1735
- Improves Criteria.toBuilder() api #1741
- Fixes serving publish github actions #1742
- Enables better textual description of neural net #1720
- Ignores hidden files for nested model directory #1754
- Creates action to auto-close issues without response #1751
- Builds jni for aarch64 #1756
- Removes unnecessary packages from tensorrt dockerfile #1760
- Adds log for custom Translator loading #1761
- Stores indices with batch #1750
- Adds
put
feature with linear indexing on PyTorch engine #1749 - Adds NDList to IValue unit test #1762
- Makes tensorflow NDArray always dense #1763
- JDK version updated #1767
- Adds IValue Dict(str, IValue) support #1765
- Creates tabular dataset #1699
- Creates PreparedFeaturizer #1700
- Normalizes Numeric Featurizer #1701
- Adds support for registerCustomOpLibrary for ONNXRuntime. #1771
- Implements inverse operation #1768
- Supports Image output for ImageServingTranslator #1772
- Allows user specify model name in serving.properties file #1780
- Adds model zoo implementation #1781
- Change the sagemaker model to s3 #1769
- Improvements to image coloring #1784
- Updates bert classification notebook to reflect changes in CSVDataset #1786
- Paddle model zoo should not have compile time dependency on opencv #1785
Documentation and Examples
- Updates README for 0.17.0 Release #1646
- Increases DJL Version for main branchhttps://github.com//pull/1644
- Fixes broken and redirected links #1647
- Clarifies typo in example documentation #1685
- Fixes javadoc error in JDK 1.8 #1698
- Update description for latest javadoc location #1708
- Creates README for DJL Android PyTorch 1.11 builds #1704
- Adds serving to docs site #1715
- Fixes broken javadoc links in jupyter notebooks #1722
- Readme updates for PyTorch 1.11 #1709
- Updates CVSDataset example README file #1729
- Updates document to use MXNet 1.9.0 #1737
- Adds documentation on loading TF extension libraries for running certa… #1776
- Adds semantic segmentation example #1764
Breaking Changes
The following changes to api.djl.basicdataset.tabular may cause backwards incompatibility:
- Features and Featurizers have been refactored out of the CSVDataset class. The are now present in ai.djl.basicdataset.tabular.utils
- CSVDataset now extends a new abstract class, TabularDataset
- api.djl.basicdataset.utils.DynamicBuffer implementation has moved to api.djl.basicdataset.tabular.utils.DynamicBuffer
Bug Fixes
- [TensorFlow] fix GPU memory leak #1648
- [tensorrt] Fixes native library path #1650
- Fixes bug in NDArray.oneHot() API #1661
- Fix errors in "getIoU" function #1687
- Follow symlinks when loading models. #1692
- [pytorch] Fixes model loading bug for 1.11.0 #1705
- Ensure PreparedOneHotStringFeaturizer encodes categorical mappings co… #1723
- [tensorflow] Avoid NPE in TfEngine #1734
- [m1] Fix test failure on macOS M1 machine by @frankfliu in #1777
Contributors
@dandansamax
@DiaaAj
@frankfliu
@WHALEEYE
@patins1
@JohnDoll2023
@KexinFeng
@Konata-CG
@pdradx
@lanking520
@siddvenk
@LanAtGitHub
@warthecatalyst
@zachgk
@freemanliu
@liumingxiy
New Contributors
- @Konata-CG made their first contribution in #1598
- @pdradx made their first contribution in #1661
- @JohnDoll2023 made their first contribution in #1685
- @liumingxiy made their first contribution in #1687
- @LanAtGitHub made their first contribution in #1679
- @freemanliu made their first contribution in #1692
- @DiaaAj made their first contribution in #1666
- @warthecatalyst made thei...