|
@@ -65,9 +65,9 @@
|
|
|
"name": "stdout",
|
|
"name": "stdout",
|
|
|
"output_type": "stream",
|
|
"output_type": "stream",
|
|
|
"text": [
|
|
"text": [
|
|
|
- "numpy version: 1.25.2\n",
|
|
|
|
|
- "torch version: 2.2.1\n",
|
|
|
|
|
- "transformers version: 4.33.2\n"
|
|
|
|
|
|
|
+ "numpy version: 1.24.3\n",
|
|
|
|
|
+ "torch version: 2.3.0\n",
|
|
|
|
|
+ "transformers version: 4.41.2\n"
|
|
|
]
|
|
]
|
|
|
}
|
|
}
|
|
|
],
|
|
],
|
|
@@ -85,16 +85,6 @@
|
|
|
"id": "ffc17d7d-bcd8-42ee-82a9-04fd55acf15d",
|
|
"id": "ffc17d7d-bcd8-42ee-82a9-04fd55acf15d",
|
|
|
"metadata": {},
|
|
"metadata": {},
|
|
|
"outputs": [
|
|
"outputs": [
|
|
|
- {
|
|
|
|
|
- "name": "stderr",
|
|
|
|
|
- "output_type": "stream",
|
|
|
|
|
- "text": [
|
|
|
|
|
- "/Users/sebastian/miniforge3/envs/book/lib/python3.11/site-packages/transformers/utils/generic.py:311: UserWarning: torch.utils._pytree._register_pytree_node is deprecated. Please use torch.utils._pytree.register_pytree_node instead.\n",
|
|
|
|
|
- " torch.utils._pytree._register_pytree_node(\n",
|
|
|
|
|
- "/Users/sebastian/miniforge3/envs/book/lib/python3.11/site-packages/transformers/utils/generic.py:311: UserWarning: torch.utils._pytree._register_pytree_node is deprecated. Please use torch.utils._pytree.register_pytree_node instead.\n",
|
|
|
|
|
- " torch.utils._pytree._register_pytree_node(\n"
|
|
|
|
|
- ]
|
|
|
|
|
- },
|
|
|
|
|
{
|
|
{
|
|
|
"data": {
|
|
"data": {
|
|
|
"text/plain": [
|
|
"text/plain": [
|
|
@@ -162,10 +152,10 @@
|
|
|
"}\n",
|
|
"}\n",
|
|
|
"\n",
|
|
"\n",
|
|
|
"model_configs = {\n",
|
|
"model_configs = {\n",
|
|
|
- " \"gpt2-small\": {\"emb_dim\": 768, \"n_layers\": 12, \"n_heads\": 12},\n",
|
|
|
|
|
- " \"gpt2-medium\": {\"emb_dim\": 1024, \"n_layers\": 24, \"n_heads\": 16},\n",
|
|
|
|
|
- " \"gpt2-large\": {\"emb_dim\": 1280, \"n_layers\": 36, \"n_heads\": 20},\n",
|
|
|
|
|
- " \"gpt2-xl\": {\"emb_dim\": 1600, \"n_layers\": 48, \"n_heads\": 25},\n",
|
|
|
|
|
|
|
+ " \"gpt2-small (124M)\": {\"emb_dim\": 768, \"n_layers\": 12, \"n_heads\": 12},\n",
|
|
|
|
|
+ " \"gpt2-medium (355M)\": {\"emb_dim\": 1024, \"n_layers\": 24, \"n_heads\": 16},\n",
|
|
|
|
|
+ " \"gpt2-large (774M)\": {\"emb_dim\": 1280, \"n_layers\": 36, \"n_heads\": 20},\n",
|
|
|
|
|
+ " \"gpt2-xl (1558M)\": {\"emb_dim\": 1600, \"n_layers\": 48, \"n_heads\": 25},\n",
|
|
|
"}\n",
|
|
"}\n",
|
|
|
"\n",
|
|
"\n",
|
|
|
"\n",
|
|
"\n",
|
|
@@ -242,7 +232,7 @@
|
|
|
"name": "stderr",
|
|
"name": "stderr",
|
|
|
"output_type": "stream",
|
|
"output_type": "stream",
|
|
|
"text": [
|
|
"text": [
|
|
|
- "/var/folders/jg/tpqyh1fd5js5wsr1d138k3n40000gn/T/ipykernel_32618/3877979348.py:4: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n",
|
|
|
|
|
|
|
+ "/tmp/ipykernel_9385/3877979348.py:4: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).\n",
|
|
|
" return torch.nn.Parameter(torch.tensor(right))\n"
|
|
" return torch.nn.Parameter(torch.tensor(right))\n"
|
|
|
]
|
|
]
|
|
|
}
|
|
}
|
|
@@ -255,13 +245,12 @@
|
|
|
"gpt = GPTModel(BASE_CONFIG)\n",
|
|
"gpt = GPTModel(BASE_CONFIG)\n",
|
|
|
"\n",
|
|
"\n",
|
|
|
"device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
|
|
"device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
|
|
|
- "load_weights(gpt, gpt_hf)\n",
|
|
|
|
|
- "gpt.to(device);"
|
|
|
|
|
|
|
+ "load_weights(gpt, gpt_hf)"
|
|
|
]
|
|
]
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
"cell_type": "code",
|
|
"cell_type": "code",
|
|
|
- "execution_count": 8,
|
|
|
|
|
|
|
+ "execution_count": 9,
|
|
|
"id": "4ddd0d51-3ade-4890-9bab-d63f141d095f",
|
|
"id": "4ddd0d51-3ade-4890-9bab-d63f141d095f",
|
|
|
"metadata": {},
|
|
"metadata": {},
|
|
|
"outputs": [
|
|
"outputs": [
|
|
@@ -285,8 +274,8 @@
|
|
|
"tokenizer = tiktoken.get_encoding(\"gpt2\")\n",
|
|
"tokenizer = tiktoken.get_encoding(\"gpt2\")\n",
|
|
|
"\n",
|
|
"\n",
|
|
|
"token_ids = generate(\n",
|
|
"token_ids = generate(\n",
|
|
|
- " model=gpt,\n",
|
|
|
|
|
- " idx=text_to_token_ids(\"Every effort moves\", tokenizer),\n",
|
|
|
|
|
|
|
+ " model=gpt.to(device),\n",
|
|
|
|
|
+ " idx=text_to_token_ids(\"Every effort moves\", tokenizer).to(device),\n",
|
|
|
" max_new_tokens=30,\n",
|
|
" max_new_tokens=30,\n",
|
|
|
" context_size=BASE_CONFIG[\"context_length\"],\n",
|
|
" context_size=BASE_CONFIG[\"context_length\"],\n",
|
|
|
" top_k=1,\n",
|
|
" top_k=1,\n",
|