react-native-executorch 0.4.10 → 0.5.0-nightly-6f4dd53-20251211
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.
- package/README.md +77 -71
- package/android/CMakeLists.txt +29 -0
- package/android/build.gradle +76 -13
- package/android/libs/classes.jar +0 -0
- package/android/src/main/cpp/CMakeLists.txt +109 -0
- package/android/src/main/cpp/ETInstallerModule.cpp +76 -0
- package/android/src/main/cpp/ETInstallerModule.h +43 -0
- package/android/src/main/java/com/swmansion/rnexecutorch/ETInstaller.kt +66 -0
- package/android/src/main/java/com/swmansion/rnexecutorch/RnExecutorchPackage.kt +6 -124
- package/common/ada/ada.cpp +17406 -0
- package/common/ada/ada.h +10274 -0
- package/common/pfft/pfft.c +2205 -0
- package/common/pfft/pfft.h +185 -0
- package/common/rnexecutorch/Log.h +489 -0
- package/common/rnexecutorch/RnExecutorchInstaller.cpp +113 -0
- package/common/rnexecutorch/RnExecutorchInstaller.h +87 -0
- package/common/rnexecutorch/TokenizerModule.cpp +52 -0
- package/common/rnexecutorch/TokenizerModule.h +29 -0
- package/common/rnexecutorch/data_processing/FFT.cpp +21 -0
- package/common/rnexecutorch/data_processing/FFT.h +23 -0
- package/common/rnexecutorch/data_processing/FileUtils.h +30 -0
- package/common/rnexecutorch/data_processing/ImageProcessing.cpp +240 -0
- package/common/rnexecutorch/data_processing/ImageProcessing.h +55 -0
- package/common/rnexecutorch/data_processing/Numerical.cpp +111 -0
- package/common/rnexecutorch/data_processing/Numerical.h +77 -0
- package/common/rnexecutorch/data_processing/base64.cpp +110 -0
- package/common/rnexecutorch/data_processing/base64.h +46 -0
- package/common/rnexecutorch/data_processing/dsp.cpp +19 -0
- package/common/rnexecutorch/data_processing/dsp.h +12 -0
- package/common/rnexecutorch/data_processing/gzip.cpp +47 -0
- package/common/rnexecutorch/data_processing/gzip.h +7 -0
- package/common/rnexecutorch/host_objects/JSTensorViewIn.h +12 -0
- package/common/rnexecutorch/host_objects/JSTensorViewOut.h +22 -0
- package/common/rnexecutorch/host_objects/JsiConversions.h +418 -0
- package/common/rnexecutorch/host_objects/ModelHostObject.h +313 -0
- package/common/rnexecutorch/jsi/JsiHostObject.cpp +108 -0
- package/common/rnexecutorch/jsi/JsiHostObject.h +87 -0
- package/common/rnexecutorch/jsi/OwningArrayBuffer.h +57 -0
- package/common/rnexecutorch/jsi/Promise.cpp +20 -0
- package/common/rnexecutorch/jsi/Promise.h +69 -0
- package/common/rnexecutorch/jsi/RuntimeAwareCache.h +58 -0
- package/common/rnexecutorch/jsi/RuntimeLifecycleMonitor.cpp +53 -0
- package/common/rnexecutorch/jsi/RuntimeLifecycleMonitor.h +35 -0
- package/common/rnexecutorch/metaprogramming/ConstructorHelpers.h +133 -0
- package/common/rnexecutorch/metaprogramming/FunctionHelpers.h +50 -0
- package/common/rnexecutorch/metaprogramming/TypeConcepts.h +37 -0
- package/common/rnexecutorch/models/BaseModel.cpp +183 -0
- package/common/rnexecutorch/models/BaseModel.h +61 -0
- package/common/rnexecutorch/models/classification/Classification.cpp +72 -0
- package/common/rnexecutorch/models/classification/Classification.h +31 -0
- package/{ios/RnExecutorch/models/classification/Constants.mm → common/rnexecutorch/models/classification/Constants.h} +7 -2
- package/common/rnexecutorch/models/embeddings/BaseEmbeddings.cpp +19 -0
- package/common/rnexecutorch/models/embeddings/BaseEmbeddings.h +17 -0
- package/common/rnexecutorch/models/embeddings/image/ImageEmbeddings.cpp +45 -0
- package/common/rnexecutorch/models/embeddings/image/ImageEmbeddings.h +28 -0
- package/common/rnexecutorch/models/embeddings/text/TextEmbeddings.cpp +60 -0
- package/common/rnexecutorch/models/embeddings/text/TextEmbeddings.h +31 -0
- package/{ios/RnExecutorch/models/image_segmentation/Constants.mm → common/rnexecutorch/models/image_segmentation/Constants.h} +7 -2
- package/common/rnexecutorch/models/image_segmentation/ImageSegmentation.cpp +168 -0
- package/common/rnexecutorch/models/image_segmentation/ImageSegmentation.h +50 -0
- package/common/rnexecutorch/models/llm/LLM.cpp +98 -0
- package/common/rnexecutorch/models/llm/LLM.h +38 -0
- package/{ios/RnExecutorch/utils/Constants.mm → common/rnexecutorch/models/object_detection/Constants.h} +9 -2
- package/common/rnexecutorch/models/object_detection/ObjectDetection.cpp +82 -0
- package/common/rnexecutorch/models/object_detection/ObjectDetection.h +37 -0
- package/common/rnexecutorch/models/object_detection/Types.h +13 -0
- package/{ios/RnExecutorch/utils/ObjectDetectionUtils.mm → common/rnexecutorch/models/object_detection/Utils.cpp} +17 -35
- package/common/rnexecutorch/models/object_detection/Utils.h +11 -0
- package/common/rnexecutorch/models/ocr/CTCLabelConverter.cpp +88 -0
- package/common/rnexecutorch/models/ocr/CTCLabelConverter.h +29 -0
- package/common/rnexecutorch/models/ocr/Constants.h +41 -0
- package/common/rnexecutorch/models/ocr/Detector.cpp +100 -0
- package/common/rnexecutorch/models/ocr/Detector.h +30 -0
- package/common/rnexecutorch/models/ocr/OCR.cpp +53 -0
- package/common/rnexecutorch/models/ocr/OCR.h +44 -0
- package/common/rnexecutorch/models/ocr/RecognitionHandler.cpp +108 -0
- package/common/rnexecutorch/models/ocr/RecognitionHandler.h +42 -0
- package/common/rnexecutorch/models/ocr/Recognizer.cpp +80 -0
- package/common/rnexecutorch/models/ocr/Recognizer.h +36 -0
- package/common/rnexecutorch/models/ocr/Types.h +35 -0
- package/common/rnexecutorch/models/ocr/utils/DetectorUtils.cpp +710 -0
- package/common/rnexecutorch/models/ocr/utils/DetectorUtils.h +81 -0
- package/common/rnexecutorch/models/ocr/utils/RecognitionHandlerUtils.cpp +159 -0
- package/common/rnexecutorch/models/ocr/utils/RecognitionHandlerUtils.h +72 -0
- package/common/rnexecutorch/models/ocr/utils/RecognizerUtils.cpp +204 -0
- package/common/rnexecutorch/models/ocr/utils/RecognizerUtils.h +71 -0
- package/common/rnexecutorch/models/speech_to_text/SpeechToText.cpp +125 -0
- package/common/rnexecutorch/models/speech_to_text/SpeechToText.h +57 -0
- package/common/rnexecutorch/models/speech_to_text/asr/ASR.cpp +303 -0
- package/common/rnexecutorch/models/speech_to_text/asr/ASR.h +61 -0
- package/common/rnexecutorch/models/speech_to_text/stream/HypothesisBuffer.cpp +82 -0
- package/common/rnexecutorch/models/speech_to_text/stream/HypothesisBuffer.h +25 -0
- package/common/rnexecutorch/models/speech_to_text/stream/OnlineASRProcessor.cpp +99 -0
- package/common/rnexecutorch/models/speech_to_text/stream/OnlineASRProcessor.h +33 -0
- package/common/rnexecutorch/models/speech_to_text/types/DecodingOptions.h +15 -0
- package/common/rnexecutorch/models/speech_to_text/types/GenerationResult.h +12 -0
- package/common/rnexecutorch/models/speech_to_text/types/ProcessResult.h +12 -0
- package/common/rnexecutorch/models/speech_to_text/types/Segment.h +14 -0
- package/common/rnexecutorch/models/speech_to_text/types/Word.h +13 -0
- package/common/rnexecutorch/models/style_transfer/StyleTransfer.cpp +55 -0
- package/common/rnexecutorch/models/style_transfer/StyleTransfer.h +35 -0
- package/common/rnexecutorch/models/text_to_image/Constants.h +9 -0
- package/common/rnexecutorch/models/text_to_image/Decoder.cpp +32 -0
- package/common/rnexecutorch/models/text_to_image/Decoder.h +24 -0
- package/common/rnexecutorch/models/text_to_image/Encoder.cpp +44 -0
- package/common/rnexecutorch/models/text_to_image/Encoder.h +32 -0
- package/common/rnexecutorch/models/text_to_image/Scheduler.cpp +152 -0
- package/common/rnexecutorch/models/text_to_image/Scheduler.h +41 -0
- package/common/rnexecutorch/models/text_to_image/TextToImage.cpp +141 -0
- package/common/rnexecutorch/models/text_to_image/TextToImage.h +64 -0
- package/common/rnexecutorch/models/text_to_image/UNet.cpp +38 -0
- package/common/rnexecutorch/models/text_to_image/UNet.h +28 -0
- package/common/rnexecutorch/models/vertical_ocr/VerticalDetector.cpp +93 -0
- package/common/rnexecutorch/models/vertical_ocr/VerticalDetector.h +49 -0
- package/common/rnexecutorch/models/vertical_ocr/VerticalOCR.cpp +180 -0
- package/common/rnexecutorch/models/vertical_ocr/VerticalOCR.h +85 -0
- package/common/rnexecutorch/models/voice_activity_detection/Constants.h +27 -0
- package/common/rnexecutorch/models/voice_activity_detection/Types.h +12 -0
- package/common/rnexecutorch/models/voice_activity_detection/Utils.cpp +15 -0
- package/common/rnexecutorch/models/voice_activity_detection/Utils.h +13 -0
- package/common/rnexecutorch/models/voice_activity_detection/VoiceActivityDetection.cpp +160 -0
- package/common/rnexecutorch/models/voice_activity_detection/VoiceActivityDetection.h +36 -0
- package/common/rnexecutorch/tests/CMakeLists.txt +30 -0
- package/common/rnexecutorch/tests/LogTest.cpp +530 -0
- package/common/rnexecutorch/tests/NumericalTest.cpp +110 -0
- package/common/rnexecutorch/tests/README.md +37 -0
- package/common/rnexecutorch/threads/GlobalThreadPool.h +84 -0
- package/common/rnexecutorch/threads/HighPerformanceThreadPool.h +364 -0
- package/common/rnexecutorch/threads/utils/ThreadUtils.h +29 -0
- package/common/runner/arange_util.cpp +44 -0
- package/common/runner/arange_util.h +37 -0
- package/common/runner/constants.h +28 -0
- package/common/runner/io_manager.h +240 -0
- package/common/runner/irunner.h +119 -0
- package/common/runner/kernel_includes.h +23 -0
- package/common/runner/runner.cpp +369 -0
- package/common/runner/runner.h +85 -0
- package/common/runner/sampler.cpp +201 -0
- package/common/runner/sampler.h +67 -0
- package/common/runner/stats.h +161 -0
- package/common/runner/text_decoder_runner.cpp +79 -0
- package/common/runner/text_decoder_runner.h +126 -0
- package/common/runner/text_prefiller.cpp +125 -0
- package/common/runner/text_prefiller.h +85 -0
- package/common/runner/text_token_generator.h +205 -0
- package/common/runner/util.h +153 -0
- package/ios/RnExecutorch/ETInstaller.h +8 -0
- package/ios/RnExecutorch/ETInstaller.mm +56 -0
- package/ios/RnExecutorch.xcodeproj/project.pbxproj +73 -23
- package/lib/module/Error.js +3 -0
- package/lib/module/Error.js.map +1 -1
- package/lib/module/common/Logger.js +23 -0
- package/lib/module/common/Logger.js.map +1 -0
- package/lib/module/constants/directories.js +1 -1
- package/lib/module/constants/directories.js.map +1 -1
- package/lib/module/constants/llmDefaults.js +8 -0
- package/lib/module/constants/llmDefaults.js.map +1 -1
- package/lib/module/constants/modelUrls.js +356 -84
- package/lib/module/constants/modelUrls.js.map +1 -1
- package/lib/module/constants/ocr/models.js +181 -286
- package/lib/module/constants/ocr/models.js.map +1 -1
- package/lib/module/constants/ocr/symbols.js +66 -65
- package/lib/module/constants/ocr/symbols.js.map +1 -1
- package/lib/module/controllers/LLMController.js +53 -23
- package/lib/module/controllers/LLMController.js.map +1 -1
- package/lib/module/controllers/OCRController.js +17 -10
- package/lib/module/controllers/OCRController.js.map +1 -1
- package/lib/module/controllers/VerticalOCRController.js +17 -10
- package/lib/module/controllers/VerticalOCRController.js.map +1 -1
- package/lib/module/hooks/computer_vision/useClassification.js +4 -4
- package/lib/module/hooks/computer_vision/useClassification.js.map +1 -1
- package/lib/module/hooks/computer_vision/useImageEmbeddings.js +13 -0
- package/lib/module/hooks/computer_vision/useImageEmbeddings.js.map +1 -0
- package/lib/module/hooks/computer_vision/useImageSegmentation.js +2 -2
- package/lib/module/hooks/computer_vision/useImageSegmentation.js.map +1 -1
- package/lib/module/hooks/computer_vision/useOCR.js +16 -17
- package/lib/module/hooks/computer_vision/useOCR.js.map +1 -1
- package/lib/module/hooks/computer_vision/useObjectDetection.js +3 -3
- package/lib/module/hooks/computer_vision/useObjectDetection.js.map +1 -1
- package/lib/module/hooks/computer_vision/useStyleTransfer.js +3 -3
- package/lib/module/hooks/computer_vision/useStyleTransfer.js.map +1 -1
- package/lib/module/hooks/computer_vision/useTextToImage.js +57 -0
- package/lib/module/hooks/computer_vision/useTextToImage.js.map +1 -0
- package/lib/module/hooks/computer_vision/useVerticalOCR.js +18 -19
- package/lib/module/hooks/computer_vision/useVerticalOCR.js.map +1 -1
- package/lib/module/hooks/general/useExecutorchModule.js +1 -1
- package/lib/module/hooks/general/useExecutorchModule.js.map +1 -1
- package/lib/module/hooks/natural_language_processing/useLLM.js +30 -29
- package/lib/module/hooks/natural_language_processing/useLLM.js.map +1 -1
- package/lib/module/hooks/natural_language_processing/useSpeechToText.js +72 -33
- package/lib/module/hooks/natural_language_processing/useSpeechToText.js.map +1 -1
- package/lib/module/hooks/natural_language_processing/useTextEmbeddings.js +2 -3
- package/lib/module/hooks/natural_language_processing/useTextEmbeddings.js.map +1 -1
- package/lib/module/hooks/natural_language_processing/useTokenizer.js +19 -18
- package/lib/module/hooks/natural_language_processing/useTokenizer.js.map +1 -1
- package/lib/module/hooks/natural_language_processing/useVAD.js +13 -0
- package/lib/module/hooks/natural_language_processing/useVAD.js.map +1 -0
- package/lib/module/hooks/useModule.js +13 -9
- package/lib/module/hooks/useModule.js.map +1 -1
- package/lib/module/index.js +21 -3
- package/lib/module/index.js.map +1 -1
- package/lib/module/modules/BaseModule.js +9 -14
- package/lib/module/modules/BaseModule.js.map +1 -1
- package/lib/module/modules/computer_vision/ClassificationModule.js +11 -6
- package/lib/module/modules/computer_vision/ClassificationModule.js.map +1 -1
- package/lib/module/modules/computer_vision/ImageEmbeddingsModule.js +19 -0
- package/lib/module/modules/computer_vision/ImageEmbeddingsModule.js.map +1 -0
- package/lib/module/modules/computer_vision/ImageSegmentationModule.js +20 -18
- package/lib/module/modules/computer_vision/ImageSegmentationModule.js.map +1 -1
- package/lib/module/modules/computer_vision/OCRModule.js +13 -10
- package/lib/module/modules/computer_vision/OCRModule.js.map +1 -1
- package/lib/module/modules/computer_vision/ObjectDetectionModule.js +11 -6
- package/lib/module/modules/computer_vision/ObjectDetectionModule.js.map +1 -1
- package/lib/module/modules/computer_vision/StyleTransferModule.js +11 -6
- package/lib/module/modules/computer_vision/StyleTransferModule.js.map +1 -1
- package/lib/module/modules/computer_vision/TextToImageModule.js +48 -0
- package/lib/module/modules/computer_vision/TextToImageModule.js.map +1 -0
- package/lib/module/modules/computer_vision/VerticalOCRModule.js +15 -10
- package/lib/module/modules/computer_vision/VerticalOCRModule.js.map +1 -1
- package/lib/module/modules/general/ExecutorchModule.js +8 -34
- package/lib/module/modules/general/ExecutorchModule.js.map +1 -1
- package/lib/module/modules/natural_language_processing/LLMModule.js +25 -24
- package/lib/module/modules/natural_language_processing/LLMModule.js.map +1 -1
- package/lib/module/modules/natural_language_processing/SpeechToTextModule.js +109 -27
- package/lib/module/modules/natural_language_processing/SpeechToTextModule.js.map +1 -1
- package/lib/module/modules/natural_language_processing/TextEmbeddingsModule.js +13 -6
- package/lib/module/modules/natural_language_processing/TextEmbeddingsModule.js.map +1 -1
- package/lib/module/modules/natural_language_processing/TokenizerModule.js +20 -14
- package/lib/module/modules/natural_language_processing/TokenizerModule.js.map +1 -1
- package/lib/module/modules/natural_language_processing/VADModule.js +19 -0
- package/lib/module/modules/natural_language_processing/VADModule.js.map +1 -0
- package/lib/module/native/NativeETInstaller.js +5 -0
- package/lib/module/native/NativeETInstaller.js.map +1 -0
- package/lib/module/native/RnExecutorchModules.js +2 -12
- package/lib/module/native/RnExecutorchModules.js.map +1 -1
- package/lib/module/types/common.js +25 -8
- package/lib/module/types/common.js.map +1 -1
- package/lib/module/types/llm.js.map +1 -1
- package/lib/module/types/stt.js +1 -79
- package/lib/module/types/stt.js.map +1 -1
- package/lib/module/types/vad.js +2 -0
- package/lib/module/types/vad.js.map +1 -0
- package/lib/module/utils/ResourceFetcher.js +275 -114
- package/lib/module/utils/ResourceFetcher.js.map +1 -1
- package/lib/module/utils/ResourceFetcherUtils.js +155 -0
- package/lib/module/utils/ResourceFetcherUtils.js.map +1 -0
- package/lib/module/utils/llm.js +41 -1
- package/lib/module/utils/llm.js.map +1 -1
- package/lib/typescript/Error.d.ts +3 -0
- package/lib/typescript/Error.d.ts.map +1 -1
- package/lib/typescript/common/Logger.d.ts +9 -0
- package/lib/typescript/common/Logger.d.ts.map +1 -0
- package/lib/typescript/constants/llmDefaults.d.ts +1 -0
- package/lib/typescript/constants/llmDefaults.d.ts.map +1 -1
- package/lib/typescript/constants/modelUrls.d.ts +263 -79
- package/lib/typescript/constants/modelUrls.d.ts.map +1 -1
- package/lib/typescript/constants/ocr/models.d.ts +882 -284
- package/lib/typescript/constants/ocr/models.d.ts.map +1 -1
- package/lib/typescript/constants/ocr/symbols.d.ts +1 -1
- package/lib/typescript/constants/ocr/symbols.d.ts.map +1 -1
- package/lib/typescript/controllers/LLMController.d.ts +8 -7
- package/lib/typescript/controllers/LLMController.d.ts.map +1 -1
- package/lib/typescript/controllers/OCRController.d.ts +5 -6
- package/lib/typescript/controllers/OCRController.d.ts.map +1 -1
- package/lib/typescript/controllers/VerticalOCRController.d.ts +5 -6
- package/lib/typescript/controllers/VerticalOCRController.d.ts.map +1 -1
- package/lib/typescript/hooks/computer_vision/useClassification.d.ts +8 -6
- package/lib/typescript/hooks/computer_vision/useClassification.d.ts.map +1 -1
- package/lib/typescript/hooks/computer_vision/useImageEmbeddings.d.ts +16 -0
- package/lib/typescript/hooks/computer_vision/useImageEmbeddings.d.ts.map +1 -0
- package/lib/typescript/hooks/computer_vision/useImageSegmentation.d.ts +5 -3
- package/lib/typescript/hooks/computer_vision/useImageSegmentation.d.ts.map +1 -1
- package/lib/typescript/hooks/computer_vision/useOCR.d.ts +5 -5
- package/lib/typescript/hooks/computer_vision/useOCR.d.ts.map +1 -1
- package/lib/typescript/hooks/computer_vision/useObjectDetection.d.ts +5 -3
- package/lib/typescript/hooks/computer_vision/useObjectDetection.d.ts.map +1 -1
- package/lib/typescript/hooks/computer_vision/useStyleTransfer.d.ts +5 -3
- package/lib/typescript/hooks/computer_vision/useStyleTransfer.d.ts.map +1 -1
- package/lib/typescript/hooks/computer_vision/useTextToImage.d.ts +22 -0
- package/lib/typescript/hooks/computer_vision/useTextToImage.d.ts.map +1 -0
- package/lib/typescript/hooks/computer_vision/useVerticalOCR.d.ts +4 -6
- package/lib/typescript/hooks/computer_vision/useVerticalOCR.d.ts.map +1 -1
- package/lib/typescript/hooks/general/useExecutorchModule.d.ts +1 -1
- package/lib/typescript/hooks/natural_language_processing/useLLM.d.ts +6 -4
- package/lib/typescript/hooks/natural_language_processing/useLLM.d.ts.map +1 -1
- package/lib/typescript/hooks/natural_language_processing/useSpeechToText.d.ts +15 -22
- package/lib/typescript/hooks/natural_language_processing/useSpeechToText.d.ts.map +1 -1
- package/lib/typescript/hooks/natural_language_processing/useTextEmbeddings.d.ts +9 -5
- package/lib/typescript/hooks/natural_language_processing/useTextEmbeddings.d.ts.map +1 -1
- package/lib/typescript/hooks/natural_language_processing/useTokenizer.d.ts +6 -4
- package/lib/typescript/hooks/natural_language_processing/useTokenizer.d.ts.map +1 -1
- package/lib/typescript/hooks/natural_language_processing/useVAD.d.ts +16 -0
- package/lib/typescript/hooks/natural_language_processing/useVAD.d.ts.map +1 -0
- package/lib/typescript/hooks/useModule.d.ts +8 -5
- package/lib/typescript/hooks/useModule.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +26 -3
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/modules/BaseModule.d.ts +7 -6
- package/lib/typescript/modules/BaseModule.d.ts.map +1 -1
- package/lib/typescript/modules/computer_vision/ClassificationModule.d.ts +4 -4
- package/lib/typescript/modules/computer_vision/ClassificationModule.d.ts.map +1 -1
- package/lib/typescript/modules/computer_vision/ImageEmbeddingsModule.d.ts +9 -0
- package/lib/typescript/modules/computer_vision/ImageEmbeddingsModule.d.ts.map +1 -0
- package/lib/typescript/modules/computer_vision/ImageSegmentationModule.d.ts +7 -27
- package/lib/typescript/modules/computer_vision/ImageSegmentationModule.d.ts.map +1 -1
- package/lib/typescript/modules/computer_vision/OCRModule.d.ts +8 -7
- package/lib/typescript/modules/computer_vision/OCRModule.d.ts.map +1 -1
- package/lib/typescript/modules/computer_vision/ObjectDetectionModule.d.ts +5 -3
- package/lib/typescript/modules/computer_vision/ObjectDetectionModule.d.ts.map +1 -1
- package/lib/typescript/modules/computer_vision/StyleTransferModule.d.ts +4 -3
- package/lib/typescript/modules/computer_vision/StyleTransferModule.d.ts.map +1 -1
- package/lib/typescript/modules/computer_vision/TextToImageModule.d.ts +16 -0
- package/lib/typescript/modules/computer_vision/TextToImageModule.d.ts.map +1 -0
- package/lib/typescript/modules/computer_vision/VerticalOCRModule.d.ts +7 -8
- package/lib/typescript/modules/computer_vision/VerticalOCRModule.d.ts.map +1 -1
- package/lib/typescript/modules/general/ExecutorchModule.d.ts +4 -7
- package/lib/typescript/modules/general/ExecutorchModule.d.ts.map +1 -1
- package/lib/typescript/modules/natural_language_processing/LLMModule.d.ts +19 -17
- package/lib/typescript/modules/natural_language_processing/LLMModule.d.ts.map +1 -1
- package/lib/typescript/modules/natural_language_processing/SpeechToTextModule.d.ts +17 -13
- package/lib/typescript/modules/natural_language_processing/SpeechToTextModule.d.ts.map +1 -1
- package/lib/typescript/modules/natural_language_processing/TextEmbeddingsModule.d.ts +5 -3
- package/lib/typescript/modules/natural_language_processing/TextEmbeddingsModule.d.ts.map +1 -1
- package/lib/typescript/modules/natural_language_processing/TokenizerModule.d.ts +10 -9
- package/lib/typescript/modules/natural_language_processing/TokenizerModule.d.ts.map +1 -1
- package/lib/typescript/modules/natural_language_processing/VADModule.d.ts +10 -0
- package/lib/typescript/modules/natural_language_processing/VADModule.d.ts.map +1 -0
- package/lib/typescript/native/{NativeStyleTransfer.d.ts → NativeETInstaller.d.ts} +2 -3
- package/lib/typescript/native/NativeETInstaller.d.ts.map +1 -0
- package/lib/typescript/native/RnExecutorchModules.d.ts +3 -23
- package/lib/typescript/native/RnExecutorchModules.d.ts.map +1 -1
- package/lib/typescript/types/common.d.ts +30 -2
- package/lib/typescript/types/common.d.ts.map +1 -1
- package/lib/typescript/types/llm.d.ts +9 -1
- package/lib/typescript/types/llm.d.ts.map +1 -1
- package/lib/typescript/types/stt.d.ts +9 -88
- package/lib/typescript/types/stt.d.ts.map +1 -1
- package/lib/typescript/types/vad.d.ts +5 -0
- package/lib/typescript/types/vad.d.ts.map +1 -0
- package/lib/typescript/utils/ResourceFetcher.d.ts +47 -10
- package/lib/typescript/utils/ResourceFetcher.d.ts.map +1 -1
- package/lib/typescript/utils/ResourceFetcherUtils.d.ts +55 -0
- package/lib/typescript/utils/ResourceFetcherUtils.d.ts.map +1 -0
- package/lib/typescript/utils/llm.d.ts +4 -0
- package/lib/typescript/utils/llm.d.ts.map +1 -1
- package/package.json +32 -68
- package/react-native-executorch.podspec +62 -4
- package/src/Error.ts +3 -0
- package/src/common/Logger.ts +25 -0
- package/src/constants/directories.ts +1 -1
- package/src/constants/llmDefaults.ts +11 -0
- package/src/constants/modelUrls.ts +433 -168
- package/src/constants/ocr/models.ts +826 -395
- package/src/constants/ocr/symbols.ts +66 -65
- package/src/controllers/LLMController.ts +76 -36
- package/src/controllers/OCRController.ts +25 -16
- package/src/controllers/VerticalOCRController.ts +25 -15
- package/src/hooks/computer_vision/useClassification.ts +8 -9
- package/src/hooks/computer_vision/useImageEmbeddings.ts +15 -0
- package/src/hooks/computer_vision/useImageSegmentation.ts +3 -6
- package/src/hooks/computer_vision/useOCR.ts +32 -25
- package/src/hooks/computer_vision/useObjectDetection.ts +4 -7
- package/src/hooks/computer_vision/useStyleTransfer.ts +4 -4
- package/src/hooks/computer_vision/useTextToImage.ts +92 -0
- package/src/hooks/computer_vision/useVerticalOCR.ts +33 -31
- package/src/hooks/general/useExecutorchModule.ts +1 -1
- package/src/hooks/natural_language_processing/useLLM.ts +54 -31
- package/src/hooks/natural_language_processing/useSpeechToText.ts +96 -88
- package/src/hooks/natural_language_processing/useTextEmbeddings.ts +9 -9
- package/src/hooks/natural_language_processing/useTokenizer.ts +21 -21
- package/src/hooks/natural_language_processing/useVAD.ts +15 -0
- package/src/hooks/useModule.ts +23 -13
- package/src/index.ts +126 -0
- package/src/modules/BaseModule.ts +17 -22
- package/src/modules/computer_vision/ClassificationModule.ts +18 -9
- package/src/modules/computer_vision/ImageEmbeddingsModule.ts +26 -0
- package/src/modules/computer_vision/ImageSegmentationModule.ts +34 -26
- package/src/modules/computer_vision/OCRModule.ts +23 -15
- package/src/modules/computer_vision/ObjectDetectionModule.ts +22 -9
- package/src/modules/computer_vision/StyleTransferModule.ts +18 -9
- package/src/modules/computer_vision/TextToImageModule.ts +93 -0
- package/src/modules/computer_vision/VerticalOCRModule.ts +25 -21
- package/src/modules/general/ExecutorchModule.ts +16 -46
- package/src/modules/natural_language_processing/LLMModule.ts +41 -32
- package/src/modules/natural_language_processing/SpeechToTextModule.ts +164 -66
- package/src/modules/natural_language_processing/TextEmbeddingsModule.ts +25 -10
- package/src/modules/natural_language_processing/TokenizerModule.ts +27 -17
- package/src/modules/natural_language_processing/VADModule.ts +27 -0
- package/src/native/NativeETInstaller.ts +8 -0
- package/src/native/RnExecutorchModules.ts +4 -50
- package/src/types/common.ts +40 -12
- package/src/types/llm.ts +10 -0
- package/src/types/stt.ts +87 -90
- package/src/types/vad.ts +4 -0
- package/src/utils/ResourceFetcher.ts +342 -120
- package/src/utils/ResourceFetcherUtils.ts +184 -0
- package/src/utils/llm.ts +65 -1
- package/third-party/android/libs/cpuinfo/arm64-v8a/libcpuinfo.so +0 -0
- package/third-party/android/libs/executorch/arm64-v8a/libexecutorch.so +0 -0
- package/third-party/android/libs/executorch/x86_64/libexecutorch.so +0 -0
- package/third-party/android/libs/opencv/arm64-v8a/libopencv_core.a +0 -0
- package/third-party/android/libs/opencv/arm64-v8a/libopencv_features2d.a +0 -0
- package/third-party/android/libs/opencv/arm64-v8a/libopencv_highgui.a +0 -0
- package/third-party/android/libs/opencv/arm64-v8a/libopencv_imgproc.a +0 -0
- package/third-party/android/libs/opencv/arm64-v8a/libopencv_photo.a +0 -0
- package/third-party/android/libs/opencv/arm64-v8a/libopencv_video.a +0 -0
- package/third-party/android/libs/opencv/x86_64/libopencv_core.a +0 -0
- package/third-party/android/libs/opencv/x86_64/libopencv_features2d.a +0 -0
- package/third-party/android/libs/opencv/x86_64/libopencv_highgui.a +0 -0
- package/third-party/android/libs/opencv/x86_64/libopencv_imgproc.a +0 -0
- package/third-party/android/libs/opencv/x86_64/libopencv_photo.a +0 -0
- package/third-party/android/libs/opencv/x86_64/libopencv_video.a +0 -0
- package/third-party/android/libs/opencv-third-party/arm64-v8a/libkleidicv.a +0 -0
- package/third-party/android/libs/opencv-third-party/arm64-v8a/libkleidicv_hal.a +0 -0
- package/third-party/android/libs/opencv-third-party/arm64-v8a/libkleidicv_thread.a +0 -0
- package/third-party/android/libs/pthreadpool/arm64-v8a/libpthreadpool.so +0 -0
- package/third-party/android/libs/tokenizers-cpp/arm64-v8a/libsentencepiece.a +0 -0
- package/third-party/android/libs/tokenizers-cpp/arm64-v8a/libtokenizers_c.a +0 -0
- package/third-party/android/libs/tokenizers-cpp/arm64-v8a/libtokenizers_cpp.a +0 -0
- package/{ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/ExecutorchLib → third-party/android/libs/tokenizers-cpp/x86_64/libsentencepiece.a} +0 -0
- package/third-party/android/libs/tokenizers-cpp/x86_64/libtokenizers_c.a +0 -0
- package/third-party/android/libs/tokenizers-cpp/x86_64/libtokenizers_cpp.a +0 -0
- package/third-party/include/c10/macros/Export.h +1 -0
- package/third-party/include/c10/macros/Macros.h +1 -0
- package/third-party/include/c10/util/BFloat16-inl.h +1 -0
- package/third-party/include/c10/util/BFloat16-math.h +266 -0
- package/third-party/include/c10/util/BFloat16.h +1 -0
- package/third-party/include/c10/util/Half-inl.h +1 -0
- package/third-party/include/c10/util/Half.h +8 -0
- package/third-party/include/c10/util/TypeSafeSignMath.h +1 -0
- package/third-party/include/c10/util/bit_cast.h +1 -0
- package/third-party/include/c10/util/complex.h +72 -0
- package/third-party/include/c10/util/complex_math.h +399 -0
- package/third-party/include/c10/util/complex_utils.h +41 -0
- package/third-party/include/c10/util/floating_point_utils.h +1 -0
- package/third-party/include/c10/util/irange.h +107 -0
- package/third-party/include/c10/util/llvmMathExtras.h +866 -0
- package/third-party/include/c10/util/overflows.h +95 -0
- package/third-party/include/c10/util/safe_numerics.h +97 -0
- package/third-party/include/cpuinfo/cpuinfo.h +2305 -0
- package/third-party/include/executorch/ExecuTorch.h +13 -0
- package/third-party/include/executorch/ExecuTorchError.h +90 -0
- package/third-party/include/executorch/ExecuTorchLLM/ExecuTorchLLM.h +12 -0
- package/third-party/include/executorch/ExecuTorchLLM/ExecuTorchLLMConfig.h +56 -0
- package/third-party/include/executorch/ExecuTorchLLM/ExecuTorchLLMError.h +16 -0
- package/third-party/include/executorch/ExecuTorchLLM/ExecuTorchLLMMultimodalRunner.h +227 -0
- package/third-party/include/executorch/ExecuTorchLLM/ExecuTorchLLMTextRunner.h +97 -0
- package/third-party/include/executorch/ExecuTorchLLM/module.modulemap +4 -0
- package/third-party/include/executorch/ExecuTorchLog.h +77 -0
- package/third-party/include/executorch/ExecuTorchModule.h +563 -0
- package/third-party/include/executorch/ExecuTorchTensor.h +1421 -0
- package/third-party/include/executorch/ExecuTorchValue.h +265 -0
- package/third-party/include/executorch/extension/module/bundled_module.h +131 -0
- package/third-party/include/executorch/extension/module/module.h +649 -0
- package/third-party/include/executorch/extension/tensor/tensor.h +14 -0
- package/third-party/include/executorch/extension/tensor/tensor_accessor.h +190 -0
- package/third-party/include/executorch/extension/tensor/tensor_ptr.h +409 -0
- package/third-party/include/executorch/extension/tensor/tensor_ptr_maker.h +653 -0
- package/third-party/include/executorch/extension/threadpool/cpuinfo_utils.h +24 -0
- package/third-party/include/executorch/extension/threadpool/threadpool.h +95 -0
- package/third-party/include/executorch/runtime/backend/backend_execution_context.h +71 -0
- package/third-party/include/executorch/runtime/backend/backend_init_context.h +84 -0
- package/third-party/include/executorch/runtime/backend/backend_option_context.h +34 -0
- package/third-party/include/executorch/runtime/backend/interface.h +227 -0
- package/third-party/include/executorch/runtime/backend/options.h +206 -0
- package/third-party/include/executorch/runtime/core/array_ref.h +235 -0
- package/third-party/include/executorch/runtime/core/data_loader.h +136 -0
- package/third-party/include/executorch/runtime/core/defines.h +20 -0
- package/third-party/include/executorch/runtime/core/error.h +256 -0
- package/third-party/include/executorch/runtime/core/evalue.h +515 -0
- package/third-party/include/executorch/runtime/core/event_tracer.h +580 -0
- package/third-party/include/executorch/runtime/core/event_tracer_hooks.h +332 -0
- package/third-party/include/executorch/runtime/core/event_tracer_hooks_delegate.h +197 -0
- package/third-party/include/executorch/runtime/core/exec_aten/exec_aten.h +170 -0
- package/third-party/include/executorch/runtime/core/exec_aten/util/dim_order_util.h +264 -0
- package/third-party/include/executorch/runtime/core/exec_aten/util/scalar_type_util.h +1313 -0
- package/third-party/include/executorch/runtime/core/exec_aten/util/tensor_dimension_limit.h +21 -0
- package/third-party/include/executorch/runtime/core/exec_aten/util/tensor_shape_to_c_string.h +69 -0
- package/third-party/include/executorch/runtime/core/exec_aten/util/tensor_util.h +1251 -0
- package/third-party/include/executorch/runtime/core/freeable_buffer.h +107 -0
- package/third-party/include/executorch/runtime/core/function_ref.h +100 -0
- package/third-party/include/executorch/runtime/core/hierarchical_allocator.h +107 -0
- package/third-party/include/executorch/runtime/core/memory_allocator.h +208 -0
- package/third-party/include/executorch/runtime/core/named_data_map.h +76 -0
- package/third-party/include/executorch/runtime/core/portable_type/bfloat16.h +27 -0
- package/third-party/include/executorch/runtime/core/portable_type/bfloat16_math.h +14 -0
- package/third-party/include/executorch/runtime/core/portable_type/bits_types.h +83 -0
- package/third-party/include/executorch/runtime/core/portable_type/c10/c10/macros/Export.h +1 -0
- package/third-party/include/executorch/runtime/core/portable_type/c10/c10/macros/Macros.h +1 -0
- package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/BFloat16-inl.h +1 -0
- package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/BFloat16-math.h +266 -0
- package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/BFloat16.h +1 -0
- package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/Half-inl.h +1 -0
- package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/Half.h +8 -0
- package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/TypeSafeSignMath.h +1 -0
- package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/bit_cast.h +1 -0
- package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/complex.h +72 -0
- package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/complex_math.h +399 -0
- package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/complex_utils.h +41 -0
- package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/floating_point_utils.h +1 -0
- package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/irange.h +107 -0
- package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/llvmMathExtras.h +866 -0
- package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/overflows.h +95 -0
- package/third-party/include/executorch/runtime/core/portable_type/c10/c10/util/safe_numerics.h +97 -0
- package/third-party/include/executorch/runtime/core/portable_type/c10/torch/headeronly/macros/Export.h +154 -0
- package/third-party/include/executorch/runtime/core/portable_type/c10/torch/headeronly/macros/Macros.h +553 -0
- package/third-party/include/executorch/runtime/core/portable_type/c10/torch/headeronly/util/BFloat16.h +477 -0
- package/third-party/include/executorch/runtime/core/portable_type/c10/torch/headeronly/util/Half.h +781 -0
- package/third-party/include/executorch/runtime/core/portable_type/c10/torch/headeronly/util/TypeSafeSignMath.h +141 -0
- package/third-party/include/executorch/runtime/core/portable_type/c10/torch/headeronly/util/bit_cast.h +49 -0
- package/third-party/include/executorch/runtime/core/portable_type/c10/torch/headeronly/util/complex.h +593 -0
- package/third-party/include/executorch/runtime/core/portable_type/c10/torch/headeronly/util/floating_point_utils.h +38 -0
- package/third-party/include/executorch/runtime/core/portable_type/complex.h +21 -0
- package/third-party/include/executorch/runtime/core/portable_type/device.h +70 -0
- package/third-party/include/executorch/runtime/core/portable_type/half.h +27 -0
- package/third-party/include/executorch/runtime/core/portable_type/optional.h +36 -0
- package/third-party/include/executorch/runtime/core/portable_type/qint_types.h +83 -0
- package/third-party/include/executorch/runtime/core/portable_type/scalar.h +110 -0
- package/third-party/include/executorch/runtime/core/portable_type/scalar_type.h +154 -0
- package/third-party/include/executorch/runtime/core/portable_type/string_view.h +29 -0
- package/third-party/include/executorch/runtime/core/portable_type/tensor.h +142 -0
- package/third-party/include/executorch/runtime/core/portable_type/tensor_impl.h +281 -0
- package/third-party/include/executorch/runtime/core/portable_type/tensor_options.h +60 -0
- package/third-party/include/executorch/runtime/core/result.h +258 -0
- package/third-party/include/executorch/runtime/core/span.h +97 -0
- package/third-party/include/executorch/runtime/core/tag.h +90 -0
- package/third-party/include/executorch/runtime/core/tensor_layout.h +79 -0
- package/third-party/include/executorch/runtime/core/tensor_shape_dynamism.h +39 -0
- package/third-party/include/executorch/runtime/executor/memory_manager.h +113 -0
- package/third-party/include/executorch/runtime/executor/merged_data_map.h +142 -0
- package/third-party/include/executorch/runtime/executor/method.h +412 -0
- package/third-party/include/executorch/runtime/executor/method_meta.h +298 -0
- package/third-party/include/executorch/runtime/executor/program.h +309 -0
- package/third-party/include/executorch/runtime/executor/pte_data_map.h +145 -0
- package/third-party/include/executorch/runtime/executor/tensor_parser.h +157 -0
- package/third-party/include/executorch/runtime/kernel/kernel_runtime_context.h +122 -0
- package/third-party/include/executorch/runtime/kernel/operator_registry.h +280 -0
- package/third-party/include/executorch/runtime/platform/abort.h +36 -0
- package/third-party/include/executorch/runtime/platform/assert.h +119 -0
- package/third-party/include/executorch/runtime/platform/clock.h +43 -0
- package/third-party/include/executorch/runtime/platform/compat_unistd.h +75 -0
- package/third-party/include/executorch/runtime/platform/compiler.h +201 -0
- package/third-party/include/executorch/runtime/platform/log.h +177 -0
- package/third-party/include/executorch/runtime/platform/platform.h +259 -0
- package/third-party/include/executorch/runtime/platform/profiler.h +292 -0
- package/third-party/include/executorch/runtime/platform/runtime.h +35 -0
- package/third-party/include/executorch/runtime/platform/system.h +49 -0
- package/third-party/include/executorch/runtime/platform/types.h +24 -0
- package/third-party/include/executorch/schema/extended_header.h +85 -0
- package/third-party/include/headeronly/macros/Export.h +88 -0
- package/third-party/include/opencv2/core/affine.hpp +676 -0
- package/third-party/include/opencv2/core/async.hpp +107 -0
- package/third-party/include/opencv2/core/base.hpp +735 -0
- package/third-party/include/opencv2/core/bindings_utils.hpp +279 -0
- package/third-party/include/opencv2/core/bufferpool.hpp +39 -0
- package/third-party/include/opencv2/core/check.hpp +231 -0
- package/third-party/include/opencv2/core/core.hpp +55 -0
- package/third-party/include/opencv2/core/core_c.h +3261 -0
- package/third-party/include/opencv2/core/cv_cpu_dispatch.h +404 -0
- package/third-party/include/opencv2/core/cv_cpu_helper.h +856 -0
- package/third-party/include/opencv2/core/cvdef.h +1003 -0
- package/third-party/include/opencv2/core/cvstd.hpp +196 -0
- package/third-party/include/opencv2/core/cvstd.inl.hpp +188 -0
- package/third-party/include/opencv2/core/cvstd_wrapper.hpp +187 -0
- package/third-party/include/opencv2/core/detail/async_promise.hpp +73 -0
- package/third-party/include/opencv2/core/detail/dispatch_helper.impl.hpp +48 -0
- package/third-party/include/opencv2/core/detail/exception_ptr.hpp +24 -0
- package/third-party/include/opencv2/core/dualquaternion.hpp +1054 -0
- package/third-party/include/opencv2/core/dualquaternion.inl.hpp +464 -0
- package/third-party/include/opencv2/core/eigen.hpp +405 -0
- package/third-party/include/opencv2/core/fast_math.hpp +433 -0
- package/third-party/include/opencv2/core/hal/hal.hpp +451 -0
- package/third-party/include/opencv2/core/hal/interface.h +191 -0
- package/third-party/include/opencv2/core/hal/intrin.hpp +1222 -0
- package/third-party/include/opencv2/core/hal/intrin_avx.hpp +3378 -0
- package/third-party/include/opencv2/core/hal/intrin_avx512.hpp +3688 -0
- package/third-party/include/opencv2/core/hal/intrin_cpp.hpp +3446 -0
- package/third-party/include/opencv2/core/hal/intrin_forward.hpp +195 -0
- package/third-party/include/opencv2/core/hal/intrin_lasx.hpp +3243 -0
- package/third-party/include/opencv2/core/hal/intrin_lsx.hpp +2671 -0
- package/third-party/include/opencv2/core/hal/intrin_math.hpp +772 -0
- package/third-party/include/opencv2/core/hal/intrin_msa.hpp +1973 -0
- package/third-party/include/opencv2/core/hal/intrin_neon.hpp +2710 -0
- package/third-party/include/opencv2/core/hal/intrin_rvv071.hpp +3452 -0
- package/third-party/include/opencv2/core/hal/intrin_rvv_scalable.hpp +2559 -0
- package/third-party/include/opencv2/core/hal/intrin_sse.hpp +3528 -0
- package/third-party/include/opencv2/core/hal/intrin_sse_em.hpp +175 -0
- package/third-party/include/opencv2/core/hal/intrin_vsx.hpp +1756 -0
- package/third-party/include/opencv2/core/hal/intrin_wasm.hpp +2911 -0
- package/third-party/include/opencv2/core/hal/msa_macros.h +2079 -0
- package/third-party/include/opencv2/core/hal/simd_utils.impl.hpp +313 -0
- package/third-party/include/opencv2/core/mat.hpp +3842 -0
- package/third-party/include/opencv2/core/mat.inl.hpp +2753 -0
- package/third-party/include/opencv2/core/matx.hpp +603 -0
- package/third-party/include/opencv2/core/matx.inl.hpp +1132 -0
- package/third-party/include/opencv2/core/neon_utils.hpp +127 -0
- package/third-party/include/opencv2/core/operations.hpp +610 -0
- package/third-party/include/opencv2/core/optim.hpp +362 -0
- package/third-party/include/opencv2/core/parallel/backend/parallel_for.openmp.hpp +66 -0
- package/third-party/include/opencv2/core/parallel/backend/parallel_for.tbb.hpp +148 -0
- package/third-party/include/opencv2/core/parallel/parallel_backend.hpp +108 -0
- package/third-party/include/opencv2/core/persistence.hpp +1321 -0
- package/third-party/include/opencv2/core/quaternion.hpp +1889 -0
- package/third-party/include/opencv2/core/quaternion.inl.hpp +907 -0
- package/third-party/include/opencv2/core/saturate.hpp +347 -0
- package/third-party/include/opencv2/core/simd_intrinsics.hpp +90 -0
- package/third-party/include/opencv2/core/softfloat.hpp +657 -0
- package/third-party/include/opencv2/core/sse_utils.hpp +861 -0
- package/third-party/include/opencv2/core/traits.hpp +417 -0
- package/third-party/include/opencv2/core/types.hpp +2368 -0
- package/third-party/include/opencv2/core/types_c.h +2064 -0
- package/third-party/include/opencv2/core/utility.hpp +1296 -0
- package/third-party/include/opencv2/core/utils/allocator_stats.hpp +31 -0
- package/third-party/include/opencv2/core/utils/allocator_stats.impl.hpp +111 -0
- package/third-party/include/opencv2/core/utils/filesystem.hpp +91 -0
- package/third-party/include/opencv2/core/utils/fp_control_utils.hpp +70 -0
- package/third-party/include/opencv2/core/utils/instrumentation.hpp +127 -0
- package/third-party/include/opencv2/core/utils/logger.defines.hpp +50 -0
- package/third-party/include/opencv2/core/utils/logger.hpp +258 -0
- package/third-party/include/opencv2/core/utils/logtag.hpp +27 -0
- package/third-party/include/opencv2/core/utils/tls.hpp +230 -0
- package/third-party/include/opencv2/core/utils/trace.hpp +281 -0
- package/third-party/include/opencv2/core/version.hpp +29 -0
- package/third-party/include/opencv2/core/vsx_utils.hpp +1115 -0
- package/third-party/include/opencv2/core.hpp +3699 -0
- package/third-party/include/opencv2/cvconfig.h +155 -0
- package/third-party/include/opencv2/dnn/dnn.hpp +51 -0
- package/third-party/include/opencv2/dnn.hpp +17 -0
- package/third-party/include/opencv2/features2d/features2d.hpp +55 -0
- package/third-party/include/opencv2/features2d/hal/interface.h +32 -0
- package/third-party/include/opencv2/features2d.hpp +1756 -0
- package/third-party/include/opencv2/highgui/highgui.hpp +113 -0
- package/third-party/include/opencv2/highgui.hpp +17 -0
- package/third-party/include/opencv2/imgproc/bindings.hpp +34 -0
- package/third-party/include/opencv2/imgproc/detail/gcgraph.hpp +355 -0
- package/third-party/include/opencv2/imgproc/detail/legacy.hpp +35 -0
- package/third-party/include/opencv2/imgproc/hal/hal.hpp +246 -0
- package/third-party/include/opencv2/imgproc/hal/interface.h +52 -0
- package/third-party/include/opencv2/imgproc/imgproc.hpp +55 -0
- package/third-party/include/opencv2/imgproc/imgproc_c.h +1261 -0
- package/third-party/include/opencv2/imgproc/segmentation.hpp +168 -0
- package/third-party/include/opencv2/imgproc/types_c.h +632 -0
- package/third-party/include/opencv2/imgproc.hpp +5956 -0
- package/third-party/include/opencv2/opencv.hpp +102 -0
- package/third-party/include/opencv2/opencv_modules.hpp +19 -0
- package/third-party/include/opencv2/photo/legacy/constants_c.h +10 -0
- package/third-party/include/opencv2/photo/photo.hpp +55 -0
- package/third-party/include/opencv2/photo.hpp +975 -0
- package/third-party/include/opencv2/video/background_segm.hpp +341 -0
- package/third-party/include/opencv2/video/detail/tracking.detail.hpp +435 -0
- package/third-party/include/opencv2/video/legacy/constants_c.h +15 -0
- package/third-party/include/opencv2/video/tracking.hpp +1014 -0
- package/third-party/include/opencv2/video/video.hpp +55 -0
- package/third-party/include/opencv2/video.hpp +65 -0
- package/third-party/include/pthreadpool/pthreadpool.h +2236 -0
- package/third-party/include/tokenizers-cpp/tokenizers_c.h +61 -0
- package/third-party/include/tokenizers-cpp/tokenizers_cpp.h +118 -0
- package/third-party/include/torch/headeronly/macros/Export.h +154 -0
- package/third-party/include/torch/headeronly/macros/Macros.h +553 -0
- package/third-party/include/torch/headeronly/util/BFloat16.h +477 -0
- package/third-party/include/torch/headeronly/util/Half.h +781 -0
- package/third-party/include/torch/headeronly/util/TypeSafeSignMath.h +141 -0
- package/third-party/include/torch/headeronly/util/bit_cast.h +49 -0
- package/third-party/include/torch/headeronly/util/complex.h +593 -0
- package/third-party/include/torch/headeronly/util/floating_point_utils.h +38 -0
- package/third-party/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/ExecutorchLib +0 -0
- package/{ios → third-party/ios}/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/Info.plist +0 -0
- package/third-party/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/ExecutorchLib +0 -0
- package/{ios → third-party/ios}/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/Info.plist +0 -0
- package/third-party/ios/libs/cpuinfo/libcpuinfo.a +0 -0
- package/third-party/ios/libs/pthreadpool/physical-arm64-release/libpthreadpool.a +0 -0
- package/third-party/ios/libs/pthreadpool/simulator-arm64-debug/libpthreadpool.a +0 -0
- package/third-party/ios/libs/tokenizers-cpp/physical-arm64-release/libsentencepiece.a +0 -0
- package/{ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/ExecutorchLib → third-party/ios/libs/tokenizers-cpp/physical-arm64-release/libtokenizers_c.a} +0 -0
- package/third-party/ios/libs/tokenizers-cpp/physical-arm64-release/libtokenizers_cpp.a +0 -0
- package/third-party/ios/libs/tokenizers-cpp/simulator-arm64-debug/libsentencepiece.a +0 -0
- package/third-party/ios/libs/tokenizers-cpp/simulator-arm64-debug/libtokenizers_c.a +0 -0
- package/third-party/ios/libs/tokenizers-cpp/simulator-arm64-debug/libtokenizers_cpp.a +0 -0
- package/LICENSE +0 -79
- package/android/src/main/java/com/swmansion/rnexecutorch/Classification.kt +0 -64
- package/android/src/main/java/com/swmansion/rnexecutorch/ETModule.kt +0 -90
- package/android/src/main/java/com/swmansion/rnexecutorch/ImageSegmentation.kt +0 -58
- package/android/src/main/java/com/swmansion/rnexecutorch/LLM.kt +0 -63
- package/android/src/main/java/com/swmansion/rnexecutorch/OCR.kt +0 -90
- package/android/src/main/java/com/swmansion/rnexecutorch/ObjectDetection.kt +0 -64
- package/android/src/main/java/com/swmansion/rnexecutorch/SpeechToText.kt +0 -91
- package/android/src/main/java/com/swmansion/rnexecutorch/StyleTransfer.kt +0 -54
- package/android/src/main/java/com/swmansion/rnexecutorch/TextEmbeddings.kt +0 -51
- package/android/src/main/java/com/swmansion/rnexecutorch/Tokenizer.kt +0 -86
- package/android/src/main/java/com/swmansion/rnexecutorch/VerticalOCR.kt +0 -179
- package/android/src/main/java/com/swmansion/rnexecutorch/models/BaseModel.kt +0 -54
- package/android/src/main/java/com/swmansion/rnexecutorch/models/TextEmbeddings/TextEmbeddingsModel.kt +0 -48
- package/android/src/main/java/com/swmansion/rnexecutorch/models/TextEmbeddings/TextEmbeddingsUtils.kt +0 -37
- package/android/src/main/java/com/swmansion/rnexecutorch/models/classification/ClassificationModel.kt +0 -46
- package/android/src/main/java/com/swmansion/rnexecutorch/models/classification/Constants.kt +0 -1005
- package/android/src/main/java/com/swmansion/rnexecutorch/models/imageSegmentation/Constants.kt +0 -26
- package/android/src/main/java/com/swmansion/rnexecutorch/models/imageSegmentation/ImageSegmentationModel.kt +0 -142
- package/android/src/main/java/com/swmansion/rnexecutorch/models/objectDetection/SSDLiteLargeModel.kt +0 -74
- package/android/src/main/java/com/swmansion/rnexecutorch/models/ocr/Detector.kt +0 -82
- package/android/src/main/java/com/swmansion/rnexecutorch/models/ocr/RecognitionHandler.kt +0 -117
- package/android/src/main/java/com/swmansion/rnexecutorch/models/ocr/Recognizer.kt +0 -51
- package/android/src/main/java/com/swmansion/rnexecutorch/models/ocr/VerticalDetector.kt +0 -89
- package/android/src/main/java/com/swmansion/rnexecutorch/models/ocr/utils/CTCLabelConverter.kt +0 -58
- package/android/src/main/java/com/swmansion/rnexecutorch/models/ocr/utils/Constants.kt +0 -31
- package/android/src/main/java/com/swmansion/rnexecutorch/models/ocr/utils/DetectorUtils.kt +0 -608
- package/android/src/main/java/com/swmansion/rnexecutorch/models/ocr/utils/RecognizerUtils.kt +0 -430
- package/android/src/main/java/com/swmansion/rnexecutorch/models/speechToText/BaseS2TDecoder.kt +0 -39
- package/android/src/main/java/com/swmansion/rnexecutorch/models/speechToText/BaseS2TModule.kt +0 -43
- package/android/src/main/java/com/swmansion/rnexecutorch/models/speechToText/Moonshine.kt +0 -16
- package/android/src/main/java/com/swmansion/rnexecutorch/models/speechToText/MoonshineDecoder.kt +0 -23
- package/android/src/main/java/com/swmansion/rnexecutorch/models/speechToText/MoonshineEncoder.kt +0 -20
- package/android/src/main/java/com/swmansion/rnexecutorch/models/speechToText/Whisper.kt +0 -16
- package/android/src/main/java/com/swmansion/rnexecutorch/models/speechToText/WhisperDecoder.kt +0 -22
- package/android/src/main/java/com/swmansion/rnexecutorch/models/speechToText/WhisperEncoder.kt +0 -29
- package/android/src/main/java/com/swmansion/rnexecutorch/models/styleTransfer/StyleTransferModel.kt +0 -43
- package/android/src/main/java/com/swmansion/rnexecutorch/utils/ArrayUtils.kt +0 -87
- package/android/src/main/java/com/swmansion/rnexecutorch/utils/ETError.kt +0 -34
- package/android/src/main/java/com/swmansion/rnexecutorch/utils/ImageProcessor.kt +0 -237
- package/android/src/main/java/com/swmansion/rnexecutorch/utils/Numerical.kt +0 -8
- package/android/src/main/java/com/swmansion/rnexecutorch/utils/ObjectDetectionUtils.kt +0 -201
- package/android/src/main/java/com/swmansion/rnexecutorch/utils/STFT.kt +0 -50
- package/android/src/main/java/com/swmansion/rnexecutorch/utils/TensorUtils.kt +0 -103
- package/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/Headers/ETModel.h +0 -27
- package/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/Headers/HuggingFaceTokenizer.h +0 -14
- package/ios/ExecutorchLib.xcframework/ios-arm64/ExecutorchLib.framework/Headers/LLaMARunner.h +0 -32
- package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/Headers/ETModel.h +0 -27
- package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/Headers/HuggingFaceTokenizer.h +0 -14
- package/ios/ExecutorchLib.xcframework/ios-arm64-simulator/ExecutorchLib.framework/Headers/LLaMARunner.h +0 -32
- package/ios/RnExecutorch/Classification.h +0 -5
- package/ios/RnExecutorch/Classification.mm +0 -54
- package/ios/RnExecutorch/ETModule.h +0 -5
- package/ios/RnExecutorch/ETModule.mm +0 -75
- package/ios/RnExecutorch/ImageSegmentation.h +0 -5
- package/ios/RnExecutorch/ImageSegmentation.mm +0 -60
- package/ios/RnExecutorch/LLM.h +0 -5
- package/ios/RnExecutorch/LLM.mm +0 -78
- package/ios/RnExecutorch/OCR.h +0 -5
- package/ios/RnExecutorch/OCR.mm +0 -96
- package/ios/RnExecutorch/ObjectDetection.h +0 -5
- package/ios/RnExecutorch/ObjectDetection.mm +0 -56
- package/ios/RnExecutorch/SpeechToText.h +0 -5
- package/ios/RnExecutorch/SpeechToText.mm +0 -125
- package/ios/RnExecutorch/StyleTransfer.h +0 -5
- package/ios/RnExecutorch/StyleTransfer.mm +0 -55
- package/ios/RnExecutorch/TextEmbeddings.h +0 -5
- package/ios/RnExecutorch/TextEmbeddings.mm +0 -62
- package/ios/RnExecutorch/Tokenizer.h +0 -5
- package/ios/RnExecutorch/Tokenizer.mm +0 -83
- package/ios/RnExecutorch/VerticalOCR.h +0 -5
- package/ios/RnExecutorch/VerticalOCR.mm +0 -183
- package/ios/RnExecutorch/models/BaseModel.h +0 -21
- package/ios/RnExecutorch/models/BaseModel.mm +0 -43
- package/ios/RnExecutorch/models/classification/ClassificationModel.h +0 -10
- package/ios/RnExecutorch/models/classification/ClassificationModel.mm +0 -53
- package/ios/RnExecutorch/models/classification/Constants.h +0 -3
- package/ios/RnExecutorch/models/image_segmentation/Constants.h +0 -4
- package/ios/RnExecutorch/models/image_segmentation/ImageSegmentationModel.h +0 -10
- package/ios/RnExecutorch/models/image_segmentation/ImageSegmentationModel.mm +0 -146
- package/ios/RnExecutorch/models/object_detection/SSDLiteLargeModel.hpp +0 -11
- package/ios/RnExecutorch/models/object_detection/SSDLiteLargeModel.mm +0 -64
- package/ios/RnExecutorch/models/ocr/Detector.h +0 -9
- package/ios/RnExecutorch/models/ocr/Detector.mm +0 -101
- package/ios/RnExecutorch/models/ocr/RecognitionHandler.h +0 -16
- package/ios/RnExecutorch/models/ocr/RecognitionHandler.mm +0 -135
- package/ios/RnExecutorch/models/ocr/Recognizer.h +0 -8
- package/ios/RnExecutorch/models/ocr/Recognizer.mm +0 -77
- package/ios/RnExecutorch/models/ocr/VerticalDetector.h +0 -10
- package/ios/RnExecutorch/models/ocr/VerticalDetector.mm +0 -118
- package/ios/RnExecutorch/models/ocr/utils/CTCLabelConverter.h +0 -16
- package/ios/RnExecutorch/models/ocr/utils/CTCLabelConverter.mm +0 -80
- package/ios/RnExecutorch/models/ocr/utils/Constants.h +0 -26
- package/ios/RnExecutorch/models/ocr/utils/DetectorUtils.h +0 -31
- package/ios/RnExecutorch/models/ocr/utils/DetectorUtils.mm +0 -754
- package/ios/RnExecutorch/models/ocr/utils/OCRUtils.h +0 -10
- package/ios/RnExecutorch/models/ocr/utils/OCRUtils.mm +0 -67
- package/ios/RnExecutorch/models/ocr/utils/RecognizerUtils.h +0 -35
- package/ios/RnExecutorch/models/ocr/utils/RecognizerUtils.mm +0 -331
- package/ios/RnExecutorch/models/stt/Moonshine.hpp +0 -13
- package/ios/RnExecutorch/models/stt/Moonshine.mm +0 -64
- package/ios/RnExecutorch/models/stt/MoonshineDecoder.hpp +0 -16
- package/ios/RnExecutorch/models/stt/MoonshineDecoder.mm +0 -24
- package/ios/RnExecutorch/models/stt/MoonshineEncoder.hpp +0 -15
- package/ios/RnExecutorch/models/stt/MoonshineEncoder.mm +0 -18
- package/ios/RnExecutorch/models/stt/SpeechToTextBaseModel.hpp +0 -26
- package/ios/RnExecutorch/models/stt/SpeechToTextBaseModel.mm +0 -19
- package/ios/RnExecutorch/models/stt/Whisper.hpp +0 -12
- package/ios/RnExecutorch/models/stt/Whisper.mm +0 -68
- package/ios/RnExecutorch/models/stt/WhisperDecoder.hpp +0 -16
- package/ios/RnExecutorch/models/stt/WhisperDecoder.mm +0 -22
- package/ios/RnExecutorch/models/stt/WhisperEncoder.hpp +0 -15
- package/ios/RnExecutorch/models/stt/WhisperEncoder.mm +0 -21
- package/ios/RnExecutorch/models/style_transfer/StyleTransferModel.h +0 -11
- package/ios/RnExecutorch/models/style_transfer/StyleTransferModel.mm +0 -50
- package/ios/RnExecutorch/models/text_embeddings/TextEmbeddingsModel.h +0 -15
- package/ios/RnExecutorch/models/text_embeddings/TextEmbeddingsModel.mm +0 -45
- package/ios/RnExecutorch/models/text_embeddings/TextEmbeddingsUtils.h +0 -8
- package/ios/RnExecutorch/models/text_embeddings/TextEmbeddingsUtils.mm +0 -49
- package/ios/RnExecutorch/utils/Constants.h +0 -8
- package/ios/RnExecutorch/utils/Conversions.h +0 -15
- package/ios/RnExecutorch/utils/ETError.h +0 -26
- package/ios/RnExecutorch/utils/ImageProcessor.h +0 -15
- package/ios/RnExecutorch/utils/ImageProcessor.mm +0 -147
- package/ios/RnExecutorch/utils/Numerical.h +0 -1
- package/ios/RnExecutorch/utils/Numerical.mm +0 -18
- package/ios/RnExecutorch/utils/ObjectDetectionUtils.hpp +0 -23
- package/ios/RnExecutorch/utils/SFFT.hpp +0 -13
- package/ios/RnExecutorch/utils/SFFT.mm +0 -71
- package/ios/RnExecutorch/utils/ScalarType.h +0 -14
- package/ios/RnExecutorch/utils/ScalarType.mm +0 -21
- package/lib/module/constants/sttDefaults.js +0 -72
- package/lib/module/constants/sttDefaults.js.map +0 -1
- package/lib/module/controllers/SpeechToTextController.js +0 -307
- package/lib/module/controllers/SpeechToTextController.js.map +0 -1
- package/lib/module/native/NativeClassification.js +0 -5
- package/lib/module/native/NativeClassification.js.map +0 -1
- package/lib/module/native/NativeETModule.js +0 -5
- package/lib/module/native/NativeETModule.js.map +0 -1
- package/lib/module/native/NativeImageSegmentation.js +0 -5
- package/lib/module/native/NativeImageSegmentation.js.map +0 -1
- package/lib/module/native/NativeLLM.js +0 -5
- package/lib/module/native/NativeLLM.js.map +0 -1
- package/lib/module/native/NativeOCR.js +0 -5
- package/lib/module/native/NativeOCR.js.map +0 -1
- package/lib/module/native/NativeObjectDetection.js +0 -5
- package/lib/module/native/NativeObjectDetection.js.map +0 -1
- package/lib/module/native/NativeSpeechToText.js +0 -5
- package/lib/module/native/NativeSpeechToText.js.map +0 -1
- package/lib/module/native/NativeStyleTransfer.js +0 -5
- package/lib/module/native/NativeStyleTransfer.js.map +0 -1
- package/lib/module/native/NativeTextEmbeddings.js +0 -5
- package/lib/module/native/NativeTextEmbeddings.js.map +0 -1
- package/lib/module/native/NativeTokenizer.js +0 -5
- package/lib/module/native/NativeTokenizer.js.map +0 -1
- package/lib/module/native/NativeVerticalOCR.js +0 -5
- package/lib/module/native/NativeVerticalOCR.js.map +0 -1
- package/lib/module/package.json +0 -1
- package/lib/module/utils/stt.js +0 -22
- package/lib/module/utils/stt.js.map +0 -1
- package/lib/typescript/constants/sttDefaults.d.ts +0 -28
- package/lib/typescript/constants/sttDefaults.d.ts.map +0 -1
- package/lib/typescript/controllers/SpeechToTextController.d.ts +0 -52
- package/lib/typescript/controllers/SpeechToTextController.d.ts.map +0 -1
- package/lib/typescript/native/NativeClassification.d.ts +0 -10
- package/lib/typescript/native/NativeClassification.d.ts.map +0 -1
- package/lib/typescript/native/NativeETModule.d.ts +0 -9
- package/lib/typescript/native/NativeETModule.d.ts.map +0 -1
- package/lib/typescript/native/NativeImageSegmentation.d.ts +0 -10
- package/lib/typescript/native/NativeImageSegmentation.d.ts.map +0 -1
- package/lib/typescript/native/NativeLLM.d.ts +0 -12
- package/lib/typescript/native/NativeLLM.d.ts.map +0 -1
- package/lib/typescript/native/NativeOCR.d.ts +0 -9
- package/lib/typescript/native/NativeOCR.d.ts.map +0 -1
- package/lib/typescript/native/NativeObjectDetection.d.ts +0 -9
- package/lib/typescript/native/NativeObjectDetection.d.ts.map +0 -1
- package/lib/typescript/native/NativeSpeechToText.d.ts +0 -12
- package/lib/typescript/native/NativeSpeechToText.d.ts.map +0 -1
- package/lib/typescript/native/NativeStyleTransfer.d.ts.map +0 -1
- package/lib/typescript/native/NativeTextEmbeddings.d.ts +0 -8
- package/lib/typescript/native/NativeTextEmbeddings.d.ts.map +0 -1
- package/lib/typescript/native/NativeTokenizer.d.ts +0 -12
- package/lib/typescript/native/NativeTokenizer.d.ts.map +0 -1
- package/lib/typescript/native/NativeVerticalOCR.d.ts +0 -9
- package/lib/typescript/native/NativeVerticalOCR.d.ts.map +0 -1
- package/lib/typescript/utils/stt.d.ts +0 -2
- package/lib/typescript/utils/stt.d.ts.map +0 -1
- package/src/constants/sttDefaults.ts +0 -86
- package/src/controllers/SpeechToTextController.ts +0 -458
- package/src/index.tsx +0 -47
- package/src/native/NativeClassification.ts +0 -9
- package/src/native/NativeETModule.ts +0 -14
- package/src/native/NativeImageSegmentation.ts +0 -14
- package/src/native/NativeLLM.ts +0 -14
- package/src/native/NativeOCR.ts +0 -16
- package/src/native/NativeObjectDetection.ts +0 -10
- package/src/native/NativeSpeechToText.ts +0 -17
- package/src/native/NativeStyleTransfer.ts +0 -10
- package/src/native/NativeTextEmbeddings.ts +0 -9
- package/src/native/NativeTokenizer.ts +0 -13
- package/src/native/NativeVerticalOCR.ts +0 -16
- package/src/utils/stt.ts +0 -28
- package/{ios → third-party/ios}/ExecutorchLib.xcframework/Info.plist +4 -4
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the BSD-style license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
#pragma once
|
|
10
|
+
|
|
11
|
+
#include <cctype>
|
|
12
|
+
#include <cmath>
|
|
13
|
+
#include <cstdio>
|
|
14
|
+
#include <cstdlib>
|
|
15
|
+
#include <cstring>
|
|
16
|
+
#include <memory>
|
|
17
|
+
#ifdef USE_ATEN_LIB
|
|
18
|
+
#include <torch/torch.h>
|
|
19
|
+
#endif
|
|
20
|
+
|
|
21
|
+
#include <executorch/runtime/core/exec_aten/exec_aten.h>
|
|
22
|
+
#include <executorch/runtime/platform/compiler.h>
|
|
23
|
+
|
|
24
|
+
namespace executorch {
|
|
25
|
+
namespace extension {
|
|
26
|
+
namespace llm {
|
|
27
|
+
// A simple llama2 sampler.
|
|
28
|
+
|
|
29
|
+
template <typename T> struct ProbIndex {
|
|
30
|
+
T prob;
|
|
31
|
+
int32_t index;
|
|
32
|
+
}; // struct used when sorting probabilities during top-p sampling
|
|
33
|
+
|
|
34
|
+
class Sampler {
|
|
35
|
+
public:
|
|
36
|
+
Sampler(int32_t vocab_size, float temperature, float topp,
|
|
37
|
+
unsigned long long rng_seed);
|
|
38
|
+
|
|
39
|
+
Sampler(int32_t vocab_size, float temperature, float topp);
|
|
40
|
+
|
|
41
|
+
template <typename T> int32_t sample(T *logits);
|
|
42
|
+
|
|
43
|
+
private:
|
|
44
|
+
template <typename T> int32_t sample_topp(T *probabilities, float coin);
|
|
45
|
+
template <typename T> int32_t sample_mult(T *probabilities, float coin);
|
|
46
|
+
template <typename T> int32_t sample_argmax(T *probabilities);
|
|
47
|
+
|
|
48
|
+
private:
|
|
49
|
+
int32_t vocab_size_;
|
|
50
|
+
// reciprocal of temperature, or 0 if temperature == 0.
|
|
51
|
+
float inv_temperature_;
|
|
52
|
+
float topp_;
|
|
53
|
+
unsigned long long rng_state_;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
} // namespace llm
|
|
57
|
+
} // namespace extension
|
|
58
|
+
} // namespace executorch
|
|
59
|
+
|
|
60
|
+
namespace torch {
|
|
61
|
+
namespace executor {
|
|
62
|
+
// TODO(T197294990): Remove these deprecated aliases once all users have moved
|
|
63
|
+
// to the new `::executorch` namespaces.
|
|
64
|
+
using ::executorch::extension::llm::ProbIndex;
|
|
65
|
+
using ::executorch::extension::llm::Sampler;
|
|
66
|
+
} // namespace executor
|
|
67
|
+
} // namespace torch
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the BSD-style license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
// Runner stats for LLM
|
|
10
|
+
#pragma once
|
|
11
|
+
#include "util.h"
|
|
12
|
+
#include <cinttypes>
|
|
13
|
+
#include <executorch/runtime/platform/log.h>
|
|
14
|
+
#include <sstream>
|
|
15
|
+
#include <string>
|
|
16
|
+
|
|
17
|
+
namespace executorch {
|
|
18
|
+
namespace extension {
|
|
19
|
+
namespace llm {
|
|
20
|
+
|
|
21
|
+
struct Stats {
|
|
22
|
+
// Scaling factor for timestamps - in this case, we use ms.
|
|
23
|
+
const long SCALING_FACTOR_UNITS_PER_SECOND = 1000;
|
|
24
|
+
// Time stamps for the different stages of the execution
|
|
25
|
+
// model_load_start_ms: Start of model loading.
|
|
26
|
+
long model_load_start_ms;
|
|
27
|
+
// model_load_end_ms: End of model loading.
|
|
28
|
+
long model_load_end_ms;
|
|
29
|
+
// inference_start_ms: Immediately after the model is loaded (or we check
|
|
30
|
+
// for model load), measure the inference time.
|
|
31
|
+
// NOTE: It's actually the tokenizer encode + model execution time.
|
|
32
|
+
long inference_start_ms;
|
|
33
|
+
// End of the tokenizer encode time.
|
|
34
|
+
long token_encode_end_ms;
|
|
35
|
+
// Start of the model execution (forward function) time.
|
|
36
|
+
long model_execution_start_ms;
|
|
37
|
+
// End of the model execution (forward function) time.
|
|
38
|
+
long model_execution_end_ms;
|
|
39
|
+
// prompt_eval_end_ms: Prompt array allocation and tokenization. Ends right
|
|
40
|
+
// before the inference loop starts
|
|
41
|
+
long prompt_eval_end_ms;
|
|
42
|
+
// first_token: Timestamp when the first generated token is emitted
|
|
43
|
+
long first_token_ms;
|
|
44
|
+
// inference_end_ms: End of inference/generation.
|
|
45
|
+
long inference_end_ms;
|
|
46
|
+
// Keep a running total of the time spent in sampling.
|
|
47
|
+
long aggregate_sampling_time_ms;
|
|
48
|
+
// Token count from prompt
|
|
49
|
+
int64_t num_prompt_tokens;
|
|
50
|
+
// Token count from generated (total - prompt)
|
|
51
|
+
int64_t num_generated_tokens;
|
|
52
|
+
inline void on_sampling_begin() {
|
|
53
|
+
aggregate_sampling_timer_start_timestamp = time_in_ms();
|
|
54
|
+
}
|
|
55
|
+
inline void on_sampling_end() {
|
|
56
|
+
aggregate_sampling_time_ms +=
|
|
57
|
+
time_in_ms() - aggregate_sampling_timer_start_timestamp;
|
|
58
|
+
aggregate_sampling_timer_start_timestamp = 0;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
void reset(bool all_stats = false) {
|
|
62
|
+
// Not resetting model_load_start_ms and model_load_end_ms because reset is
|
|
63
|
+
// typically called after warmup and before running the actual run.
|
|
64
|
+
// However, we don't load the model again during the actual run after
|
|
65
|
+
// warmup. So, we don't want to reset these timestamps unless we are
|
|
66
|
+
// resetting everything.
|
|
67
|
+
if (all_stats) {
|
|
68
|
+
model_load_start_ms = 0;
|
|
69
|
+
model_load_end_ms = 0;
|
|
70
|
+
}
|
|
71
|
+
inference_start_ms = 0;
|
|
72
|
+
prompt_eval_end_ms = 0;
|
|
73
|
+
first_token_ms = 0;
|
|
74
|
+
inference_end_ms = 0;
|
|
75
|
+
aggregate_sampling_time_ms = 0;
|
|
76
|
+
num_prompt_tokens = 0;
|
|
77
|
+
num_generated_tokens = 0;
|
|
78
|
+
aggregate_sampling_timer_start_timestamp = 0;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
private:
|
|
82
|
+
long aggregate_sampling_timer_start_timestamp = 0;
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
inline std::string stats_to_json_string(const Stats &stats) {
|
|
86
|
+
std::stringstream ss;
|
|
87
|
+
ss << "{\"prompt_tokens\":" << stats.num_prompt_tokens << ","
|
|
88
|
+
<< "\"generated_tokens\":" << stats.num_generated_tokens << ","
|
|
89
|
+
<< "\"model_load_start_ms\":" << stats.model_load_start_ms << ","
|
|
90
|
+
<< "\"model_load_end_ms\":" << stats.model_load_end_ms << ","
|
|
91
|
+
<< "\"inference_start_ms\":" << stats.inference_start_ms << ","
|
|
92
|
+
<< "\"inference_end_ms\":" << stats.inference_end_ms << ","
|
|
93
|
+
<< "\"prompt_eval_end_ms\":" << stats.prompt_eval_end_ms << ","
|
|
94
|
+
<< "\"first_token_ms\":" << stats.first_token_ms << ","
|
|
95
|
+
<< "\"aggregate_sampling_time_ms\":" << stats.aggregate_sampling_time_ms
|
|
96
|
+
<< "," << "\"SCALING_FACTOR_UNITS_PER_SECOND\":"
|
|
97
|
+
<< stats.SCALING_FACTOR_UNITS_PER_SECOND << "}";
|
|
98
|
+
return ss.str();
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
inline void print_report(const Stats &stats) {
|
|
102
|
+
printf("PyTorchObserver %s\n", stats_to_json_string(stats).c_str());
|
|
103
|
+
|
|
104
|
+
ET_LOG(Info, "\tPrompt Tokens: %" PRIu64 " Generated Tokens: %" PRIu64,
|
|
105
|
+
stats.num_prompt_tokens, stats.num_generated_tokens);
|
|
106
|
+
|
|
107
|
+
ET_LOG(Info, "\tModel Load Time:\t\t%f (seconds)",
|
|
108
|
+
((double)(stats.model_load_end_ms - stats.model_load_start_ms) /
|
|
109
|
+
stats.SCALING_FACTOR_UNITS_PER_SECOND));
|
|
110
|
+
double inference_time_ms =
|
|
111
|
+
(double)(stats.inference_end_ms - stats.inference_start_ms);
|
|
112
|
+
ET_LOG(
|
|
113
|
+
Info,
|
|
114
|
+
"\tTotal inference time:\t\t%f (seconds)\t\t Rate: \t%f (tokens/second)",
|
|
115
|
+
inference_time_ms / stats.SCALING_FACTOR_UNITS_PER_SECOND,
|
|
116
|
+
|
|
117
|
+
(stats.num_generated_tokens) /
|
|
118
|
+
(double)(stats.inference_end_ms - stats.inference_start_ms) *
|
|
119
|
+
stats.SCALING_FACTOR_UNITS_PER_SECOND);
|
|
120
|
+
double prompt_eval_time =
|
|
121
|
+
(double)(stats.prompt_eval_end_ms - stats.inference_start_ms);
|
|
122
|
+
ET_LOG(Info,
|
|
123
|
+
"\t\tPrompt evaluation:\t%f (seconds)\t\t Rate: \t%f (tokens/second)",
|
|
124
|
+
prompt_eval_time / stats.SCALING_FACTOR_UNITS_PER_SECOND,
|
|
125
|
+
(stats.num_prompt_tokens) / prompt_eval_time *
|
|
126
|
+
stats.SCALING_FACTOR_UNITS_PER_SECOND);
|
|
127
|
+
|
|
128
|
+
double eval_time =
|
|
129
|
+
(double)(stats.inference_end_ms - stats.prompt_eval_end_ms);
|
|
130
|
+
ET_LOG(Info,
|
|
131
|
+
"\t\tGenerated %" PRIu64
|
|
132
|
+
" tokens:\t%f (seconds)\t\t Rate: \t%f (tokens/second)",
|
|
133
|
+
stats.num_generated_tokens,
|
|
134
|
+
eval_time / stats.SCALING_FACTOR_UNITS_PER_SECOND,
|
|
135
|
+
stats.num_generated_tokens / eval_time *
|
|
136
|
+
stats.SCALING_FACTOR_UNITS_PER_SECOND);
|
|
137
|
+
|
|
138
|
+
// Time to first token is measured from the start of inference, excluding
|
|
139
|
+
// model load time.
|
|
140
|
+
ET_LOG(Info, "\tTime to first generated token:\t%f (seconds)",
|
|
141
|
+
((double)(stats.first_token_ms - stats.inference_start_ms) /
|
|
142
|
+
stats.SCALING_FACTOR_UNITS_PER_SECOND));
|
|
143
|
+
|
|
144
|
+
ET_LOG(Info, "\tSampling time over %" PRIu64 " tokens:\t%f (seconds)",
|
|
145
|
+
stats.num_prompt_tokens + stats.num_generated_tokens,
|
|
146
|
+
(double)stats.aggregate_sampling_time_ms /
|
|
147
|
+
stats.SCALING_FACTOR_UNITS_PER_SECOND);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
} // namespace llm
|
|
151
|
+
} // namespace extension
|
|
152
|
+
} // namespace executorch
|
|
153
|
+
|
|
154
|
+
namespace executorch {
|
|
155
|
+
namespace llm {
|
|
156
|
+
// TODO(T197294990): Remove these deprecated aliases once all users have moved
|
|
157
|
+
// to the new `::executorch` namespaces.
|
|
158
|
+
using ::executorch::extension::llm::print_report;
|
|
159
|
+
using ::executorch::extension::llm::Stats;
|
|
160
|
+
} // namespace llm
|
|
161
|
+
} // namespace executorch
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the BSD-style license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
// Given inputs, run a text decoder and return logits.
|
|
10
|
+
|
|
11
|
+
#include "text_decoder_runner.h"
|
|
12
|
+
#include "arange_util.h"
|
|
13
|
+
#include "stats.h"
|
|
14
|
+
|
|
15
|
+
#include <ctime>
|
|
16
|
+
|
|
17
|
+
namespace executorch {
|
|
18
|
+
namespace extension {
|
|
19
|
+
namespace llm {
|
|
20
|
+
|
|
21
|
+
// NOTE: we observed ~2x loading performance increase on iPhone 15
|
|
22
|
+
// and a ~5% improvement on Galaxy S22 by switching to
|
|
23
|
+
// FileDataLoader instead of MmapDataLoader + UseMlockIgnoreErrors.
|
|
24
|
+
TextDecoderRunner::TextDecoderRunner(Module *module, IOManager *io_manager,
|
|
25
|
+
float temperature, float topp)
|
|
26
|
+
: module_(module), io_manager_(io_manager), temperature_(temperature),
|
|
27
|
+
topp_(topp) {}
|
|
28
|
+
|
|
29
|
+
// This function is functional, meaning it shouldn't modify any state of the
|
|
30
|
+
// input. It should be safe to call multiple times with the same inputs. The
|
|
31
|
+
// outer loop (call site) is responsible for managing state.
|
|
32
|
+
::executorch::runtime::Result<executorch::aten::Tensor>
|
|
33
|
+
TextDecoderRunner::step(TensorPtr &tokens, int64_t start_pos) {
|
|
34
|
+
// ET_LOG(Info, "Input token %" PRIu64, input_token);
|
|
35
|
+
auto method_meta = ET_UNWRAP(module_->method_meta("forward"));
|
|
36
|
+
// If only 1 input, we are not using kv cache
|
|
37
|
+
bool use_kv_cache = method_meta.num_inputs() > 1;
|
|
38
|
+
|
|
39
|
+
std::vector<int64_t> cache_positions;
|
|
40
|
+
|
|
41
|
+
if (use_kv_cache) {
|
|
42
|
+
auto start_pos_tensor = ET_UNWRAP(populate_start_pos_or_cache_position(
|
|
43
|
+
module_, start_pos, cache_positions, tokens->numel(), "forward"));
|
|
44
|
+
|
|
45
|
+
std::vector<runtime::EValue> inputs;
|
|
46
|
+
auto inputs_res = io_manager_->prepare_decode(tokens, start_pos_tensor);
|
|
47
|
+
ET_CHECK_OK_OR_RETURN_ERROR(inputs_res.error());
|
|
48
|
+
inputs = inputs_res.get();
|
|
49
|
+
auto outputs_res = module_->forward(inputs);
|
|
50
|
+
ET_CHECK_OK_OR_RETURN_ERROR(outputs_res.error());
|
|
51
|
+
|
|
52
|
+
auto update_err = io_manager_->update_decode(outputs_res.get());
|
|
53
|
+
ET_CHECK_OK_OR_RETURN_ERROR(update_err);
|
|
54
|
+
|
|
55
|
+
ET_CHECK_MSG(outputs_res.get().size() == 1,
|
|
56
|
+
"More then one output returned from executing LLM.");
|
|
57
|
+
ET_CHECK_MSG(outputs_res.get()[0].isTensor(),
|
|
58
|
+
"Non Tensor Output returned from executing LLM");
|
|
59
|
+
|
|
60
|
+
// Return the logits tensor
|
|
61
|
+
return outputs_res.get()[0].toTensor();
|
|
62
|
+
} else { // no kv cache
|
|
63
|
+
(void)start_pos; // unused
|
|
64
|
+
|
|
65
|
+
auto outputs_res = module_->forward(tokens);
|
|
66
|
+
ET_CHECK_OK_OR_RETURN_ERROR(outputs_res.error());
|
|
67
|
+
ET_CHECK_MSG(outputs_res.get().size() == 1,
|
|
68
|
+
"More then one output returned from executing LLM.");
|
|
69
|
+
ET_CHECK_MSG(outputs_res.get()[0].isTensor(),
|
|
70
|
+
"Non Tensor Output returned from executing LLM");
|
|
71
|
+
|
|
72
|
+
// Return the logits tensor
|
|
73
|
+
return outputs_res.get()[0].toTensor();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
} // namespace llm
|
|
78
|
+
} // namespace extension
|
|
79
|
+
} // namespace executorch
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the BSD-style license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
// Given inputs, run a text decoder in LLM and return the output.
|
|
10
|
+
|
|
11
|
+
#pragma once
|
|
12
|
+
|
|
13
|
+
#include "io_manager.h"
|
|
14
|
+
#include "sampler.h"
|
|
15
|
+
|
|
16
|
+
namespace executorch {
|
|
17
|
+
namespace extension {
|
|
18
|
+
namespace llm {
|
|
19
|
+
|
|
20
|
+
class TextDecoderRunner {
|
|
21
|
+
public:
|
|
22
|
+
explicit TextDecoderRunner(Module *module, IOManager *io_manager,
|
|
23
|
+
float temperature = 0.8F, float topp = 0.9F);
|
|
24
|
+
|
|
25
|
+
virtual ~TextDecoderRunner() = default;
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Run LLM text decoder with inputs to generate next token.
|
|
29
|
+
* @param input The input to the LLM Module.
|
|
30
|
+
* @param start_pos The starting position in KV cache of the input in the LLM
|
|
31
|
+
* Module.
|
|
32
|
+
* @return The output of the LLM Module. This will be a tensor of logits.
|
|
33
|
+
*/
|
|
34
|
+
virtual ::executorch::runtime::Result<executorch::aten::Tensor>
|
|
35
|
+
step(TensorPtr &input, int64_t start_pos);
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Load the Module for text decode purpose.
|
|
39
|
+
* @return The error code.
|
|
40
|
+
*/
|
|
41
|
+
virtual ::executorch::runtime::Error load() {
|
|
42
|
+
return module_->load_method("forward");
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Check if the required methods in the Module is loaded.
|
|
47
|
+
* @return True if the Module is loaded, false otherwise.
|
|
48
|
+
*/
|
|
49
|
+
virtual bool is_method_loaded() {
|
|
50
|
+
return module_->is_method_loaded("forward");
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
virtual void set_temperature(float temperature) noexcept {
|
|
54
|
+
temperature_ = temperature;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
virtual void set_topp(float topp) noexcept { topp_ = topp; }
|
|
58
|
+
|
|
59
|
+
inline void stop() { should_stop_ = true; }
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Sample the next token from the logits tensor.
|
|
63
|
+
* @param logits_tensor The logits tensor.
|
|
64
|
+
* @param temperature The temperature parameter used to control randomness in
|
|
65
|
+
* sampling.
|
|
66
|
+
* @return The next token.
|
|
67
|
+
*/
|
|
68
|
+
inline int32_t logits_to_token(const executorch::aten::Tensor &logits_tensor,
|
|
69
|
+
float temperature = -1.F, float topp = -1.F) {
|
|
70
|
+
int32_t result = 0;
|
|
71
|
+
|
|
72
|
+
temperature = temperature < 0.F ? temperature_ : temperature;
|
|
73
|
+
topp = topp < 0.F ? topp_ : topp;
|
|
74
|
+
|
|
75
|
+
// Create a minimal context for error handling in ET_SWITCH
|
|
76
|
+
struct {
|
|
77
|
+
[[noreturn]] void fail(torch::executor::Error /* error */) {
|
|
78
|
+
ET_CHECK_MSG(false, "Unsupported dtype in logits_to_token");
|
|
79
|
+
}
|
|
80
|
+
} ctx;
|
|
81
|
+
|
|
82
|
+
ET_SWITCH_FOUR_TYPES(
|
|
83
|
+
Float, Half, BFloat16, UInt16, logits_tensor.scalar_type(), ctx,
|
|
84
|
+
"logits_to_token", CTYPE, [&]() {
|
|
85
|
+
// If the logit_tensor rank is 3, the shape is [batch, seq_length,
|
|
86
|
+
// vocab_size], get the last logits, sample and return. Else the model
|
|
87
|
+
// outputs the last logit, directly sample and return.
|
|
88
|
+
auto *logits = logits_tensor.mutable_data_ptr<CTYPE>();
|
|
89
|
+
ssize_t vocab_size = logits_tensor.size(logits_tensor.dim() - 1);
|
|
90
|
+
if (logits_tensor.dim() == 3) {
|
|
91
|
+
auto num_tokens = logits_tensor.size(1);
|
|
92
|
+
logits += (num_tokens - 1) * vocab_size;
|
|
93
|
+
}
|
|
94
|
+
// @lint-ignore CLANGTIDY facebook-hte-Deprecated
|
|
95
|
+
Sampler sampler(vocab_size, temperature, topp);
|
|
96
|
+
result = sampler.sample(logits);
|
|
97
|
+
});
|
|
98
|
+
return result;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
protected:
|
|
102
|
+
/**
|
|
103
|
+
* Note: TextDecoderRunner does not own the Module or IOManager instance. It
|
|
104
|
+
* is expected that the outer class (likely Runner) manages the lifecycle of
|
|
105
|
+
* them. This means that the responsibility for creating, maintaining, and
|
|
106
|
+
* destroying the Module lies outside of TextDecoderRunner. Ensure that the
|
|
107
|
+
* Module remains valid for the duration of TextDecoderRunner's usage.
|
|
108
|
+
*/
|
|
109
|
+
Module *module_;
|
|
110
|
+
IOManager *io_manager_;
|
|
111
|
+
bool should_stop_{false};
|
|
112
|
+
float temperature_;
|
|
113
|
+
float topp_;
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
} // namespace llm
|
|
117
|
+
} // namespace extension
|
|
118
|
+
} // namespace executorch
|
|
119
|
+
|
|
120
|
+
namespace torch {
|
|
121
|
+
namespace executor {
|
|
122
|
+
// TODO(T197294990): Remove these deprecated aliases once all users have moved
|
|
123
|
+
// to the new `::executorch` namespaces.
|
|
124
|
+
using ::executorch::extension::llm::TextDecoderRunner;
|
|
125
|
+
} // namespace executor
|
|
126
|
+
} // namespace torch
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the BSD-style license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
// Given a text prompt, encode it using tokenizer and prefill the KV cache of a
|
|
10
|
+
// LLM.
|
|
11
|
+
|
|
12
|
+
#include "text_prefiller.h"
|
|
13
|
+
#include <algorithm>
|
|
14
|
+
|
|
15
|
+
namespace executorch {
|
|
16
|
+
namespace extension {
|
|
17
|
+
namespace llm {
|
|
18
|
+
|
|
19
|
+
TextPrefiller::TextPrefiller(TextDecoderRunner *text_decoder_runner,
|
|
20
|
+
bool use_kv_cache, bool enable_parallel_prefill,
|
|
21
|
+
int64_t max_seq_len)
|
|
22
|
+
: text_decoder_runner_(text_decoder_runner), use_kv_cache_(use_kv_cache),
|
|
23
|
+
enable_parallel_prefill_(enable_parallel_prefill),
|
|
24
|
+
max_seq_len_(max_seq_len > 0 ? max_seq_len : 128) {}
|
|
25
|
+
|
|
26
|
+
::executorch::runtime::Result<uint64_t>
|
|
27
|
+
TextPrefiller::prefill(std::vector<uint64_t> &prompt_tokens,
|
|
28
|
+
int64_t &start_pos) {
|
|
29
|
+
ET_CHECK_MSG(!prompt_tokens.empty(), "Prompt cannot be null");
|
|
30
|
+
if (!text_decoder_runner_->is_method_loaded()) {
|
|
31
|
+
ET_CHECK_OK_OR_RETURN_ERROR(text_decoder_runner_->load());
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// Check if we need to chunk the prompt tokens
|
|
35
|
+
int32_t num_prompt_tokens = prompt_tokens.size();
|
|
36
|
+
|
|
37
|
+
// If prompt tokens exceed max_seq_len_, we need to chunk them
|
|
38
|
+
if (num_prompt_tokens > max_seq_len_) {
|
|
39
|
+
uint64_t cur_token = 0;
|
|
40
|
+
int num_tokens_to_process = 0;
|
|
41
|
+
|
|
42
|
+
while (num_tokens_to_process < num_prompt_tokens) {
|
|
43
|
+
auto num_tokens_to_prefill_with = std::min<int>(
|
|
44
|
+
num_prompt_tokens - num_tokens_to_process, max_seq_len_);
|
|
45
|
+
|
|
46
|
+
std::vector<uint64_t> prompt_tokens_to_process(
|
|
47
|
+
num_tokens_to_prefill_with);
|
|
48
|
+
std::copy(prompt_tokens.begin() + num_tokens_to_process,
|
|
49
|
+
prompt_tokens.begin() + num_tokens_to_process +
|
|
50
|
+
num_tokens_to_prefill_with,
|
|
51
|
+
prompt_tokens_to_process.begin());
|
|
52
|
+
|
|
53
|
+
// Process this chunk
|
|
54
|
+
auto chunk_result = prefill_chunk(prompt_tokens_to_process, start_pos);
|
|
55
|
+
ET_CHECK_OK_OR_RETURN_ERROR(chunk_result.error());
|
|
56
|
+
cur_token = chunk_result.get();
|
|
57
|
+
|
|
58
|
+
num_tokens_to_process += num_tokens_to_prefill_with;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return cur_token;
|
|
62
|
+
} else {
|
|
63
|
+
// If prompt tokens don't exceed max_seq_len_, process them directly
|
|
64
|
+
return prefill_chunk(prompt_tokens, start_pos);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
::executorch::runtime::Result<uint64_t>
|
|
69
|
+
TextPrefiller::prefill_chunk(std::vector<uint64_t> &prompt_tokens,
|
|
70
|
+
int64_t &start_pos) {
|
|
71
|
+
// enable_parallel_prefill_ maybe set even when not using kv cache
|
|
72
|
+
// When kv cache is not used, start pos is ignored
|
|
73
|
+
int32_t num_prompt_tokens = prompt_tokens.size();
|
|
74
|
+
|
|
75
|
+
// store the token
|
|
76
|
+
uint64_t cur_token;
|
|
77
|
+
if (enable_parallel_prefill_ || !use_kv_cache_) {
|
|
78
|
+
// initialize tensor wrappers
|
|
79
|
+
auto tokens = from_blob(prompt_tokens.data(), {1, num_prompt_tokens},
|
|
80
|
+
executorch::aten::ScalarType::Long);
|
|
81
|
+
|
|
82
|
+
auto outputs_res = text_decoder_runner_->step(tokens, start_pos);
|
|
83
|
+
|
|
84
|
+
ET_CHECK_OK_OR_RETURN_ERROR(outputs_res.error());
|
|
85
|
+
ET_LOG(Info, "Prefill token result numel(): %zu",
|
|
86
|
+
outputs_res.get().numel());
|
|
87
|
+
|
|
88
|
+
start_pos += num_prompt_tokens;
|
|
89
|
+
cur_token = text_decoder_runner_->logits_to_token(outputs_res.get());
|
|
90
|
+
} else { // sequential prefill
|
|
91
|
+
int64_t pos = 0; // position in the sequence
|
|
92
|
+
// NOLINTNEXTLINE(facebook-hte-ParameterUncheckedArrayBounds)
|
|
93
|
+
cur_token = prompt_tokens[0];
|
|
94
|
+
|
|
95
|
+
// initialize tensor wrappers
|
|
96
|
+
auto tokens =
|
|
97
|
+
from_blob(&cur_token, {1, 1}, executorch::aten::ScalarType::Long);
|
|
98
|
+
|
|
99
|
+
// run the first token and get back logits tensor. Assuming the first token
|
|
100
|
+
// is bos so don't callback.
|
|
101
|
+
auto logits_tensor =
|
|
102
|
+
ET_UNWRAP(text_decoder_runner_->step(tokens, start_pos));
|
|
103
|
+
|
|
104
|
+
pos += 1; // start the loop from index 1
|
|
105
|
+
start_pos += 1;
|
|
106
|
+
|
|
107
|
+
while (pos < num_prompt_tokens) {
|
|
108
|
+
// Run the model
|
|
109
|
+
// NOLINTNEXTLINE(facebook-hte-ParameterUncheckedArrayBounds)
|
|
110
|
+
cur_token = prompt_tokens[pos];
|
|
111
|
+
|
|
112
|
+
logits_tensor = ET_UNWRAP(text_decoder_runner_->step(tokens, start_pos));
|
|
113
|
+
|
|
114
|
+
pos++;
|
|
115
|
+
start_pos++;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
cur_token = text_decoder_runner_->logits_to_token(logits_tensor);
|
|
119
|
+
}
|
|
120
|
+
return cur_token;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
} // namespace llm
|
|
124
|
+
} // namespace extension
|
|
125
|
+
} // namespace executorch
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
*
|
|
5
|
+
* This source code is licensed under the BSD-style license found in the
|
|
6
|
+
* LICENSE file in the root directory of this source tree.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
// Given a text prompt, encode it using tokenizer and prefill the KV cache of a
|
|
10
|
+
// LLM.
|
|
11
|
+
|
|
12
|
+
#pragma once
|
|
13
|
+
|
|
14
|
+
#include "text_decoder_runner.h"
|
|
15
|
+
|
|
16
|
+
namespace executorch {
|
|
17
|
+
namespace extension {
|
|
18
|
+
namespace llm {
|
|
19
|
+
|
|
20
|
+
class TextPrefiller {
|
|
21
|
+
public:
|
|
22
|
+
TextPrefiller(TextDecoderRunner *text_decoder_runner, bool use_kv_cache,
|
|
23
|
+
bool enable_parallel_prefill, int64_t max_seq_len = 128);
|
|
24
|
+
|
|
25
|
+
virtual ~TextPrefiller() = default;
|
|
26
|
+
/**
|
|
27
|
+
* Prefill an LLM Module with the given text input.
|
|
28
|
+
* @param prompt_tokens The text prompt tokens to the LLM Module. Encoded by
|
|
29
|
+
* tokenizer.
|
|
30
|
+
* @param start_pos The starting position in KV cache of the input in the LLM
|
|
31
|
+
* Module.
|
|
32
|
+
* @return The next token of the LLM Module after prefill.
|
|
33
|
+
*/
|
|
34
|
+
virtual ::executorch::runtime::Result<uint64_t>
|
|
35
|
+
prefill(std::vector<uint64_t> &prompt_tokens, int64_t &start_pos);
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Helper method to prefill a chunk of tokens.
|
|
39
|
+
* @param prompt_tokens The chunk of text prompt tokens to process.
|
|
40
|
+
* @param start_pos The starting position in KV cache of the input in the LLM
|
|
41
|
+
* Module.
|
|
42
|
+
* @return The next token of the LLM Module after prefilling this chunk.
|
|
43
|
+
*/
|
|
44
|
+
virtual ::executorch::runtime::Result<uint64_t>
|
|
45
|
+
prefill_chunk(std::vector<uint64_t> &prompt_tokens, int64_t &start_pos);
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Load the necessary resources for the TextPrefiller.
|
|
49
|
+
* This method should be called before using the prefill methods.
|
|
50
|
+
*/
|
|
51
|
+
::executorch::runtime::Error load() { return text_decoder_runner_->load(); }
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Check if the TextPrefiller has been successfully loaded.
|
|
55
|
+
* @return True if the resources are loaded, false otherwise.
|
|
56
|
+
*/
|
|
57
|
+
bool inline is_loaded() const {
|
|
58
|
+
// Implementation to check if resources are loaded
|
|
59
|
+
return text_decoder_runner_->is_method_loaded();
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
private:
|
|
63
|
+
/**
|
|
64
|
+
* Note: TextPrefiller does not own the TextDecoderRunner instance.
|
|
65
|
+
* The responsibility of managing the lifecycle of TextDecoderRunner
|
|
66
|
+
* lies with the outer class or entity (likely Runner) that creates
|
|
67
|
+
* and passes the TextDecoderRunner instance to TextPrefiller.
|
|
68
|
+
*/
|
|
69
|
+
TextDecoderRunner *text_decoder_runner_;
|
|
70
|
+
bool use_kv_cache_;
|
|
71
|
+
bool enable_parallel_prefill_;
|
|
72
|
+
int64_t max_seq_len_;
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
} // namespace llm
|
|
76
|
+
} // namespace extension
|
|
77
|
+
} // namespace executorch
|
|
78
|
+
|
|
79
|
+
namespace torch {
|
|
80
|
+
namespace executor {
|
|
81
|
+
// TODO(T197294990): Remove these deprecated aliases once all users have moved
|
|
82
|
+
// to the new `::executorch` namespaces.
|
|
83
|
+
using ::executorch::extension::llm::TextPrefiller;
|
|
84
|
+
} // namespace executor
|
|
85
|
+
} // namespace torch
|