diff --git "a/peft_base_model_analysis.ipynb" "b/peft_base_model_analysis.ipynb"
new file mode 100644--- /dev/null
+++ "b/peft_base_model_analysis.ipynb"
@@ -0,0 +1,2000 @@
+{
+ "cells": [
+ {
+ "cell_type": "code",
+ "source": [
+ "%pip install huggingface_hub httpx tqdm --upgrade"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "pCPC0RUTOt7i",
+ "outputId": "2dff92e3-a9ae-4ef8-e47b-24f754556a01"
+ },
+ "execution_count": 1,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "Collecting huggingface_hub\n",
+ " Downloading huggingface_hub-0.17.2-py3-none-any.whl (294 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m294.9/294.9 kB\u001b[0m \u001b[31m4.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hCollecting httpx\n",
+ " Downloading httpx-0.25.0-py3-none-any.whl (75 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m75.7/75.7 kB\u001b[0m \u001b[31m7.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hRequirement already satisfied: tqdm in /usr/local/lib/python3.10/dist-packages (4.66.1)\n",
+ "Requirement already satisfied: filelock in /usr/local/lib/python3.10/dist-packages (from huggingface_hub) (3.12.2)\n",
+ "Requirement already satisfied: fsspec in /usr/local/lib/python3.10/dist-packages (from huggingface_hub) (2023.6.0)\n",
+ "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from huggingface_hub) (2.31.0)\n",
+ "Requirement already satisfied: pyyaml>=5.1 in /usr/local/lib/python3.10/dist-packages (from huggingface_hub) (6.0.1)\n",
+ "Requirement already satisfied: typing-extensions>=3.7.4.3 in /usr/local/lib/python3.10/dist-packages (from huggingface_hub) (4.5.0)\n",
+ "Requirement already satisfied: packaging>=20.9 in /usr/local/lib/python3.10/dist-packages (from huggingface_hub) (23.1)\n",
+ "Requirement already satisfied: certifi in /usr/local/lib/python3.10/dist-packages (from httpx) (2023.7.22)\n",
+ "Collecting httpcore<0.19.0,>=0.18.0 (from httpx)\n",
+ " Downloading httpcore-0.18.0-py3-none-any.whl (76 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m76.0/76.0 kB\u001b[0m \u001b[31m5.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hRequirement already satisfied: idna in /usr/local/lib/python3.10/dist-packages (from httpx) (3.4)\n",
+ "Requirement already satisfied: sniffio in /usr/local/lib/python3.10/dist-packages (from httpx) (1.3.0)\n",
+ "Requirement already satisfied: anyio<5.0,>=3.0 in /usr/local/lib/python3.10/dist-packages (from httpcore<0.19.0,>=0.18.0->httpx) (3.7.1)\n",
+ "Collecting h11<0.15,>=0.13 (from httpcore<0.19.0,>=0.18.0->httpx)\n",
+ " Downloading h11-0.14.0-py3-none-any.whl (58 kB)\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m58.3/58.3 kB\u001b[0m \u001b[31m6.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25hRequirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->huggingface_hub) (3.2.0)\n",
+ "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->huggingface_hub) (2.0.4)\n",
+ "Requirement already satisfied: exceptiongroup in /usr/local/lib/python3.10/dist-packages (from anyio<5.0,>=3.0->httpcore<0.19.0,>=0.18.0->httpx) (1.1.3)\n",
+ "Installing collected packages: h11, huggingface_hub, httpcore, httpx\n",
+ "Successfully installed h11-0.14.0 httpcore-0.18.0 httpx-0.25.0 huggingface_hub-0.17.2\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 27,
+ "metadata": {
+ "id": "borSZCgAOfOo"
+ },
+ "outputs": [],
+ "source": [
+ "import httpx\n",
+ "from huggingface_hub import list_models, ModelFilter, hf_hub_url\n",
+ "import pandas as pd\n",
+ "from tqdm.contrib.concurrent import thread_map\n",
+ "from huggingface_hub import model_info\n",
+ "from tqdm.auto import tqdm"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "d0cwY4nNOfOo",
+ "outputId": "a65725ea-97a1-4cb4-de1d-5cf0876ca4ab"
+ },
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "6981"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 3
+ }
+ ],
+ "source": [
+ "peft_models = list(iter(list_models(filter=ModelFilter(library=\"peft\"), full=True)))\n",
+ "len(peft_models)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "6yfMtGYcOfOq",
+ "outputId": "d59f125b-ae61-4aeb-9316-519543fba3c3"
+ },
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "RepoFile: {'blob_id': None, 'lfs': None, 'rfilename': 'adapter_config.json', 'size': None}"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 4
+ }
+ ],
+ "source": [
+ "peft_models[0].siblings[2]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "jLEeIwZAOfOq",
+ "outputId": "ed4d1041-46f7-473d-d53e-f7ffbf5d4248"
+ },
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "{'base_model_name_or_path': 'facebook/opt-350m',\n",
+ " 'bias': 'none',\n",
+ " 'enable_lora': None,\n",
+ " 'fan_in_fan_out': False,\n",
+ " 'inference_mode': True,\n",
+ " 'lora_alpha': 32,\n",
+ " 'lora_dropout': 0.05,\n",
+ " 'merge_weights': False,\n",
+ " 'peft_type': 'LORA',\n",
+ " 'r': 16,\n",
+ " 'target_modules': ['q_proj', 'v_proj'],\n",
+ " 'task_type': 'SEQ_CLS'}"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 5
+ }
+ ],
+ "source": [
+ "httpx.get(hf_hub_url(peft_models[0].modelId,'adapter_config.json')).json()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 36
+ },
+ "id": "xMM2229VOfOq",
+ "outputId": "889bb7ad-c90f-41e7-98de-ec56a700ac44"
+ },
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "'facebook/opt-350m'"
+ ],
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "type": "string"
+ }
+ },
+ "metadata": {},
+ "execution_count": 6
+ }
+ ],
+ "source": [
+ "httpx.get(hf_hub_url(peft_models[0].modelId,'adapter_config.json')).json().get('base_model_name_or_path')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "id": "OjKGmWMDOfOr"
+ },
+ "outputs": [],
+ "source": [
+ "def try_get_base_model(model):\n",
+ " model_id = model.modelId\n",
+ " downloads = model.downloads\n",
+ " author = model.author\n",
+ " try:\n",
+ " return model_id, httpx.get(hf_hub_url(model_id,'adapter_config.json')).json().get('base_model_name_or_path'), downloads, author\n",
+ " except Exception:\n",
+ " return None"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 49,
+ "referenced_widgets": [
+ "9dc99b649eaa4e4eb68d1aa37651566e",
+ "efdcc8fa8b0d417ab2d63f5cee541aed",
+ "a9a4ce193d224638bc76f527ead85cbf",
+ "9ba1d7f9e9014d58a98a9e0ac45c7cc9",
+ "f408225ced644598981dcf25fae01591",
+ "1ab7d6ccc0f54e779f368ea719b4785b",
+ "82aa5fcfa95a48089b63618a4120b6f6",
+ "e32769c7cf2344549a5093f132d378e1",
+ "56c3ec8fd04541808757d4c373258637",
+ "d64eb69ca9934364b164ed432bb71141",
+ "37dfab2a0c5c43dcac7b2cd6960bfda5"
+ ]
+ },
+ "id": "ovssytREOfOr",
+ "outputId": "0c67429d-219c-4f58-9ae4-784a0accc1de"
+ },
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ " 0%| | 0/6981 [00:00, ?it/s]"
+ ],
+ "application/vnd.jupyter.widget-view+json": {
+ "version_major": 2,
+ "version_minor": 0,
+ "model_id": "9dc99b649eaa4e4eb68d1aa37651566e"
+ }
+ },
+ "metadata": {}
+ }
+ ],
+ "source": [
+ "results = thread_map(try_get_base_model, peft_models)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 424
+ },
+ "id": "IGxeikIsOfOs",
+ "outputId": "f8aadaf6-fc5c-47db-83fb-a4a2510764ea"
+ },
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " model_id \\\n",
+ "562 aarnphm/opt-6-7b-quotes \n",
+ "914 artek0chumak/bloom-560m-safe-peft \n",
+ "1061 peft-internal-testing/tiny-OPTForCausalLM-lora \n",
+ "1065 peft-internal-testing/tiny_T5ForSeq2SeqLM-lora \n",
+ "1063 peft-internal-testing/tiny_OPTForQuestionAnswe... \n",
+ "... ... \n",
+ "2569 KingKazma/cnn_dailymail_gpt2_p_tuning_500_10_3... \n",
+ "2567 KingKazma/cnn_dailymail_gpt2_p_tuning_500_10_3... \n",
+ "2566 KingKazma/cnn_dailymail_gpt2_p_tuning_500_10_3... \n",
+ "2565 KingKazma/cnn_dailymail_gpt2_p_tuning_500_10_3... \n",
+ "6980 AhmedBou/Falcon_7B_Science_Exam_QLoRA \n",
+ "\n",
+ " base_model downloads \\\n",
+ "562 /home/ubuntu/.local/share/bentoml/models/pt-fa... 290304.0 \n",
+ "914 bigscience/bloom-560m 33069.0 \n",
+ "1061 hf-internal-testing/tiny-random-OPTForCausalLM 17217.0 \n",
+ "1065 trl-internal-testing/tiny-T5ForConditionalGene... 15197.0 \n",
+ "1063 hf-internal-testing/tiny-random-OPTForCausalLM 15182.0 \n",
+ "... ... ... \n",
+ "2569 gpt2 0.0 \n",
+ "2567 gpt2 0.0 \n",
+ "2566 gpt2 0.0 \n",
+ "2565 gpt2 0.0 \n",
+ "6980 tiiuae/falcon-7b 0.0 \n",
+ "\n",
+ " author \n",
+ "562 aarnphm \n",
+ "914 artek0chumak \n",
+ "1061 peft-internal-testing \n",
+ "1065 peft-internal-testing \n",
+ "1063 peft-internal-testing \n",
+ "... ... \n",
+ "2569 KingKazma \n",
+ "2567 KingKazma \n",
+ "2566 KingKazma \n",
+ "2565 KingKazma \n",
+ "6980 AhmedBou \n",
+ "\n",
+ "[6663 rows x 4 columns]"
+ ],
+ "text/html": [
+ "\n",
+ "
\n",
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " model_id | \n",
+ " base_model | \n",
+ " downloads | \n",
+ " author | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 562 | \n",
+ " aarnphm/opt-6-7b-quotes | \n",
+ " /home/ubuntu/.local/share/bentoml/models/pt-fa... | \n",
+ " 290304.0 | \n",
+ " aarnphm | \n",
+ "
\n",
+ " \n",
+ " 914 | \n",
+ " artek0chumak/bloom-560m-safe-peft | \n",
+ " bigscience/bloom-560m | \n",
+ " 33069.0 | \n",
+ " artek0chumak | \n",
+ "
\n",
+ " \n",
+ " 1061 | \n",
+ " peft-internal-testing/tiny-OPTForCausalLM-lora | \n",
+ " hf-internal-testing/tiny-random-OPTForCausalLM | \n",
+ " 17217.0 | \n",
+ " peft-internal-testing | \n",
+ "
\n",
+ " \n",
+ " 1065 | \n",
+ " peft-internal-testing/tiny_T5ForSeq2SeqLM-lora | \n",
+ " trl-internal-testing/tiny-T5ForConditionalGene... | \n",
+ " 15197.0 | \n",
+ " peft-internal-testing | \n",
+ "
\n",
+ " \n",
+ " 1063 | \n",
+ " peft-internal-testing/tiny_OPTForQuestionAnswe... | \n",
+ " hf-internal-testing/tiny-random-OPTForCausalLM | \n",
+ " 15182.0 | \n",
+ " peft-internal-testing | \n",
+ "
\n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " 2569 | \n",
+ " KingKazma/cnn_dailymail_gpt2_p_tuning_500_10_3... | \n",
+ " gpt2 | \n",
+ " 0.0 | \n",
+ " KingKazma | \n",
+ "
\n",
+ " \n",
+ " 2567 | \n",
+ " KingKazma/cnn_dailymail_gpt2_p_tuning_500_10_3... | \n",
+ " gpt2 | \n",
+ " 0.0 | \n",
+ " KingKazma | \n",
+ "
\n",
+ " \n",
+ " 2566 | \n",
+ " KingKazma/cnn_dailymail_gpt2_p_tuning_500_10_3... | \n",
+ " gpt2 | \n",
+ " 0.0 | \n",
+ " KingKazma | \n",
+ "
\n",
+ " \n",
+ " 2565 | \n",
+ " KingKazma/cnn_dailymail_gpt2_p_tuning_500_10_3... | \n",
+ " gpt2 | \n",
+ " 0.0 | \n",
+ " KingKazma | \n",
+ "
\n",
+ " \n",
+ " 6980 | \n",
+ " AhmedBou/Falcon_7B_Science_Exam_QLoRA | \n",
+ " tiiuae/falcon-7b | \n",
+ " 0.0 | \n",
+ " AhmedBou | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
6663 rows × 4 columns
\n",
+ "
\n",
+ "
\n",
+ "
\n"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 11
+ }
+ ],
+ "source": [
+ "df = pd.DataFrame(results, columns=['model_id','base_model','downloads','author']).dropna().sort_values('downloads',ascending=False)\n",
+ "df"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 22,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "63M7CSfKOfOs",
+ "outputId": "f8af6b3b-5826-41b4-c444-9cdb88048f0d"
+ },
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "gpt2 1069\n",
+ "TinyPixel/Llama-2-7B-bf16-sharded 456\n",
+ "t5-small 344\n",
+ "decapoda-research/llama-7b-hf 239\n",
+ "google/flan-t5-large 235\n",
+ " ... \n",
+ "TheBloke/Llama-2-70B-Chat-fp16 1\n",
+ "qqqube/spre4-lora2 1\n",
+ "qqqube/spre4-nw-lora2 1\n",
+ "qqqube/spre4-pft4 1\n",
+ "openai/clip-vit-base-patch32 1\n",
+ "Name: base_model, Length: 470, dtype: int64"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 22
+ }
+ ],
+ "source": [
+ "df['base_model'].value_counts()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 25,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 448
+ },
+ "id": "2Y4HhtV7OfOs",
+ "outputId": "9e676501-b166-4340-8e97-d30c7168e955"
+ },
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "execution_count": 25
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ ""
+ ],
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAwAAAAGdCAYAAACl5hQ6AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB+K0lEQVR4nO3deXgO1///8eedkH0TSxKEIBGxr9FY01pip/ppVBVprUVRRWltsca+tXTRWvrRqpaSqqWWRkntaxGxtISK+rRIhCKS+/eHX+brbhKiRXC/Htc115WZOXPmfc4dct4zZ+Y2mc1mMyIiIiIiYhVscjsAERERERF5dJQAiIiIiIhYESUAIiIiIiJWRAmAiIiIiIgVUQIgIiIiImJFlACIiIiIiFgRJQAiIiIiIlZECYCIiIiIiBXJk9sBiMjjJT09nXPnzuHq6orJZMrtcERERCQHzGYzV65coXDhwtjY3P0avxIAEbFw7tw5fH19czsMERER+QfOnDlD0aJF71pGCYCIWHB1dQVu/wfi5uaWy9GIiIhITiQnJ+Pr62v8Hb8bJQAiYiFj2o+bm5sSABERkSdMTqbv6iFgERERERErogRARERERMSKKAEQEREREbEiSgBERERERKyIEgARERERESuiBEBERERExIroNaAikqXyI9dhY++U22GIiIg8VU5FNc/tEHQHQERERETEmigBEBERERGxIkoARERERESsiBIAERERERErogRA5AlmMplYsWKFxbbly5fTqFEjChYsiJubGyEhIaxbty53AhQREZHHjhIAkafMjz/+SKNGjVi9ejV79uzh2WefpWXLluzbty+3QxMREZHHgBIAkVxy5coVOnTogLOzMz4+PkyfPp3Q0FD69+8PgJ+fH2PGjKF9+/Y4OztTpEgR3n//feN4Pz8/AJ5//nlMJpOxPmPGDAYPHkyNGjUICAhg/PjxBAQE8O233z7iFoqIiMjjSAmASC4ZMGAAsbGxREdHs379erZs2cLevXstykyePJlKlSqxb98+hgwZQr9+/Vi/fj0Au3btAmD+/PkkJiYa63+Xnp7OlStX8PT0zHL/jRs3SE5OtlhERETk6aUvAhPJBVeuXGHhwoV8/vnnNGjQALg9kC9cuLBFudq1azNkyBAASpcuTWxsLNOnTzfm+AN4eHjg7e2d7bmmTJlCSkoK4eHhWe6f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OpoqVaoYidtLL71ElSpV+OCDD4wy/fv3Z+jQobz55ptUqlSJjRs3sn79ekqVKpVtvXZ2dgwdOpSKFStSr149bG1tWbJkyT3bkGHYsGFUrVqVsLAwQkND8fb2ztG3VRcrVoxly5axYsUKKlWqxAcffJDp2Y2KFSuyefNmjh07Rt26dalSpQojRoyw+Hczf/58ChcuTP369Wnbti3du3enUKFCOY5fREREnm4m84P4mtZ/KSUlhSJFijB//nzatm2b2+EYpk2bxoYNG+56xVvkaZOcnIy7uzu+/ZdiY++U2+GIPLZORWW+aywiklsy/n4nJSXdc+ZFrk4BSk9P548//mDq1Kl4eHg8dt+0W7RoUYYOHZrbYYiIiIiIPDC5mgAkJCRQokQJihYtyoIFC+75dp9H7c634YiIiIiIPA0eiylAIvL4uJ9biCIiIvJ4uJ+/34/FQ8AiIiIiIvJoKAEQEREREbEiSgBERERERKyIEgARERERESuiBEBERERExIooARARERERsSJKAERERERErIgSABERERERK6IEQERERETEiigBEBERERGxIkoARERERESsiBIAERERERErogRARERERMSKKAEQEREREbEiSgBERERERKyIEgARERERESuiBEBERERExIooARARERERsSJ5cjsAEXk8lR+5Dht7p9wOQ55Cp6Ka53YIIiJWTXcARERERESsiBIAERERERErogRARERERMSKKAEQecosWLAADw8PY33UqFFUrlw51+IRERGRx4sSAJEshIaG0r9/f4ttJpMp07JkyZLcCVBERETkH9JbgETuw/z582nSpImxfueVdhEREZEnge4AiPxNREQEmzdvZubMmcaV/lOnTgG3B/ze3t7G4uDgcNe6YmJiCA4OxtnZGQ8PD2rXrs3p06eB/5ua8+mnn1KsWDFcXFzo1asXaWlpTJo0CW9vbwoVKsS4ceMs6pw2bRoVKlTA2dkZX19fevXqRUpKykPpCxEREXn6KAEQ+ZuZM2cSEhJCt27dSExMJDExEV9fXwB69+5NgQIFCA4O5tNPP8VsNmdbz61bt2jTpg3169fn4MGDbNu2je7du2MymYwyJ0+eZM2aNaxdu5YvvviCTz75hObNm3P27Fk2b97MxIkTGTZsGDt27DCOsbGxYdasWRw+fJiFCxeyadMmBg8e/I/be+PGDZKTky0WEREReXppCpDI37i7u2NnZ4eTkxPe3t7G9tGjR/Pcc8/h5OTE999/b1x579u3b5b1JCcnk5SURIsWLShVqhQAQUFBFmXS09P59NNPcXV1pWzZsjz77LPEx8ezevVqbGxsCAwMZOLEifzwww/UrFkTwOLZBD8/P8aOHUvPnj2ZM2fOP2rvhAkTiIyM/EfHioiIyJNHCYBIDg0fPtz4uUqVKly9epXJkyfTt29fEhISKFu2rLH/nXfe4Z133iEiIoKwsDAaNWpEw4YNCQ8Px8fHxyjn5+eHq6urse7l5YWtrS02NjYW2y5cuGCsb9iwgQkTJnD06FGSk5O5desW169f59q1azg53f839w4dOpQBAwYY68nJycYdDxEREXn6aAqQyD9Us2ZNzp49y40bNyhcuDD79+83lp49ewK3Hxretm0btWrV4ssvv6R06dJs377dqCNv3rwWdZpMpiy3paenA3Dq1ClatGhBxYoVWbZsGXv27OH9998H4ObNm/+oHfb29ri5uVksIiIi8vTSHQCRLNjZ2ZGWlnbXMvv37ydfvnzY29sD4O/vn2W5KlWqUKVKFYYOHUpISAiff/45zzzzzD+Ka8+ePaSnpzN16lTjLsHSpUv/UV0iIiJinZQAiGTBz8+PHTt2cOrUKVxcXIiNjeV///sfzzzzDA4ODqxfv57x48czcODAbOv49ddf+eijj2jVqhWFCxcmPj6e48eP06lTp38cl7+/P6mpqcyePZuWLVsSGxvLBx988I/rExEREeujKUAiWRg4cCC2traULVuWggULkpiYyPvvv09ISAiVK1fmww8/ZNq0aYwcOTLbOpycnDh69CgvvPACpUuXpnv37vTu3ZsePXr847gqVarEtGnTmDhxIuXLl2fx4sVMmDDhH9cnIiIi1sdkvtt7DEXE6iQnJ+Pu7o5v/6XY2N//Q8Ui93IqqnluhyAi8tTJ+PudlJR0z+f5dAdARERERMSKKAEQEREREbEieghYRLJ0KDJMrwQVERF5CukOgIiIiIiIFVECICIiIiJiRZQAiIiIiIhYESUAIiIiIiJWRAmAiIiIiIgVUQIgIiIiImJFlACIiIiIiFgRJQAiIiIiIlZECYCIiIiIiBVRAiAiIiIiYkWUAIiIiIiIWBElACIiIiIiVkQJgIiIiIiIFVECICIiIiJiRZQAiIiIiIhYESUAIiIiIiJWRAmAiIiIiIgVUQIgIiIiImJF8uR2ACLyeCo/ch029k65HYbcxamo5rkdgoiIPIF0B0BERERExIooARARERERsSJKAERERERErMgTkwCEhobSv3//3A7jX3ta2vEgmUwmVqxYcV/HRERE0KZNG2P9Se/XUaNGUbly5fs+LiftPn/+PI0aNcLZ2RkPD49/FJ+IiIg8PZ6YBEDk9OnTODo6kpKSktuh3JcFCxZgMpmyXC5cuPDQzz99+nQSExPZv38/x44de+jnExERkceb3gL0FEhLS8NkMmFj8/jlc6mpqeTNm/eB1LVy5UqeffZZXFxcHkh9j0q7du1o0qSJxbaIiAiuX79OoUKFHvr5T548SbVq1QgICHjo5xIREZHH3+M3YgSuXr1Kp06dcHFxwcfHh6lTp1rsv3HjBgMHDqRIkSI4OztTs2ZNYmJiLMrExsYSGhqKk5MT+fLlIywsjEuXLgGwdu1a6tSpg4eHB/nz56dFixacPHnSOPbUqVOYTCaWLFlCrVq1cHBwoHz58mzevNniHJs3byY4OBh7e3t8fHwYMmQIt27dynE7AD777DOqV6+Oq6sr3t7evPzyy/e8KrxgwQI8PDyIjo6mbNmy2Nvbk5CQcM9+OX36NC1btiRfvnw4OztTrlw5Vq9ebew/dOgQTZs2xcXFBS8vLzp27Mgff/xh7M9pv3355ZfUr18fBwcHFi9eDMCnn35KuXLljL7q06ePRZv++OMPnn/+eZycnAgICCA6OjpTu1euXEmrVq3u2jc57deYmBhMJhPr1q2jSpUqODo68txzz3HhwgXWrFlDUFAQbm5uvPzyy1y7di3HfZAVR0dHvL29jcXW1pZNmzbRpUuXTGU//PBDfH19cXJyIjw8nKSkpHu2NT09ncGDB+Pp6Ym3tzejRo0y9vn5+bFs2TIWLVqEyWQiIiLi3p0nIiIiT7XHMgEYNGgQmzdvZuXKlXz//ffExMSwd+9eY3+fPn3Ytm0bS5Ys4eDBg7z44os0adKE48ePA7B//34aNGhA2bJl2bZtG1u3bqVly5akpaUBtwfmAwYMYPfu3WzcuBEbGxuef/550tPTM8Xx1ltvsW/fPkJCQmjZsiV//vknAL/99hvNmjWjRo0aHDhwgLlz5/LJJ58wduzYHLcDbl8hHzNmDAcOHGDFihWcOnUqR4O0a9euMXHiRObNm8fhw4cpVKjQPfuld+/e3Lhxgx9//JGff/6ZiRMnGlfTL1++zHPPPUeVKlXYvXs3a9eu5ffffyc8PNw4Z077bciQIfTr14+4uDjCwsKYO3cuvXv3pnv37vz8889ER0fj7+9vcUxkZCTh4eEcPHiQZs2a0aFDBy5evGjsv3z5Mlu3bs1xApDTfh01ahTvvfceP/30E2fOnCE8PJwZM2bw+eef89133/H9998ze/bs++6Du1m0aBFOTk785z//sdh+4sQJli5dyrfffsvatWvZt28fvXr1umd9CxcuxNnZmR07djBp0iRGjx7N+vXrAdi1axdNmjQhPDycxMREZs6cmen4GzdukJycbLGIiIjI08tkNpvNuR3EnVJSUsifPz///e9/efHFFwG4ePEiRYsWpXv37gwYMICSJUuSkJBA4cKFjeMaNmxIcHAw48eP5+WXXyYhIYGtW7fm6Jx//PEHBQsW5Oeff6Z8+fKcOnWKEiVKEBUVxdtvvw3ArVu3KFGiBG+88QaDBw/m3XffZdmyZcTFxWEymQCYM2cOb7/9NklJSVy7du2u7ZgxY0aWsezevZsaNWpw5cqVbKe6LFiwgFdffZX9+/dTqVIlABISEu7ZLxUrVuSFF15g5MiRmeocO3YsW7ZsYd26dca2s2fP4uvrS3x8PKVLl85xv82YMYN+/foZ5YoUKcKrr75qkRzdyWQyMWzYMMaMGQPcHmS7uLiwZs0aY+rM559/zvTp09m1axdwewrN5cuXjYeHQ0NDqVy5co77NSYmhmeffZYNGzbQoEEDAKKiohg6dCgnT56kZMmSAPTs2ZNTp06xdu3aLOv9ex/kRNmyZQkNDWXOnDnGtlGjRjF27FhOnz5NkSJFgNt3G5o3b85vv/2Gt7d3lnWFhoaSlpbGli1bjG3BwcE899xzREVFAdCmTRs8PDxYsGBBlnWMGjWKyMjITNt9+y/VF4E95vRFYCIikiE5ORl3d3eSkpJwc3O7a9nH7g7AyZMnuXnzJjVr1jS2eXp6EhgYCMDPP/9MWloapUuXxsXFxVg2b95sTMXIuAOQnePHj9O+fXtKliyJm5sbfn5+wO1B9J1CQkKMn/PkyUP16tWJi4sDIC4ujpCQEGPwD1C7dm1SUlI4e/bsPduRYc+ePbRs2ZJixYrh6upK/fr1LWIpV66c0camTZsax9nZ2VGxYkVjPSf90rdvX8aOHUvt2rUZOXIkBw8eNI4/cOAAP/zwg8WxZcqUMT6T++m36tWrGz9fuHCBc+fO3fXzACza4uzsjJubm8WUnfuZ/gP37teszuvl5YWTk5Mx+M/Ydmcc9+qDjClULi4ulCtXLlNc27ZtIy4uLsvpP8WKFTMG/3D79y89PZ34+Hi2bNli8dlkTK36exsAfHx87uvh4qFDh5KUlGQsZ86cyfGxIiIi8uR54h4CTklJwdbWlj179mBra2uxL+OKuaOj413raNmyJcWLF+fjjz+mcOHCpKenU758eW7evPnQ4s7K1atXCQsLIywsjMWLF1OwYEESEhIICwszYlm9ejWpqamAZbscHR0tko+c9EvXrl0JCwszprZMmDCBqVOn8sYbb5CSkkLLli2ZOHFipjh9fHyAnPebs7OzRZw58fcHhU0mkzGt5ubNm6xdu5Z33nknR3XlpF+zOq/JZLprHHDvPpg3bx5//fVXlm3K2F+5cmWqVauWo7ZkqF69Ovv37zfWvby8smxDVjHfi729Pfb29vcVj4iIiDy5HrsEoFSpUuTNm5cdO3ZQrFgxAC5dusSxY8eoX78+VapUIS0tjQsXLlC3bt0s66hYsSIbN27MclrDn3/+SXx8PB9//LFxfHZThbZv3069evWA21OA9uzZYzy8GhQUxLJlyzCbzcZAPDY2FldXV4oWLYqnp+dd2wFw9OhR/vzzT6KiovD19QVuT1W5U/HixXPUbznpFwBfX1969uxJz549GTp0KB9//DFvvPEGVatWZdmyZfj5+ZEnT+Zfi/vptzu5urri5+fHxo0befbZZ3PUlr+LiYkhX758xnSne8lJv/4TOemDO6/g/11KSgpLly5lwoQJWe5PSEjg3LlzxhSu7du3Y2NjQ2BgII6OjpmemxARERH5Jx67KUAuLi506dKFQYMGsWnTJg4dOkRERITxisvSpUvToUMHOnXqxPLly/n111/ZuXMnEyZM4LvvvgNuT2nYtWsXvXr14uDBgxw9epS5c+fyxx9/kC9fPvLnz89HH33EiRMn2LRpEwMGDMgylvfff59vvvmGo0eP0rt3by5dusRrr70GQK9evThz5gxvvPEGR48eZeXKlYwcOZIBAwZgY2Nzz3bA7SkfdnZ2zJ49m19++YXo6GhjHvz9ykm/9O/fn3Xr1vHrr7+yd+9efvjhB4KCgoDbDwhfvHiR9u3bs2vXLk6ePMm6det49dVXSUtLu69++7tRo0YxdepUZs2axfHjx9m7d6/Fg7X3Eh0dfV/Tfx5kv97p3/QBwJdffsmtW7d45ZVXstzv4OBA586dOXDgAFu2bKFv376Eh4dnO/9fRERE5J947BIAgMmTJ1O3bl1atmxJw4YNqVOnjsWUifnz59OpUyfeeustAgMDadOmDbt27TKutJcuXZrvv/+eAwcOEBwcTEhICCtXriRPnjzY2NiwZMkS9uzZQ/ny5XnzzTeZPHlylnFERUURFRVFpUqV2Lp1K9HR0RQoUAC4faV39erV7Ny5k0qVKtGzZ0+6dOnCsGHDctyOggULsmDBAr766ivKli1LVFQUU6ZM+cf9dq9+SUtLo3fv3gQFBdGkSRNKly5tPIhauHBhYmNjSUtLo3HjxlSoUIH+/fvj4eGBjY3NffXb33Xu3JkZM2YwZ84cypUrR4sWLYw3E+XE/SYAD7pfM/ybPgD45JNPaNu2bbbfxuvv70/btm1p1qwZjRs3pmLFihYPCouIiIg8CI/dW4AeBxlvs9m3bx+VK1fO7XCs2t69e3nuuef43//+98C+UEzuLuMtAnoL0ONPbwESEZEMT/RbgETudOvWLWbPnq3Bv4iIiMgD8tg9BCxyp+DgYIKDg3M7DBEREZGnhqYAiYiF+7mFKCIiIo8HTQESEREREZEsKQEQEREREbEiSgBERERERKyIEgARERERESuiBEBERERExIooARARERERsSJKAERERERErIgSABERERERK6IEQERERETEiigBEBERERGxIkoARERERESsiBIAERERERErogRARERERMSKKAEQEREREbEiSgBERERERKyIEgARERERESuiBEBERERExIooARARERERsSJ5cjsAEXk8lR+5Dht7p9wOQ7JwKqp5bocgIiJPMN0BEBERERGxIkoARERERESsiBIAERERERErogRAHhqTycSKFSv+VR3nz5+nUaNGODs74+Hh8cDqfdRCQ0Pp379/bochIiIiogRAHj+RkZG88sorAEyfPp3ExET279/PsWPHHmkcfn5+zJgxw2LbqVOnMJlMmZbt27c/0thERERE/im9BUgeOytXrmTIkCEAnDx5kmrVqhEQEJDLUVnasGED5cqVM9bz58//UM9nNptJS0sjTx79kxUR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usjjLuMtAnoLkIiIyJPjft4C9NCnAF26dImYmBhiYmLu6wu8nmS3bt1i9uzZGvyLiIiIyGPnkbwF6NKlS0ycODHH87qfdMHBwQQHB+d2GCIiIiIimTyyKUAi8mS4n1uIIiIi8nh4rL4ITEREREREHh9KAERERERErIgSABERERERK6IEQERERETEiigBEBERERGxIkoARERERESsiBIAERERERErogRARERERMSKKAEQEREREbEiSgBERERERKyIEgARERERESuiBEBERERExIooARARERERsSJKAERERERErIgSABERERERK6IEQERERETEiigBEBERERGxIkoARERERESsSJ7cDkBEHk/lR67Dxt4pt8P4x05FNc/tEERERB5LugMgIiIiImJFlACIiIiIiFgRJQAiIiIiIlZECcATKjQ0lP79+2e738/PjxkzZjySWBYsWICHh8cjOde/MWrUKCpXrnzXMhEREbRp0+aRxPMwPOnxi4iIyMOnBOAptWvXLrp37/5IztWuXTuOHTv2SM51v/766y+cnZ05ceJEbofyr8XHx/Pss8/i5eWFg4MDJUuWZNiwYaSmpuZ2aCIiIvIE0VuAnlIFCxZ8ZOdydHTE0dHxkZ3vfqxfv57ixYvj7++f26H8a3nz5qVTp05UrVoVDw8PDhw4QLdu3UhPT2f8+PG5HZ6IiIg8IXQH4Al269Yt+vTpg7u7OwUKFGD48OGYzWYg8xSgo0ePUqdOHRwcHChbtiwbNmzAZDKxYsUKAG7evEmfPn3w8fHBwcGB4sWLM2HCBOP4y5cv06NHD+Pqc/ny5Vm1ahWQ9RSglStXUrVqVeNKdWRkJLdu3TL2m0wm5s2bx/PPP4+TkxMBAQFER0db1HH48GFatGiBm5sbrq6u1K1bl5MnTxr7582bR1BQEA4ODpQpU4Y5c+Zk6qOVK1fSqlUri20ffvghvr6+ODk5ER4eTlJSUrZ9fOPGDfr27UuhQoVwcHCgTp067Nq1y6LM5s2bCQ4Oxt7eHh8fH4YMGWLR1tDQUN544w369+9Pvnz58PLy4uOPP+bq1au8+uqruLq64u/vz5o1a7KNA6BkyZK8+uqrVKpUieLFi9OqVSs6dOjAli1bMpWNjIykYMGCuLm50bNnT27evHnXukVERMR6KAF4gi1cuJA8efKwc+dOZs6cybRp05g3b16m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iIjIk0kJwBOsU6dO/PXXXwQHB2Nra0u/fv2y/PIvW1tbVqxYQdeuXalRowYlS5Zk8uTJtGzZ0piS4+rqyqRJkzh+/Di2trbUqFGD1atXG4PGZcuWMXDgQNq3b8/Vq1fx9/fPdnpNWFgYq1atYvTo0UycOJG8efNSpkwZunbtmuO25c+fn02bNjFo0CDq16+Pra0tlStXNubjd+3aFScnJyZPnsygQYNwdnamQoUKxpX5lStX0rlz50z1+vv707ZtW5o1a8bFixdp0aJFlq8PzRAVFUV6ejodO3bkypUrVK9enXXr1pEvXz4AihQpwurVqxk0aBCVKlXC09PTGHw/aHny5GHixIkcO3YMs9lM8eLF6dOnD2+++aZFuQYNGhAQEEC9evW4ceMG7du3Z9SoUQ88HhEREXky6S1AVio2NpY6depw4sQJSpUqldvhPFB//PEHPj4+nD171pjyJDmX8RYBvQVIRETkyXE/bwHSHQAr8c033+Di4kJAQAAnTpygX79+1K5d+6kb/ANcvHiRadOmafAvIiIikgUlAFbiypUrvP322yQkJFCgQAEaNmyY5fMCT4PSpUvn+JWlIiIiItZGU4BExML93EIUERGRx4O+CExERERERLKkBEBERERExIooARARERERsSJKAERERERErIgSABERERERK6IEQERERETEiigBEBERERGxIkoARERERESsiBIAERERERErogRARERERMSKKAEQEREREbEiSgBERERERKyIEgARERERESuiBEBERERExIooARARERERsSJKAERERERErIgSABERERERK6IEQERERETEiuTJ7QBE5PFUfuQ6bOydcjuM+3YqqnluhyAiIvJY0x0AERERERErogRARERERMSKKAEQEREREbEiSgAeY6GhofTv3z/b/X5+fsyYMeORxLJgwQI8PDweybn+jVGjRlG5cuW7lomIiKBNmzaPJJ5HLSYmBpPJxOXLl3M7FBEREXlMKQF4gu3atYvu3bs/knO1a9eOY8eOPZJz3a+//voLZ2dnTpw4kduhPHQ9evSgVKlSODo6UrBgQVq3bs3Ro0dzOywRERF5gigBeIIVLFgQJ6dH85YWR0dHChUq9EjOdb/Wr19P8eLF8ff3z+1QHrpq1aoxf/584uLiWLduHWazmcaNG5OWlpbboYmIiMgTQgnAY+7WrVv0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93MLUURERB4P9/P3W28BEhERERGxIkoARERERESsiBIAERERERErogRARERERMSKKAEQEREREbEiSgBERERERKyIEgARERERESuiLwITEQsZXw2SnJycy5GIiIhITmX83c7JV3wpARARC3/++ScAvr6+uRyJiIiI3K8rV67g7u5+1zJKAETEgqenJwAJCQn3/A9E/pnk5GR8fX05c+aMvm35IVD/Pnzq44dL/ftwPa39azabuXLlCoULF75nWSUAImLBxub2o0Hu7u5P1X+MjyM3Nzf18UOk/n341McPl/r34Xoa+zenF+70ELCIiIiIiBVRAiAiIiIiYkWUAIiIBXt7e0aOHIm9vX1uh/LUUh8/XOrfh099/HCpfx8u9S+YzDl5V5CIiIiIiDwVdAdARERERMSKKAEQEREREbEiSgBERERERKyIEgARERERESuiBEBELLz//vv4+fnh4OBAzZo12blzZ26H9ESYMGECNWrUwNXVlUKFCtGmTRvi4+Mtyly/fp3evXuTP39+XFxceOGFF/j9998tyiQkJNC8eXOcnJwoVKgQgwYN4tatW4+yKU+EqKgoTCYT/fv3N7apf/+d3377jVdeeYX8+fPj6OhIhQoV2L17t7HfbDYzYsQIfHx8cHR0pGHDhhw/ftyijosXL9KhQwfc3Nzw8PCgS5cupKSkPOqmPJbS0tIYPnw4JUqUwNHRkVKlSjFmzBjufBeL+jjnfvzxR1q2bEnhwoUxmUysWLHCYv+D6suDBw9St25dHBwc8PX1ZdKkSQ+7aY+GWUTk/1uyZInZzs7O/Omnn5oPHz5s7tatm9nDw8P8+++/53Zoj72wsDDz/PnzzYcOHTLv37/f3KxZM3OxYsXMKSkpRpmePXuafX19zRs3bjTv3r3b/Mwzz5hr1apl7L9165a5fPny5oYNG5r37dtnXr16tblAgQLmoUOH5kaTHls7d+40+/n5mStWrGju16+fsV39+89dvHjRXLx4cXNERIR5x44d5l9++cW8bt0684kTJ4wyUVFRZnd3d/OKFSvMBw4cMLdq1cpcokQJ819//WWUadKkiblSpUrm7du3m7ds2WL29/c3t2/fPjea9NgZN26cOX/+/OZVq1aZf/31V/NXX31ldnFxMc+cOdMooz7OudWrV5vfffdd8/Lly82A+ZtvvrHY/yD6Mikpyezl5WXu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\n"
+ },
+ "metadata": {}
+ }
+ ],
+ "source": [
+ "plt = df['base_model'].value_counts().head(10).sort_values(ascending=True).plot(kind='barh')\n",
+ "plt.figure.savefig('top_models.png')\n",
+ "plt"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {
+ "id": "cHglDQCJOfOt"
+ },
+ "outputs": [],
+ "source": [
+ "base_models = set(df['base_model'].to_list())"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 28,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 439,
+ "referenced_widgets": [
+ "03634aa14ea64dd89abe8377108574f3",
+ "6235c2308ff34df28bdbbd3318f13e7d",
+ "7b4c54d43bf04135a90542e386e6a761",
+ "893e9a521c2940ba9ba10a83592ac748",
+ "6974bbf9c3884957833463133314798b",
+ "0fe173f545c341bb8386e7c6bf5fe097",
+ "f0661c5eef1741b7ba9c647e6c101afc",
+ "8219bab883e24bf9838f5124123e388c",
+ "dcbb6c8b77de4683a17f532845f9d84d",
+ "9378efb199964ce8b93db8155feed03e",
+ "0e338245806c44d483d2c65cfbd4148e"
+ ]
+ },
+ "id": "Q1Rk5TxoOfOt",
+ "outputId": "8338a938-b50c-425e-c495-016e272abfb6"
+ },
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ " 0%| | 0/470 [00:00, ?it/s]"
+ ],
+ "application/vnd.jupyter.widget-view+json": {
+ "version_major": 2,
+ "version_minor": 0,
+ "model_id": "03634aa14ea64dd89abe8377108574f3"
+ }
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "error",
+ "ename": "KeyboardInterrupt",
+ "evalue": "ignored",
+ "traceback": [
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)",
+ "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mmodel\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mtqdm\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbase_models\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0mmodel_info\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmodel\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 5\u001b[0m \u001b[0mis_valid_hub_id\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mappend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmodel\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mException\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/huggingface_hub/utils/_validators.py\u001b[0m in \u001b[0;36m_inner_fn\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 116\u001b[0m \u001b[0mkwargs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msmoothly_deprecate_use_auth_token\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfn_name\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__name__\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mhas_token\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mhas_token\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 117\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 118\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfn\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 119\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 120\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0m_inner_fn\u001b[0m \u001b[0;31m# type: ignore\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/huggingface_hub/hf_api.py\u001b[0m in \u001b[0;36mmodel_info\u001b[0;34m(self, repo_id, revision, timeout, securityStatus, files_metadata, token)\u001b[0m\n\u001b[1;32m 1695\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mfiles_metadata\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1696\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"blobs\"\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1697\u001b[0;31m \u001b[0mr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_session\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpath\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mheaders\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mheaders\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mtimeout\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mparams\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mparams\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1698\u001b[0m \u001b[0mhf_raise_for_status\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mr\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1699\u001b[0m \u001b[0md\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mjson\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/requests/sessions.py\u001b[0m in \u001b[0;36mget\u001b[0;34m(self, url, **kwargs)\u001b[0m\n\u001b[1;32m 600\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 601\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msetdefault\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"allow_redirects\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 602\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"GET\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0murl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 603\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 604\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0moptions\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0murl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/requests/sessions.py\u001b[0m in \u001b[0;36mrequest\u001b[0;34m(self, method, url, params, data, headers, cookies, files, auth, timeout, allow_redirects, proxies, hooks, stream, verify, cert, json)\u001b[0m\n\u001b[1;32m 587\u001b[0m }\n\u001b[1;32m 588\u001b[0m \u001b[0msend_kwargs\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msettings\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 589\u001b[0;31m \u001b[0mresp\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mprep\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0msend_kwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 590\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 591\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mresp\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/requests/sessions.py\u001b[0m in \u001b[0;36msend\u001b[0;34m(self, request, **kwargs)\u001b[0m\n\u001b[1;32m 701\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 702\u001b[0m \u001b[0;31m# Send the request\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 703\u001b[0;31m \u001b[0mr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0madapter\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 704\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 705\u001b[0m \u001b[0;31m# Total elapsed time of the request (approximately)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/huggingface_hub/utils/_http.py\u001b[0m in \u001b[0;36msend\u001b[0;34m(self, request, *args, **kwargs)\u001b[0m\n\u001b[1;32m 61\u001b[0m \u001b[0;34m\"\"\"Catch any RequestException to append request id to the error message for debugging.\"\"\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 62\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 63\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msend\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 64\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mrequests\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mRequestException\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 65\u001b[0m \u001b[0mrequest_id\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mrequest\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mheaders\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mX_AMZN_TRACE_ID\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/requests/adapters.py\u001b[0m in \u001b[0;36msend\u001b[0;34m(self, request, stream, timeout, verify, cert, proxies)\u001b[0m\n\u001b[1;32m 484\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 485\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 486\u001b[0;31m resp = conn.urlopen(\n\u001b[0m\u001b[1;32m 487\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mrequest\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmethod\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 488\u001b[0m \u001b[0murl\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0murl\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/urllib3/connectionpool.py\u001b[0m in \u001b[0;36murlopen\u001b[0;34m(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, preload_content, decode_content, **response_kw)\u001b[0m\n\u001b[1;32m 788\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 789\u001b[0m \u001b[0;31m# Make the request on the HTTPConnection object\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 790\u001b[0;31m response = self._make_request(\n\u001b[0m\u001b[1;32m 791\u001b[0m \u001b[0mconn\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 792\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/urllib3/connectionpool.py\u001b[0m in \u001b[0;36m_make_request\u001b[0;34m(self, conn, method, url, body, headers, retries, timeout, chunked, response_conn, preload_content, decode_content, enforce_content_length)\u001b[0m\n\u001b[1;32m 534\u001b[0m \u001b[0;31m# Receive the response from the server\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 535\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 536\u001b[0;31m \u001b[0mresponse\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mconn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgetresponse\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 537\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mBaseSSLError\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mOSError\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 538\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_raise_timeout\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merr\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0me\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0murl\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0murl\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtimeout_value\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mread_timeout\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/urllib3/connection.py\u001b[0m in \u001b[0;36mgetresponse\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 459\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 460\u001b[0m \u001b[0;31m# Get the response from http.client.HTTPConnection\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 461\u001b[0;31m \u001b[0mhttplib_response\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgetresponse\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 462\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 463\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/lib/python3.10/http/client.py\u001b[0m in \u001b[0;36mgetresponse\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 1373\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1374\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1375\u001b[0;31m \u001b[0mresponse\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mbegin\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1376\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mConnectionError\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1377\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mclose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/lib/python3.10/http/client.py\u001b[0m in \u001b[0;36mbegin\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 316\u001b[0m \u001b[0;31m# read until we get a non-100 response\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 317\u001b[0m \u001b[0;32mwhile\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 318\u001b[0;31m \u001b[0mversion\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstatus\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mreason\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_read_status\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 319\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mstatus\u001b[0m \u001b[0;34m!=\u001b[0m \u001b[0mCONTINUE\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 320\u001b[0m \u001b[0;32mbreak\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/lib/python3.10/http/client.py\u001b[0m in \u001b[0;36m_read_status\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 277\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 278\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0m_read_status\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 279\u001b[0;31m \u001b[0mline\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mstr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreadline\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_MAXLINE\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m\"iso-8859-1\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 280\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mline\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0m_MAXLINE\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 281\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mLineTooLong\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"status line\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/lib/python3.10/socket.py\u001b[0m in \u001b[0;36mreadinto\u001b[0;34m(self, b)\u001b[0m\n\u001b[1;32m 703\u001b[0m \u001b[0;32mwhile\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 704\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 705\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_sock\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrecv_into\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mb\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 706\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mtimeout\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 707\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_timeout_occurred\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/lib/python3.10/ssl.py\u001b[0m in \u001b[0;36mrecv_into\u001b[0;34m(self, buffer, nbytes, flags)\u001b[0m\n\u001b[1;32m 1272\u001b[0m \u001b[0;34m\"non-zero flags not allowed in calls to recv_into() on %s\"\u001b[0m \u001b[0;34m%\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1273\u001b[0m self.__class__)\n\u001b[0;32m-> 1274\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnbytes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbuffer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1275\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1276\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrecv_into\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mbuffer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnbytes\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mflags\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;32m/usr/lib/python3.10/ssl.py\u001b[0m in \u001b[0;36mread\u001b[0;34m(self, len, buffer)\u001b[0m\n\u001b[1;32m 1128\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1129\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mbuffer\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1130\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_sslobj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mbuffer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1131\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1132\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_sslobj\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlen\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+ "\u001b[0;31mKeyboardInterrupt\u001b[0m: "
+ ]
+ }
+ ],
+ "source": [
+ "is_valid_hub_id = []\n",
+ "for model in tqdm(base_models):\n",
+ " try:\n",
+ " model_info(model)\n",
+ " is_valid_hub_id.append(model)\n",
+ " except Exception:\n",
+ " continue\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "A0NU5xtzOfOt",
+ "outputId": "f6863100-1c64-4748-b095-18c7903af30c"
+ },
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "470"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 17
+ }
+ ],
+ "source": [
+ "len(is_valid_hub_id)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "id": "RWvgX-U8OfOt"
+ },
+ "outputs": [],
+ "source": [
+ "df = df[df.apply(lambda x: x['base_model'] in is_valid_hub_id, axis=1)]"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 19,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 424
+ },
+ "id": "GSQ4WPMWOfOt",
+ "outputId": "f9a9642c-780c-45b5-95a2-4b5b2fd462fc"
+ },
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " model_id \\\n",
+ "914 artek0chumak/bloom-560m-safe-peft \n",
+ "1061 peft-internal-testing/tiny-OPTForCausalLM-lora \n",
+ "1065 peft-internal-testing/tiny_T5ForSeq2SeqLM-lora \n",
+ "1063 peft-internal-testing/tiny_OPTForQuestionAnswe... \n",
+ "1066 peft-internal-testing/tiny_OPTForSequenceClass... \n",
+ "... ... \n",
+ "2569 KingKazma/cnn_dailymail_gpt2_p_tuning_500_10_3... \n",
+ "2567 KingKazma/cnn_dailymail_gpt2_p_tuning_500_10_3... \n",
+ "2566 KingKazma/cnn_dailymail_gpt2_p_tuning_500_10_3... \n",
+ "2565 KingKazma/cnn_dailymail_gpt2_p_tuning_500_10_3... \n",
+ "6980 AhmedBou/Falcon_7B_Science_Exam_QLoRA \n",
+ "\n",
+ " base_model downloads \\\n",
+ "914 bigscience/bloom-560m 33069.0 \n",
+ "1061 hf-internal-testing/tiny-random-OPTForCausalLM 17217.0 \n",
+ "1065 trl-internal-testing/tiny-T5ForConditionalGene... 15197.0 \n",
+ "1063 hf-internal-testing/tiny-random-OPTForCausalLM 15182.0 \n",
+ "1066 hf-internal-testing/tiny-random-OPTForCausalLM 15178.0 \n",
+ "... ... ... \n",
+ "2569 gpt2 0.0 \n",
+ "2567 gpt2 0.0 \n",
+ "2566 gpt2 0.0 \n",
+ "2565 gpt2 0.0 \n",
+ "6980 tiiuae/falcon-7b 0.0 \n",
+ "\n",
+ " author \n",
+ "914 artek0chumak \n",
+ "1061 peft-internal-testing \n",
+ "1065 peft-internal-testing \n",
+ "1063 peft-internal-testing \n",
+ "1066 peft-internal-testing \n",
+ "... ... \n",
+ "2569 KingKazma \n",
+ "2567 KingKazma \n",
+ "2566 KingKazma \n",
+ "2565 KingKazma \n",
+ "6980 AhmedBou \n",
+ "\n",
+ "[5570 rows x 4 columns]"
+ ],
+ "text/html": [
+ "\n",
+ " \n",
+ " \n",
+ "\n",
+ " \n",
+ " \n",
+ " \n",
+ " | \n",
+ " model_id | \n",
+ " base_model | \n",
+ " downloads | \n",
+ " author | \n",
+ " \n",
+ " \n",
+ " \n",
+ " \n",
+ " 914 | \n",
+ " artek0chumak/bloom-560m-safe-peft | \n",
+ " bigscience/bloom-560m | \n",
+ " 33069.0 | \n",
+ " artek0chumak | \n",
+ " \n",
+ " \n",
+ " 1061 | \n",
+ " peft-internal-testing/tiny-OPTForCausalLM-lora | \n",
+ " hf-internal-testing/tiny-random-OPTForCausalLM | \n",
+ " 17217.0 | \n",
+ " peft-internal-testing | \n",
+ " \n",
+ " \n",
+ " 1065 | \n",
+ " peft-internal-testing/tiny_T5ForSeq2SeqLM-lora | \n",
+ " trl-internal-testing/tiny-T5ForConditionalGene... | \n",
+ " 15197.0 | \n",
+ " peft-internal-testing | \n",
+ " \n",
+ " \n",
+ " 1063 | \n",
+ " peft-internal-testing/tiny_OPTForQuestionAnswe... | \n",
+ " hf-internal-testing/tiny-random-OPTForCausalLM | \n",
+ " 15182.0 | \n",
+ " peft-internal-testing | \n",
+ " \n",
+ " \n",
+ " 1066 | \n",
+ " peft-internal-testing/tiny_OPTForSequenceClass... | \n",
+ " hf-internal-testing/tiny-random-OPTForCausalLM | \n",
+ " 15178.0 | \n",
+ " peft-internal-testing | \n",
+ " \n",
+ " \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " \n",
+ " \n",
+ " 2569 | \n",
+ " KingKazma/cnn_dailymail_gpt2_p_tuning_500_10_3... | \n",
+ " gpt2 | \n",
+ " 0.0 | \n",
+ " KingKazma | \n",
+ " \n",
+ " \n",
+ " 2567 | \n",
+ " KingKazma/cnn_dailymail_gpt2_p_tuning_500_10_3... | \n",
+ " gpt2 | \n",
+ " 0.0 | \n",
+ " KingKazma | \n",
+ " \n",
+ " \n",
+ " 2566 | \n",
+ " KingKazma/cnn_dailymail_gpt2_p_tuning_500_10_3... | \n",
+ " gpt2 | \n",
+ " 0.0 | \n",
+ " KingKazma | \n",
+ " \n",
+ " \n",
+ " 2565 | \n",
+ " KingKazma/cnn_dailymail_gpt2_p_tuning_500_10_3... | \n",
+ " gpt2 | \n",
+ " 0.0 | \n",
+ " KingKazma | \n",
+ " \n",
+ " \n",
+ " 6980 | \n",
+ " AhmedBou/Falcon_7B_Science_Exam_QLoRA | \n",
+ " tiiuae/falcon-7b | \n",
+ " 0.0 | \n",
+ " AhmedBou | \n",
+ " \n",
+ " \n",
+ " \n",
+ " 5570 rows × 4 columns \n",
+ " \n",
+ " \n",
+ " \n"
+ ]
+ },
+ "metadata": {},
+ "execution_count": 19
+ }
+ ],
+ "source": [
+ "df"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 20,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 448
+ },
+ "id": "n2qZClsEOfOu",
+ "outputId": "bf95c832-af06-4cb0-e351-b1d73854005b"
+ },
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "execution_count": 20
+ },
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ " |