diff --git a/week8/agents/specialist_agent.py b/week8/agents/specialist_agent.py index 8ffc8ad..b184d09 100644 --- a/week8/agents/specialist_agent.py +++ b/week8/agents/specialist_agent.py @@ -15,7 +15,8 @@ class SpecialistAgent(Agent): Set up this Agent by creating an instance of the modal class """ self.log("Specialist Agent is initializing - connecting to modal") - Pricer = modal.Cls.lookup("pricer-service", "Pricer") + #DEL: Pricer = modal.Cls.lookup("pricer-service", "Pricer") + Pricer = modal.Cls.from_name("pricer-service", "Pricer") self.pricer = Pricer() self.log("Specialist Agent is ready") diff --git a/week8/day1.ipynb b/week8/day1.ipynb index 5b539cd..a2bb3ed 100644 --- a/week8/day1.ipynb +++ b/week8/day1.ipynb @@ -40,7 +40,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "id": "bc0e1c1c-be6a-4395-bbbd-eeafc9330d7e", "metadata": {}, "outputs": [], @@ -100,7 +100,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "id": "3b133701-f550-44a1-a67f-eb7ccc4769a9", "metadata": {}, "outputs": [], @@ -110,10 +110,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "id": "0f3f73ae-1295-49f3-9099-b8b41fc3429b", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "'Hello from San Diego, California, US!!'" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "with app.run():\n", " reply=hello.local()\n", @@ -122,11 +133,23 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 18, "id": "c1d8c6f9-edc7-4e52-9b3a-c07d7cff1ac7", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "'Hello from Ashburn, Virginia, US!!'" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ + "#NOTE: .remote()\n", "with app.run():\n", " reply=hello.remote()\n", "reply" @@ -151,10 +174,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "id": "b027da1a-c79d-42cb-810d-32ddca31aa02", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "'Hello from Frankfurt am Main, Hesse, DE!!'" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "with app.run():\n", " reply=hello_europe.remote()\n", @@ -180,7 +214,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 19, "id": "cb8b6c41-8259-4329-b1c4-a1f67d26d1be", "metadata": {}, "outputs": [], @@ -190,10 +224,2422 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 20, "id": "db4a718a-d95d-4f61-9688-c9df21d88fe6", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "9015e936cf2849ba9b7187470e746451", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
✓ Initialized. View run at https://modal.com/apps/craigprobus/main/ap-UCsBW1nxpUhyEVHiLb6N9J\n", + "\n" + ], + "text/plain": [ + "\u001b[32m✓\u001b[0m Initialized. \u001b[38;5;249mView run at \u001b[0m\u001b[4;38;5;249mhttps://modal.com/apps/craigprobus/main/ap-UCsBW1nxpUhyEVHiLb6N9J\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "cbf7390bccd14a7d8e64776ac3bed20f", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Building image im-VSaNVDfzNvHsrY579a1IOY\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mBuilding image im-VSaNVDfzNvHsrY579a1IOY\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "=> Step 0: FROM base\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m\n",
+ "=> Step 0: FROM base\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "=> Step 1: RUN python -m pip install accelerate bitsandbytes torch transformers\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m\n",
+ "=> Step 1: RUN python -m pip install accelerate bitsandbytes torch transformers\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Looking in indexes: http://pypi-mirror.modal.local:5555/simple\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mLooking in indexes: http://pypi-mirror.modal.local:5555/simple\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting accelerate\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting accelerate\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/accelerate/accelerate-1.6.0-py3-none-any.whl.metadata (19 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/accelerate/accelerate-1.6.0-py3-none-any.whl.metadata (19 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting bitsandbytes\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting bitsandbytes\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/bitsandbytes/bitsandbytes-0.45.5-py3-none-manylinux_2_24_x86_64.whl.metadata (5.0 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/bitsandbytes/bitsandbytes-0.45.5-py3-none-manylinux_2_24_x86_64.whl.metadata (5.0 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting torch\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting torch\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/torch/torch-2.6.0-cp311-cp311-manylinux1_x86_64.whl.metadata (28 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/torch/torch-2.6.0-cp311-cp311-manylinux1_x86_64.whl.metadata (28 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting transformers\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting transformers\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/transformers/transformers-4.51.1-py3-none-any.whl.metadata (38 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/transformers/transformers-4.51.1-py3-none-any.whl.metadata (38 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting numpy<3.0.0,>=1.17 (from accelerate)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting numpy<3.0.0,>=1.17 (from accelerate)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/numpy/numpy-2.2.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (62 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/numpy/numpy-2.2.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (62 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting packaging>=20.0 (from accelerate)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting packaging>=20.0 (from accelerate)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/packaging/packaging-24.2-py3-none-any.whl.metadata (3.2 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/packaging/packaging-24.2-py3-none-any.whl.metadata (3.2 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting psutil (from accelerate)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting psutil (from accelerate)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/psutil/psutil-7.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (22 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/psutil/psutil-7.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (22 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting pyyaml (from accelerate)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting pyyaml (from accelerate)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/pyyaml/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.1 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/pyyaml/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.1 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting huggingface-hub>=0.21.0 (from accelerate)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting huggingface-hub>=0.21.0 (from accelerate)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/huggingface-hub/huggingface_hub-0.30.2-py3-none-any.whl.metadata (13 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/huggingface-hub/huggingface_hub-0.30.2-py3-none-any.whl.metadata (13 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting safetensors>=0.4.3 (from accelerate)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting safetensors>=0.4.3 (from accelerate)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/safetensors/safetensors-0.5.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.8 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/safetensors/safetensors-0.5.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.8 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting filelock (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting filelock (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/filelock/filelock-3.18.0-py3-none-any.whl.metadata (2.9 kB)\n",
+ "Requirement already satisfied: typing-extensions>=4.10.0 in /usr/local/lib/python3.11/site-packages (from torch) (4.12.2)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/filelock/filelock-3.18.0-py3-none-any.whl.metadata (2.9 kB)\n",
+ "Requirement already satisfied: typing-extensions>=4.10.0 in /usr/local/lib/python3.11/site-packages (from torch) (4.12.2)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting networkx (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting networkx (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/networkx/networkx-3.4.2-py3-none-any.whl.metadata (6.3 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/networkx/networkx-3.4.2-py3-none-any.whl.metadata (6.3 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting jinja2 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting jinja2 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/jinja2/jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/jinja2/jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting fsspec (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting fsspec (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/fsspec/fsspec-2025.3.2-py3-none-any.whl.metadata (11 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/fsspec/fsspec-2025.3.2-py3-none-any.whl.metadata (11 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting nvidia-cuda-nvrtc-cu12==12.4.127 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting nvidia-cuda-nvrtc-cu12==12.4.127 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cuda-nvrtc-cu12/nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cuda-nvrtc-cu12/nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting nvidia-cuda-runtime-cu12==12.4.127 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting nvidia-cuda-runtime-cu12==12.4.127 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cuda-runtime-cu12/nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cuda-runtime-cu12/nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting nvidia-cuda-cupti-cu12==12.4.127 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting nvidia-cuda-cupti-cu12==12.4.127 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cuda-cupti-cu12/nvidia_cuda_cupti_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cuda-cupti-cu12/nvidia_cuda_cupti_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting nvidia-cudnn-cu12==9.1.0.70 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting nvidia-cudnn-cu12==9.1.0.70 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cudnn-cu12/nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cudnn-cu12/nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting nvidia-cublas-cu12==12.4.5.8 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting nvidia-cublas-cu12==12.4.5.8 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cublas-cu12/nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cublas-cu12/nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting nvidia-cufft-cu12==11.2.1.3 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting nvidia-cufft-cu12==11.2.1.3 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cufft-cu12/nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cufft-cu12/nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting nvidia-curand-cu12==10.3.5.147 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting nvidia-curand-cu12==10.3.5.147 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-curand-cu12/nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-curand-cu12/nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting nvidia-cusolver-cu12==11.6.1.9 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting nvidia-cusolver-cu12==11.6.1.9 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cusolver-cu12/nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cusolver-cu12/nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting nvidia-cusparse-cu12==12.3.1.170 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting nvidia-cusparse-cu12==12.3.1.170 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cusparse-cu12/nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cusparse-cu12/nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting nvidia-cusparselt-cu12==0.6.2 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting nvidia-cusparselt-cu12==0.6.2 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cusparselt-cu12/nvidia_cusparselt_cu12-0.6.2-py3-none-manylinux2014_x86_64.whl.metadata (6.8 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cusparselt-cu12/nvidia_cusparselt_cu12-0.6.2-py3-none-manylinux2014_x86_64.whl.metadata (6.8 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting nvidia-nccl-cu12==2.21.5 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting nvidia-nccl-cu12==2.21.5 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-nccl-cu12/nvidia_nccl_cu12-2.21.5-py3-none-manylinux2014_x86_64.whl.metadata (1.8 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-nccl-cu12/nvidia_nccl_cu12-2.21.5-py3-none-manylinux2014_x86_64.whl.metadata (1.8 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting nvidia-nvtx-cu12==12.4.127 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting nvidia-nvtx-cu12==12.4.127 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-nvtx-cu12/nvidia_nvtx_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.7 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-nvtx-cu12/nvidia_nvtx_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.7 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-nvjitlink-cu12/nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-nvjitlink-cu12/nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting triton==3.2.0 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting triton==3.2.0 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/triton/triton-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.4 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/triton/triton-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.4 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting sympy==1.13.1 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting sympy==1.13.1 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/sympy/sympy-1.13.1-py3-none-any.whl.metadata (12 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/sympy/sympy-1.13.1-py3-none-any.whl.metadata (12 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting mpmath<1.4,>=1.1.0 (from sympy==1.13.1->torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting mpmath<1.4,>=1.1.0 (from sympy==1.13.1->torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/mpmath/mpmath-1.3.0-py3-none-any.whl.metadata (8.6 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/mpmath/mpmath-1.3.0-py3-none-any.whl.metadata (8.6 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting regex!=2019.12.17 (from transformers)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting regex!=2019.12.17 (from transformers)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/regex/regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (40 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/regex/regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (40 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting requests (from transformers)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting requests (from transformers)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/requests/requests-2.32.3-py3-none-any.whl.metadata (4.6 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/requests/requests-2.32.3-py3-none-any.whl.metadata (4.6 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting tokenizers<0.22,>=0.21 (from transformers)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting tokenizers<0.22,>=0.21 (from transformers)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/tokenizers/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.8 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/tokenizers/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.8 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting tqdm>=4.27 (from transformers)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting tqdm>=4.27 (from transformers)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/tqdm/tqdm-4.67.1-py3-none-any.whl.metadata (57 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/tqdm/tqdm-4.67.1-py3-none-any.whl.metadata (57 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting MarkupSafe>=2.0 (from jinja2->torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting MarkupSafe>=2.0 (from jinja2->torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/markupsafe/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.0 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/markupsafe/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.0 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting charset-normalizer<4,>=2 (from requests->transformers)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting charset-normalizer<4,>=2 (from requests->transformers)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/charset-normalizer/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (35 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/charset-normalizer/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (35 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.11/site-packages (from requests->transformers) (3.10)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mRequirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.11/site-packages (from requests->transformers) (3.10)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting urllib3<3,>=1.21.1 (from requests->transformers)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting urllib3<3,>=1.21.1 (from requests->transformers)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 76.1/76.1 MB 495.7 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 76.1/76.1 MB 495.7 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/torch/torch-2.6.0-cp311-cp311-manylinux1_x86_64.whl (766.7 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/torch/torch-2.6.0-cp311-cp311-manylinux1_x86_64.whl (766.7 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 766.7/766.7 MB 467.3 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 766.7/766.7 MB 467.3 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cublas-cu12/nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl (363.4 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/nvidia-cublas-cu12/nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl (363.4 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 363.4/363.4 MB 473.1 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 363.4/363.4 MB 473.1 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cuda-cupti-cu12/nvidia_cuda_cupti_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (13.8 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/nvidia-cuda-cupti-cu12/nvidia_cuda_cupti_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (13.8 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.8/13.8 MB 512.4 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.8/13.8 MB 512.4 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cuda-nvrtc-cu12/nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (24.6 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/nvidia-cuda-nvrtc-cu12/nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (24.6 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 24.6/24.6 MB 495.9 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 24.6/24.6 MB 495.9 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cuda-runtime-cu12/nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (883 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/nvidia-cuda-runtime-cu12/nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (883 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 883.7/883.7 kB 554.2 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 883.7/883.7 kB 554.2 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cudnn-cu12/nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl (664.8 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/nvidia-cudnn-cu12/nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl (664.8 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 664.8/664.8 MB 470.9 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 664.8/664.8 MB 470.9 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cufft-cu12/nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl (211.5 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/nvidia-cufft-cu12/nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl (211.5 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 211.5/211.5 MB 452.7 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 211.5/211.5 MB 452.7 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-curand-cu12/nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl (56.3 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/nvidia-curand-cu12/nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl (56.3 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.3/56.3 MB 465.1 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.3/56.3 MB 465.1 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cusolver-cu12/nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl (127.9 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/nvidia-cusolver-cu12/nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl (127.9 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 127.9/127.9 MB 460.4 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 127.9/127.9 MB 460.4 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cusparse-cu12/nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl (207.5 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/nvidia-cusparse-cu12/nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl (207.5 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 207.5/207.5 MB 456.0 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 207.5/207.5 MB 456.0 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cusparselt-cu12/nvidia_cusparselt_cu12-0.6.2-py3-none-manylinux2014_x86_64.whl (150.1 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/nvidia-cusparselt-cu12/nvidia_cusparselt_cu12-0.6.2-py3-none-manylinux2014_x86_64.whl (150.1 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 150.1/150.1 MB 452.6 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 150.1/150.1 MB 452.6 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-nccl-cu12/nvidia_nccl_cu12-2.21.5-py3-none-manylinux2014_x86_64.whl (188.7 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/nvidia-nccl-cu12/nvidia_nccl_cu12-2.21.5-py3-none-manylinux2014_x86_64.whl (188.7 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 188.7/188.7 MB 452.3 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 188.7/188.7 MB 452.3 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-nvjitlink-cu12/nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (21.1 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/nvidia-nvjitlink-cu12/nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (21.1 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 21.1/21.1 MB 469.0 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 21.1/21.1 MB 469.0 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-nvtx-cu12/nvidia_nvtx_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (99 kB)\n",
+ "Downloading http://pypi-mirror.modal.local:5555/simple/sympy/sympy-1.13.1-py3-none-any.whl (6.2 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/nvidia-nvtx-cu12/nvidia_nvtx_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (99 kB)\n",
+ "Downloading http://pypi-mirror.modal.local:5555/simple/sympy/sympy-1.13.1-py3-none-any.whl (6.2 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.2/6.2 MB 500.8 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.2/6.2 MB 500.8 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/triton/triton-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (253.2 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/triton/triton-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (253.2 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 253.2/253.2 MB 466.4 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 253.2/253.2 MB 466.4 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/transformers/transformers-4.51.1-py3-none-any.whl (10.4 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/transformers/transformers-4.51.1-py3-none-any.whl (10.4 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.4/10.4 MB 448.1 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.4/10.4 MB 448.1 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/huggingface-hub/huggingface_hub-0.30.2-py3-none-any.whl (481 kB)\n",
+ "Downloading http://pypi-mirror.modal.local:5555/simple/fsspec/fsspec-2025.3.2-py3-none-any.whl (194 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/huggingface-hub/huggingface_hub-0.30.2-py3-none-any.whl (481 kB)\n",
+ "Downloading http://pypi-mirror.modal.local:5555/simple/fsspec/fsspec-2025.3.2-py3-none-any.whl (194 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/numpy/numpy-2.2.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.4 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/numpy/numpy-2.2.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.4 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 16.4/16.4 MB 473.1 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 16.4/16.4 MB 473.1 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/packaging/packaging-24.2-py3-none-any.whl (65 kB)\n",
+ "Downloading http://pypi-mirror.modal.local:5555/simple/pyyaml/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (762 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/packaging/packaging-24.2-py3-none-any.whl (65 kB)\n",
+ "Downloading http://pypi-mirror.modal.local:5555/simple/pyyaml/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (762 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 763.0/763.0 kB 645.4 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 763.0/763.0 kB 645.4 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/regex/regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (792 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/regex/regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (792 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 792.7/792.7 kB 519.0 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 792.7/792.7 kB 519.0 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/safetensors/safetensors-0.5.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (471 kB)\n",
+ "Downloading http://pypi-mirror.modal.local:5555/simple/tokenizers/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/safetensors/safetensors-0.5.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (471 kB)\n",
+ "Downloading http://pypi-mirror.modal.local:5555/simple/tokenizers/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.0/3.0 MB 489.8 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.0/3.0 MB 489.8 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/tqdm/tqdm-4.67.1-py3-none-any.whl (78 kB)\n",
+ "Downloading http://pypi-mirror.modal.local:5555/simple/filelock/filelock-3.18.0-py3-none-any.whl (16 kB)\n",
+ "Downloading http://pypi-mirror.modal.local:5555/simple/jinja2/jinja2-3.1.6-py3-none-any.whl (134 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/tqdm/tqdm-4.67.1-py3-none-any.whl (78 kB)\n",
+ "Downloading http://pypi-mirror.modal.local:5555/simple/filelock/filelock-3.18.0-py3-none-any.whl (16 kB)\n",
+ "Downloading http://pypi-mirror.modal.local:5555/simple/jinja2/jinja2-3.1.6-py3-none-any.whl (134 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/networkx/networkx-3.4.2-py3-none-any.whl (1.7 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/networkx/networkx-3.4.2-py3-none-any.whl (1.7 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.7/1.7 MB 589.9 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.7/1.7 MB 589.9 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/psutil/psutil-7.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (277 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/psutil/psutil-7.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (277 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/requests/requests-2.32.3-py3-none-any.whl (64 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/requests/requests-2.32.3-py3-none-any.whl (64 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/charset-normalizer/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (143 kB)\n",
+ "Downloading http://pypi-mirror.modal.local:5555/simple/markupsafe/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (23 kB)\n",
+ "Downloading http://pypi-mirror.modal.local:5555/simple/mpmath/mpmath-1.3.0-py3-none-any.whl (536 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/charset-normalizer/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (143 kB)\n",
+ "Downloading http://pypi-mirror.modal.local:5555/simple/markupsafe/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (23 kB)\n",
+ "Downloading http://pypi-mirror.modal.local:5555/simple/mpmath/mpmath-1.3.0-py3-none-any.whl (536 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 536.2/536.2 kB 813.0 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 536.2/536.2 kB 813.0 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/urllib3/urllib3-2.3.0-py3-none-any.whl (128 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/urllib3/urllib3-2.3.0-py3-none-any.whl (128 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Installing collected packages: triton, nvidia-cusparselt-cu12, mpmath, urllib3, tqdm, sympy, safetensors, regex, pyyaml, psutil, packaging, nvidia-nvtx-cu12, nvidia-nvjitlink-cu12, nvidia-nccl-cu12, nvidia-curand-cu12, nvidia-cufft-cu12, nvidia-cuda-runtime-cu12, nvidia-cuda-nvrtc-cu12, nvidia-cuda-cupti-cu12, nvidia-cublas-cu12, numpy, networkx, MarkupSafe, fsspec, filelock, charset-normalizer, requests, nvidia-cusparse-cu12, nvidia-cudnn-cu12, jinja2, nvidia-cusolver-cu12, huggingface-hub, torch, tokenizers, transformers, bitsandbytes, accelerate\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mInstalling collected packages: triton, nvidia-cusparselt-cu12, mpmath, urllib3, tqdm, sympy, safetensors, regex, pyyaml, psutil, packaging, nvidia-nvtx-cu12, nvidia-nvjitlink-cu12, nvidia-nccl-cu12, nvidia-curand-cu12, nvidia-cufft-cu12, nvidia-cuda-runtime-cu12, nvidia-cuda-nvrtc-cu12, nvidia-cuda-cupti-cu12, nvidia-cublas-cu12, numpy, networkx, MarkupSafe, fsspec, filelock, charset-normalizer, requests, nvidia-cusparse-cu12, nvidia-cudnn-cu12, jinja2, nvidia-cusolver-cu12, huggingface-hub, torch, tokenizers, transformers, bitsandbytes, accelerate\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Successfully installed MarkupSafe-3.0.2 accelerate-1.6.0 bitsandbytes-0.45.5 charset-normalizer-3.4.1 filelock-3.18.0 fsspec-2025.3.2 huggingface-hub-0.30.2 jinja2-3.1.6 mpmath-1.3.0 networkx-3.4.2 numpy-2.2.4 nvidia-cublas-cu12-12.4.5.8 nvidia-cuda-cupti-cu12-12.4.127 nvidia-cuda-nvrtc-cu12-12.4.127 nvidia-cuda-runtime-cu12-12.4.127 nvidia-cudnn-cu12-9.1.0.70 nvidia-cufft-cu12-11.2.1.3 nvidia-curand-cu12-10.3.5.147 nvidia-cusolver-cu12-11.6.1.9 nvidia-cusparse-cu12-12.3.1.170 nvidia-cusparselt-cu12-0.6.2 nvidia-nccl-cu12-2.21.5 nvidia-nvjitlink-cu12-12.4.127 nvidia-nvtx-cu12-12.4.127 packaging-24.2 psutil-7.0.0 pyyaml-6.0.2 regex-2024.11.6 requests-2.32.3 safetensors-0.5.3 sympy-1.13.1 tokenizers-0.21.1 torch-2.6.0 tqdm-4.67.1 transformers-4.51.1 triton-3.2.0 urllib3-2.3.0\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mSuccessfully installed MarkupSafe-3.0.2 accelerate-1.6.0 bitsandbytes-0.45.5 charset-normalizer-3.4.1 filelock-3.18.0 fsspec-2025.3.2 huggingface-hub-0.30.2 jinja2-3.1.6 mpmath-1.3.0 networkx-3.4.2 numpy-2.2.4 nvidia-cublas-cu12-12.4.5.8 nvidia-cuda-cupti-cu12-12.4.127 nvidia-cuda-nvrtc-cu12-12.4.127 nvidia-cuda-runtime-cu12-12.4.127 nvidia-cudnn-cu12-9.1.0.70 nvidia-cufft-cu12-11.2.1.3 nvidia-curand-cu12-10.3.5.147 nvidia-cusolver-cu12-11.6.1.9 nvidia-cusparse-cu12-12.3.1.170 nvidia-cusparselt-cu12-0.6.2 nvidia-nccl-cu12-2.21.5 nvidia-nvjitlink-cu12-12.4.127 nvidia-nvtx-cu12-12.4.127 packaging-24.2 psutil-7.0.0 pyyaml-6.0.2 regex-2024.11.6 requests-2.32.3 safetensors-0.5.3 sympy-1.13.1 tokenizers-0.21.1 torch-2.6.0 tqdm-4.67.1 transformers-4.51.1 triton-3.2.0 urllib3-2.3.0\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "[notice] A new release of pip is available: 24.3.1 -> 25.0.1\n",
+ "[notice] To update, run: pip install --upgrade pip\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m\n",
+ "[notice] A new release of pip is available: 24.3.1 -> 25.0.1\n",
+ "[notice] To update, run: pip install --upgrade pip\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Saving image...\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mSaving image...\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Image saved, took 3.43s\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mImage saved, took 3.43s\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "Built image im-VSaNVDfzNvHsrY579a1IOY in 69.35s\n",
+ "\n",
+ "\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m\n",
+ "Built image im-VSaNVDfzNvHsrY579a1IOY in 69.35s\n",
+ "\n",
+ "\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n"
+ ],
+ "text/plain": []
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "✓ Created objects.\n", + "├── 🔨 Created mount /Users/craigprobus/Repos/ed-donner-class/llm_engineering/week8/llama.py\n", + "├── 🔨 Created mount PythonPackage:hello\n", + "└── 🔨 Created function generate.\n", + "\n" + ], + "text/plain": [ + "\u001b[32m✓\u001b[0m Created objects.\n", + "\u001b[38;5;244m├── \u001b[0m🔨 Created mount /Users/craigprobus/Repos/ed-donner-class/llm_engineering/week8/llama.py\n", + "\u001b[38;5;244m├── \u001b[0m🔨 Created mount PythonPackage:hello\n", + "\u001b[38;5;244m└── \u001b[0m🔨 Created function generate.\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "ac86ee174ef44aa6a7aa90daa1eec36a", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[31m\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\u001b[1AFetching 4 files: 0%| | 0/4 [00:00<?, ?it/s]
\n"
+ ],
+ "text/plain": [
+ "\u001b[31m\u001b[1AFetching 4 files: 0%| | 0/4 [00:00, ?it/s]\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[31m\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\u001b[1AFetching 4 files: 25%|██▌ | 1/4 [01:05<03:16, 65.40s/it]\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[31m\u001b[1AFetching 4 files: 25%|██▌ | 1/4 [01:05<03:16, 65.40s/it]\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\u001b[1AFetching 4 files: 50%|█████ | 2/4 [01:05<00:54, 27.15s/it]Fetching 4 files: 100%|██████████| 4/4 [01:05<00:00, 16.44s/it]\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[31m\u001b[1AFetching 4 files: 50%|█████ | 2/4 [01:05<00:54, 27.15s/it]Fetching 4 files: 100%|██████████| 4/4 [01:05<00:00, 16.44s/it]\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[31m\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\u001b[1ALoading checkpoint shards: 0%| | 0/4 [00:00<?, ?it/s]\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[31m\u001b[1ALoading checkpoint shards: 0%| | 0/4 [00:00, ?it/s]\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\u001b[1ALoading checkpoint shards: 25%|██▌ | 1/4 [00:04<00:12, 4.24s/it]\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[31m\u001b[1ALoading checkpoint shards: 25%|██▌ | 1/4 [00:04<00:12, 4.24s/it]\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\u001b[1ALoading checkpoint shards: 50%|█████ | 2/4 [00:08<00:09, 4.53s/it]\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[31m\u001b[1ALoading checkpoint shards: 50%|█████ | 2/4 [00:08<00:09, 4.53s/it]\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\u001b[1ALoading checkpoint shards: 75%|███████▌ | 3/4 [00:13<00:04, 4.61s/it]\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[31m\u001b[1ALoading checkpoint shards: 75%|███████▌ | 3/4 [00:13<00:04, 4.61s/it]\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\u001b[1ALoading checkpoint shards: 100%|██████████| 4/4 [00:14<00:00, 2.93s/it]Loading checkpoint shards: 100%|██████████| 4/4 [00:14<00:00, 3.51s/it]\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[31m\u001b[1ALoading checkpoint shards: 100%|██████████| 4/4 [00:14<00:00, 2.93s/it]Loading checkpoint shards: 100%|██████████| 4/4 [00:14<00:00, 3.51s/it]\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Setting `pad_token_id` to `eos_token_id`:128001 for open-end generation.\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[31mSetting `pad_token_id` to `eos_token_id`:128001 for open-end generation.\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n"
+ ],
+ "text/plain": []
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Stopping app - local entrypoint completed.\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mStopping app - local entrypoint completed.\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "✓ App completed. View run at https://modal.com/apps/craigprobus/main/ap-UCsBW1nxpUhyEVHiLb6N9J\n", + "\n" + ], + "text/plain": [ + "\u001b[32m✓\u001b[0m App completed. \u001b[38;5;249mView run at \u001b[0m\u001b[4;38;5;249mhttps://modal.com/apps/craigprobus/main/ap-UCsBW1nxpUhyEVHiLb6N9J\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "'<|begin_of_text|>Life is a mystery, everyone must stand alone, I hear you call my name,'" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "with modal.enable_output():\n", " with app.run():\n", @@ -203,10 +2649,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 21, "id": "9a9a6844-29ec-4264-8e72-362d976b3968", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/craigprobus/Repos/ed-donner-class/llm_engineering/week8/pricer_ephemeral.py:22: DeprecationError: 2025-02-03: Modal will stop implicitly adding local Python modules to the Image (\"automounting\") in a future update. The following modules need to be explicitly added for future compatibility:\n", + "* hello\n", + "* llama\n", + "\n", + "e.g.:\n", + "image_with_source = my_image.add_local_python_source(\"hello\", \"llama\")\n", + "\n", + "For more information, see https://modal.com/docs/guide/modal-1-0-migration\n", + " @app.function(image=image, secrets=secrets, gpu=GPU, timeout=1800)\n" + ] + } + ], "source": [ "import modal\n", "from pricer_ephemeral import app, price" @@ -214,10 +2676,2598 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 22, "id": "50e6cf99-8959-4ae3-ba02-e325cb7fff94", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "dc1f6d673a0c4e7d8bf365e790672e42", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
✓ Initialized. View run at https://modal.com/apps/craigprobus/main/ap-hXVuCIvQjgcNjkaBXeKcWI\n", + "\n" + ], + "text/plain": [ + "\u001b[32m✓\u001b[0m Initialized. \u001b[38;5;249mView run at \u001b[0m\u001b[4;38;5;249mhttps://modal.com/apps/craigprobus/main/ap-hXVuCIvQjgcNjkaBXeKcWI\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "de2972e414374911a4da708900f40bab", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
Building image im-lR52cm0dRXT5B8UWizJSP6\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mBuilding image im-lR52cm0dRXT5B8UWizJSP6\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "=> Step 0: FROM base\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m\n",
+ "=> Step 0: FROM base\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "=> Step 1: RUN python -m pip install accelerate bitsandbytes peft torch transformers\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m\n",
+ "=> Step 1: RUN python -m pip install accelerate bitsandbytes peft torch transformers\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Looking in indexes: http://pypi-mirror.modal.local:5555/simple\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mLooking in indexes: http://pypi-mirror.modal.local:5555/simple\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting accelerate\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting accelerate\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/accelerate/accelerate-1.6.0-py3-none-any.whl.metadata (19 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/accelerate/accelerate-1.6.0-py3-none-any.whl.metadata (19 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting bitsandbytes\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting bitsandbytes\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/bitsandbytes/bitsandbytes-0.45.5-py3-none-manylinux_2_24_x86_64.whl.metadata (5.0 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/bitsandbytes/bitsandbytes-0.45.5-py3-none-manylinux_2_24_x86_64.whl.metadata (5.0 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting peft\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting peft\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/peft/peft-0.15.1-py3-none-any.whl.metadata (13 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/peft/peft-0.15.1-py3-none-any.whl.metadata (13 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting torch\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting torch\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/torch/torch-2.6.0-cp311-cp311-manylinux1_x86_64.whl.metadata (28 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/torch/torch-2.6.0-cp311-cp311-manylinux1_x86_64.whl.metadata (28 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting transformers\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting transformers\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/transformers/transformers-4.51.1-py3-none-any.whl.metadata (38 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/transformers/transformers-4.51.1-py3-none-any.whl.metadata (38 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting numpy<3.0.0,>=1.17 (from accelerate)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting numpy<3.0.0,>=1.17 (from accelerate)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/numpy/numpy-2.2.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (62 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/numpy/numpy-2.2.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (62 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting packaging>=20.0 (from accelerate)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting packaging>=20.0 (from accelerate)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/packaging/packaging-24.2-py3-none-any.whl.metadata (3.2 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/packaging/packaging-24.2-py3-none-any.whl.metadata (3.2 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting psutil (from accelerate)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting psutil (from accelerate)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/psutil/psutil-7.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (22 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/psutil/psutil-7.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (22 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting pyyaml (from accelerate)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting pyyaml (from accelerate)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/pyyaml/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.1 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/pyyaml/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (2.1 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting huggingface-hub>=0.21.0 (from accelerate)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting huggingface-hub>=0.21.0 (from accelerate)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/huggingface-hub/huggingface_hub-0.30.2-py3-none-any.whl.metadata (13 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/huggingface-hub/huggingface_hub-0.30.2-py3-none-any.whl.metadata (13 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting safetensors>=0.4.3 (from accelerate)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting safetensors>=0.4.3 (from accelerate)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/safetensors/safetensors-0.5.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.8 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/safetensors/safetensors-0.5.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (3.8 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting tqdm (from peft)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting tqdm (from peft)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/tqdm/tqdm-4.67.1-py3-none-any.whl.metadata (57 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/tqdm/tqdm-4.67.1-py3-none-any.whl.metadata (57 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting filelock (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting filelock (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/filelock/filelock-3.18.0-py3-none-any.whl.metadata (2.9 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/filelock/filelock-3.18.0-py3-none-any.whl.metadata (2.9 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Requirement already satisfied: typing-extensions>=4.10.0 in /usr/local/lib/python3.11/site-packages (from torch) (4.12.2)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mRequirement already satisfied: typing-extensions>=4.10.0 in /usr/local/lib/python3.11/site-packages (from torch) (4.12.2)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting networkx (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting networkx (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/networkx/networkx-3.4.2-py3-none-any.whl.metadata (6.3 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/networkx/networkx-3.4.2-py3-none-any.whl.metadata (6.3 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting jinja2 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting jinja2 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/jinja2/jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/jinja2/jinja2-3.1.6-py3-none-any.whl.metadata (2.9 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting fsspec (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting fsspec (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/fsspec/fsspec-2025.3.2-py3-none-any.whl.metadata (11 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/fsspec/fsspec-2025.3.2-py3-none-any.whl.metadata (11 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting nvidia-cuda-nvrtc-cu12==12.4.127 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting nvidia-cuda-nvrtc-cu12==12.4.127 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cuda-nvrtc-cu12/nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cuda-nvrtc-cu12/nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting nvidia-cuda-runtime-cu12==12.4.127 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting nvidia-cuda-runtime-cu12==12.4.127 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cuda-runtime-cu12/nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cuda-runtime-cu12/nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting nvidia-cuda-cupti-cu12==12.4.127 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting nvidia-cuda-cupti-cu12==12.4.127 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cuda-cupti-cu12/nvidia_cuda_cupti_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cuda-cupti-cu12/nvidia_cuda_cupti_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting nvidia-cudnn-cu12==9.1.0.70 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting nvidia-cudnn-cu12==9.1.0.70 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cudnn-cu12/nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cudnn-cu12/nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting nvidia-cublas-cu12==12.4.5.8 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting nvidia-cublas-cu12==12.4.5.8 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cublas-cu12/nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cublas-cu12/nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting nvidia-cufft-cu12==11.2.1.3 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting nvidia-cufft-cu12==11.2.1.3 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cufft-cu12/nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cufft-cu12/nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting nvidia-curand-cu12==10.3.5.147 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting nvidia-curand-cu12==10.3.5.147 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-curand-cu12/nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-curand-cu12/nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting nvidia-cusolver-cu12==11.6.1.9 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting nvidia-cusolver-cu12==11.6.1.9 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cusolver-cu12/nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cusolver-cu12/nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting nvidia-cusparse-cu12==12.3.1.170 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting nvidia-cusparse-cu12==12.3.1.170 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cusparse-cu12/nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cusparse-cu12/nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting nvidia-cusparselt-cu12==0.6.2 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting nvidia-cusparselt-cu12==0.6.2 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cusparselt-cu12/nvidia_cusparselt_cu12-0.6.2-py3-none-manylinux2014_x86_64.whl.metadata (6.8 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cusparselt-cu12/nvidia_cusparselt_cu12-0.6.2-py3-none-manylinux2014_x86_64.whl.metadata (6.8 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting nvidia-nccl-cu12==2.21.5 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting nvidia-nccl-cu12==2.21.5 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-nccl-cu12/nvidia_nccl_cu12-2.21.5-py3-none-manylinux2014_x86_64.whl.metadata (1.8 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-nccl-cu12/nvidia_nccl_cu12-2.21.5-py3-none-manylinux2014_x86_64.whl.metadata (1.8 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting nvidia-nvtx-cu12==12.4.127 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting nvidia-nvtx-cu12==12.4.127 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-nvtx-cu12/nvidia_nvtx_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.7 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-nvtx-cu12/nvidia_nvtx_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.7 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting nvidia-nvjitlink-cu12==12.4.127 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting nvidia-nvjitlink-cu12==12.4.127 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-nvjitlink-cu12/nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-nvjitlink-cu12/nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting triton==3.2.0 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting triton==3.2.0 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/triton/triton-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.4 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/triton/triton-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (1.4 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting sympy==1.13.1 (from torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting sympy==1.13.1 (from torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/sympy/sympy-1.13.1-py3-none-any.whl.metadata (12 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/sympy/sympy-1.13.1-py3-none-any.whl.metadata (12 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting mpmath<1.4,>=1.1.0 (from sympy==1.13.1->torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting mpmath<1.4,>=1.1.0 (from sympy==1.13.1->torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/mpmath/mpmath-1.3.0-py3-none-any.whl.metadata (8.6 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/mpmath/mpmath-1.3.0-py3-none-any.whl.metadata (8.6 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting regex!=2019.12.17 (from transformers)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting regex!=2019.12.17 (from transformers)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/regex/regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (40 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/regex/regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (40 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting requests (from transformers)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting requests (from transformers)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/requests/requests-2.32.3-py3-none-any.whl.metadata (4.6 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/requests/requests-2.32.3-py3-none-any.whl.metadata (4.6 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting tokenizers<0.22,>=0.21 (from transformers)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting tokenizers<0.22,>=0.21 (from transformers)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/tokenizers/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.8 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/tokenizers/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (6.8 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting MarkupSafe>=2.0 (from jinja2->torch)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting MarkupSafe>=2.0 (from jinja2->torch)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/markupsafe/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.0 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/markupsafe/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.0 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting charset-normalizer<4,>=2 (from requests->transformers)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting charset-normalizer<4,>=2 (from requests->transformers)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/charset-normalizer/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (35 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/charset-normalizer/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (35 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.11/site-packages (from requests->transformers) (3.10)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mRequirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.11/site-packages (from requests->transformers) (3.10)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Collecting urllib3<3,>=1.21.1 (from requests->transformers)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mCollecting urllib3<3,>=1.21.1 (from requests->transformers)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " Downloading http://pypi-mirror.modal.local:5555/simple/urllib3/urllib3-2.3.0-py3-none-any.whl.metadata (6.5 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m Downloading http://pypi-mirror.modal.local:5555/simple/urllib3/urllib3-2.3.0-py3-none-any.whl.metadata (6.5 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.11/site-packages (from requests->transformers) (2024.8.30)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mRequirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.11/site-packages (from requests->transformers) (2024.8.30)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/accelerate/accelerate-1.6.0-py3-none-any.whl (354 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/accelerate/accelerate-1.6.0-py3-none-any.whl (354 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/bitsandbytes/bitsandbytes-0.45.5-py3-none-manylinux_2_24_x86_64.whl (76.1 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/bitsandbytes/bitsandbytes-0.45.5-py3-none-manylinux_2_24_x86_64.whl (76.1 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 76.1/76.1 MB 140.6 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 76.1/76.1 MB 140.6 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/peft/peft-0.15.1-py3-none-any.whl (411 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/peft/peft-0.15.1-py3-none-any.whl (411 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/torch/torch-2.6.0-cp311-cp311-manylinux1_x86_64.whl (766.7 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/torch/torch-2.6.0-cp311-cp311-manylinux1_x86_64.whl (766.7 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 766.7/766.7 MB 263.0 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 766.7/766.7 MB 263.0 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cublas-cu12/nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl (363.4 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/nvidia-cublas-cu12/nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl (363.4 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 363.4/363.4 MB 314.0 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 363.4/363.4 MB 314.0 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cuda-cupti-cu12/nvidia_cuda_cupti_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (13.8 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/nvidia-cuda-cupti-cu12/nvidia_cuda_cupti_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (13.8 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.8/13.8 MB 323.0 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.8/13.8 MB 323.0 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cuda-nvrtc-cu12/nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (24.6 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/nvidia-cuda-nvrtc-cu12/nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (24.6 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 24.6/24.6 MB 264.4 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 24.6/24.6 MB 264.4 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cuda-runtime-cu12/nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (883 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/nvidia-cuda-runtime-cu12/nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (883 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 883.7/883.7 kB 338.5 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 883.7/883.7 kB 338.5 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cudnn-cu12/nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl (664.8 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/nvidia-cudnn-cu12/nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl (664.8 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 664.8/664.8 MB 316.5 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 664.8/664.8 MB 316.5 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cufft-cu12/nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl (211.5 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/nvidia-cufft-cu12/nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl (211.5 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 211.5/211.5 MB 252.0 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 211.5/211.5 MB 252.0 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-curand-cu12/nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl (56.3 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/nvidia-curand-cu12/nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl (56.3 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.3/56.3 MB 253.5 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.3/56.3 MB 253.5 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cusolver-cu12/nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl (127.9 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/nvidia-cusolver-cu12/nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl (127.9 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 127.9/127.9 MB 256.1 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 127.9/127.9 MB 256.1 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cusparse-cu12/nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl (207.5 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/nvidia-cusparse-cu12/nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl (207.5 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 207.5/207.5 MB 258.0 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 207.5/207.5 MB 258.0 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-cusparselt-cu12/nvidia_cusparselt_cu12-0.6.2-py3-none-manylinux2014_x86_64.whl (150.1 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/nvidia-cusparselt-cu12/nvidia_cusparselt_cu12-0.6.2-py3-none-manylinux2014_x86_64.whl (150.1 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 150.1/150.1 MB 247.3 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 150.1/150.1 MB 247.3 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-nccl-cu12/nvidia_nccl_cu12-2.21.5-py3-none-manylinux2014_x86_64.whl (188.7 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/nvidia-nccl-cu12/nvidia_nccl_cu12-2.21.5-py3-none-manylinux2014_x86_64.whl (188.7 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 188.7/188.7 MB 264.4 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 188.7/188.7 MB 264.4 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-nvjitlink-cu12/nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (21.1 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/nvidia-nvjitlink-cu12/nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (21.1 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 21.1/21.1 MB 221.4 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 21.1/21.1 MB 221.4 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/nvidia-nvtx-cu12/nvidia_nvtx_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (99 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/nvidia-nvtx-cu12/nvidia_nvtx_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (99 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/sympy/sympy-1.13.1-py3-none-any.whl (6.2 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/sympy/sympy-1.13.1-py3-none-any.whl (6.2 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.2/6.2 MB 236.5 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.2/6.2 MB 236.5 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/triton/triton-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (253.2 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/triton/triton-3.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (253.2 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 253.2/253.2 MB 259.7 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 253.2/253.2 MB 259.7 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/transformers/transformers-4.51.1-py3-none-any.whl (10.4 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/transformers/transformers-4.51.1-py3-none-any.whl (10.4 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.4/10.4 MB 295.3 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.4/10.4 MB 295.3 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/huggingface-hub/huggingface_hub-0.30.2-py3-none-any.whl (481 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/huggingface-hub/huggingface_hub-0.30.2-py3-none-any.whl (481 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/fsspec/fsspec-2025.3.2-py3-none-any.whl (194 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/fsspec/fsspec-2025.3.2-py3-none-any.whl (194 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/numpy/numpy-2.2.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.4 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/numpy/numpy-2.2.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.4 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 16.4/16.4 MB 295.9 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 16.4/16.4 MB 295.9 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/packaging/packaging-24.2-py3-none-any.whl (65 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/packaging/packaging-24.2-py3-none-any.whl (65 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/pyyaml/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (762 kB)\n",
+ " ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 763.0/763.0 kB 433.0 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/pyyaml/PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (762 kB)\n",
+ " ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 763.0/763.0 kB 433.0 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/regex/regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (792 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/regex/regex-2024.11.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (792 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 792.7/792.7 kB 416.7 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 792.7/792.7 kB 416.7 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/safetensors/safetensors-0.5.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (471 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/safetensors/safetensors-0.5.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (471 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/tokenizers/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/tokenizers/tokenizers-0.21.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.0/3.0 MB 338.3 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.0/3.0 MB 338.3 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/tqdm/tqdm-4.67.1-py3-none-any.whl (78 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/tqdm/tqdm-4.67.1-py3-none-any.whl (78 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/filelock/filelock-3.18.0-py3-none-any.whl (16 kB)\n",
+ "Downloading http://pypi-mirror.modal.local:5555/simple/jinja2/jinja2-3.1.6-py3-none-any.whl (134 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/filelock/filelock-3.18.0-py3-none-any.whl (16 kB)\n",
+ "Downloading http://pypi-mirror.modal.local:5555/simple/jinja2/jinja2-3.1.6-py3-none-any.whl (134 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/networkx/networkx-3.4.2-py3-none-any.whl (1.7 MB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/networkx/networkx-3.4.2-py3-none-any.whl (1.7 MB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n" + ], + "text/plain": [] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.7/1.7 MB 315.3 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.7/1.7 MB 315.3 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/psutil/psutil-7.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (277 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/psutil/psutil-7.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (277 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/requests/requests-2.32.3-py3-none-any.whl (64 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/requests/requests-2.32.3-py3-none-any.whl (64 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/charset-normalizer/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (143 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/charset-normalizer/charset_normalizer-3.4.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (143 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/markupsafe/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (23 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/markupsafe/MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (23 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/mpmath/mpmath-1.3.0-py3-none-any.whl (536 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/mpmath/mpmath-1.3.0-py3-none-any.whl (536 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ " ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 536.2/536.2 kB 356.4 MB/s eta 0:00:00\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 536.2/536.2 kB 356.4 MB/s eta 0:00:00\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Downloading http://pypi-mirror.modal.local:5555/simple/urllib3/urllib3-2.3.0-py3-none-any.whl (128 kB)\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mDownloading http://pypi-mirror.modal.local:5555/simple/urllib3/urllib3-2.3.0-py3-none-any.whl (128 kB)\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Installing collected packages: triton, nvidia-cusparselt-cu12, mpmath, urllib3, tqdm, sympy, safetensors, regex, pyyaml, psutil, packaging, nvidia-nvtx-cu12, nvidia-nvjitlink-cu12, nvidia-nccl-cu12, nvidia-curand-cu12, nvidia-cufft-cu12, nvidia-cuda-runtime-cu12, nvidia-cuda-nvrtc-cu12, nvidia-cuda-cupti-cu12, nvidia-cublas-cu12, numpy, networkx, MarkupSafe, fsspec, filelock, charset-normalizer, requests, nvidia-cusparse-cu12, nvidia-cudnn-cu12, jinja2, nvidia-cusolver-cu12, huggingface-hub, torch, tokenizers, transformers, bitsandbytes, accelerate, peft\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mInstalling collected packages: triton, nvidia-cusparselt-cu12, mpmath, urllib3, tqdm, sympy, safetensors, regex, pyyaml, psutil, packaging, nvidia-nvtx-cu12, nvidia-nvjitlink-cu12, nvidia-nccl-cu12, nvidia-curand-cu12, nvidia-cufft-cu12, nvidia-cuda-runtime-cu12, nvidia-cuda-nvrtc-cu12, nvidia-cuda-cupti-cu12, nvidia-cublas-cu12, numpy, networkx, MarkupSafe, fsspec, filelock, charset-normalizer, requests, nvidia-cusparse-cu12, nvidia-cudnn-cu12, jinja2, nvidia-cusolver-cu12, huggingface-hub, torch, tokenizers, transformers, bitsandbytes, accelerate, peft\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Successfully installed MarkupSafe-3.0.2 accelerate-1.6.0 bitsandbytes-0.45.5 charset-normalizer-3.4.1 filelock-3.18.0 fsspec-2025.3.2 huggingface-hub-0.30.2 jinja2-3.1.6 mpmath-1.3.0 networkx-3.4.2 numpy-2.2.4 nvidia-cublas-cu12-12.4.5.8 nvidia-cuda-cupti-cu12-12.4.127 nvidia-cuda-nvrtc-cu12-12.4.127 nvidia-cuda-runtime-cu12-12.4.127 nvidia-cudnn-cu12-9.1.0.70 nvidia-cufft-cu12-11.2.1.3 nvidia-curand-cu12-10.3.5.147 nvidia-cusolver-cu12-11.6.1.9 nvidia-cusparse-cu12-12.3.1.170 nvidia-cusparselt-cu12-0.6.2 nvidia-nccl-cu12-2.21.5 nvidia-nvjitlink-cu12-12.4.127 nvidia-nvtx-cu12-12.4.127 packaging-24.2 peft-0.15.1 psutil-7.0.0 pyyaml-6.0.2 regex-2024.11.6 requests-2.32.3 safetensors-0.5.3 sympy-1.13.1 tokenizers-0.21.1 torch-2.6.0 tqdm-4.67.1 transformers-4.51.1 triton-3.2.0 urllib3-2.3.0\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mSuccessfully installed MarkupSafe-3.0.2 accelerate-1.6.0 bitsandbytes-0.45.5 charset-normalizer-3.4.1 filelock-3.18.0 fsspec-2025.3.2 huggingface-hub-0.30.2 jinja2-3.1.6 mpmath-1.3.0 networkx-3.4.2 numpy-2.2.4 nvidia-cublas-cu12-12.4.5.8 nvidia-cuda-cupti-cu12-12.4.127 nvidia-cuda-nvrtc-cu12-12.4.127 nvidia-cuda-runtime-cu12-12.4.127 nvidia-cudnn-cu12-9.1.0.70 nvidia-cufft-cu12-11.2.1.3 nvidia-curand-cu12-10.3.5.147 nvidia-cusolver-cu12-11.6.1.9 nvidia-cusparse-cu12-12.3.1.170 nvidia-cusparselt-cu12-0.6.2 nvidia-nccl-cu12-2.21.5 nvidia-nvjitlink-cu12-12.4.127 nvidia-nvtx-cu12-12.4.127 packaging-24.2 peft-0.15.1 psutil-7.0.0 pyyaml-6.0.2 regex-2024.11.6 requests-2.32.3 safetensors-0.5.3 sympy-1.13.1 tokenizers-0.21.1 torch-2.6.0 tqdm-4.67.1 transformers-4.51.1 triton-3.2.0 urllib3-2.3.0\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "[notice] A new release of pip is available: 24.3.1 -> 25.0.1\n",
+ "[notice] To update, run: pip install --upgrade pip\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m\n",
+ "[notice] A new release of pip is available: 24.3.1 -> 25.0.1\n",
+ "[notice] To update, run: pip install --upgrade pip\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Saving image...\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mSaving image...\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Image saved, took 5.08s\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mImage saved, took 5.08s\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "Built image im-lR52cm0dRXT5B8UWizJSP6 in 82.34s\n",
+ "\n",
+ "\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33m\n",
+ "Built image im-lR52cm0dRXT5B8UWizJSP6 in 82.34s\n",
+ "\n",
+ "\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n"
+ ],
+ "text/plain": []
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "✓ Created objects.\n", + "├── 🔨 Created mount /Users/craigprobus/Repos/ed-donner-class/llm_engineering/week8/pricer_ephemeral.py\n", + "├── 🔨 Created mount PythonPackage:llama\n", + "├── 🔨 Created mount PythonPackage:hello\n", + "└── 🔨 Created function price.\n", + "\n" + ], + "text/plain": [ + "\u001b[32m✓\u001b[0m Created objects.\n", + "\u001b[38;5;244m├── \u001b[0m🔨 Created mount /Users/craigprobus/Repos/ed-donner-class/llm_engineering/week8/pricer_ephemeral.py\n", + "\u001b[38;5;244m├── \u001b[0m🔨 Created mount PythonPackage:llama\n", + "\u001b[38;5;244m├── \u001b[0m🔨 Created mount PythonPackage:hello\n", + "\u001b[38;5;244m└── \u001b[0m🔨 Created function price.\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "ea2b8be65d6045059fd9700cea2838f9", + "version_major": 2, + "version_minor": 0 + }, + "text/plain": [ + "Output()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "
\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[31m\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\u001b[1AFetching 4 files: 0%| | 0/4 [00:00<?, ?it/s]
\n"
+ ],
+ "text/plain": [
+ "\u001b[31m\u001b[1AFetching 4 files: 0%| | 0/4 [00:00, ?it/s]\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[31m\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\u001b[1AFetching 4 files: 25%|██▌ | 1/4 [01:04<03:13, 64.59s/it]Fetching 4 files: 100%|██████████| 4/4 [01:04<00:00, 16.15s/it]\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[31m\u001b[1AFetching 4 files: 25%|██▌ | 1/4 [01:04<03:13, 64.59s/it]Fetching 4 files: 100%|██████████| 4/4 [01:04<00:00, 16.15s/it]\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[31m\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\u001b[1ALoading checkpoint shards: 0%| | 0/4 [00:00<?, ?it/s]
\n"
+ ],
+ "text/plain": [
+ "\u001b[31m\u001b[1ALoading checkpoint shards: 0%| | 0/4 [00:00, ?it/s]\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[31m\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\u001b[1ALoading checkpoint shards: 25%|██▌ | 1/4 [00:04<00:12, 4.01s/it]\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[31m\u001b[1ALoading checkpoint shards: 25%|██▌ | 1/4 [00:04<00:12, 4.01s/it]\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\u001b[1ALoading checkpoint shards: 50%|█████ | 2/4 [00:08<00:08, 4.30s/it]\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[31m\u001b[1ALoading checkpoint shards: 50%|█████ | 2/4 [00:08<00:08, 4.30s/it]\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\u001b[1ALoading checkpoint shards: 75%|███████▌ | 3/4 [00:12<00:04, 4.38s/it]\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[31m\u001b[1ALoading checkpoint shards: 75%|███████▌ | 3/4 [00:12<00:04, 4.38s/it]\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\u001b[1ALoading checkpoint shards: 100%|██████████| 4/4 [00:13<00:00, 2.78s/it]Loading checkpoint shards: 100%|██████████| 4/4 [00:13<00:00, 3.33s/it]\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[31m\u001b[1ALoading checkpoint shards: 100%|██████████| 4/4 [00:13<00:00, 2.78s/it]Loading checkpoint shards: 100%|██████████| 4/4 [00:13<00:00, 3.33s/it]\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Setting `pad_token_id` to `eos_token_id`:128001 for open-end generation.\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[31mSetting `pad_token_id` to `eos_token_id`:128001 for open-end generation.\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "\n"
+ ],
+ "text/plain": []
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "Stopping app - local entrypoint completed.\n",
+ "
\n"
+ ],
+ "text/plain": [
+ "\u001b[33mStopping app - local entrypoint completed.\n",
+ "\u001b[0m"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "text/html": [
+ "✓ App completed. View run at https://modal.com/apps/craigprobus/main/ap-hXVuCIvQjgcNjkaBXeKcWI\n", + "\n" + ], + "text/plain": [ + "\u001b[32m✓\u001b[0m App completed. \u001b[38;5;249mView run at \u001b[0m\u001b[4;38;5;249mhttps://modal.com/apps/craigprobus/main/ap-hXVuCIvQjgcNjkaBXeKcWI\u001b[0m\n" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "220.0" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "with modal.enable_output():\n", " with app.run():\n", @@ -254,40 +5304,134 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 24, "id": "7f90d857-2f12-4521-bb90-28efd917f7d1", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[33m╭─\u001b[0m\u001b[33m Modal Deprecation Warning (2025-02-06) \u001b[0m\u001b[33m────────────────────────────────────\u001b[0m\u001b[33m─╮\u001b[0m\n", + "\u001b[33m│\u001b[0m Using Python module paths will require using the -m flag in a future version \u001b[33m│\u001b[0m\n", + "\u001b[33m│\u001b[0m of Modal. \u001b[33m│\u001b[0m\n", + "\u001b[33m│\u001b[0m Use `modal deploy -m pricer_service` instead. \u001b[33m│\u001b[0m\n", + "\u001b[33m╰──────────────────────────────────────────────────────────────────────────────╯\u001b[0m\n", + "\u001b[2K\u001b[34m⠸\u001b[0m Creating objects.....\n", + "\u001b[37m└── \u001b[0m\u001b[34m⠋\u001b[0m Creating mount \n", + "\u001b[37m \u001b[0m/Users/craigprobus/Repos/ed-donner-class/llm_engineering/week8/pricer_servic\n", + "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[34m⠦\u001b[0m Creating objects...\n", + "\u001b[37m└── \u001b[0m\u001b[34m⠸\u001b[0m Creating mount \n", + "\u001b[37m \u001b[0m/Users/craigprobus/Repos/ed-donner-class/llm_engineering/week8/pricer_servic\n", + "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[34m⠏\u001b[0m Creating objects...\n", + "\u001b[37m└── \u001b[0m\u001b[34m⠦\u001b[0m Creating mount \n", + "\u001b[37m \u001b[0m/Users/craigprobus/Repos/ed-donner-class/llm_engineering/week8/pricer_servic\n", + "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[34m⠹\u001b[0m Creating objects...\n", + "\u001b[37m└── \u001b[0m\u001b[34m⠏\u001b[0m Creating mount \n", + "\u001b[37m \u001b[0m/Users/craigprobus/Repos/ed-donner-class/llm_engineering/week8/pricer_servic\n", + "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[34m⠴\u001b[0m Creating objects...\n", + "\u001b[37m└── \u001b[0m🔨 Created mount \n", + "\u001b[37m \u001b[0m/Users/craigprobus/Repos/ed-donner-class/llm_engineering/week8/pricer_servic\n", + "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[34m⠧\u001b[0m Creating objects...\n", + "\u001b[37m├── \u001b[0m🔨 Created mount \n", + "\u001b[37m│ \u001b[0m/Users/craigprobus/Repos/ed-donner-class/llm_engineering/week8/pricer_servic\n", + "\u001b[37m│ \u001b[0me.py\n", + "\u001b[37m└── \u001b[0m🔨 Created function price.\n", + "\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[32m✓\u001b[0m Created objects.\n", + "\u001b[37m├── \u001b[0m🔨 Created mount \n", + "\u001b[37m│ \u001b[0m/Users/craigprobus/Repos/ed-donner-class/llm_engineering/week8/pricer_servic\n", + "\u001b[37m│ \u001b[0me.py\n", + "\u001b[37m└── \u001b[0m🔨 Created function price.\n", + "\u001b[32m✓\u001b[0m App deployed in 1.824s! 🎉\n", + "\n", + "View Deployment: \u001b[35mhttps://modal.com/apps/craigprobus/main/deployed/pricer-service\u001b[0m\n" + ] + } + ], "source": [ "!modal deploy pricer_service" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 26, "id": "1dec70ff-1986-4405-8624-9bbbe0ce1f4a", "metadata": {}, "outputs": [], "source": [ - "pricer = modal.Function.lookup(\"pricer-service\", \"price\")" + "#DEL: pricer = modal.Function.lookup(\"pricer-service\", \"price\")\n", + "pricer = modal.Function.from_name(\"pricer-service\", \"price\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 27, "id": "17776139-0d9e-4ad0-bcd0-82d3a92ca61f", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "220.0" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "pricer.remote(\"Quadcast HyperX condenser mic, connects via usb-c to your computer for crystal clear audio\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 35, "id": "f56d1e55-2a03-4ce2-bb47-2ab6b9175a02", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\u001b[2K\u001b[34m⠸\u001b[0m Creating objects.....\n", + "\u001b[37m└── \u001b[0m\u001b[34m⠋\u001b[0m Creating mount \n", + "\u001b[37m \u001b[0m/Users/craigprobus/Repos/ed-donner-class/llm_engineering/week8/pricer_servic\n", + "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[34m⠦\u001b[0m Creating objects...\n", + "\u001b[37m└── \u001b[0m\u001b[34m⠸\u001b[0m Creating mount \n", + "\u001b[37m \u001b[0m/Users/craigprobus/Repos/ed-donner-class/llm_engineering/week8/pricer_servic\n", + "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[34m⠏\u001b[0m Creating objects...\n", + "\u001b[37m└── \u001b[0m\u001b[34m⠦\u001b[0m Creating mount \n", + "\u001b[37m \u001b[0m/Users/craigprobus/Repos/ed-donner-class/llm_engineering/week8/pricer_servic\n", + "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[34m⠹\u001b[0m Creating objects...\n", + "\u001b[37m└── \u001b[0m🔨 Created mount \n", + "\u001b[37m \u001b[0m/Users/craigprobus/Repos/ed-donner-class/llm_engineering/week8/pricer_servic\n", + "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[34m⠦\u001b[0m Creating objects...\n", + "\u001b[37m└── \u001b[0m🔨 Created mount \n", + "\u001b[37m \u001b[0m/Users/craigprobus/Repos/ed-donner-class/llm_engineering/week8/pricer_servic\n", + "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[34m⠏\u001b[0m Creating objects...\n", + "\u001b[37m└── \u001b[0m🔨 Created mount \n", + "\u001b[37m \u001b[0m/Users/craigprobus/Repos/ed-donner-class/llm_engineering/week8/pricer_servic\n", + "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[34m⠹\u001b[0m Creating objects...\n", + "\u001b[37m├── \u001b[0m🔨 Created mount \n", + "\u001b[37m│ \u001b[0m/Users/craigprobus/Repos/ed-donner-class/llm_engineering/week8/pricer_servic\n", + "\u001b[37m│ \u001b[0me2.py\n", + "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[34m⠹\u001b[0m Creating objects...\n", + "\u001b[37m├── \u001b[0m🔨 Created mount \n", + "\u001b[37m│ \u001b[0m/Users/craigprobus/Repos/ed-donner-class/llm_engineering/week8/pricer_servic\n", + "\u001b[37m│ \u001b[0me2.py\n", + "\u001b[37m└── \u001b[0m🔨 Created function Pricer.*.\n", + "\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[32m✓\u001b[0m Created objects.\n", + "\u001b[37m├── \u001b[0m🔨 Created mount \n", + "\u001b[37m│ \u001b[0m/Users/craigprobus/Repos/ed-donner-class/llm_engineering/week8/pricer_servic\n", + "\u001b[37m│ \u001b[0me2.py\n", + "\u001b[37m└── \u001b[0m🔨 Created function Pricer.*.\n", + "\u001b[32m✓\u001b[0m App deployed in 2.287s! 🎉\n", + "\n", + "View Deployment: \u001b[35mhttps://modal.com/apps/craigprobus/main/deployed/pricer-service\u001b[0m\n" + ] + } + ], "source": [ "# You can also run \"modal deploy -m pricer_service2\" at the command line in an activated environment\n", "!modal deploy -m pricer_service2" @@ -295,12 +5439,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 36, "id": "9e19daeb-1281-484b-9d2f-95cc6fed2622", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "220.0\n" + ] + } + ], "source": [ - "Pricer = modal.Cls.lookup(\"pricer-service\", \"Pricer\")\n", + "#DEL: Pricer = modal.Cls.lookup(\"pricer-service\", \"Pricer\")\n", + "Pricer = modal.Cls.from_name(\"pricer-service\", \"Pricer\")\n", "pricer = Pricer()\n", "reply = pricer.price.remote(\"Quadcast HyperX condenser mic, connects via usb-c to your computer for crystal clear audio\")\n", "print(reply)" @@ -308,10 +5461,54 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 37, "id": "c29b8c58-4cb7-44b0-ab7e-6469d3a318e8", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Requirement already satisfied: modal in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (0.73.155)\n", + "Requirement already satisfied: aiohttp in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from modal) (3.11.12)\n", + "Requirement already satisfied: certifi in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from modal) (2025.1.31)\n", + "Requirement already satisfied: click>=8.1.0 in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from modal) (8.1.8)\n", + "Requirement already satisfied: fastapi in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from modal) (0.115.8)\n", + "Requirement already satisfied: grpclib==0.4.7 in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from modal) (0.4.7)\n", + "Requirement already satisfied: protobuf!=4.24.0,<6.0,>=3.19 in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from modal) (5.29.3)\n", + "Requirement already satisfied: rich>=12.0.0 in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from modal) (13.9.4)\n", + "Requirement already satisfied: synchronicity~=0.9.10 in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from modal) (0.9.11)\n", + "Requirement already satisfied: toml in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from modal) (0.10.2)\n", + "Requirement already satisfied: typer>=0.9 in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from modal) (0.15.1)\n", + "Requirement already satisfied: types-certifi in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from modal) (2021.10.8.3)\n", + "Requirement already satisfied: types-toml in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from modal) (0.10.8.20240310)\n", + "Requirement already satisfied: watchfiles in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from modal) (1.0.4)\n", + "Requirement already satisfied: typing_extensions~=4.6 in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from modal) (4.12.2)\n", + "Requirement already satisfied: h2<5,>=3.1.0 in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from grpclib==0.4.7->modal) (4.2.0)\n", + "Requirement already satisfied: multidict in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from grpclib==0.4.7->modal) (6.1.0)\n", + "Requirement already satisfied: markdown-it-py>=2.2.0 in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from rich>=12.0.0->modal) (3.0.0)\n", + "Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from rich>=12.0.0->modal) (2.19.1)\n", + "Requirement already satisfied: sigtools>=4.0.1 in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from synchronicity~=0.9.10->modal) (4.0.1)\n", + "Requirement already satisfied: shellingham>=1.3.0 in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from typer>=0.9->modal) (1.5.4)\n", + "Requirement already satisfied: aiohappyeyeballs>=2.3.0 in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from aiohttp->modal) (2.4.6)\n", + "Requirement already satisfied: aiosignal>=1.1.2 in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from aiohttp->modal) (1.3.2)\n", + "Requirement already satisfied: attrs>=17.3.0 in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from aiohttp->modal) (25.1.0)\n", + "Requirement already satisfied: frozenlist>=1.1.1 in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from aiohttp->modal) (1.5.0)\n", + "Requirement already satisfied: propcache>=0.2.0 in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from aiohttp->modal) (0.2.1)\n", + "Requirement already satisfied: yarl<2.0,>=1.17.0 in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from aiohttp->modal) (1.18.3)\n", + "Requirement already satisfied: starlette<0.46.0,>=0.40.0 in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from fastapi->modal) (0.45.3)\n", + "Requirement already satisfied: pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4 in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from fastapi->modal) (2.10.6)\n", + "Requirement already satisfied: anyio>=3.0.0 in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from watchfiles->modal) (4.8.0)\n", + "Requirement already satisfied: idna>=2.8 in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from anyio>=3.0.0->watchfiles->modal) (3.10)\n", + "Requirement already satisfied: sniffio>=1.1 in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from anyio>=3.0.0->watchfiles->modal) (1.3.1)\n", + "Requirement already satisfied: hyperframe<7,>=6.1 in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from h2<5,>=3.1.0->grpclib==0.4.7->modal) (6.1.0)\n", + "Requirement already satisfied: hpack<5,>=4.1 in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from h2<5,>=3.1.0->grpclib==0.4.7->modal) (4.1.0)\n", + "Requirement already satisfied: mdurl~=0.1 in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from markdown-it-py>=2.2.0->rich>=12.0.0->modal) (0.1.2)\n", + "Requirement already satisfied: annotated-types>=0.6.0 in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4->fastapi->modal) (0.7.0)\n", + "Requirement already satisfied: pydantic-core==2.27.2 in /opt/anaconda3/envs/llms/lib/python3.11/site-packages (from pydantic!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0,>=1.7.4->fastapi->modal) (2.27.2)\n" + ] + } + ], "source": [ "!pip install --upgrade modal" ] @@ -346,7 +5543,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 32, "id": "ba9aedca-6a7b-4d30-9f64-59d76f76fb6d", "metadata": {}, "outputs": [], @@ -356,10 +5553,21 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 33, "id": "fe5843e5-e958-4a65-8326-8f5b4686de7f", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "350.0" + ] + }, + "execution_count": 33, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "agent = SpecialistAgent()\n", "agent.price(\"iPad Pro 2nd generation\")" diff --git a/week8/pricer_ephemeral.py b/week8/pricer_ephemeral.py index 6fd56ab..3b582ba 100644 --- a/week8/pricer_ephemeral.py +++ b/week8/pricer_ephemeral.py @@ -12,10 +12,10 @@ secrets = [modal.Secret.from_name("hf-secret")] GPU = "T4" BASE_MODEL = "meta-llama/Meta-Llama-3.1-8B" PROJECT_NAME = "pricer" -HF_USER = "ed-donner" # your HF name here! Or use mine if you just want to reproduce my results. -RUN_NAME = "2024-09-13_13.04.39" +HF_USER = "cproSD" # your HF name here! Or use mine if you just want to reproduce my results. +RUN_NAME = "2025-04-08_21.52.37" PROJECT_RUN_NAME = f"{PROJECT_NAME}-{RUN_NAME}" -REVISION = "e8d637df551603dc86cd7a1598a8f44af4d7ae36" +#DEL: REVISION = "e8d637df551603dc86cd7a1598a8f44af4d7ae36" FINETUNED_MODEL = f"{HF_USER}/{PROJECT_RUN_NAME}" @@ -52,7 +52,8 @@ def price(description: str) -> float: device_map="auto" ) - fine_tuned_model = PeftModel.from_pretrained(base_model, FINETUNED_MODEL, revision=REVISION) + #DEL: fine_tuned_model = PeftModel.from_pretrained(base_model, FINETUNED_MODEL, revision=REVISION) + fine_tuned_model = PeftModel.from_pretrained(base_model, FINETUNED_MODEL) set_seed(42) inputs = tokenizer.encode(prompt, return_tensors="pt").to("cuda") diff --git a/week8/pricer_service.py b/week8/pricer_service.py index 088b962..70108d7 100644 --- a/week8/pricer_service.py +++ b/week8/pricer_service.py @@ -12,10 +12,10 @@ secrets = [modal.Secret.from_name("hf-secret")] GPU = "T4" BASE_MODEL = "meta-llama/Meta-Llama-3.1-8B" PROJECT_NAME = "pricer" -HF_USER = "ed-donner" # your HF name here! Or use mine if you just want to reproduce my results. -RUN_NAME = "2024-09-13_13.04.39" +HF_USER = "cproSD" # your HF name here! Or use mine if you just want to reproduce my results. +RUN_NAME = "2025-04-08_21.52.37" PROJECT_RUN_NAME = f"{PROJECT_NAME}-{RUN_NAME}" -REVISION = "e8d637df551603dc86cd7a1598a8f44af4d7ae36" +#DEL: REVISION = "e8d637df551603dc86cd7a1598a8f44af4d7ae36" FINETUNED_MODEL = f"{HF_USER}/{PROJECT_RUN_NAME}" @@ -52,7 +52,8 @@ def price(description: str) -> float: device_map="auto" ) - fine_tuned_model = PeftModel.from_pretrained(base_model, FINETUNED_MODEL, revision=REVISION) + #DEL: fine_tuned_model = PeftModel.from_pretrained(base_model, FINETUNED_MODEL, revision=REVISION) + fine_tuned_model = PeftModel.from_pretrained(base_model, FINETUNED_MODEL) set_seed(42) inputs = tokenizer.encode(prompt, return_tensors="pt").to("cuda") diff --git a/week8/pricer_service2.py b/week8/pricer_service2.py index 16d276b..4fb7d89 100644 --- a/week8/pricer_service2.py +++ b/week8/pricer_service2.py @@ -6,16 +6,17 @@ from modal import App, Volume, Image app = modal.App("pricer-service") image = Image.debian_slim().pip_install("huggingface", "torch", "transformers", "bitsandbytes", "accelerate", "peft") secrets = [modal.Secret.from_name("hf-secret")] +volume = modal.Volume.from_name("pricer-model-cache", create_if_missing=True) # Constants GPU = "T4" BASE_MODEL = "meta-llama/Meta-Llama-3.1-8B" PROJECT_NAME = "pricer" -HF_USER = "ed-donner" # your HF name here! Or use mine if you just want to reproduce my results. -RUN_NAME = "2024-09-13_13.04.39" +HF_USER = "cproSD" # your HF name here! Or use mine if you just want to reproduce my results. +RUN_NAME = "2025-04-08_21.52.37" PROJECT_RUN_NAME = f"{PROJECT_NAME}-{RUN_NAME}" -REVISION = "e8d637df551603dc86cd7a1598a8f44af4d7ae36" +#DEL: REVISION = "e8d637df551603dc86cd7a1598a8f44af4d7ae36" FINETUNED_MODEL = f"{HF_USER}/{PROJECT_RUN_NAME}" MODEL_DIR = "hf-cache/" BASE_DIR = MODEL_DIR + BASE_MODEL @@ -24,15 +25,17 @@ FINETUNED_DIR = MODEL_DIR + FINETUNED_MODEL QUESTION = "How much does this cost to the nearest dollar?" PREFIX = "Price is $" -@app.cls(image=image, secrets=secrets, gpu=GPU, timeout=1800) +#DEL: @app.cls(image=image, secrets=secrets, gpu=GPU, timeout=1800) +@app.cls(image=image, secrets=secrets, gpu=GPU, timeout=1800, volumes={"/pretrained_models": volume}) class Pricer: - @modal.build() - def download_model_to_folder(self): + #DEL: def download_model_to_folder(self): + def __enter__(self): from huggingface_hub import snapshot_download import os - os.makedirs(MODEL_DIR, exist_ok=True) - snapshot_download(BASE_MODEL, local_dir=BASE_DIR) - snapshot_download(FINETUNED_MODEL, revision=REVISION, local_dir=FINETUNED_DIR) + os.makedirs("/pretrained_models/" + MODEL_DIR, exist_ok=True) + snapshot_download(BASE_MODEL, local_dir="/pretrained_models/" + BASE_DIR) + #DEL: snapshot_download(FINETUNED_MODEL, revision=REVISION, local_dir=FINETUNED_DIR) + snapshot_download(FINETUNED_MODEL, local_dir="/pretrained_models/" + FINETUNED_DIR) @modal.enter() def setup(self): @@ -61,7 +64,8 @@ class Pricer: device_map="auto" ) - self.fine_tuned_model = PeftModel.from_pretrained(self.base_model, FINETUNED_DIR, revision=REVISION) + #DEL: self.fine_tuned_model = PeftModel.from_pretrained(self.base_model, FINETUNED_DIR, revision=REVISION) + self.fine_tuned_model = PeftModel.from_pretrained(self.base_model, FINETUNED_DIR) @modal.method() def price(self, description: str) -> float: