Releases: deepjavalibrary/djl
DJL v0.34.0 Release
Key Changes
Enhancements
- [api] Adds FUSE based repository support by @raymondkhliu in #3695
- Treat model server as a remote model by @xyang16 in #3704
- Align ZeroShotClassificationTranslator with Hugging Face behavior by @raphaeldelio in #3712
- Remove usage of UUID.randomUUID() for better performance by @aakashb-kayzen in #3719
- Replace UUID with NDManager.nextUid() by @xyang16 in #3720
- Add NDArray diagonal by @dev-jonghoonpark in #3724
- [api] Implements remote REST API call as a model by @bryanktliu in #3725
- Adds jsonlines streaming support for RpcEngine by @bryanktliu in #3727
- Adds genai extension by @bryanktliu in #3726
- [genai] tool calls to ChatInput by @bryanktliu in #3728
- Add utility class for genai function call by @bryanktliu in #3729
- Improve function call for genai extension by @bryanktliu in #3731
- Support convert ChatInput to GeminiInput by @bryanktliu in #3739
- Add partial support for HuggingFace Tokenizer to use parameters from tokenizer_config.json by @Soha-Agarwal in #3738
- Add Anthropic support from genai by @bryanktliu in #3759
Bug Fixes
- Correct CaptchaDataset options count to prevent torch.gather IndexError by @xinhuagu in #3694
- Fix dimension check when reshaping offsets in SeqBatcher by @xinhuagu in #3702
- Fix the incorrect function name and minor typo in doc by @xinhuagu in #3703
- Fix incorrect return value in getImageHeight method by @xinhuagu in #3706
- [djl_converter]: Fixes djl_converter bug by @raymondkhliu in #3705
- Fix the out of bounds exception when using an init image by @luke-zhou in #3717
- Fix earlystopping metric issue #3722 by @SamBSalgado in #3736
- [tokenizers] Fix tokenizer cpu and cuda build by @xyang16 in #3756
- [examples] Update tfhub urls by @xyang16 in #3752
- Update tfhub repository url by @xyang16 in #3755
Documentation
CI/CD
- increase build version to 0.34.0 by @siddvenk in #3689
- Uses new recommended way to build pip wheel by @raymondkhliu in #3709
- Bump protobuf from 3.20.2 to 4.25.8 in /extensions/tokenizers/src/main/python by @dependabot[bot] in #3716
- [android] Upgrade DJL version to 0.34.0 by @xyang16 in #3721
- [ci] simplify nightly publish workflow by @xyang16 in #3732
- [ci] Update maven central publish url and credential by @xyang16 in #3748
- [djl-converter] Update license in pyproject.toml by @xyang16 in #3749
- [pytorch] Updates PyTorch to 2.7.1 by @xyang16 in #3733
- [ci] Remove serving-publish workflow by @xyang16 in #3750
- Update oss sonatype snapshot repository url by @xyang16 in #3754
- Upgrade dependency versions by @xyang16 in #3762
- [android] Upgrade pytorch version to 2.7.1 by @xyang16 in #3763
- [ci] Add post-publish task by @xyang16 in #3764
- Increase DJL version to 0.34.0 by @Soha-Agarwal in #3758
New Contributors
- @raymondkhliu made their first contribution in #3695
- @raphaeldelio made their first contribution in #3712
- @luke-zhou made their first contribution in #3717
- @aakashb-kayzen made their first contribution in #3719
- @dev-jonghoonpark made their first contribution in #3724
- @Soha-Agarwal made their first contribution in #3738
- @SamBSalgado made their first contribution in #3736
Full Changelog: v0.33.0...v0.34.0
DJL v0.33.0 Release
Key Changes
- Engine Updates
- OnnxRuntime Updated to 1.21.0
Enhancements
- [tokenizers] Add lasttoken pooling by @xyang16 in #3607
- [api] Provide concrete implementation of TranslatorContext by @xyang16 in #3622
- [api] Add zero shot object detection support by @xyang16 in #3626
- [api] Adds zero short image classification support by @xyang16 in #3628
- Adds yolov8s-world2 model support by @xyang16 in #3637
- [tensorflow] Allow retrieving available signatures for TensorFlow models by @xyang16 in #3638
- [api] Improve listModel performance by @xyang16 in #3641
- [tokenizers] Adds SparseRetrievalTranslator by @xyang16 in #3642
- [tokenizers] Fix tokenizer name in tests by @xyang16 in #3652
- [tokenizer] Updates tokenizers to 0.21.1 by @xyang16 in #3654
- [onnxruntime] Updates OnnxRuntime to 1.21.0 by @xyang16 in #3678
- [examples] Add WhisperJet model demo by @xyang16 in #3681
- [pytorch] Add diff support by @saedmanaf in #3663
Bug Fixes
- [examples] fixing some dependencies and test requirements by @sindhuvahinis in #3605
- [onnxruntime] Fixes intraOpNumThreads bug by @xyang16 in #3630
- [ci] Fixes build.gradle for integration by @xyang16 in #3635
- [ci] Fixes system properties in gradle build script by @xyang16 in #3636
- Fix: Corrected 16-bit PCM normalization to avoid overflow issue by @leleZeng in #3646
- Fix rust build with update candle-core the 0.8.4 version by @xyang16 in #3645
- Fixed rust build with update candle-core the 0.8.4 version by @xyang16 in #3649
- [fix] LRUReplayBuffer "stepToReplace" index fix by @dwctic in #3660
Documentation
- docs: added a link to the continuous badge by @operagxoksana in #3668
- [doc] Update onnxruntime readme by @xyang16 in #3669
- chore: edited badges by @operagxoksana in #3670
- chore: added an icon to the release by @operagxoksana in #3671
- Correct 'Load Model' documentation: method ImageClassificationTranslator.builder().setSynsetArtifactName() does not exist by @xinhuagu in #3677
CI/CD
- [release] Release DJL 0.32.0 by @sindhuvahinis in #3603
- bump build version to 0.33.0 by @siddvenk in #3627
- [ci] Upgrade gradle to 8.13 by @xyang16 in #3650
- [ci] Fixes CI build for cmake 4.0.0 by @xyang16 in #3659
- Bump openssl from 0.10.71 to 0.10.72 in /extensions/tokenizers/rust by @dependabot in #3661
- update some dependency versions by @siddvenk in #3665
- remove status from log4j configuration of status logger by @siddvenk in #3667
- Remove unnecessary exclusion for testng by @xyang16 in #3687
- Updates dependencies version by @xyang16 in #3688
- [onnx] use zulu jdk to fix windows issues by @siddvenk in #3683
- [onnx] fix one more usage of java distribution to zulu for windows by @siddvenk in #3684
New Contributors
- @leleZeng made their first contribution in #3646
- @dwctic made their first contribution in #3660
- @saedmanaf made their first contribution in #3663
- @xinhuagu made their first contribution in #3677
Full Changelog: v0.32.0...v0.33.0
DJL v0.32.0 Release
Key Changes
- Engine Updates
- Tokenizers updated to 0.21.0
- OnnxRuntime updated to 1.20.0
Enhancements
- [pytorch] support pytorch 2.1.2 for Neuron by @siddvenk in #3542
- [onnxruntime] Updates OnnxRuntime engine to 1.20.0 by @xyang16 in #3549
- [tokenizers] Return detail for QA inference by @xyang16 in #3555
- [api] Allows to configure custom batchifer by @xyang16 in #3559
- [tokenizer] Updates huggingface tokenizer to 0.21.0 by @xyang16 in #3572
- [tokenizers] Add int32 option to encoding by @xyang16 in #3571
- [api] Adds ZeroShotClassification support by @bryanktliu in #3579
- [tokenizers] Support import zero-shot-classification to model zoo by @bryanktliu in #3580
- [FASTTEXT] Adds linux-aarch64 support by @iamshubhambhola in #3584
- Expose OnnxRuntime's getMetadata() in DJL API by @VanjaRadulovic in #3596
- [api] Refactor image processing by @xyang16 in #3588
- Adds zero-shot-classification to model zoo by @xyang16 in #3589
- [api] Adds Pad image transform for CV by @xyang16 in #3593
Bug Fixes
- [api] fix issue in Tar/Zip Utils that resulted in incorrect artifact … by @siddvenk in #3544
- [tokenizer] fixes token_classification import issues by @bryanktliu in #3570
- [tokenizer] fixes trust_remote_code issues for DJL converter by @bryanktliu in #3569
- [fix] Fix YoloV8Translator by @xyang16 in #3575
- [tokenizers] Fixes ZeroShotClassificationTranslator bug by @bryanktliu in #3581
- [xgb] Fix xgb intern to close replaced array by @ewan0x79 in #3558
Documentation
- [pytorch] Update supported versions of pytorch for 0.32.0 by @siddvenk in #3541
- Update README.md (fix typo) by @paulk-asert in #3576
- Docs: (Readme) by @Lubov66 in #3577
CI/CD
- Increase build version to 0.32.0 by @siddvenk in #3540
- [ci] fix ci to test windows properly by @siddvenk in #3543
- [ci] adding back serving.publish to DJL by @sindhuvahinis in #3551
- [ci] adding back serving.publish to DJL by @sindhuvahinis in #3551
- [djl-convert] Remove onnxruntime from djl-convert requirements.txt by @xyang16 in #3550
- [djl-convert] Remove onnxruntime from djl-convert requirements by @xyang16 in #3552
- Fixes java23 compile error by @xyang16 in #3556
- [fix][ci] don't compile fasttext jni for windows by @siddvenk in #3590
- [ci] Upgrade gradle to 8.12 by @xyang16 in #3573
- [ci][docs] enable debug logging for s3 commands to troubleshoot failu… by @siddvenk in #3591
- [ci] Update upload-artifact action to v4 by @xyang16 in #3594
- [fix] Fix the pytorch-native ci failure by @xyang16 in #3595
- [ci] Fix nightly publish upload artifact name by @xyang16 in #3597
- Implement NDArray.sub operation by @xyang16 in #3598
- [ci] Fix continuous ci failure by @xyang16 in #3599
- [ci] Fix ClipModelTest assertion failure by @sindhuvahinis in #3602
New Contributors
- @paulk-asert made their first contribution in #3576
- @Lubov66 made their first contribution in #3577
- @iamshubhambhola made their first contribution in #3584
- @VanjaRadulovic made their first contribution in #3596
Full Changelog: v0.31.1...v0.32.0
DJL v0.31.1 Release
Key Changes
- Engine Updates:
- Added Android support for HuggingFace Tokenizers @naveen521kk in #3531
- Fixed issue with cross-platform archive extraction #3544
Enhancements
- [api] Use encoder/decoder for Segment anython2 translator by @frankfliu in #3487
- [api] alternative NDArray should not be closed in NDScope by @frankfliu in #3490
- [api] Adds sam2 model to onnxruntime model zoo by @frankfliu in #3492
- [api] Standardizes CV output format by @frankfliu in #3493
- [api] Visualize sam2 output for Sam2ServingTranslator by @frankfliu in #3494
- [api] Improve Sam2Translator for PyTorch traced model by @frankfliu in #3495
- [android] Update pytorch version to 2.4.0 by @xyang16 in #3474
- [tokenizers] Use tokenizers from rust.io by @xyang16 in #3476
- [rust] Remove unnecessary clone in cublaslt by @xyang16 in #3482
- [api] Makes Sam2 input consistent with other CV model by @frankfliu in #3498
- [api] Adds serving support for some CV models by @frankfliu in #3499
- HuggingFaceTokenizer: add support for Android by @naveen521kk in #3531
- [tokenizer] Updates tokenizer to 0.20.3 by @xyang16 in #3514
- [tokenizer] Updates tokenizer to 0.20.3 in libs.versions.toml by @xyang16 in #3515
- [pytorch] Adds Yolo11 model to model zoo by @xyang16 in #3516
- [pytorch] Updates PyTorch to 2.5.1 by @xyang16 in #3517
- [converter] Trim jit output token_str by @xyang16 in #3527
Bug Fixes
- [PyTorch] Fixes sam2 model version by @frankfliu in #3496
- [api] Fixes QaServingTranslator output format by @frankfliu in #3500
- [djl-convert] Fix huggingface converter by @xyang16 in #3505
Documentation
- [docs] Updates PyTorch engine README for 2.4.0 by @frankfliu in #3472
- Docs: Added a link by @operagxoksana in #3510
- [doc] Add blogposts index to docs by @xyang16 in #3519
- [doc] Add blogposts link to README by @xyang16 in #3520
- add lmi breaking changes document to docs site by @siddvenk in #3529
- Update troubleshooting.md - UnsatisfiedLinkError issue by @ThiloteE in #3512
CI/CD
- [fix][ci] configure aws creds manually to avoid node20 issues on inco… by @siddvenk in #3469
- [ci] Updates gradle to 8.10.1 by @frankfliu in #3470
- [ci] configure aws creds manually to avoid node20 issues for AL2 by @frankfliu in #3471
- [ci] Update tensorrt native build container by @xyang16 in #3477
- [ci] Fixes fasttext native build for nodejs20 issue by @xyang16 in #3478
- [ci] Fixes sentencepiece native build for nodejs20 issue by @xyang16 in #3479
- Increase build version to 0.31.0 by @xyang16 in #3475
- [mxnet] Fixes build error on JDK 22 by @frankfliu in #3485
- [ci] Fixes java 21 compile error by @frankfliu in #3497
- Delete serving publish from DJL repo by @brndysgit in #3501
- Bump com.google.protobuf:protobuf-java from 3.25.4 to 3.25.5 by @dependabot in #3502
- dependency updates for djl by @siddvenk in #3528
- Add CI for the hugging face tokenizers android by @naveen521kk in #3532
- CI: setup cargo-ndk for huggingface tokenizers android builds by @naveen521kk in #3535
- update DJL version to 0.31.0 in docs by @siddvenk in #3534
- Fix a typo in
android/tokenizer-native/build.gradle
by @naveen521kk in #3537 - fix dependency versions in examples/pom.xml by @siddvenk in #3539
- [android] fix djl version for android by @siddvenk in #3526
New Contributors
- @brndysgit made their first contribution in #3501
- @operagxoksana made their first contribution in #3510
- @ThiloteE made their first contribution in #3512
- @naveen521kk made their first contribution in #3531
Full Changelog: v0.30.0...v0.31.1
DJL v0.30.0 Release
Key Changes
- Engine Updates:
- Added mask generation task for SAM2 model #3450
- Text Embedding Inference:
- Added Mistral, Qwen2, GTE, Camembert embedding model support
- Added reranker model support
Enhancement
- [api] Avoid non-ascii characters by @frankfliu in #3395
- [djl-converter] Exit with error if convert model failed by @frankfliu in #3399
- [api] Support TEI input format to reranking model by @frankfliu in #3400
- [rust] Adds sigmoid and softmax operator for Rust engine by @frankfliu in #3407
- [test] Detect GPUs with specified engine by @frankfliu in #3409
- [api] Adds Criteria.isDownload() api by @frankfliu in #3403
- [rust] Build .so file for each cuda arch by @frankfliu in #3410
- [rust] Add mistral embedding model by @xyang16 in #3412
- [tokenizers] Add supported arch in djl-convert by @xyang16 in #3416
- [tokenizers] Replace pt file names to safetensors by @xyang16 in #3417
- [rust] Load model on given device by @xyang16 in #3419
- [rust] Add qwen2 model by @xyang16 in #3420
- [rust] Support pre-downloaded rust shared library by @frankfliu in #3421
- [pytorch] Adds pad operator by @frankfliu in #3423
- [rust] Provides better error message for unsupported ops by @frankfliu in #3424
- [api] Adds center fit image operation for Yolo by @frankfliu in #3425
- [rust] Add GTE and Gemma2 model by @xyang16 in #3422
- [djl-convert] Sets default max model size limit for importing by @frankfliu in #3428
- [djl-import] Includes requires version when importing model by @frankfliu in #3431
- [android] Upgrade DJL version to 0.30.0 by @xyang16 in #3432
- [rust] Make cublaslt wrapper non static by @xyang16 in #3434
- [djl-convert] Exclude models in includeTokenTypes by @xyang16 in #3435
- [rust] Make tensor contiguous in rotary embedding by @xyang16 in #3436
- [rust] Allows -1 dim for normalize() by @xyang16 in #3442
- Refactored Identifiers by @congyuluo in #3381
- [rust] Adds text classification models to Rust model zoo by @frankfliu in #3444
- [examples] Adds segment anything 2 example by @frankfliu in #3449
- [api] Refactor ImageFeatureExtractor by @frankfliu in #3455
- [api] Adds base64 image support for ImageTranslator by @frankfliu in #3456
- [djl-import] Improve model import speed by @frankfliu in #3457
- [api] Updates dependencies version to latest by @frankfliu in #3454
- [api] Optimized text embedding post processing performance by @frankfliu in #3459
- add drawMarks to android BitMapImageFactory by @sindhuvahinis in #3460
- [ci] moving to temporary iam credentials for publishing steps by @siddvenk in #3462
- [OnnxRuntime] Update debug log message by @frankfliu in #3463
- Increase DJL version to 0.30.0 by @xyang16 in #3465
- [examples] Adds gradle tasks for each example by @frankfliu in #3466
- Upgrade dependency versions by @xyang16 in #3467
- [tokenizers] Converting encoding to int32 NDList by @xyang16 in #3468
Bug Fixes
- [api] Fixes logging calling convention by @frankfliu in #3394
- [djl-converter] Fixes import text embedding model from local folder by @frankfliu in #3388
- [djl-converter] Fixes djl-convert command line return code by @frankfliu in #3406
- [rust] Fix camembert and distilbert model loading by @xyang16 in #3415
- [rust] Fix camembert model loading by @xyang16 in #3418
- [rust] Fixes memory leak by @frankfliu in #3433
- [djl-convert] Fixes huggingface model converter by @frankfliu in #3440
- [rust] Fix bert model classifier loading by @xyang16 in #3441
- [xgb] Fixes alternative NDArray conversion issue by @frankfliu in #3453
- [djl-import] Fixes missing arguments for onnx import by @frankfliu in #3458
- [ci][fix] use v2 for aws credentials due to glib issues with node 20 by @siddvenk in #3464
Documentation
- [examples] Moves nlp examples into nlp folder by @frankfliu in #3393
- [docs] Build versions.json before mike deploy by @Varun-Dutta in #3392
- [example] Enable PyTorch for some training example by @frankfliu in #3398
- [docs] Updates docs website url by @frankfliu in #3404
- [docs] Fixes broken links in markdown files. by @frankfliu in #3408
- [djl-import] Fixes missing trust-remote-code arg for import model zoo by @frankfliu in #3427
- [docs] Updates trace whisper model document by @frankfliu in #3426
- [tensorflow] Updates tensorflow document by @frankfliu in #3430
- [docs] Adds segment anything document by @frankfliu in #3451
CI/CD
- [ci] Fixes serving publish for awscurl release version by @frankfliu in #3411
- [ci] Remove no_response workflow by @xyang16 in #3429
Full Changelog: v0.29.0...v0.30.0
DJL v0.28.0 Release
Key Changes
- Upgrades for engines
- Enhancements for engines and API
- Adds experimental Rust engine #3078
Enhancement
- [api] Automatically detect translatorFactory based on task by @frankfliu in #3136
- [api] Adds OnesBlockFactory to make it easy for testing by @frankfliu in #3140
- Ensure the alternative ND manager can use GPUs by @david-sitsky in #3138
- [api] Tries to use the same device for alternative NDManager by @frankfliu in #3146
- [api] Supports serialize NaN in json by @frankfliu in #3156
- [rust] Add rust engine implemenation by @frankfliu in #3078
- [rust] Adds Rust model zoo by @frankfliu in #3132
- [rust] Support load DJL model for RsModel by @frankfliu in #3147
- [rust] RsModel delete model in close by @xyang16 in #3170
- [tokenizers] Updates tokenizer to 0.19.1 by @frankfliu in #3143
- [tokenizer] Allows use HF_TOKEN to access gated model by @frankfliu in #3150
- [tokenizers] Create djl_converter package by @xyang16 in #3172
- [tokenizer] Refactor djl_convert python code by @frankfliu in #3179
- Updates on djl_converter by @xyang16 in #3187
- [pytorch] Updates PyTorch to 2.2.2 by @frankfliu in #3155
- [pytorch] Update PyTorch engine README for version 2.2.2 by @frankfliu in #3165
- [pytorch] optimize memory copy cost for pytorch NDArray by @ewan0x79 in #3137
- [pytorch] Updates PyTorch to 2.3.0 by @frankfliu in #3192
- [sentencepiece] Updates sentencepiece to 0.2.0 by @frankfliu in #3163
- [huggingface] Adds more option to convert onnx model by @frankfliu in #3180
Bug Fixes
- [gitignore] Avoid checking binary files. by @frankfliu in #3134
- [api] Closes file stream by @frankfliu in #3130
- [api] Fixes logging invoke convention by @frankfliu in #3148
- [api] Fixes Criteria.toString() bug by @frankfliu in #3151
- [api] Fixes tarslip issue by @frankfliu in #3075
- [examples] Fixes TextGeneration EOS bug by @frankfliu in #3177
- [tokenizer] Fixes model zoo import script by @frankfliu in #3126
- [Lgbm] fix LgbmNDArray replaced.close() release data problem by @ewan0x79 in #3174
- [rust] Fixes compile warnings by @frankfliu in #3189
- [ci] Fixes pytorch jni build for 1.13.1 by @frankfliu in #3184
- [ci] Fixes awscurl publish location by @frankfliu in #3182
- [ci] Fixes build on macOS aarch64 machine by @frankfliu in #3191
- [ci] Fixes nightly pytorch jni build by @frankfliu in #3196
Documentation
- [examples] Re-organize CV examaples by @frankfliu in #3135
- [examples] Prepare for MXNet deprecation by @frankfliu in #3157
- [doc] Removes mention of future lab by @zachgk in #3154
- [docs] Updates docs for setup java on mac by @frankfliu in #3188
- [website] Remove live demo from djl.ai web page by @frankfliu in #3171
- Fixed Typo in Docs by @fensch in #3193
- Update README.md by @elect86 in #3195
CI/CD
- [ci] Update github action runner to macOS x86_64 instance by @frankfliu in #3144
- [ci] Updates google code formatter to 1.22.0 by @frankfliu in #3149
- [ci] Upgrades gradle to 8.5 by @frankfliu in #3153
- [ci] Updates dependencies version by @frankfliu in #3164
- [ci] Adds cuda version as github actions parameter for Pytorch JNI build by @frankfliu in #3185
New Contributors
- @david-sitsky made their first contribution in #3138
- @elect86 made their first contribution in #3195
Full Changelog: v0.27.0...v0.28.0
DJL v0.29.0 Release
Key Changes
-
Upgrades for engines
- Upgrades PyTorch engine to 2.3.1
- Upgrades TensorFlow engine to 2.16.1
- Introduces Rust engine CUDA support
- Upgrades OnnxRuntime version to 1.18.0 and added CUDA 12.4 support
- Upgrades javacpp version to 1.5.10
- Upgrades HuggingFace tokenizer to 0.19.1
- Fixes several issues for LightGBM engine
- Deprecated llamacpp engine
-
Enhancements for engines and API
- Adds Yolov8 segmentation and pose detection support
- Adds metric type to Metic class
- Improves drawJoints and drawMask behavior for CV model
- Improves HuggingFace model importing and conversion tool
- Improves HuggingFace NLP model batch inference performance
- Adds built-in ONNX extension support
- Adds several NDArray operators in PyTorch engine
- Adds fp16 and bf16 support for OnnxRuntime engine
- Adds CrossEncoder support for NLP models
Enhancements
- Adds metric type to Metic class by @frankfliu in #3244
- Improves drawJoints behavior by @frankfliu in #3305
- [api] Allows to control json pretty print with env var by @frankfliu in #3288
- [api] Avoid null dimensions for Metric by @frankfliu in #3246
- [api] Improve NDArray.toDebugString() output by @frankfliu in #3290
- [api] Loads native engine in deterministic order by @frankfliu in #3300
- [api] Refactor drawMask() for instance segmentation by @frankfliu in #3304
- [api] Refactor nms for yolo translator by @frankfliu in #3297
- add close method to all nd manager by @lanking520 in #3225
- ported tools/stats.gradle by @elect86 in #3219
- use standard GSON output by @lanking520 in #3284
- [enhancement] Optimize memory copy overhead to enhance performance. by @ewan0x79 in #3289
- Gradle Kotlin script plus other stuff by @elect86 in #3167
- Improved incremental build by @benjie332 in #3231
- Refactored Identifiers by @congyuluo in #3276
- Refactored Identifiers by @congyuluo in #3282
- [gradle] Remove unused gradle files by @frankfliu in #3280
- [jacoco] exclude spark extension since it doesnot contain test by @frankfliu in #3230
- [Lgbm] support multi classification by @ewan0x79 in #3234
- [Lgbm] support multi type prediction by @ewan0x79 in #3237
- [llamacpp] Removing llamacpp support in DJL by @frankfliu in #3312
- [mxnet-model-zoo] Adds missing translatorFactory in metadata by @frankfliu in #3279
- [onnx] Adds fp16 and bfp16 support for OnnxRuntime by @frankfliu in #3281
- [onnxruntime] Add debug message for OnnxRuntime by @xyang16 in #3217
- [onnxruntime] Adds yolov8n pose model for OnnxRuntime by @frankfliu in #3309
- [onnxruntime] Adds yolov8n-seg model to onnxruntime model zoo by @frankfliu in #3310
- [onnxruntime] Load onnx extenstion if available by @frankfliu in #3333
- [pytorch] Adds Yolov8n-seg model to model zoo by @frankfliu in #3308
- [pytorch] Adds back PyTorch 2.1.2 support by @frankfliu in #3285
- [pytorch] Adds yolov8n pose estimation model by @frankfliu in #3298
- [pytorch] Implements gammaln operator for PyTorch by @frankfliu in #3262
- [pytorch] Split maven publish into two parts by @frankfliu in #3273
- [rust] Add tokenizer cuda build workflow by @xyang16 in #3322
- [rust] Allows -2 as dims for sum() by @frankfliu in #3221
- [rust] Change loging level to debug by @xyang16 in #3336
- [rust] Download cu124 jni library for cuda by @xyang16 in #3327
- [rust] Remove 0-dimension tensor compare in NDArrayTests by @xyang16 in #3320
- [rust] Update gpu build pipeline to cu122 by @xyang16 in #3334
- [rust] Upgrade candle version by @xyang16 in #3248
- [rust] Use fused layer by @xyang16 in #3260
- [spark] Do not support model_url by @xyang16 in #3224
- [spark] Update dependency versions by @xyang16 in #3241
- [spark] Updates spark version to 3.5.1 by @frankfliu in #3240
- [spark] Use batch predict API by @xyang16 in #3242
- [text-embedding] Remove CrossEncoderTranslatorFactory in favor of TextEmbeddingTranslatorFactory by @frankfliu in #3239
- [tokenizer] Adds maxos-13 support back by @frankfliu in #3328
- [tokenizer] Ensure GPU is used in TextEmbeddingTranslator by @david-sitsky in #3212
- [tokenizer] Process text embedding input and output in stacked NDArray by @xyang16 in #3213
- [tokenizer] Recover accidentally deleted file by @frankfliu in #3311
- [tokenizer] Supports cross encoder for text classification model by @frankfliu in #3338
- [tokenizers] Download jni lib files for cuda by @xyang16 in #3326
Bug Fixes
- [api] Fix unitest in GPU docker running on CPU case by @frankfliu in #3228
- [api] Fixes IdEmbedding memory leak by @frankfliu in #3257
- [api] Fixes nightly tests on GPU machine by @frankfliu in #3302
- [api] Fixes unitest by @frankfliu in #3210
- [fix] fix lgbm bytebuffer native order by @ewan0x79 in #3258
- Fix
Application.of
missing some applications by @tadayosi in #3277 - [mxnet] Fixes GloveWordEmbeddingTranslator bug by @frankfliu in #3287
- [pytorch-model-zoo]: fix PtSsdTranslator.Builder.self() by @eversnarf in #3204
- [pytorch] Fixes PyTorch 2.3.1 windows dependencies by @frankfliu in #3269
- [pytorch] Fixes PyTorch 2.3.1 windows dependencies by @frankfliu in #3270
- [pytorch] Fixes uploadS3 gradle task by @frankfliu in #3263
- [rust] Fix NDArrayTests failure on cuda by @xyang16 in #3319
- [rust] Fix deleteModel error by @xyang16 in #3229
- [rust] Fix output tensor dtype by @xyang16 in #3249
- [rust] Fix tokenizer cuda pipeline name by @frankfliu in #3325
- [rust] Fixes test failure on GPU by @frankfliu in #3301
- [timeseries] Fixes contentLength issue for inference by @frankfliu in #3306
- [timeseries] Fixes duration format issue by @frankfliu in #3307
- [tensorrt] Fixes gradle biuld script by @frankfliu in #3253
- [tokenizer] Fixes detect include token type logic by @frankfliu in #3318
- [tokenizer] Fixes tokenizer build workflow by @frankfliu in #3323
- [tokenizers] Fixes huggingface build for Windows by @frankfliu in #3330
- [tokenizers] Fixes memory leak when there is overflowing tokens by @baldersheim in #3317
- [xgb] Fixes gradle build script by @frankfliu in #3254
Documentation
- [doc] add output formatter schema to LMI docs.djl.ai by @sindhuvahinis in #3268
- [doc] add release notes to docs.djl.ai by @sindhuvahinis in #3266
- [docs] Bump up DJL version to 0.28.0 by @frankfliu in #3247
- [docs] Update example reference by @emmanuel-ferdman in #3275
- [docs] add dark theme and fixed broken link by @Varun-Dutta in #3295
- [example] Adds PyTorch action recognition model to model zoo...
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.9.0 release note
DJL 0.9.0 brings MXNet inference optimization, abundant PyTorch new feature support, TensorFlow windows GPU support and experimental DLR engine that support TVM models.
Key Features
- Add experimental DLR engine support. Now you can run TVM model with DJL
MXNet
- Improve MXNet JNA layer by reusing String, String[] and PointerArray with object pool which reduce the GC time significantly
PyTorch
- you can easily create COO Sparse Tensor with following code snippet
long[][] indices = {{0, 1, 1}, {2, 0, 2}};
float[] values = {3, 4, 5};
FloatBuffer buf = FloatBuffer.wrap(values);
manager.createCoo(FloatBuffer.wrap(values), indices, new Shape(2, 4));
- If the input of your TorchScript model need List or Dict type, we now add simple one dimension support for you.
// assum your torchscript model takes model({'input': input_tensor})
// you tell us this kind of information by setting the name
NDArray array = manager.ones(new Shape(2, 2));
array.setName("input1.input");
- we support loading ExtraFilesMap
// saving ExtraFilesMap
Criteria<Image, Classifications> criteria = Criteria.builder()
...
.optOption("extraFiles.dataOpts", "your value") // <- pass in here
...
TensorFlow
- Windows GPU is now supported
Several Engines upgrade
Engine | version |
---|---|
PyTorch | 1.7.0 |
TensorFlow | 2.3.1 |
fastText | 0.9.2 |
Enhancement
- Add docker file for serving
- Add Deconvolution support for MXNet engine
- Support PyTorch COO Sparse tensor
- Add CSVDataset, you can find a sample usage here
- Upgrade TensorFlow to 2.3.1
- Upgrade PyTorch to 1.7.0
- Add randomInteger operator support for MXNet and PyTorch engine
- Add PyTorch Profiler
- Add TensorFlow Windows GPU support
- Support loading the model from jar file
- Support 1-D list and dict input for TorchScript
- Remove the Pointer class being used for JNI to relieve Garbage Collector pressure
- Combine several BertVocabulary into one Vocabulary
- Add loading the model from Path class
- Support ExtraFilesMap for PyTorch model inference
- Allow both int32 & int64 for prediction & labels in TopKAccuracy
- Refactor MXNet JNA binding to reduce GC time
- Improve PtNDArray set method to use ByteBuffer directly and avoid copy during tensor creation
- Support experimental MXNet optimizeFor method for accelerator plugin.
Documentation and examples
- Add Amazon Review Ranking Classification
- Add Scala Spark example code on Jupyter Notebook
- Add Amazon SageMaker Notebook and EMR 6.2.0 examples
- Add DJL benchmark instruction
Bug Fixes
- Fix PyTorch Android NDIndex issue
- Fix Apache NiFi issue when loading multiple native in the same Java process
- Fix TrainTicTacToe not training issue
- Fix Sentiment Analysis training example and FixedBucketSampler
- Fix NDArray from DataIterable not being attaching to NDManager properly
- Fix WordPieceTokenizer infinite loop
- Fix randomSplit dataset bug
- Fix convolution and deconvolution output shape calculations
Contributors
Thank you to the following community members for contributing to this release:
Frank Liu(@frankfliu)
Lanking(@lanking520)
Kimi MA(@kimim)
Lai Wei(@roywei)
Jake Lee(@stu1130)
Zach Kimberg(@zachgk)
0xflotus(@0xflotus)
Joshua(@euromutt)
mpskowron(@mpskowron)
Thomas(@thhart)
DocRozza(@docrozza)
Wai Wang(@waicool20)
Trijeet Modak(@uniquetrij)
DJL v0.7.0 release notes
DJL 0.7.0 brings SetencePiece for tokenization, GravalVM support for PyTorch engine, a new set of Nerual Network operators, BOM module, Reinforcement Learning interface and experimental DJL Serving module.
Key Features
- Now you can leverage powerful SentencePiece to do text processing including tokenization, de-tokenization, encoding and decoding. You can find more details on extension/sentencepiece.
- Engine upgrade:
- MXNet engine: 1.7.0-backport
- PyTorch engine: 1.6.0
- TensorFlow: 2.3.0
- MXNet multi-gpu training now is boosted by MXNet KVStore by default, which saves lots of overhead by GPU memory copy.
- GraalVM are fully supported on both of regular execution and native image for PyTorch engine. You can find more details on GraalVM example.
- Add a new set of Neural Network operators that offers capability of full controlling over parameters for CV domain, which is similar to PyTorch nn.functional module. You can find the operator method in its Block class.
Conv2d.conv2d(NDArray input, NDArray weight, NDArray bias, Shape stride, Shape padding, Shape dilation, int groups);
- Bill of Materials (BOM) is introduced to manage the version of dependencies for you. In DJL, the engine you are using usually is tied to a specific version of native package. By easily adding BOM dependencies like this, you won’t worry about version anymore.
<dependency>
<groupId>ai.djl</groupId>
<artifactId>bom</artifactId>
<version>0.7.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
implementation platform("ai.djl:bom:0.7.0")
- JDK 14 now get supported
- New Reinforcement Learning interface including RIAgent, RlEnv, etc, you can see a comprehensive TicTacToe example.
- Support DJL Serving module. With only a single command, now you can enjoy deploying your model without bothering writing the server code or config like server proxy.
cd serving && ./gradlew run --args="-m https://djl-ai.s3.amazonaws.com/resources/test-models/mlp.tar.gz"
Documentation and examples
- We wrote the D2L book from chapter 1 to chapter 7 with DJL. You can learn basic deep learning concept and classic CV model architecture with DJL. Repo
- We launched a new doc website that hosts abundant documents and tutorials for quick search and copy-paste.
- New Online Sentiment Analysis with Apache Flink.
- New CTR prediction using Apache Beam and Deep Java Library(DJL).
- New DJL logging configuration document which includes how to enable slf4j, switch to other logging libraries and adjust log level to debug the DJL.
- New Dependency Management document that lists DJL internal and external dependencies along with their versions.
- New CV Utilities document as a tutorial for Image API.
- New Cache Management document is updated with more detail on different categories.dependency management.
- Update Model Loading document to describe loading model from various sources like s3, hdfs.
Enhancement
- Add archive file support to SimpleRepository
- ImageFolder supports nested folder
- Add singleton method for LambdaBlock to avoid redundant function reference
- Add Constant Initializer
- Add RMSProp, Adagrad, Adadelta Optimizer for MXNet engine
- Add new tabular dataset: Airfoil Dataset
- Add new basic dataset: CookingExchange, BananaDetection
- Add new NumPy like operators: full, sign
- Make prepare() method in Dataset optional
- Add new Image augmentation APIs where you can add to Pipeline to enrich your image dataset
- Add new handy fromNDArray to Image API for converting NDArray to Image object quickly
- Add interpolation option for Image Resize operator
- Support archive file for s3 repository
- Import new SSD model from TensorFlow Hub into DJL model zoo
- Import new Sentiment Analysis model from HuggingFace into DJL model zoo
Breaking changes
- Drop CUDA 9.2 support for all the platforms including linux, windows
- The arguments of several blocks are changed to align with the signature of other widely used Deep Learning frameworks, please refer to our Java doc site
- FastText is no longer a full Engine, it becomes a part of NLP utilities in favor of
FastTextWorkEmbedding
- Move the WarmUp out from existing Tracking and introduce new
WarmUpTracker
MxPredictor
now doesn’t copy parameters by default, please make sure to useNaiveEngine
when you run inference in multi-threading environment
Bug Fixes
- Fixing Validation Epoch Result bug
- Fix multiple process downloading the same model bug
- Fix potential concurrent write bug while downloading metadata.json
- Fix URI parsing error on Windows
- Fix multi-gpu training crash when the number of the batch size is smaller than number of devices
- Fix not setting number of inter-op threads for PyTorch engine
Contributors
Thank you to the following community members for contributing to this release:
Christoph Henkelmann, Frank Liu, Jake Cheng-Che Lee, Jake Lee, Keerthan Vasist, Lai Wei, Qing Lan, Victor Zhu, Zach Kimberg, aksrajvanshi, gstu1130, 蔡舒起