Skip to content

Instantly share code, notes, and snippets.

@remigabillet
Created May 18, 2023 14:56
Show Gist options
  • Save remigabillet/01c73c26ad93c89016159a395882cc8a to your computer and use it in GitHub Desktop.
Save remigabillet/01c73c26ad93c89016159a395882cc8a to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"id": "db26604a-f3d6-4e16-ae03-6ef498124f55",
"metadata": {},
"source": [
"### Setup"
]
},
{
"cell_type": "markdown",
"id": "46224a88-df2d-4a7d-8bcb-3b6f5c5891c8",
"metadata": {},
"source": [
"This notebook is executed with:\n",
"- on a Sagemaker Studio Notebook\n",
"- Image: Pytorch 1.10 Python 3.8 GPU Optimized\n",
"- Instance Type: `ml.g4dn.xlarge`"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "641e3519-7a20-426d-8248-d5d0e32a68c6",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: transformers==4.16.2 in /opt/conda/lib/python3.8/site-packages (4.16.2)\n",
"Requirement already satisfied: sentence_transformers in /opt/conda/lib/python3.8/site-packages (2.2.2)\n",
"Requirement already satisfied: numpy>=1.17 in /opt/conda/lib/python3.8/site-packages (from transformers==4.16.2) (1.22.2)\n",
"Requirement already satisfied: filelock in /opt/conda/lib/python3.8/site-packages (from transformers==4.16.2) (3.12.0)\n",
"Requirement already satisfied: pyyaml>=5.1 in /opt/conda/lib/python3.8/site-packages (from transformers==4.16.2) (5.4.1)\n",
"Requirement already satisfied: regex!=2019.12.17 in /opt/conda/lib/python3.8/site-packages (from transformers==4.16.2) (2023.5.5)\n",
"Requirement already satisfied: tqdm>=4.27 in /opt/conda/lib/python3.8/site-packages (from transformers==4.16.2) (4.62.3)\n",
"Requirement already satisfied: sacremoses in /opt/conda/lib/python3.8/site-packages (from transformers==4.16.2) (0.0.53)\n",
"Requirement already satisfied: packaging>=20.0 in /opt/conda/lib/python3.8/site-packages (from transformers==4.16.2) (21.3)\n",
"Requirement already satisfied: requests in /opt/conda/lib/python3.8/site-packages (from transformers==4.16.2) (2.27.1)\n",
"Requirement already satisfied: huggingface-hub<1.0,>=0.1.0 in /opt/conda/lib/python3.8/site-packages (from transformers==4.16.2) (0.14.1)\n",
"Requirement already satisfied: tokenizers!=0.11.3,>=0.10.1 in /opt/conda/lib/python3.8/site-packages (from transformers==4.16.2) (0.13.3)\n",
"Requirement already satisfied: scipy in /opt/conda/lib/python3.8/site-packages (from sentence_transformers) (1.8.0)\n",
"Requirement already satisfied: torchvision in /opt/conda/lib/python3.8/site-packages (from sentence_transformers) (0.11.3)\n",
"Requirement already satisfied: nltk in /opt/conda/lib/python3.8/site-packages (from sentence_transformers) (3.8.1)\n",
"Requirement already satisfied: scikit-learn in /opt/conda/lib/python3.8/site-packages (from sentence_transformers) (1.0.2)\n",
"Requirement already satisfied: torch>=1.6.0 in /opt/conda/lib/python3.8/site-packages (from sentence_transformers) (1.10.2+cu113)\n",
"Requirement already satisfied: sentencepiece in /opt/conda/lib/python3.8/site-packages (from sentence_transformers) (0.1.99)\n",
"Requirement already satisfied: typing-extensions>=3.7.4.3 in /opt/conda/lib/python3.8/site-packages (from huggingface-hub<1.0,>=0.1.0->transformers==4.16.2) (4.1.1)\n",
"Requirement already satisfied: fsspec in /opt/conda/lib/python3.8/site-packages (from huggingface-hub<1.0,>=0.1.0->transformers==4.16.2) (2022.2.0)\n",
"Requirement already satisfied: pyparsing!=3.0.5,>=2.0.2 in /opt/conda/lib/python3.8/site-packages (from packaging>=20.0->transformers==4.16.2) (3.0.7)\n",
"Requirement already satisfied: joblib in /opt/conda/lib/python3.8/site-packages (from nltk->sentence_transformers) (1.1.0)\n",
"Requirement already satisfied: click in /opt/conda/lib/python3.8/site-packages (from nltk->sentence_transformers) (8.0.4)\n",
"Requirement already satisfied: certifi>=2017.4.17 in /opt/conda/lib/python3.8/site-packages (from requests->transformers==4.16.2) (2021.10.8)\n",
"Requirement already satisfied: charset-normalizer~=2.0.0 in /opt/conda/lib/python3.8/site-packages (from requests->transformers==4.16.2) (2.0.4)\n",
"Requirement already satisfied: idna<4,>=2.5 in /opt/conda/lib/python3.8/site-packages (from requests->transformers==4.16.2) (3.3)\n",
"Requirement already satisfied: urllib3<1.27,>=1.21.1 in /opt/conda/lib/python3.8/site-packages (from requests->transformers==4.16.2) (1.26.7)\n",
"Requirement already satisfied: six in /opt/conda/lib/python3.8/site-packages (from sacremoses->transformers==4.16.2) (1.16.0)\n",
"Requirement already satisfied: threadpoolctl>=2.0.0 in /opt/conda/lib/python3.8/site-packages (from scikit-learn->sentence_transformers) (2.2.0)\n",
"Requirement already satisfied: pillow!=8.3.0,>=5.3.0 in /opt/conda/lib/python3.8/site-packages (from torchvision->sentence_transformers) (9.0.1)\n",
"\u001b[33mWARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv\u001b[0m\u001b[33m\n",
"\u001b[0m"
]
}
],
"source": [
"!pip install transformers==4.16.2 sentence_transformers"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "3814e452-98aa-4421-a8e4-78fcd3d05bfc",
"metadata": {},
"outputs": [],
"source": [
"import time\n",
"from contextlib import contextmanager\n",
"\n",
"@contextmanager\n",
"def benchmark(n, label=''):\n",
" start_time = time.perf_counter()\n",
" res = yield\n",
" duration = time.perf_counter() - start_time\n",
" print(f\"{label}: {n} items in {duration:0.2f} seconds. {n/duration:.0f} it/s\")\n",
" return res\n"
]
},
{
"cell_type": "markdown",
"id": "c4bff17e-a082-4b48-901c-56cb9f6bdc49",
"metadata": {},
"source": [
"### GPU is active"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "3b0b365c-e0c6-4ed4-9606-2f70543ba8f3",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"True\n",
"1\n",
"Tesla T4\n"
]
}
],
"source": [
"import torch\n",
"\n",
"print(torch.cuda.is_available())\n",
"print(torch.cuda.device_count())\n",
"print(torch.cuda.get_device_name(0))"
]
},
{
"cell_type": "markdown",
"id": "c51cc4c3-50d5-4bd9-8966-d9c115bafcc5",
"metadata": {},
"source": [
"### Load Input sentences"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "636faa13-2daf-4112-a9e7-937c48ab23e7",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/plain": [
"'- Provides pre-sales technical support, security engineering and technical guidance for the development and implementation of Forcepoint cybersecurity technologies for customers. - Delivers product, technology and/or customized solution presentations to technical and business decision makers which may include system demonstrations, white-boarding and technical Q&A sessions to the client. - Provides pre-sales technical support, security engineering and technical guidance for the development and implementation of Forcepoint cybersecurity technologies for customer - Works with customers, strategic partners, resellers and Forcepoint team members to architect, design, build, and deploy cyber security solutions for customers and partners in support of pilot and proof of concept demonstrations - Attends industry conferences, trade shows and sales events and participates in related activities. Prepares, writes, and present trade studies, cost benefit analyses, white papers, reports and briefings as required - Works with capture manager and proposal team to develop technical content and diagrams for RFI/RFP responses - Performs local and overnight travel, both CONUS and OCONUS, as required by Sales Executives and project assignments - Assist with maintaining state of the art demonstration and lab capabilities and other duties and projects as assigned'"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"\n",
"df = pd.read_csv('/root/experience_summaries.csv', header=0, nrows=500)\n",
"sentences = df['summary'].tolist()\n",
"\n",
"# example\n",
"sentences[0]"
]
},
{
"cell_type": "markdown",
"id": "f57932cf-57bb-49f5-9679-a6a2fc3bcf92",
"metadata": {
"tags": []
},
"source": [
"## Transform with sentence_transformers"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "1ec5dfd9-a7a5-48ae-bfda-d24b39a375de",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"from sentence_transformers import SentenceTransformer\n",
"\n",
"def run_sentence_transformers(sentences, device):\n",
" # Load Model\n",
" t = SentenceTransformer('all-MiniLM-L6-v2', device=device)\n",
"\n",
" # Warm up Model\n",
" t.encode(sentences[0:3], show_progress_bar=False)\n",
"\n",
" # Benchmark\n",
" with benchmark(len(sentences)):\n",
" res = t.encode(sentences,\n",
" show_progress_bar=False,\n",
" batch_size=32, # default 32\n",
" convert_to_numpy=True, # default True\n",
" convert_to_tensor=False, # default False\n",
" normalize_embeddings=True) # default False\n",
" # print('Result shape', res.shape)\n",
" return res.tolist()"
]
},
{
"cell_type": "markdown",
"id": "32851286-1466-4e7a-8586-6a82f0e998ef",
"metadata": {},
"source": [
"#### using CPU"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "3603c5d1-e4fc-47e4-8ab9-744083079644",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:sentence_transformers.SentenceTransformer:Load pretrained SentenceTransformer: all-MiniLM-L6-v2\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
": 500 items in 10.50 seconds. 48 it/s\n"
]
},
{
"data": {
"text/plain": [
"list"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"res = run_sentence_transformers(sentences, 'cpu')\n",
"type(res)"
]
},
{
"cell_type": "markdown",
"id": "dd702e55-c306-42bf-ac1e-d26e601631fc",
"metadata": {},
"source": [
"#### using GPU"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "f332ffab-f996-4caf-b45b-1b55ac69bd38",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"INFO:sentence_transformers.SentenceTransformer:Load pretrained SentenceTransformer: all-MiniLM-L6-v2\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
": 500 items in 0.68 seconds. 732 it/s\n"
]
},
{
"data": {
"text/plain": [
"list"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"a = run_sentence_transformers(sentences, 'cuda')\n",
"type(a)"
]
},
{
"cell_type": "markdown",
"id": "26960be4-46d8-4770-8458-b8d53bdaf0b0",
"metadata": {},
"source": [
"## Transform with transformers"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "30d431be-a707-4d4e-b02e-f443d0b3f007",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"from transformers import AutoTokenizer, AutoModel\n",
"import torch\n",
"import torch.nn.functional as F\n",
"\n",
"def mean_pooling(model_output, attention_mask):\n",
" token_embeddings = model_output[0] #First element of model_output contains all token embeddings\n",
" input_mask_expanded = attention_mask.unsqueeze(-1).expand(token_embeddings.size()).float()\n",
" return torch.sum(token_embeddings * input_mask_expanded, 1) / torch.clamp(input_mask_expanded.sum(1), min=1e-9)\n",
"\n",
"# Load Model\n",
"tokenizer = AutoTokenizer.from_pretrained('sentence-transformers/all-MiniLM-L6-v2')\n",
"model = AutoModel.from_pretrained('sentence-transformers/all-MiniLM-L6-v2')\n",
"\n",
"def transform(sentences, device):\n",
" encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt').to(device)\n",
"\n",
" with torch.no_grad():\n",
" model_output = model.to(device)(**encoded_input)\n",
"\n",
" sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])\n",
" return F.normalize(sentence_embeddings, p=2, dim=1)"
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "c71b2a8c-1dd3-415c-a001-f3fc984362cf",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"def run_transformers(sentences, device):\n",
" n = len(sentences)\n",
" \n",
" # Warm up Model\n",
" transform(sentences[0:3], device)\n",
"\n",
" # Benchmark\n",
" with benchmark(n, 'overall'):\n",
" with benchmark(n, 'transform'):\n",
" res = transform(sentences, device)\n",
"\n",
" with benchmark(n, 'tensor.tolist()'):\n",
" res = res.tolist()\n",
"\n",
" return res"
]
},
{
"cell_type": "code",
"execution_count": 38,
"id": "22010149-6e79-46c0-a481-ba42ec108c0c",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"transform: 500 items in 0.14 seconds. 3672 it/s\n",
"tensor.tolist(): 500 items in 2.78 seconds. 180 it/s\n",
"overall: 500 items in 2.91 seconds. 172 it/s\n"
]
},
{
"data": {
"text/plain": [
"list"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"res = run_transformers(sentences, 'cuda:0')\n",
"type(res)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "eea0c623-6076-42f2-9eb5-c36a7aa44ba4",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"transform: 500 items in 83.56 seconds. 6 it/s\n",
"tensor.tolist(): 500 items in 0.01 seconds. 74156 it/s\n",
"overall: 500 items in 83.56 seconds. 6 it/s\n"
]
},
{
"data": {
"text/plain": [
"list"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"res = run_transformers(sentences, 'cpu')\n",
"type(res)"
]
},
{
"cell_type": "markdown",
"id": "ba0ebc17-af41-4eb7-9c2b-5b1750a0f237",
"metadata": {},
"source": [
"## Transform with transformers (inspired by sentence_transformers, with batching)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "f17cdd23-cf45-4eb5-ace4-248db120d655",
"metadata": {},
"outputs": [],
"source": [
"# Tokenizer step\n",
"# output.update(self.tokenizer(*to_tokenize, padding=True, truncation='longest_first', return_tensors=\"pt\", max_length=self.max_seq_length))\n",
"# => dict_keys(['input_ids', 'token_type_ids', 'attention_mask'])\n",
"\n",
"# Transformer step\n",
"# out_features = self.forward(features)\n",
"# => dict_keys(['input_ids', 'token_type_ids', 'attention_mask', 'token_embeddings', 'sentence_embedding'])\n",
"\n",
"# sentence_embedding is Torch.tensor"
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "7b539f50-d2db-4960-9f06-74d8ce301efb",
"metadata": {
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"transform: 500 items in 1.78 seconds. 281 it/s\n",
"tensor.tolist(): 500 items in 0.00 seconds. 120988 it/s\n",
"overall: 500 items in 1.79 seconds. 280 it/s\n"
]
},
{
"data": {
"text/plain": [
"list"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from transformers import AutoTokenizer, AutoModel\n",
"import torch\n",
"import torch.nn.functional as F\n",
"from tqdm.autonotebook import trange\n",
"import numpy as np\n",
"\n",
"def mean_pooling(model_output, attention_mask):\n",
" token_embeddings = model_output[0] #First element of model_output contains all token embeddings\n",
" input_mask_expanded = attention_mask.unsqueeze(-1).expand(token_embeddings.size()).float()\n",
" return torch.sum(token_embeddings * input_mask_expanded, 1) / torch.clamp(input_mask_expanded.sum(1), min=1e-9)\n",
"\n",
"# Load Model\n",
"tokenizer = AutoTokenizer.from_pretrained('sentence-transformers/all-MiniLM-L6-v2')\n",
"model = AutoModel.from_pretrained('sentence-transformers/all-MiniLM-L6-v2')\n",
"batch_size = 32\n",
"\n",
"def custom_transform(sentences, device):\n",
" all_embeddings = []\n",
" \n",
" for start_index in trange(0, len(sentences), batch_size, disable=True):\n",
" sentences_batch = sentences[start_index:start_index+batch_size]\n",
" features = tokenizer(sentences_batch, padding=True, truncation=True, return_tensors='pt').to(device)\n",
"\n",
" with torch.no_grad():\n",
" model_output = model.to(device)(**features)\n",
"\n",
" features.update({'token_embeddings': model_output, 'attention_mask': features['attention_mask']})\n",
"\n",
" embeddings = mean_pooling(features['token_embeddings'], features['attention_mask'])\n",
" embeddings = embeddings.detach()\n",
" embeddings = embeddings.cpu()\n",
" embeddings = F.normalize(embeddings, p=2, dim=1)\n",
" all_embeddings.extend(embeddings)\n",
"\n",
" return np.asarray([emb.numpy() for emb in all_embeddings])\n",
"\n",
"def custom_run_transformers(sentences, device):\n",
" n = len(sentences)\n",
" \n",
" # Warm up Model\n",
" custom_transform(sentences[0:3], device)\n",
"\n",
" # Benchmark\n",
" with benchmark(n, 'overall'):\n",
" with benchmark(n, 'transform'):\n",
" res = custom_transform(sentences, device)\n",
"\n",
" with benchmark(n, 'tensor.tolist()'):\n",
" res = res.tolist()\n",
" \n",
" return res\n",
"\n",
"res = custom_run_transformers(sentences, 'cuda')\n",
"type(res)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b503a26b-9f5e-4749-94c9-93ea29442c6d",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"availableInstances": [
{
"_defaultOrder": 0,
"_isFastLaunch": true,
"category": "General purpose",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 4,
"name": "ml.t3.medium",
"vcpuNum": 2
},
{
"_defaultOrder": 1,
"_isFastLaunch": false,
"category": "General purpose",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 8,
"name": "ml.t3.large",
"vcpuNum": 2
},
{
"_defaultOrder": 2,
"_isFastLaunch": false,
"category": "General purpose",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 16,
"name": "ml.t3.xlarge",
"vcpuNum": 4
},
{
"_defaultOrder": 3,
"_isFastLaunch": false,
"category": "General purpose",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 32,
"name": "ml.t3.2xlarge",
"vcpuNum": 8
},
{
"_defaultOrder": 4,
"_isFastLaunch": true,
"category": "General purpose",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 8,
"name": "ml.m5.large",
"vcpuNum": 2
},
{
"_defaultOrder": 5,
"_isFastLaunch": false,
"category": "General purpose",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 16,
"name": "ml.m5.xlarge",
"vcpuNum": 4
},
{
"_defaultOrder": 6,
"_isFastLaunch": false,
"category": "General purpose",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 32,
"name": "ml.m5.2xlarge",
"vcpuNum": 8
},
{
"_defaultOrder": 7,
"_isFastLaunch": false,
"category": "General purpose",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 64,
"name": "ml.m5.4xlarge",
"vcpuNum": 16
},
{
"_defaultOrder": 8,
"_isFastLaunch": false,
"category": "General purpose",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 128,
"name": "ml.m5.8xlarge",
"vcpuNum": 32
},
{
"_defaultOrder": 9,
"_isFastLaunch": false,
"category": "General purpose",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 192,
"name": "ml.m5.12xlarge",
"vcpuNum": 48
},
{
"_defaultOrder": 10,
"_isFastLaunch": false,
"category": "General purpose",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 256,
"name": "ml.m5.16xlarge",
"vcpuNum": 64
},
{
"_defaultOrder": 11,
"_isFastLaunch": false,
"category": "General purpose",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 384,
"name": "ml.m5.24xlarge",
"vcpuNum": 96
},
{
"_defaultOrder": 12,
"_isFastLaunch": false,
"category": "General purpose",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 8,
"name": "ml.m5d.large",
"vcpuNum": 2
},
{
"_defaultOrder": 13,
"_isFastLaunch": false,
"category": "General purpose",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 16,
"name": "ml.m5d.xlarge",
"vcpuNum": 4
},
{
"_defaultOrder": 14,
"_isFastLaunch": false,
"category": "General purpose",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 32,
"name": "ml.m5d.2xlarge",
"vcpuNum": 8
},
{
"_defaultOrder": 15,
"_isFastLaunch": false,
"category": "General purpose",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 64,
"name": "ml.m5d.4xlarge",
"vcpuNum": 16
},
{
"_defaultOrder": 16,
"_isFastLaunch": false,
"category": "General purpose",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 128,
"name": "ml.m5d.8xlarge",
"vcpuNum": 32
},
{
"_defaultOrder": 17,
"_isFastLaunch": false,
"category": "General purpose",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 192,
"name": "ml.m5d.12xlarge",
"vcpuNum": 48
},
{
"_defaultOrder": 18,
"_isFastLaunch": false,
"category": "General purpose",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 256,
"name": "ml.m5d.16xlarge",
"vcpuNum": 64
},
{
"_defaultOrder": 19,
"_isFastLaunch": false,
"category": "General purpose",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 384,
"name": "ml.m5d.24xlarge",
"vcpuNum": 96
},
{
"_defaultOrder": 20,
"_isFastLaunch": false,
"category": "General purpose",
"gpuNum": 0,
"hideHardwareSpecs": true,
"memoryGiB": 0,
"name": "ml.geospatial.interactive",
"supportedImageNames": [
"sagemaker-geospatial-v1-0"
],
"vcpuNum": 0
},
{
"_defaultOrder": 21,
"_isFastLaunch": true,
"category": "Compute optimized",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 4,
"name": "ml.c5.large",
"vcpuNum": 2
},
{
"_defaultOrder": 22,
"_isFastLaunch": false,
"category": "Compute optimized",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 8,
"name": "ml.c5.xlarge",
"vcpuNum": 4
},
{
"_defaultOrder": 23,
"_isFastLaunch": false,
"category": "Compute optimized",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 16,
"name": "ml.c5.2xlarge",
"vcpuNum": 8
},
{
"_defaultOrder": 24,
"_isFastLaunch": false,
"category": "Compute optimized",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 32,
"name": "ml.c5.4xlarge",
"vcpuNum": 16
},
{
"_defaultOrder": 25,
"_isFastLaunch": false,
"category": "Compute optimized",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 72,
"name": "ml.c5.9xlarge",
"vcpuNum": 36
},
{
"_defaultOrder": 26,
"_isFastLaunch": false,
"category": "Compute optimized",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 96,
"name": "ml.c5.12xlarge",
"vcpuNum": 48
},
{
"_defaultOrder": 27,
"_isFastLaunch": false,
"category": "Compute optimized",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 144,
"name": "ml.c5.18xlarge",
"vcpuNum": 72
},
{
"_defaultOrder": 28,
"_isFastLaunch": false,
"category": "Compute optimized",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 192,
"name": "ml.c5.24xlarge",
"vcpuNum": 96
},
{
"_defaultOrder": 29,
"_isFastLaunch": true,
"category": "Accelerated computing",
"gpuNum": 1,
"hideHardwareSpecs": false,
"memoryGiB": 16,
"name": "ml.g4dn.xlarge",
"vcpuNum": 4
},
{
"_defaultOrder": 30,
"_isFastLaunch": false,
"category": "Accelerated computing",
"gpuNum": 1,
"hideHardwareSpecs": false,
"memoryGiB": 32,
"name": "ml.g4dn.2xlarge",
"vcpuNum": 8
},
{
"_defaultOrder": 31,
"_isFastLaunch": false,
"category": "Accelerated computing",
"gpuNum": 1,
"hideHardwareSpecs": false,
"memoryGiB": 64,
"name": "ml.g4dn.4xlarge",
"vcpuNum": 16
},
{
"_defaultOrder": 32,
"_isFastLaunch": false,
"category": "Accelerated computing",
"gpuNum": 1,
"hideHardwareSpecs": false,
"memoryGiB": 128,
"name": "ml.g4dn.8xlarge",
"vcpuNum": 32
},
{
"_defaultOrder": 33,
"_isFastLaunch": false,
"category": "Accelerated computing",
"gpuNum": 4,
"hideHardwareSpecs": false,
"memoryGiB": 192,
"name": "ml.g4dn.12xlarge",
"vcpuNum": 48
},
{
"_defaultOrder": 34,
"_isFastLaunch": false,
"category": "Accelerated computing",
"gpuNum": 1,
"hideHardwareSpecs": false,
"memoryGiB": 256,
"name": "ml.g4dn.16xlarge",
"vcpuNum": 64
},
{
"_defaultOrder": 35,
"_isFastLaunch": false,
"category": "Accelerated computing",
"gpuNum": 1,
"hideHardwareSpecs": false,
"memoryGiB": 61,
"name": "ml.p3.2xlarge",
"vcpuNum": 8
},
{
"_defaultOrder": 36,
"_isFastLaunch": false,
"category": "Accelerated computing",
"gpuNum": 4,
"hideHardwareSpecs": false,
"memoryGiB": 244,
"name": "ml.p3.8xlarge",
"vcpuNum": 32
},
{
"_defaultOrder": 37,
"_isFastLaunch": false,
"category": "Accelerated computing",
"gpuNum": 8,
"hideHardwareSpecs": false,
"memoryGiB": 488,
"name": "ml.p3.16xlarge",
"vcpuNum": 64
},
{
"_defaultOrder": 38,
"_isFastLaunch": false,
"category": "Accelerated computing",
"gpuNum": 8,
"hideHardwareSpecs": false,
"memoryGiB": 768,
"name": "ml.p3dn.24xlarge",
"vcpuNum": 96
},
{
"_defaultOrder": 39,
"_isFastLaunch": false,
"category": "Memory Optimized",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 16,
"name": "ml.r5.large",
"vcpuNum": 2
},
{
"_defaultOrder": 40,
"_isFastLaunch": false,
"category": "Memory Optimized",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 32,
"name": "ml.r5.xlarge",
"vcpuNum": 4
},
{
"_defaultOrder": 41,
"_isFastLaunch": false,
"category": "Memory Optimized",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 64,
"name": "ml.r5.2xlarge",
"vcpuNum": 8
},
{
"_defaultOrder": 42,
"_isFastLaunch": false,
"category": "Memory Optimized",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 128,
"name": "ml.r5.4xlarge",
"vcpuNum": 16
},
{
"_defaultOrder": 43,
"_isFastLaunch": false,
"category": "Memory Optimized",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 256,
"name": "ml.r5.8xlarge",
"vcpuNum": 32
},
{
"_defaultOrder": 44,
"_isFastLaunch": false,
"category": "Memory Optimized",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 384,
"name": "ml.r5.12xlarge",
"vcpuNum": 48
},
{
"_defaultOrder": 45,
"_isFastLaunch": false,
"category": "Memory Optimized",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 512,
"name": "ml.r5.16xlarge",
"vcpuNum": 64
},
{
"_defaultOrder": 46,
"_isFastLaunch": false,
"category": "Memory Optimized",
"gpuNum": 0,
"hideHardwareSpecs": false,
"memoryGiB": 768,
"name": "ml.r5.24xlarge",
"vcpuNum": 96
},
{
"_defaultOrder": 47,
"_isFastLaunch": false,
"category": "Accelerated computing",
"gpuNum": 1,
"hideHardwareSpecs": false,
"memoryGiB": 16,
"name": "ml.g5.xlarge",
"vcpuNum": 4
},
{
"_defaultOrder": 48,
"_isFastLaunch": false,
"category": "Accelerated computing",
"gpuNum": 1,
"hideHardwareSpecs": false,
"memoryGiB": 32,
"name": "ml.g5.2xlarge",
"vcpuNum": 8
},
{
"_defaultOrder": 49,
"_isFastLaunch": false,
"category": "Accelerated computing",
"gpuNum": 1,
"hideHardwareSpecs": false,
"memoryGiB": 64,
"name": "ml.g5.4xlarge",
"vcpuNum": 16
},
{
"_defaultOrder": 50,
"_isFastLaunch": false,
"category": "Accelerated computing",
"gpuNum": 1,
"hideHardwareSpecs": false,
"memoryGiB": 128,
"name": "ml.g5.8xlarge",
"vcpuNum": 32
},
{
"_defaultOrder": 51,
"_isFastLaunch": false,
"category": "Accelerated computing",
"gpuNum": 1,
"hideHardwareSpecs": false,
"memoryGiB": 256,
"name": "ml.g5.16xlarge",
"vcpuNum": 64
},
{
"_defaultOrder": 52,
"_isFastLaunch": false,
"category": "Accelerated computing",
"gpuNum": 4,
"hideHardwareSpecs": false,
"memoryGiB": 192,
"name": "ml.g5.12xlarge",
"vcpuNum": 48
},
{
"_defaultOrder": 53,
"_isFastLaunch": false,
"category": "Accelerated computing",
"gpuNum": 4,
"hideHardwareSpecs": false,
"memoryGiB": 384,
"name": "ml.g5.24xlarge",
"vcpuNum": 96
},
{
"_defaultOrder": 54,
"_isFastLaunch": false,
"category": "Accelerated computing",
"gpuNum": 8,
"hideHardwareSpecs": false,
"memoryGiB": 768,
"name": "ml.g5.48xlarge",
"vcpuNum": 192
},
{
"_defaultOrder": 55,
"_isFastLaunch": false,
"category": "Accelerated computing",
"gpuNum": 8,
"hideHardwareSpecs": false,
"memoryGiB": 1152,
"name": "ml.p4d.24xlarge",
"vcpuNum": 96
},
{
"_defaultOrder": 56,
"_isFastLaunch": false,
"category": "Accelerated computing",
"gpuNum": 8,
"hideHardwareSpecs": false,
"memoryGiB": 1152,
"name": "ml.p4de.24xlarge",
"vcpuNum": 96
}
],
"instance_type": "ml.g4dn.xlarge",
"kernelspec": {
"display_name": "Python 3 (PyTorch 1.10 Python 3.8 GPU Optimized)",
"language": "python",
"name": "python3__SAGEMAKER_INTERNAL__arn:aws:sagemaker:us-west-2:236514542706:image/pytorch-1.10-gpu-py38"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.10"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment