{ "cells": [ { "cell_type": "markdown", "metadata": { "id": "lQGFrJu77ZBZ" }, "source": [ "## Faster and Smaller Zero-shot Object Detection with Optimum\n", "\n", "In this guide, we will see how to quantize and perform graph optimizations over the powerful OWL model using Optimum.\n", "\n", "Let's start by installing `Optimum` and `ONNXRuntime` for GPU." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "PE_q6kFrqraF", "outputId": "819677d2-38b6-457d-9028-6685210efbc7" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m418.4/418.4 kB\u001b[0m \u001b[31m9.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m199.8/199.8 MB\u001b[0m \u001b[31m7.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m15.9/15.9 MB\u001b[0m \u001b[31m50.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m46.0/46.0 kB\u001b[0m \u001b[31m5.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m542.1/542.1 kB\u001b[0m \u001b[31m42.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m21.3/21.3 MB\u001b[0m \u001b[31m8.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m86.8/86.8 kB\u001b[0m \u001b[31m13.0 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m116.3/116.3 kB\u001b[0m \u001b[31m18.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m64.9/64.9 kB\u001b[0m \u001b[31m9.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m194.1/194.1 kB\u001b[0m \u001b[31m27.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m134.8/134.8 kB\u001b[0m \u001b[31m21.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", "\u001b[?25h\u001b[31mERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.\n", "google-colab 1.0.0 requires requests==2.31.0, but you have requests 2.32.3 which is incompatible.\u001b[0m\u001b[31m\n", "\u001b[0m" ] } ], "source": [ "!pip install -q optimum onnxruntime-gpu onnx" ] }, { "cell_type": "markdown", "metadata": { "id": "EpYGRFK55Kj_" }, "source": [ "We will run `notebook_login()` to login to Hugging Face Hub. This way, we can push and pull our ONNX model and quantized/optimized models." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 145, "referenced_widgets": [ "0d77c99c637c4251b0275aefb3907a0c", "bfd82f1fa857446ebc11f3ee85998fa8", "9c88822c78344c3d8f66efa376efb67f", "911ce3a4a9c14b6788f0ee02209d3dc0", "95b1977fa930471cb92d3db04c4f744c", "60e34263a07c469ca14c9f33cb2afa16", "d36c575e9a574ef58dd82f3362cac133", "69dd787d1a414dd99e4dc10f6346bd97", "65a60d22a8a84514b4520613478849b7", "1058ecbb025e4dfabbe9d7ca7b98198c", "00ecabd734f441e7a03f400c894c6f9e", "e794617411ef45dba87f156351eb8636", "2e59bbc337ee4ab1a3a1722e8eca9cc6", "2371b130a879430ca87773b173e83cb4", "6a9d5006881346b6a945a30a2b8545b5", "ce5c33b6af2240818428348004f37aeb", "5374148f267f4989b98e4aab3bd79262", "808b0b7be987408790df416f65a2204a", "1b0e4a7cd0ae41fe855d63697f6c7b19", "45e9d716b9244ee6883850adf9daa260", "af218beafa794a28b0d67ce1f838edbd", "4a7955336a754e2d8944a5bebd1a8927", "1a032a5285674da8aa9533e9970e05e7", "1a27acd4745a48c080fc007df491956a", "a2a3613f8ba346dc9a905d6153995d64", "3b0fc2dd7770407f987ceb7a4d536b94", "396e335b974945e7bbc758729e902034", "eeda05c40f5f46d8909c79766977b3b7", "aa64ac2d50704dc7afb903bc769fead7", "afc317e6d50f47868e9d1530962a8e32", "fdd6ae08102e41a9aeab153b8563b344", "4000ef0fbfc140ac848e52d9f781e9ea" ] }, "id": "BWO2TLTa5BvZ", "outputId": "0629fac0-79ae-416a-8406-e77f4ae8c9c5" }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "0d77c99c637c4251b0275aefb3907a0c", "version_major": 2, "version_minor": 0 }, "text/plain": [ "VBox(children=(HTML(value='