clarifai 9.10.2__py3-none-any.whl → 9.10.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- clarifai/client/__init__.py +3 -2
- clarifai/client/app.py +39 -23
- clarifai/client/base.py +6 -6
- clarifai/client/dataset.py +113 -55
- clarifai/client/input.py +47 -55
- clarifai/client/model.py +27 -25
- clarifai/client/module.py +13 -11
- clarifai/client/runner.py +5 -3
- clarifai/client/search.py +7 -3
- clarifai/client/user.py +14 -8
- clarifai/client/workflow.py +22 -20
- clarifai/constants/dataset.py +22 -0
- clarifai/datasets/upload/base.py +9 -7
- clarifai/datasets/upload/features.py +3 -3
- clarifai/datasets/upload/image.py +49 -50
- clarifai/datasets/upload/loaders/coco_captions.py +26 -80
- clarifai/datasets/upload/loaders/coco_detection.py +56 -115
- clarifai/datasets/upload/loaders/coco_segmentation.py +69 -137
- clarifai/datasets/upload/loaders/imagenet_classification.py +2 -3
- clarifai/datasets/upload/loaders/xview_detection.py +3 -3
- clarifai/datasets/upload/text.py +16 -16
- clarifai/datasets/upload/utils.py +196 -21
- clarifai/utils/misc.py +21 -0
- clarifai/versions.py +1 -1
- {clarifai-9.10.2.dist-info → clarifai-9.10.3.dist-info}/METADATA +3 -3
- clarifai-9.10.3.dist-info/RECORD +96 -0
- clarifai-9.10.3.dist-info/top_level.txt +1 -0
- clarifai/auth/__init__.py +0 -6
- clarifai/auth/helper.py +0 -367
- clarifai/auth/register.py +0 -23
- clarifai/auth/stub.py +0 -127
- clarifai/datasets/upload/examples/README.md +0 -31
- clarifai/datasets/upload/examples/image_classification/__init__.py +0 -0
- clarifai/datasets/upload/examples/image_classification/cifar10/__init__.py +0 -0
- clarifai/datasets/upload/examples/image_classification/cifar10/cifar_small_test.csv +0 -10
- clarifai/datasets/upload/examples/image_classification/cifar10/cifar_small_train.csv +0 -10
- clarifai/datasets/upload/examples/image_classification/cifar10/dataset.py +0 -46
- clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_700.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_701.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_702.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_703.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_704.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_705.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_706.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_707.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_708.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/cifar10/images/test_batch_709.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/__init__.py +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/dataset.py +0 -39
- clarifai/datasets/upload/examples/image_classification/food-101/images/beignets/1420783.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/beignets/3287885.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/beignets/3617075.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/beignets/38052.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/beignets/39147.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/hamburger/139558.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/hamburger/1636096.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/hamburger/2480925.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/hamburger/3385808.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/hamburger/3647386.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/prime_rib/1826869.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/prime_rib/2243245.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/prime_rib/259212.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/prime_rib/2842688.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/prime_rib/3035414.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/ramen/1545393.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/ramen/2427642.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/ramen/3520891.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/ramen/377566.jpg +0 -0
- clarifai/datasets/upload/examples/image_classification/food-101/images/ramen/503504.jpg +0 -0
- clarifai/datasets/upload/examples/text_classification/__init__.py +0 -0
- clarifai/datasets/upload/examples/text_classification/imdb_dataset/__init__.py +0 -0
- clarifai/datasets/upload/examples/text_classification/imdb_dataset/dataset.py +0 -42
- clarifai/datasets/upload/examples/text_classification/imdb_dataset/test.csv +0 -201
- clarifai/datasets/upload/examples/text_classification/imdb_dataset/train.csv +0 -201
- clarifai/datasets/upload/loaders/README.md +0 -49
- clarifai/models/model_serving/README.md +0 -155
- clarifai/models/model_serving/docs/custom_config.md +0 -33
- clarifai/models/model_serving/docs/dependencies.md +0 -11
- clarifai/models/model_serving/docs/inference_parameters.md +0 -134
- clarifai/models/model_serving/docs/model_types.md +0 -20
- clarifai/models/model_serving/docs/output.md +0 -28
- clarifai/models/model_serving/examples/README.md +0 -7
- clarifai/models/model_serving/examples/image_classification/README.md +0 -9
- clarifai/models/model_serving/examples/image_classification/age_vit/1/vit-age-classifier/README.md +0 -11
- clarifai/models/model_serving/examples/image_classification/age_vit/1/vit-age-classifier/config.json +0 -42
- clarifai/models/model_serving/examples/image_classification/age_vit/1/vit-age-classifier/preprocessor_config.json +0 -15
- clarifai/models/model_serving/examples/image_classification/age_vit/config.pbtxt +0 -23
- clarifai/models/model_serving/examples/image_classification/age_vit/labels.txt +0 -9
- clarifai/models/model_serving/examples/image_classification/age_vit/requirements.txt +0 -7
- clarifai/models/model_serving/examples/text_classification/README.md +0 -9
- clarifai/models/model_serving/examples/text_classification/xlm-roberta/1/twitter-xlm-roberta-base-sentiment/README.md +0 -12
- clarifai/models/model_serving/examples/text_classification/xlm-roberta/1/twitter-xlm-roberta-base-sentiment/config.json +0 -34
- clarifai/models/model_serving/examples/text_classification/xlm-roberta/1/twitter-xlm-roberta-base-sentiment/special_tokens_map.json +0 -1
- clarifai/models/model_serving/examples/text_classification/xlm-roberta/config.pbtxt +0 -21
- clarifai/models/model_serving/examples/text_classification/xlm-roberta/labels.txt +0 -3
- clarifai/models/model_serving/examples/text_classification/xlm-roberta/requirements.txt +0 -7
- clarifai/models/model_serving/examples/text_embedding/README.md +0 -9
- clarifai/models/model_serving/examples/text_to_image/README.md +0 -9
- clarifai/models/model_serving/examples/text_to_image/sd-v1.5/1/__init__.py +0 -0
- clarifai/models/model_serving/examples/text_to_image/sd-v1.5/1/inference.py +0 -52
- clarifai/models/model_serving/examples/text_to_image/sd-v1.5/1/model.py +0 -60
- clarifai/models/model_serving/examples/text_to_image/sd-v1.5/config.pbtxt +0 -22
- clarifai/models/model_serving/examples/text_to_image/sd-v1.5/requirements.txt +0 -6
- clarifai/models/model_serving/examples/text_to_text/README.md +0 -10
- clarifai/models/model_serving/examples/text_to_text/bart-summarize/config.pbtxt +0 -20
- clarifai/models/model_serving/examples/text_to_text/bart-summarize/requirements.txt +0 -4
- clarifai/models/model_serving/examples/visual_detection/README.md +0 -11
- clarifai/models/model_serving/examples/visual_detection/yolov5x/config.pbtxt +0 -36
- clarifai/models/model_serving/examples/visual_detection/yolov5x/labels.txt +0 -80
- clarifai/models/model_serving/examples/visual_detection/yolov5x/requirements.txt +0 -12
- clarifai/models/model_serving/examples/visual_embedding/README.md +0 -9
- clarifai/models/model_serving/examples/visual_embedding/vit-base/config.pbtxt +0 -22
- clarifai/models/model_serving/examples/visual_embedding/vit-base/requirements.txt +0 -5
- clarifai/models/model_serving/examples/visual_segmentation/README.md +0 -9
- clarifai/models/model_serving/examples/visual_segmentation/segformer-b2/config.pbtxt +0 -24
- clarifai/models/model_serving/examples/visual_segmentation/segformer-b2/labels.txt +0 -18
- clarifai/models/model_serving/examples/visual_segmentation/segformer-b2/requirements.txt +0 -5
- clarifai/models/model_serving/model_config/model_types_config/multimodal-embedder.yaml +0 -24
- clarifai/models/model_serving/model_config/model_types_config/text-classifier.yaml +0 -18
- clarifai/models/model_serving/model_config/model_types_config/text-embedder.yaml +0 -18
- clarifai/models/model_serving/model_config/model_types_config/text-to-image.yaml +0 -18
- clarifai/models/model_serving/model_config/model_types_config/text-to-text.yaml +0 -18
- clarifai/models/model_serving/model_config/model_types_config/visual-classifier.yaml +0 -18
- clarifai/models/model_serving/model_config/model_types_config/visual-detector.yaml +0 -28
- clarifai/models/model_serving/model_config/model_types_config/visual-embedder.yaml +0 -18
- clarifai/models/model_serving/model_config/model_types_config/visual-segmenter.yaml +0 -18
- clarifai/modules/README.md +0 -5
- clarifai/modules/style.css +0 -217
- clarifai-9.10.2.dist-info/RECORD +0 -386
- clarifai-9.10.2.dist-info/top_level.txt +0 -2
- clarifai_utils/__init__.py +0 -0
- clarifai_utils/auth/__init__.py +0 -6
- clarifai_utils/auth/helper.py +0 -367
- clarifai_utils/auth/register.py +0 -23
- clarifai_utils/auth/stub.py +0 -127
- clarifai_utils/cli.py +0 -0
- clarifai_utils/client/__init__.py +0 -16
- clarifai_utils/client/app.py +0 -684
- clarifai_utils/client/auth/__init__.py +0 -4
- clarifai_utils/client/auth/helper.py +0 -367
- clarifai_utils/client/auth/register.py +0 -23
- clarifai_utils/client/auth/stub.py +0 -127
- clarifai_utils/client/base.py +0 -131
- clarifai_utils/client/dataset.py +0 -442
- clarifai_utils/client/input.py +0 -892
- clarifai_utils/client/lister.py +0 -54
- clarifai_utils/client/model.py +0 -575
- clarifai_utils/client/module.py +0 -94
- clarifai_utils/client/runner.py +0 -161
- clarifai_utils/client/search.py +0 -254
- clarifai_utils/client/user.py +0 -253
- clarifai_utils/client/workflow.py +0 -223
- clarifai_utils/constants/model.py +0 -4
- clarifai_utils/constants/search.py +0 -2
- clarifai_utils/datasets/__init__.py +0 -0
- clarifai_utils/datasets/export/__init__.py +0 -0
- clarifai_utils/datasets/export/inputs_annotations.py +0 -222
- clarifai_utils/datasets/upload/__init__.py +0 -0
- clarifai_utils/datasets/upload/base.py +0 -66
- clarifai_utils/datasets/upload/examples/README.md +0 -31
- clarifai_utils/datasets/upload/examples/image_classification/__init__.py +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/cifar10/__init__.py +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/cifar10/cifar_small_test.csv +0 -10
- clarifai_utils/datasets/upload/examples/image_classification/cifar10/cifar_small_train.csv +0 -10
- clarifai_utils/datasets/upload/examples/image_classification/cifar10/dataset.py +0 -46
- clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_700.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_701.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_702.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_703.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_704.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_705.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_706.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_707.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_708.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/cifar10/images/test_batch_709.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/__init__.py +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/dataset.py +0 -39
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/beignets/1420783.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/beignets/3287885.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/beignets/3617075.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/beignets/38052.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/beignets/39147.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/hamburger/139558.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/hamburger/1636096.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/hamburger/2480925.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/hamburger/3385808.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/hamburger/3647386.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/prime_rib/1826869.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/prime_rib/2243245.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/prime_rib/259212.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/prime_rib/2842688.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/prime_rib/3035414.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/ramen/1545393.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/ramen/2427642.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/ramen/3520891.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/ramen/377566.jpg +0 -0
- clarifai_utils/datasets/upload/examples/image_classification/food-101/images/ramen/503504.jpg +0 -0
- clarifai_utils/datasets/upload/examples/text_classification/__init__.py +0 -0
- clarifai_utils/datasets/upload/examples/text_classification/imdb_dataset/__init__.py +0 -0
- clarifai_utils/datasets/upload/examples/text_classification/imdb_dataset/dataset.py +0 -42
- clarifai_utils/datasets/upload/examples/text_classification/imdb_dataset/test.csv +0 -201
- clarifai_utils/datasets/upload/examples/text_classification/imdb_dataset/train.csv +0 -201
- clarifai_utils/datasets/upload/features.py +0 -44
- clarifai_utils/datasets/upload/image.py +0 -165
- clarifai_utils/datasets/upload/loaders/README.md +0 -49
- clarifai_utils/datasets/upload/loaders/__init__.py +0 -0
- clarifai_utils/datasets/upload/loaders/coco_captions.py +0 -103
- clarifai_utils/datasets/upload/loaders/coco_detection.py +0 -134
- clarifai_utils/datasets/upload/loaders/coco_segmentation.py +0 -166
- clarifai_utils/datasets/upload/loaders/imagenet_classification.py +0 -59
- clarifai_utils/datasets/upload/loaders/xview_detection.py +0 -148
- clarifai_utils/datasets/upload/text.py +0 -53
- clarifai_utils/datasets/upload/utils.py +0 -63
- clarifai_utils/errors.py +0 -89
- clarifai_utils/models/__init__.py +0 -0
- clarifai_utils/models/api.py +0 -283
- clarifai_utils/models/model_serving/README.md +0 -155
- clarifai_utils/models/model_serving/__init__.py +0 -12
- clarifai_utils/models/model_serving/cli/__init__.py +0 -12
- clarifai_utils/models/model_serving/cli/deploy_cli.py +0 -123
- clarifai_utils/models/model_serving/cli/model_zip.py +0 -61
- clarifai_utils/models/model_serving/cli/repository.py +0 -87
- clarifai_utils/models/model_serving/constants.py +0 -1
- clarifai_utils/models/model_serving/docs/custom_config.md +0 -33
- clarifai_utils/models/model_serving/docs/dependencies.md +0 -11
- clarifai_utils/models/model_serving/docs/inference_parameters.md +0 -134
- clarifai_utils/models/model_serving/docs/model_types.md +0 -20
- clarifai_utils/models/model_serving/docs/output.md +0 -28
- clarifai_utils/models/model_serving/examples/README.md +0 -7
- clarifai_utils/models/model_serving/examples/image_classification/README.md +0 -9
- clarifai_utils/models/model_serving/examples/image_classification/age_vit/1/__init__.py +0 -0
- clarifai_utils/models/model_serving/examples/image_classification/age_vit/1/inference.py +0 -56
- clarifai_utils/models/model_serving/examples/image_classification/age_vit/1/model.py +0 -61
- clarifai_utils/models/model_serving/examples/image_classification/age_vit/1/vit-age-classifier/README.md +0 -11
- clarifai_utils/models/model_serving/examples/image_classification/age_vit/1/vit-age-classifier/config.json +0 -42
- clarifai_utils/models/model_serving/examples/image_classification/age_vit/1/vit-age-classifier/preprocessor_config.json +0 -15
- clarifai_utils/models/model_serving/examples/image_classification/age_vit/config.pbtxt +0 -23
- clarifai_utils/models/model_serving/examples/image_classification/age_vit/labels.txt +0 -9
- clarifai_utils/models/model_serving/examples/image_classification/age_vit/requirements.txt +0 -7
- clarifai_utils/models/model_serving/examples/text_classification/README.md +0 -9
- clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/1/__init__.py +0 -0
- clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/1/inference.py +0 -55
- clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/1/model.py +0 -61
- clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/1/twitter-xlm-roberta-base-sentiment/README.md +0 -12
- clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/1/twitter-xlm-roberta-base-sentiment/config.json +0 -34
- clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/1/twitter-xlm-roberta-base-sentiment/special_tokens_map.json +0 -1
- clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/config.pbtxt +0 -21
- clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/labels.txt +0 -3
- clarifai_utils/models/model_serving/examples/text_classification/xlm-roberta/requirements.txt +0 -7
- clarifai_utils/models/model_serving/examples/text_embedding/README.md +0 -9
- clarifai_utils/models/model_serving/examples/text_to_image/README.md +0 -9
- clarifai_utils/models/model_serving/examples/text_to_image/sd-v1.5/1/__init__.py +0 -0
- clarifai_utils/models/model_serving/examples/text_to_image/sd-v1.5/1/inference.py +0 -52
- clarifai_utils/models/model_serving/examples/text_to_image/sd-v1.5/1/model.py +0 -60
- clarifai_utils/models/model_serving/examples/text_to_image/sd-v1.5/config.pbtxt +0 -22
- clarifai_utils/models/model_serving/examples/text_to_image/sd-v1.5/requirements.txt +0 -6
- clarifai_utils/models/model_serving/examples/text_to_text/README.md +0 -10
- clarifai_utils/models/model_serving/examples/text_to_text/bart-summarize/1/__init__.py +0 -0
- clarifai_utils/models/model_serving/examples/text_to_text/bart-summarize/1/inference.py +0 -47
- clarifai_utils/models/model_serving/examples/text_to_text/bart-summarize/1/model.py +0 -60
- clarifai_utils/models/model_serving/examples/text_to_text/bart-summarize/config.pbtxt +0 -20
- clarifai_utils/models/model_serving/examples/text_to_text/bart-summarize/requirements.txt +0 -4
- clarifai_utils/models/model_serving/examples/visual_detection/README.md +0 -11
- clarifai_utils/models/model_serving/examples/visual_detection/yolov5x/1/inference.py +0 -72
- clarifai_utils/models/model_serving/examples/visual_detection/yolov5x/1/model.py +0 -61
- clarifai_utils/models/model_serving/examples/visual_detection/yolov5x/config.pbtxt +0 -36
- clarifai_utils/models/model_serving/examples/visual_detection/yolov5x/labels.txt +0 -80
- clarifai_utils/models/model_serving/examples/visual_detection/yolov5x/requirements.txt +0 -12
- clarifai_utils/models/model_serving/examples/visual_embedding/README.md +0 -9
- clarifai_utils/models/model_serving/examples/visual_embedding/vit-base/1/__init__.py +0 -0
- clarifai_utils/models/model_serving/examples/visual_embedding/vit-base/1/inference.py +0 -51
- clarifai_utils/models/model_serving/examples/visual_embedding/vit-base/1/model.py +0 -60
- clarifai_utils/models/model_serving/examples/visual_embedding/vit-base/config.pbtxt +0 -22
- clarifai_utils/models/model_serving/examples/visual_embedding/vit-base/requirements.txt +0 -5
- clarifai_utils/models/model_serving/examples/visual_segmentation/README.md +0 -9
- clarifai_utils/models/model_serving/examples/visual_segmentation/segformer-b2/1/__init__.py +0 -0
- clarifai_utils/models/model_serving/examples/visual_segmentation/segformer-b2/1/inference.py +0 -55
- clarifai_utils/models/model_serving/examples/visual_segmentation/segformer-b2/1/model.py +0 -60
- clarifai_utils/models/model_serving/examples/visual_segmentation/segformer-b2/config.pbtxt +0 -24
- clarifai_utils/models/model_serving/examples/visual_segmentation/segformer-b2/labels.txt +0 -18
- clarifai_utils/models/model_serving/examples/visual_segmentation/segformer-b2/requirements.txt +0 -5
- clarifai_utils/models/model_serving/model_config/__init__.py +0 -14
- clarifai_utils/models/model_serving/model_config/config.py +0 -302
- clarifai_utils/models/model_serving/model_config/inference_parameter.py +0 -124
- clarifai_utils/models/model_serving/model_config/model_types_config/multimodal-embedder.yaml +0 -24
- clarifai_utils/models/model_serving/model_config/model_types_config/text-classifier.yaml +0 -18
- clarifai_utils/models/model_serving/model_config/model_types_config/text-embedder.yaml +0 -18
- clarifai_utils/models/model_serving/model_config/model_types_config/text-to-image.yaml +0 -18
- clarifai_utils/models/model_serving/model_config/model_types_config/text-to-text.yaml +0 -18
- clarifai_utils/models/model_serving/model_config/model_types_config/visual-classifier.yaml +0 -18
- clarifai_utils/models/model_serving/model_config/model_types_config/visual-detector.yaml +0 -28
- clarifai_utils/models/model_serving/model_config/model_types_config/visual-embedder.yaml +0 -18
- clarifai_utils/models/model_serving/model_config/model_types_config/visual-segmenter.yaml +0 -18
- clarifai_utils/models/model_serving/model_config/serializer.py +0 -134
- clarifai_utils/models/model_serving/models/__init__.py +0 -12
- clarifai_utils/models/model_serving/models/default_test.py +0 -275
- clarifai_utils/models/model_serving/models/inference.py +0 -42
- clarifai_utils/models/model_serving/models/model_types.py +0 -265
- clarifai_utils/models/model_serving/models/output.py +0 -124
- clarifai_utils/models/model_serving/models/pb_model.py +0 -74
- clarifai_utils/models/model_serving/models/test.py +0 -64
- clarifai_utils/models/model_serving/pb_model_repository.py +0 -101
- clarifai_utils/modules/README.md +0 -5
- clarifai_utils/modules/__init__.py +0 -0
- clarifai_utils/modules/css.py +0 -60
- clarifai_utils/modules/pages.py +0 -42
- clarifai_utils/modules/style.css +0 -217
- clarifai_utils/runners/__init__.py +0 -0
- clarifai_utils/runners/example.py +0 -33
- clarifai_utils/schema/search.py +0 -69
- clarifai_utils/urls/helper.py +0 -103
- clarifai_utils/utils/__init__.py +0 -0
- clarifai_utils/utils/logging.py +0 -90
- clarifai_utils/utils/misc.py +0 -33
- clarifai_utils/utils/model_train.py +0 -157
- clarifai_utils/versions.py +0 -6
- clarifai_utils/workflows/__init__.py +0 -0
- clarifai_utils/workflows/export.py +0 -68
- clarifai_utils/workflows/utils.py +0 -59
- clarifai_utils/workflows/validate.py +0 -67
- {clarifai-9.10.2.dist-info → clarifai-9.10.3.dist-info}/LICENSE +0 -0
- {clarifai-9.10.2.dist-info → clarifai-9.10.3.dist-info}/WHEEL +0 -0
- {clarifai-9.10.2.dist-info → clarifai-9.10.3.dist-info}/entry_points.txt +0 -0
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
# Copyright 2023 Clarifai, Inc.
|
|
2
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
-
# you may not use this file except in compliance with the License.
|
|
4
|
-
# You may obtain a copy of the License at
|
|
5
|
-
#
|
|
6
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
-
#
|
|
8
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
9
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
-
# See the License for the specific language governing permissions and
|
|
12
|
-
# limitations under the License.
|
|
13
|
-
"""Triton inference server Python Backend Model."""
|
|
14
|
-
|
|
15
|
-
import os
|
|
16
|
-
import sys
|
|
17
|
-
|
|
18
|
-
try:
|
|
19
|
-
import triton_python_backend_utils as pb_utils
|
|
20
|
-
except ModuleNotFoundError:
|
|
21
|
-
pass
|
|
22
|
-
from google.protobuf import text_format
|
|
23
|
-
from tritonclient.grpc.model_config_pb2 import ModelConfig
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
class TritonPythonModel:
|
|
27
|
-
"""
|
|
28
|
-
Triton Python BE Model.
|
|
29
|
-
"""
|
|
30
|
-
|
|
31
|
-
def initialize(self, args):
|
|
32
|
-
"""
|
|
33
|
-
Triton server init.
|
|
34
|
-
"""
|
|
35
|
-
args["model_repository"] = args["model_repository"].replace("/1/model.py", "")
|
|
36
|
-
sys.path.append(os.path.dirname(__file__))
|
|
37
|
-
from inference import InferenceModel
|
|
38
|
-
|
|
39
|
-
self.inference_obj = InferenceModel()
|
|
40
|
-
self.device = "cuda:0" if "GPU" in args["model_instance_kind"] else "cpu"
|
|
41
|
-
|
|
42
|
-
# Read input_name from config file
|
|
43
|
-
self.config_msg = ModelConfig()
|
|
44
|
-
with open(os.path.join(args["model_repository"], "config.pbtxt"), "r") as f:
|
|
45
|
-
cfg = f.read()
|
|
46
|
-
text_format.Merge(cfg, self.config_msg)
|
|
47
|
-
self.input_name = [inp.name for inp in self.config_msg.input][0]
|
|
48
|
-
|
|
49
|
-
def execute(self, requests):
|
|
50
|
-
"""
|
|
51
|
-
Serve model inference requests.
|
|
52
|
-
"""
|
|
53
|
-
responses = []
|
|
54
|
-
|
|
55
|
-
for request in requests:
|
|
56
|
-
in_batch = pb_utils.get_input_tensor_by_name(request, self.input_name)
|
|
57
|
-
in_batch = in_batch.as_numpy()
|
|
58
|
-
inference_response = self.inference_obj.get_predictions(in_batch)
|
|
59
|
-
responses.append(inference_response)
|
|
60
|
-
|
|
61
|
-
return responses
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
language: multilingual
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
## Twitter xlm-roberta-base for sentiment analysis
|
|
7
|
-
|
|
8
|
-
This is a multilingual XLM-roBERTa-base model trained on ~198M tweets and finetuned for sentiment analysis. The sentiment fine-tuning was done on 8 languages (Ar, En, Fr, De, Hi, It, Sp, Pt) but it can be used for more languages (see paper for details).
|
|
9
|
-
|
|
10
|
-
- Paper: [XLM-T: A Multilingual Language Model Toolkit for Twitter](https://arxiv.org/abs/2104.12250).
|
|
11
|
-
- Official Github Repository: [XLM-T official repository](https://github.com/cardiffnlp/xlm-t).
|
|
12
|
-
- Sentiment Classes: Negative, Neutral, Positive
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"_name_or_path": "/home/jupyter/misc/tweeteval/TweetEval_models/xlm-twitter/local-twitter-xlm-roberta-base-sentiment/",
|
|
3
|
-
"architectures": [
|
|
4
|
-
"XLMRobertaForSequenceClassification"
|
|
5
|
-
],
|
|
6
|
-
"attention_probs_dropout_prob": 0.1,
|
|
7
|
-
"bos_token_id": 0,
|
|
8
|
-
"eos_token_id": 2,
|
|
9
|
-
"gradient_checkpointing": false,
|
|
10
|
-
"hidden_act": "gelu",
|
|
11
|
-
"hidden_dropout_prob": 0.1,
|
|
12
|
-
"hidden_size": 768,
|
|
13
|
-
"id2label": {
|
|
14
|
-
"0": "negative",
|
|
15
|
-
"1": "neutral",
|
|
16
|
-
"2": "positive"
|
|
17
|
-
},
|
|
18
|
-
"initializer_range": 0.02,
|
|
19
|
-
"intermediate_size": 3072,
|
|
20
|
-
"label2id": {
|
|
21
|
-
"negative": 0,
|
|
22
|
-
"neutral": 1,
|
|
23
|
-
"positive": 2
|
|
24
|
-
},
|
|
25
|
-
"layer_norm_eps": 1e-05,
|
|
26
|
-
"max_position_embeddings": 514,
|
|
27
|
-
"model_type": "xlm-roberta",
|
|
28
|
-
"num_attention_heads": 12,
|
|
29
|
-
"num_hidden_layers": 12,
|
|
30
|
-
"output_past": true,
|
|
31
|
-
"pad_token_id": 1,
|
|
32
|
-
"type_vocab_size": 1,
|
|
33
|
-
"vocab_size": 250002
|
|
34
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"bos_token": "<s>", "eos_token": "</s>", "unk_token": "<unk>", "sep_token": "</s>", "pad_token": "<pad>", "cls_token": "<s>", "mask_token": "<mask>"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
name: "xlm-roberta"
|
|
2
|
-
max_batch_size: 1
|
|
3
|
-
input {
|
|
4
|
-
name: "text"
|
|
5
|
-
data_type: TYPE_STRING
|
|
6
|
-
dims: 1
|
|
7
|
-
}
|
|
8
|
-
output {
|
|
9
|
-
name: "softmax_predictions"
|
|
10
|
-
data_type: TYPE_FP32
|
|
11
|
-
dims: -1
|
|
12
|
-
label_filename: "labels.txt"
|
|
13
|
-
}
|
|
14
|
-
instance_group {
|
|
15
|
-
count: 1
|
|
16
|
-
kind: KIND_GPU
|
|
17
|
-
}
|
|
18
|
-
dynamic_batching {
|
|
19
|
-
max_queue_delay_microseconds: 500
|
|
20
|
-
}
|
|
21
|
-
backend: "python"
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
## Text Embedding Triton Model Examples
|
|
2
|
-
|
|
3
|
-
These can be used on the fly with minimal or no changes to test deploy text embedding models to the Clarifai platform. See the required files section for each model below.
|
|
4
|
-
|
|
5
|
-
* ### [Instructor-xl](https://huggingface.co/hkunlp/instructor-xl)
|
|
6
|
-
|
|
7
|
-
Requirements to run tests locally:
|
|
8
|
-
|
|
9
|
-
* Download/Clone the [huggingface model](https://huggingface.co/hkunlp/instructor-xl) into the **instructor-xl/1/** directory then start the triton server.
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
## Text to Image Triton Model Examples
|
|
2
|
-
|
|
3
|
-
These can be used on the fly with minimal or no changes to test deploy text to image models to the Clarifai platform. See the required files section for each model below.
|
|
4
|
-
|
|
5
|
-
* ### [sd-v1.5 (Stable-Diffusion-v1.5)](./sd-v1.5/)
|
|
6
|
-
|
|
7
|
-
Requirements to run tests locally:
|
|
8
|
-
|
|
9
|
-
* Download/Clone the [huggingface model](https://huggingface.co/runwayml/stable-diffusion-v1-5) into the **sd-v1.5/1/** directory then start the triton server.
|
|
File without changes
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
# This file contains boilerplate code to allow users write their model
|
|
2
|
-
# inference code that will then interact with the Triton Inference Server
|
|
3
|
-
# Python backend to serve end user requests.
|
|
4
|
-
# The module name, module path, class name & get_predictions() method names MUST be maintained as is
|
|
5
|
-
# but other methods may be added within the class as deemed fit provided
|
|
6
|
-
# they are invoked within the main get_predictions() inference method
|
|
7
|
-
# if they play a role in any step of model inference
|
|
8
|
-
"""User model inference script."""
|
|
9
|
-
|
|
10
|
-
import os
|
|
11
|
-
from pathlib import Path
|
|
12
|
-
|
|
13
|
-
import numpy as np
|
|
14
|
-
import torch
|
|
15
|
-
from diffusers import StableDiffusionPipeline
|
|
16
|
-
|
|
17
|
-
from clarifai.models.model_serving.models.model_types import text_to_image
|
|
18
|
-
from clarifai.models.model_serving.models.output import ImageOutput
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
class InferenceModel:
|
|
22
|
-
"""User model inference class."""
|
|
23
|
-
|
|
24
|
-
def __init__(self) -> None:
|
|
25
|
-
"""
|
|
26
|
-
Load inference time artifacts that are called frequently .e.g. models, tokenizers, etc.
|
|
27
|
-
in this method so they are loaded only once for faster inference.
|
|
28
|
-
"""
|
|
29
|
-
self.base_path: Path = os.path.dirname(__file__)
|
|
30
|
-
self.huggingface_model_path = os.path.join(self.base_path, "stable-diffusion-v1-5")
|
|
31
|
-
self.device = "cuda" if torch.cuda.is_available() else "cpu"
|
|
32
|
-
self.pipeline = StableDiffusionPipeline.from_pretrained(
|
|
33
|
-
self.huggingface_model_path, torch_dtype=torch.float16)
|
|
34
|
-
self.pipeline = self.pipeline.to(self.device)
|
|
35
|
-
|
|
36
|
-
@text_to_image
|
|
37
|
-
def get_predictions(self, input_data):
|
|
38
|
-
"""
|
|
39
|
-
Main model inference method.
|
|
40
|
-
|
|
41
|
-
Args:
|
|
42
|
-
-----
|
|
43
|
-
input_data: A single input data item to predict on.
|
|
44
|
-
Input data can be an image or text, etc depending on the model type.
|
|
45
|
-
|
|
46
|
-
Returns:
|
|
47
|
-
--------
|
|
48
|
-
One of the clarifai.models.model_serving.models.output types. Refer to the README/docs
|
|
49
|
-
"""
|
|
50
|
-
out_image = self.pipeline(input_data).images[0]
|
|
51
|
-
out_image = np.asarray(out_image)
|
|
52
|
-
return ImageOutput(image=out_image)
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
# Copyright 2023 Clarifai, Inc.
|
|
2
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
-
# you may not use this file except in compliance with the License.
|
|
4
|
-
# You may obtain a copy of the License at
|
|
5
|
-
#
|
|
6
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
-
#
|
|
8
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
9
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
-
# See the License for the specific language governing permissions and
|
|
12
|
-
# limitations under the License.
|
|
13
|
-
"""Triton inference server Python Backend Model."""
|
|
14
|
-
|
|
15
|
-
import os
|
|
16
|
-
import sys
|
|
17
|
-
|
|
18
|
-
try:
|
|
19
|
-
import triton_python_backend_utils as pb_utils
|
|
20
|
-
except ModuleNotFoundError:
|
|
21
|
-
pass
|
|
22
|
-
from google.protobuf import text_format
|
|
23
|
-
from tritonclient.grpc.model_config_pb2 import ModelConfig
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
class TritonPythonModel:
|
|
27
|
-
"""
|
|
28
|
-
Triton Python BE Model.
|
|
29
|
-
"""
|
|
30
|
-
|
|
31
|
-
def initialize(self, args):
|
|
32
|
-
"""
|
|
33
|
-
Triton server init.
|
|
34
|
-
"""
|
|
35
|
-
args["model_repository"] = args["model_repository"].replace("/1/model.py", "")
|
|
36
|
-
sys.path.append(os.path.dirname(__file__))
|
|
37
|
-
from inference import InferenceModel
|
|
38
|
-
|
|
39
|
-
self.inference_obj = InferenceModel()
|
|
40
|
-
|
|
41
|
-
# Read input_name from config file
|
|
42
|
-
self.config_msg = ModelConfig()
|
|
43
|
-
with open(os.path.join(args["model_repository"], "config.pbtxt"), "r") as f:
|
|
44
|
-
cfg = f.read()
|
|
45
|
-
text_format.Merge(cfg, self.config_msg)
|
|
46
|
-
self.input_name = [inp.name for inp in self.config_msg.input][0]
|
|
47
|
-
|
|
48
|
-
def execute(self, requests):
|
|
49
|
-
"""
|
|
50
|
-
Serve model inference requests.
|
|
51
|
-
"""
|
|
52
|
-
responses = []
|
|
53
|
-
|
|
54
|
-
for request in requests:
|
|
55
|
-
in_batch = pb_utils.get_input_tensor_by_name(request, self.input_name)
|
|
56
|
-
in_batch = in_batch.as_numpy()
|
|
57
|
-
inference_response = self.inference_obj.get_predictions(in_batch)
|
|
58
|
-
responses.append(inference_response)
|
|
59
|
-
|
|
60
|
-
return responses
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
name: "sd-v1.5"
|
|
2
|
-
max_batch_size: 1
|
|
3
|
-
input {
|
|
4
|
-
name: "text"
|
|
5
|
-
data_type: TYPE_STRING
|
|
6
|
-
dims: 1
|
|
7
|
-
}
|
|
8
|
-
output {
|
|
9
|
-
name: "image"
|
|
10
|
-
data_type: TYPE_UINT8
|
|
11
|
-
dims: -1
|
|
12
|
-
dims: -1
|
|
13
|
-
dims: 3
|
|
14
|
-
}
|
|
15
|
-
instance_group {
|
|
16
|
-
count: 1
|
|
17
|
-
kind: KIND_GPU
|
|
18
|
-
}
|
|
19
|
-
dynamic_batching {
|
|
20
|
-
max_queue_delay_microseconds: 500
|
|
21
|
-
}
|
|
22
|
-
backend: "python"
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
## Text-to-Text Triton Model Examples
|
|
2
|
-
|
|
3
|
-
These can be used on the fly with minimal or no changes to test deploy all models that take a text input and yield a text output prediction e.g. text generation, summarization and translation models to the Clarifai platform. See the required files section for each model below.
|
|
4
|
-
|
|
5
|
-
* ### [Bart-paper2slides-summarizer](https://huggingface.co/com3dian/Bart-large-paper2slides-summarizer)
|
|
6
|
-
|
|
7
|
-
Requirements to run tests locally:
|
|
8
|
-
|
|
9
|
-
* Download/Clone the [huggingface model](https://huggingface.co/com3dian/Bart-large-paper2slides-summarizer) and store it under the **bart-summarize/1/** directory.
|
|
10
|
-
* Rename the downloaded folder to **bart-large-summarizer** OR change the **self.huggingface_model_path** attribute in the [inference.py script](./bart-summarize/1/inference.py) to match the folder name
|
|
File without changes
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
# This file contains boilerplate code to allow users write their model
|
|
2
|
-
# inference code that will then interact with the Triton Inference Server
|
|
3
|
-
# Python backend to serve end user requests.
|
|
4
|
-
# The module name, module path, class name & get_predictions() method names MUST be maintained as is
|
|
5
|
-
# but other methods may be added within the class as deemed fit provided
|
|
6
|
-
# they are invoked within the main get_predictions() inference method
|
|
7
|
-
# if they play a role in any step of model inference
|
|
8
|
-
"""User model inference script."""
|
|
9
|
-
|
|
10
|
-
import os
|
|
11
|
-
from pathlib import Path
|
|
12
|
-
import numpy as np
|
|
13
|
-
from transformers import pipeline
|
|
14
|
-
|
|
15
|
-
from clarifai.models.model_serving.models.model_types import text_to_text
|
|
16
|
-
from clarifai.models.model_serving.models.output import TextOutput
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
class InferenceModel:
|
|
20
|
-
"""User model inference class."""
|
|
21
|
-
|
|
22
|
-
def __init__(self) -> None:
|
|
23
|
-
"""
|
|
24
|
-
Load inference time artifacts that are called frequently .e.g. models, tokenizers, etc.
|
|
25
|
-
in this method so they are loaded only once for faster inference.
|
|
26
|
-
"""
|
|
27
|
-
self.base_path: Path = os.path.dirname(__file__)
|
|
28
|
-
self.huggingface_model_path = os.path.join(self.base_path, "bart-large-summarizer")
|
|
29
|
-
self.pipeline = pipeline("summarization", model=self.huggingface_model_path)
|
|
30
|
-
|
|
31
|
-
@text_to_text
|
|
32
|
-
def get_predictions(self, input_data):
|
|
33
|
-
"""
|
|
34
|
-
Generates summaries of input text.
|
|
35
|
-
|
|
36
|
-
Args:
|
|
37
|
-
-----
|
|
38
|
-
input_data: A single input data item to predict on.
|
|
39
|
-
Input data can be an image or text, etc depending on the model type.
|
|
40
|
-
|
|
41
|
-
Returns:
|
|
42
|
-
--------
|
|
43
|
-
One of the clarifai.models.model_serving.models.output types. Refer to the README/docs
|
|
44
|
-
"""
|
|
45
|
-
summary = self.pipeline(input_data, max_length=50, min_length=30, do_sample=False)
|
|
46
|
-
generated_text = np.array([summary[0]['summary_text']], dtype=object)
|
|
47
|
-
return TextOutput(predicted_text=generated_text)
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
# Copyright 2023 Clarifai, Inc.
|
|
2
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
-
# you may not use this file except in compliance with the License.
|
|
4
|
-
# You may obtain a copy of the License at
|
|
5
|
-
#
|
|
6
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
-
#
|
|
8
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
9
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
-
# See the License for the specific language governing permissions and
|
|
12
|
-
# limitations under the License.
|
|
13
|
-
"""Triton inference server Python Backend Model."""
|
|
14
|
-
|
|
15
|
-
import os
|
|
16
|
-
import sys
|
|
17
|
-
|
|
18
|
-
try:
|
|
19
|
-
import triton_python_backend_utils as pb_utils
|
|
20
|
-
except ModuleNotFoundError:
|
|
21
|
-
pass
|
|
22
|
-
from google.protobuf import text_format
|
|
23
|
-
from tritonclient.grpc.model_config_pb2 import ModelConfig
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
class TritonPythonModel:
|
|
27
|
-
"""
|
|
28
|
-
Triton Python BE Model.
|
|
29
|
-
"""
|
|
30
|
-
|
|
31
|
-
def initialize(self, args):
|
|
32
|
-
"""
|
|
33
|
-
Triton server init.
|
|
34
|
-
"""
|
|
35
|
-
args["model_repository"] = args["model_repository"].replace("/1/model.py", "")
|
|
36
|
-
sys.path.append(os.path.dirname(__file__))
|
|
37
|
-
from inference import InferenceModel
|
|
38
|
-
|
|
39
|
-
self.inference_obj = InferenceModel()
|
|
40
|
-
|
|
41
|
-
# Read input_name from config file
|
|
42
|
-
self.config_msg = ModelConfig()
|
|
43
|
-
with open(os.path.join(args["model_repository"], "config.pbtxt"), "r") as f:
|
|
44
|
-
cfg = f.read()
|
|
45
|
-
text_format.Merge(cfg, self.config_msg)
|
|
46
|
-
self.input_name = [inp.name for inp in self.config_msg.input][0]
|
|
47
|
-
|
|
48
|
-
def execute(self, requests):
|
|
49
|
-
"""
|
|
50
|
-
Serve model inference requests.
|
|
51
|
-
"""
|
|
52
|
-
responses = []
|
|
53
|
-
|
|
54
|
-
for request in requests:
|
|
55
|
-
in_batch = pb_utils.get_input_tensor_by_name(request, self.input_name)
|
|
56
|
-
in_batch = in_batch.as_numpy()
|
|
57
|
-
inference_response = self.inference_obj.get_predictions(in_batch)
|
|
58
|
-
responses.append(inference_response)
|
|
59
|
-
|
|
60
|
-
return responses
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
name: "bart-summarize"
|
|
2
|
-
max_batch_size: 1
|
|
3
|
-
input {
|
|
4
|
-
name: "text"
|
|
5
|
-
data_type: TYPE_STRING
|
|
6
|
-
dims: 1
|
|
7
|
-
}
|
|
8
|
-
output {
|
|
9
|
-
name: "text"
|
|
10
|
-
data_type: TYPE_STRING
|
|
11
|
-
dims: 1
|
|
12
|
-
}
|
|
13
|
-
instance_group {
|
|
14
|
-
count: 1
|
|
15
|
-
kind: KIND_GPU
|
|
16
|
-
}
|
|
17
|
-
dynamic_batching {
|
|
18
|
-
max_queue_delay_microseconds: 500
|
|
19
|
-
}
|
|
20
|
-
backend: "python"
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
## Visual Detection Triton Model Examples
|
|
2
|
-
|
|
3
|
-
These can be used on the fly with minimal or no changes to test deploy visual detection models to the Clarifai platform. See the required files section for each model below.
|
|
4
|
-
|
|
5
|
-
* ### [Yolov5x](./yolov5x/)
|
|
6
|
-
|
|
7
|
-
Required files (not included here due to upload size limits):
|
|
8
|
-
|
|
9
|
-
* Download the yolov5x folder from above.
|
|
10
|
-
* Download the `Yolov5 repo` and the `yolov5-x checkpoint` and store them under the `1/` directory of the yolov5x folder.
|
|
11
|
-
* zip and test deploy to your Clarifai app
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
# This file contains boilerplate code to allow users write their model
|
|
2
|
-
# inference code that will then interact with the Triton Inference Server
|
|
3
|
-
# Python backend to serve end user requests.
|
|
4
|
-
# The module name, module path, class name & get_predictions() method names MUST be maintained as is
|
|
5
|
-
# but other methods may be added within the class as deemed fit provided
|
|
6
|
-
# they are invoked within the main get_predictions() inference method
|
|
7
|
-
# if they play a role in any step of model inference
|
|
8
|
-
"""User model inference script."""
|
|
9
|
-
|
|
10
|
-
import os
|
|
11
|
-
from pathlib import Path
|
|
12
|
-
from typing import Callable
|
|
13
|
-
|
|
14
|
-
import numpy as np
|
|
15
|
-
import torch
|
|
16
|
-
|
|
17
|
-
from clarifai.models.model_serving.models.model_types import visual_detector
|
|
18
|
-
from clarifai.models.model_serving.models.output import VisualDetectorOutput
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
class InferenceModel:
|
|
22
|
-
"""User model inference class."""
|
|
23
|
-
|
|
24
|
-
def __init__(self) -> None:
|
|
25
|
-
"""
|
|
26
|
-
Load inference time artifacts that are called frequently .e.g. models, tokenizers, etc.
|
|
27
|
-
in this method so they are loaded only once for faster inference.
|
|
28
|
-
"""
|
|
29
|
-
self.base_path: Path = os.path.dirname(__file__)
|
|
30
|
-
self.checkpoint_path = os.path.join(self.base_path, "model.pt") #yolov5x
|
|
31
|
-
self.model: Callable = torch.hub.load(
|
|
32
|
-
os.path.join(self.base_path, 'yolov5'),
|
|
33
|
-
'custom',
|
|
34
|
-
autoshape=True,
|
|
35
|
-
path=self.checkpoint_path,
|
|
36
|
-
source='local')
|
|
37
|
-
self.device = "cuda:0" if torch.cuda.is_available() else "cpu"
|
|
38
|
-
|
|
39
|
-
@visual_detector
|
|
40
|
-
def get_predictions(self, input_data) -> VisualDetectorOutput:
|
|
41
|
-
"""
|
|
42
|
-
Main model inference method.
|
|
43
|
-
|
|
44
|
-
Args:
|
|
45
|
-
-----
|
|
46
|
-
input_data: A single input data item to predict on.
|
|
47
|
-
Input data can be an image or text, etc depending on the model type.
|
|
48
|
-
|
|
49
|
-
Returns:
|
|
50
|
-
--------
|
|
51
|
-
One of the clarifai.models.model_serving.models.output types. Refer to the README/docs
|
|
52
|
-
"""
|
|
53
|
-
preds = self.model(input_data)
|
|
54
|
-
max_bbox_count = 300 # max allowed detected bounding boxes per image
|
|
55
|
-
preds = preds.xyxy[0].cpu().numpy()
|
|
56
|
-
labels = [[pred[5]] for pred in preds]
|
|
57
|
-
scores = [[pred[4]] for pred in preds]
|
|
58
|
-
h, w, _ = input_data.shape # input image shape
|
|
59
|
-
bboxes = [[x[1] / h, x[0] / w, x[3] / h, x[2] / w]
|
|
60
|
-
for x in preds] # normalize the bboxes to [0,1]
|
|
61
|
-
if len(bboxes) != 0:
|
|
62
|
-
bboxes = np.concatenate((bboxes, np.zeros((max_bbox_count - len(bboxes), 4))))
|
|
63
|
-
scores = np.concatenate((scores, np.zeros((max_bbox_count - len(scores), 1))))
|
|
64
|
-
labels = np.concatenate((labels, np.zeros((max_bbox_count - len(labels), 1),
|
|
65
|
-
dtype=np.int32)))
|
|
66
|
-
else:
|
|
67
|
-
bboxes = np.zeros((max_bbox_count, 4), dtype=np.float32)
|
|
68
|
-
scores = np.zeros((max_bbox_count, 1), dtype=np.float32)
|
|
69
|
-
labels = np.zeros((max_bbox_count, 1), dtype=np.int32)
|
|
70
|
-
|
|
71
|
-
return VisualDetectorOutput(
|
|
72
|
-
predicted_bboxes=bboxes, predicted_labels=labels, predicted_scores=scores)
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
# Copyright 2023 Clarifai, Inc.
|
|
2
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
-
# you may not use this file except in compliance with the License.
|
|
4
|
-
# You may obtain a copy of the License at
|
|
5
|
-
#
|
|
6
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
7
|
-
#
|
|
8
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
9
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
-
# See the License for the specific language governing permissions and
|
|
12
|
-
# limitations under the License.
|
|
13
|
-
"""Triton inference server Python Backend Model."""
|
|
14
|
-
|
|
15
|
-
import os
|
|
16
|
-
import sys
|
|
17
|
-
|
|
18
|
-
try:
|
|
19
|
-
import triton_python_backend_utils as pb_utils
|
|
20
|
-
except ModuleNotFoundError:
|
|
21
|
-
pass
|
|
22
|
-
from google.protobuf import text_format
|
|
23
|
-
from tritonclient.grpc.model_config_pb2 import ModelConfig
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
class TritonPythonModel:
|
|
27
|
-
"""
|
|
28
|
-
Triton Python BE Model.
|
|
29
|
-
"""
|
|
30
|
-
|
|
31
|
-
def initialize(self, args):
|
|
32
|
-
"""
|
|
33
|
-
Triton server init.
|
|
34
|
-
"""
|
|
35
|
-
args["model_repository"] = args["model_repository"].replace("/1/model.py", "")
|
|
36
|
-
sys.path.append(os.path.dirname(__file__))
|
|
37
|
-
from inference import InferenceModel
|
|
38
|
-
|
|
39
|
-
self.inference_obj = InferenceModel()
|
|
40
|
-
self.device = "cuda:0" if "GPU" in args["model_instance_kind"] else "cpu"
|
|
41
|
-
|
|
42
|
-
# Read input_name from config file
|
|
43
|
-
self.config_msg = ModelConfig()
|
|
44
|
-
with open(os.path.join(args["model_repository"], "config.pbtxt"), "r") as f:
|
|
45
|
-
cfg = f.read()
|
|
46
|
-
text_format.Merge(cfg, self.config_msg)
|
|
47
|
-
self.input_name = [inp.name for inp in self.config_msg.input][0]
|
|
48
|
-
|
|
49
|
-
def execute(self, requests):
|
|
50
|
-
"""
|
|
51
|
-
Serve model inference requests.
|
|
52
|
-
"""
|
|
53
|
-
responses = []
|
|
54
|
-
|
|
55
|
-
for request in requests:
|
|
56
|
-
in_batch = pb_utils.get_input_tensor_by_name(request, self.input_name)
|
|
57
|
-
in_batch = in_batch.as_numpy()
|
|
58
|
-
inference_response = self.inference_obj.get_predictions(in_batch)
|
|
59
|
-
responses.append(inference_response)
|
|
60
|
-
|
|
61
|
-
return responses
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
name: "yolov5_test"
|
|
2
|
-
max_batch_size: 1
|
|
3
|
-
input {
|
|
4
|
-
name: "image"
|
|
5
|
-
data_type: TYPE_UINT8
|
|
6
|
-
dims: -1
|
|
7
|
-
dims: -1
|
|
8
|
-
dims: 3
|
|
9
|
-
}
|
|
10
|
-
output {
|
|
11
|
-
name: "predicted_bboxes"
|
|
12
|
-
data_type: TYPE_FP32
|
|
13
|
-
dims: -1
|
|
14
|
-
dims: 4
|
|
15
|
-
}
|
|
16
|
-
output {
|
|
17
|
-
name: "predicted_labels"
|
|
18
|
-
data_type: TYPE_INT32
|
|
19
|
-
dims: -1
|
|
20
|
-
dims: 1
|
|
21
|
-
label_filename: "labels.txt"
|
|
22
|
-
}
|
|
23
|
-
output {
|
|
24
|
-
name: "predicted_scores"
|
|
25
|
-
data_type: TYPE_FP32
|
|
26
|
-
dims: -1
|
|
27
|
-
dims: 1
|
|
28
|
-
}
|
|
29
|
-
instance_group {
|
|
30
|
-
count: 1
|
|
31
|
-
kind: KIND_GPU
|
|
32
|
-
}
|
|
33
|
-
dynamic_batching {
|
|
34
|
-
max_queue_delay_microseconds: 500
|
|
35
|
-
}
|
|
36
|
-
backend: "python"
|