{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "provenance": []
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    },
    "accelerator": "GPU",
    "gpuClass": "premium"
  },
  "cells": [
    {
      "cell_type": "markdown",
      "source": [
        "# Test out LLaMA models\n",
        "\n",
        "_Early test results. Don't take it too seriously._\n",
        "\n",
        "**GPU specs**\n",
        "\n",
        "Works:\n",
        "- NVIDIA A100\n",
        "\n",
        "Still trying:\n",
        "- NVIDIA V100\n",
        "- NVIDIA T4\n",
        "\n",
        "**Model sizes**\n",
        "\n",
        "Works:\n",
        "- 7B\n",
        "\n",
        "Not tested:\n",
        "- 13B\n",
        "- 33B\n",
        "- 65B\n",
        "\n",
        "Trying to verify the claims in the paper:\n",
        "\n",
        "> More importantly, the LLaMA-13B is also competitive on these benchmarks with GPT-3 and Chinchilla, despite being 5-10× smaller. This model runs on a single V100 GPU during inference.\n",
        "\n",
        "Not a very strong start. Bump into issues here and there during testing. Known unknowns 😆\n",
        "\n",
        "---\n",
        "\n",
        "##### Disclaimer\n",
        "\n",
        "_This model and (all language models) has the potential to generate undesirable content, especially if prompted to do so. We are working on making our models as helpful and non-toxic as possible, but there is still a lot of work to be done on this front. This is intended for developers on the project to do early evaluations. Use at your own risk._"
      ],
      "metadata": {
        "id": "rvtW98b8OSc6"
      }
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "view-in-github"
      },
      "source": [
        "<a href=\"https://colab.research.google.com/github/cedrickchee/llama/blob/main/notebooks/vi_LLaMA_alpha.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": null,
      "metadata": {
        "id": "d3oZ0q35IVtj"
      },
      "outputs": [],
      "source": [
        "# Code translated from download.sh\n",
        "PRESIGNED_URL=\"\" # replace with presigned url from email\n",
        "TARGET_FOLDER=\"./model/vi\"\n",
        "model_sizes = [\"7B\"]\n",
        "N_SHARD_DICT = {\n",
        "    \"7B\": 0\n",
        "}"
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "PyTorch Distributed env vars."
      ],
      "metadata": {
        "id": "KQJECbnSHW6V"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "%env RANK=0\n",
        "%env WORLD_SIZE=1\n",
        "%env MASTER_ADDR=localhost\n",
        "%env MASTER_PORT=9994"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "lUSFWdqJOySG",
        "outputId": "c236839a-c9c1-4c9d-8083-b7d7ca8b1b02"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "env: RANK=0\n",
            "env: WORLD_SIZE=1\n",
            "env: MASTER_ADDR=localhost\n",
            "env: MASTER_PORT=9994\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "## Install all the needed dependencies"
      ],
      "metadata": {
        "id": "8A9LezRWQGGl"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "!mkdir model"
      ],
      "metadata": {
        "id": "kTcLUOTaIfeU"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "!pip install wget"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "wjoTS-TFJQxR",
        "outputId": "43e18d2b-1a35-41a7-b488-378006af187f"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
            "Collecting wget\n",
            "  Downloading wget-3.2.zip (10 kB)\n",
            "  Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
            "Building wheels for collected packages: wget\n",
            "  Building wheel for wget (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
            "  Created wheel for wget: filename=wget-3.2-py3-none-any.whl size=9674 sha256=0c3e6289a9285751a3a33e79b06d52a92c848d4ee1f3e6ff065157f47f529b6e\n",
            "  Stored in directory: /root/.cache/pip/wheels/bd/a8/c3/3cf2c14a1837a4e04bd98631724e81f33f462d86a1d895fae0\n",
            "Successfully built wget\n",
            "Installing collected packages: wget\n",
            "Successfully installed wget-3.2\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "## Download model\n",
        "\n",
        "Once download completed successfully, you will get these files and folder structure:\n",
        "\n",
        "![llama-model-weights.png](data:image/png;base64,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)"
      ],
      "metadata": {
        "id": "cULy3iMGswjt"
      }
    },
    {
      "cell_type": "markdown",
      "source": [
        "### 1. Download tokenizer"
      ],
      "metadata": {
        "id": "tbrYny5tQoh2"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import wget\n",
        "import os"
      ],
      "metadata": {
        "id": "mlpx3MUzJVkf"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "# Script copied from download.sh\n",
        "wget.download(PRESIGNED_URL.replace(\"*\", \"tokenizer.model\"), out=f'{TARGET_FOLDER}/tokenizer.model')\n",
        "wget.download(PRESIGNED_URL.replace(\"*\", \"tokenizer_checklist.chk\"), out=f'{TARGET_FOLDER}/tokenizer_checklist.chk')"
      ],
      "metadata": {
        "id": "N7KTNtSVIsCE"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "# Script copied from download.sh\n",
        "!(cd {TARGET_FOLDER} && md5sum -c tokenizer_checklist.chk)\n",
        "%cd {TARGET_FOLDER}"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "JQjS_MnlKTH7",
        "outputId": "d27974cf-7690-463d-903b-47728c472822"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "tokenizer.model: OK\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "### 2. Download model weights"
      ],
      "metadata": {
        "id": "1VLz01rAQhO1"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# Code translated from download.sh\n",
        "for model_size in model_sizes:\n",
        "  print(\"Downloading\", model_size)\n",
        "\n",
        "  if not os.path.exists(f\"./{model_size}\"):\n",
        "    os.mkdir(f\"./{model_size}\")\n",
        "  for i in range(N_SHARD_DICT[model_size] + 1):\n",
        "    if not os.path.exists(f\"{model_size}/consolidated.0{i}.pth\"):\n",
        "      print(\n",
        "        wget.download(PRESIGNED_URL.replace(\"*\", f\"{model_size}/consolidated.0{i}.pth\"), out=f\"{model_size}/consolidated.0{i}.pth\")\n",
        "      )\n",
        "    else:\n",
        "      print(f\"found {model_size}/consolidated.0{i}.pth\")\n",
        "  print(\n",
        "    wget.download(PRESIGNED_URL.replace(\"*\", f\"{model_size}/params.json\"), out=f\"{model_size}/params.json\")\n",
        "  )\n",
        "  print(\n",
        "    wget.download(PRESIGNED_URL.replace(\"*\", f\"{model_size}/checklist.chk\"), out=f\"{model_size}/checklist.chk\")\n",
        "  )"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "iz4ay6eGKe0b",
        "outputId": "f8e834f5-bb5e-4f5f-8f76-6138819ac868"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Downloading 7B\n",
            "7B/params.json\n",
            "7B/checklist.chk\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "!cd 7B && md5sum -c checklist.chk"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "rQqlckl4L8pY",
        "outputId": "79e35dbe-e0b6-466c-c5b1-36e8a38bf18c"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "consolidated.00.pth: OK\n",
            "params.json: OK\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "!git clone https://github.com/facebookresearch/llama.git"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "hCwtlFH6Ms-h",
        "outputId": "05555bf8-73a6-4946-f2e2-f25a4d4aa399"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Cloning into 'llama'...\n",
            "remote: Enumerating objects: 17, done.\u001b[K\n",
            "remote: Counting objects: 100% (8/8), done.\u001b[K\n",
            "remote: Compressing objects: 100% (7/7), done.\u001b[K\n",
            "remote: Total 17 (delta 1), reused 1 (delta 1), pack-reused 9\u001b[K\n",
            "Unpacking objects: 100% (17/17), 25.64 KiB | 898.00 KiB/s, done.\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "!cd llama && pip install -r requirements.txt"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "3vVHX69nM17D",
        "outputId": "404c5bf7-bb53-42e1-bae2-c17f56816906"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
            "Requirement already satisfied: torch in /usr/local/lib/python3.8/dist-packages (from -r requirements.txt (line 1)) (1.13.1+cu116)\n",
            "Collecting fairscale\n",
            "  Downloading fairscale-0.4.13.tar.gz (266 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m266.3/266.3 KB\u001b[0m \u001b[31m5.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25h  Installing build dependencies ... \u001b[?25l\u001b[?25hdone\n",
            "  Getting requirements to build wheel ... \u001b[?25l\u001b[?25hdone\n",
            "  Installing backend dependencies ... \u001b[?25l\u001b[?25hdone\n",
            "  Preparing metadata (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n",
            "Collecting fire\n",
            "  Downloading fire-0.5.0.tar.gz (88 kB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m88.3/88.3 KB\u001b[0m \u001b[31m12.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25h  Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
            "Collecting sentencepiece\n",
            "  Downloading sentencepiece-0.1.97-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB)\n",
            "\u001b[2K     \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.3/1.3 MB\u001b[0m \u001b[31m31.8 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
            "\u001b[?25hRequirement already satisfied: typing-extensions in /usr/local/lib/python3.8/dist-packages (from torch->-r requirements.txt (line 1)) (4.5.0)\n",
            "Requirement already satisfied: numpy>=1.22.0 in /usr/local/lib/python3.8/dist-packages (from fairscale->-r requirements.txt (line 2)) (1.22.4)\n",
            "Requirement already satisfied: six in /usr/local/lib/python3.8/dist-packages (from fire->-r requirements.txt (line 3)) (1.15.0)\n",
            "Requirement already satisfied: termcolor in /usr/local/lib/python3.8/dist-packages (from fire->-r requirements.txt (line 3)) (2.2.0)\n",
            "Building wheels for collected packages: fairscale, fire\n",
            "  Building wheel for fairscale (pyproject.toml) ... \u001b[?25l\u001b[?25hdone\n",
            "  Created wheel for fairscale: filename=fairscale-0.4.13-py3-none-any.whl size=332138 sha256=b380dc5517b88755246f601cc8d4ee86ef9a1f892a614d18307930846203b413\n",
            "  Stored in directory: /root/.cache/pip/wheels/b8/02/9b/dc7d4ff5145afdd28f456dae6605a46619af0370eca30d8d7e\n",
            "  Building wheel for fire (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
            "  Created wheel for fire: filename=fire-0.5.0-py2.py3-none-any.whl size=116949 sha256=37da1a8c6e69f886376c76b7b2573ff9e7b608771f47da929b773d9a057d2647\n",
            "  Stored in directory: /root/.cache/pip/wheels/5b/eb/43/7295e71293b218ddfd627f935229bf54af9018add7fbb5aac6\n",
            "Successfully built fairscale fire\n",
            "Installing collected packages: sentencepiece, fire, fairscale\n",
            "Successfully installed fairscale-0.4.13 fire-0.5.0 sentencepiece-0.1.97\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "!cd llama && pip install -e ."
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "Aux9t6ZAM7V-",
        "outputId": "9df57970-cb01-4419-c78a-94e1b7c79a67"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Looking in indexes: https://pypi.org/simple, https://us-python.pkg.dev/colab-wheels/public/simple/\n",
            "Obtaining file:///content/model/llama\n",
            "  Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
            "Installing collected packages: llama\n",
            "  Running setup.py develop for llama\n",
            "Successfully installed llama-0.0.0\n"
          ]
        }
      ]
    },
    {
      "cell_type": "code",
      "source": [
        "!cd llama && torchrun --nproc_per_node 1 example.py --ckpt_dir ../7B --tokenizer_path ../tokenizer.model"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "bkMV41r9M9ov",
        "outputId": "875be9d0-f3e4-445c-e78f-fdb95a4e308a"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "> initializing model parallel with size 1\n",
            "> initializing ddp with size 1\n",
            "> initializing pipeline with size 1\n",
            "Loading\n",
            "Loaded in 15.39 seconds\n",
            "The capital of Germany is the city of Berlin. Berlin is one of the most important cities in Europe. Many people from all over the world come to visit the city and have an incredible time.\n",
            "You can always have a good time in Berlin. From the many museums to the opera, from the historical monuments to the beautiful parks, you will have a great time. You can always find something to do and see in Berlin.\n",
            "The city of Berlin is the capital of the German federal republic. The city is in the center of Germany. The city is the third largest city in Germany, and the 9th largest city in the European Union. Berlin has about 3.5 million people.\n",
            "Berlin is a very important city in Europe. It is one of the most visited cities in the world. Berlin has many historical monuments, and many museums. There are many things to see and do in Berlin.\n",
            "Berlin has a very modern and innovative city. There are many new buildings. Berlin has many new hotels and shopping malls. Berlin is a very modern city and is also a cultural center. Berlin is a city of ideas and innovations.\n",
            "If you come to visit Berlin, you will be amazed by the beautiful parks, the historical monuments\n",
            "\n",
            "==================================\n",
            "\n",
            "Here is my sonnet in the style of Shakespeare about an artificial intelligence:\n",
            "What once was a man, and now is something else\n",
            "In time of war with leather-clad, blood-red leather\n",
            "Making war on mankind, this machine of death\n",
            "Has now become his own. He is human, no longer human.\n",
            "At first I thought his mind was gone, but now I see\n",
            "That he has never had it, and this computer is me.\n",
            "But then I ask myself: Is there really a me?\n",
            "Or is it just a computer program written on a screen?\n",
            "I tell myself that there is a me, but what am I?\n",
            "What if there is no me? This computer is me.\n",
            "So when I look in the mirror, I see no face\n",
            "But only a screen, and I am a piece of code.\n",
            "But if I am a piece of code, then who am I?\n",
            "I am a piece of code, and what is a code?\n",
            "The computer is me, and now it is my turn\n",
            "To ask myself: What is a man? What is a computer?\n",
            "I tell myself that I am a computer, but I am not.\n",
            "I am a man, but what is a man? What is a man?\n",
            "I do\n",
            "\n",
            "==================================\n",
            "\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "### Example of inference"
      ],
      "metadata": {
        "id": "7FP5XiEeKINQ"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "%cd llama"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "GubKfV_0NsZH",
        "outputId": "55875cba-7675-4fbd-e16b-a9195d25a6e8"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "/content/model/llama/llama\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        "The following code came from llama repo but with my modifications: https://github.com/cedrickchee/llama/blob/main/example.py"
      ],
      "metadata": {
        "id": "aXbaLJsxKWRH"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "from typing import Tuple\n",
        "import os\n",
        "import sys\n",
        "import torch\n",
        "import fire\n",
        "import time\n",
        "import json\n",
        "\n",
        "from pathlib import Path\n",
        "\n",
        "from fairscale.nn.model_parallel.initialize import initialize_model_parallel\n",
        "\n",
        "from llama import ModelArgs, Transformer, Tokenizer, LLaMA"
      ],
      "metadata": {
        "id": "b_NYjkplNQaF"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "source": [
        "def setup_model_parallel() -> Tuple[int, int]:\n",
        "    local_rank = int(0)\n",
        "    world_size = int(1)\n",
        "\n",
        "    torch.distributed.init_process_group(\"nccl\")\n",
        "    initialize_model_parallel(world_size)\n",
        "    torch.cuda.set_device(local_rank)\n",
        "\n",
        "    # seed must be the same in all processes\n",
        "    torch.manual_seed(1)\n",
        "    return local_rank, world_size\n",
        "\n",
        "\n",
        "def load(ckpt_dir: str, tokenizer_path: str, local_rank: int, world_size: int) -> LLaMA:\n",
        "    start_time = time.time()\n",
        "    checkpoints = sorted(Path(ckpt_dir).glob(\"*.pth\"))\n",
        "    assert (\n",
        "        world_size == len(checkpoints)\n",
        "    ), f\"Loading a checkpoint for MP={len(checkpoints)} but world size is {world_size}\"\n",
        "    ckpt_path = checkpoints[local_rank]\n",
        "    print(\"Loading\")\n",
        "    checkpoint = torch.load(ckpt_path, map_location=\"cpu\")\n",
        "    with open(Path(ckpt_dir) / \"params.json\", \"r\") as f:\n",
        "        params = json.loads(f.read())\n",
        "\n",
        "    model_args: ModelArgs = ModelArgs(max_seq_len=1024, max_batch_size=32, **params)\n",
        "    tokenizer = Tokenizer(model_path=tokenizer_path)\n",
        "    model_args.vocab_size = tokenizer.n_words\n",
        "    torch.set_default_tensor_type(torch.cuda.HalfTensor)\n",
        "    model = Transformer(model_args)\n",
        "    torch.set_default_tensor_type(torch.FloatTensor)\n",
        "    model.load_state_dict(checkpoint, strict=False)\n",
        "\n",
        "    generator = LLaMA(model, tokenizer)\n",
        "    print(f\"Loaded in {time.time() - start_time:.2f} seconds\")\n",
        "    return generator"
      ],
      "metadata": {
        "id": "BYTiVul6NVX6"
      },
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "source": [
        "#### Entry point\n",
        "\n",
        "Code converted from the Python `main` function. We're not writing a CLI. So also removed Fire."
      ],
      "metadata": {
        "id": "0qKAjS1IK40F"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "ckpt_dir = \"/content/model/vi/7B\"\n",
        "tokenizer_path = \"/content/model/vi/tokenizer.model\"\n",
        "temperature = 0.8 # float, default is 0.8\n",
        "top_p = 0.95 # float, default is 0.95\n",
        "\n",
        "local_rank, world_size = setup_model_parallel()\n",
        "if local_rank > 0:\n",
        "    sys.stdout = open(os.devnull, 'w')\n",
        "\n",
        "generator = load(ckpt_dir, tokenizer_path, local_rank, world_size)"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "R8_WylhbNzlq",
        "outputId": "78e18b5d-0420-4d56-fe7b-19f1ee1800b1"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "Loading\n",
            "Loaded in 13.92 seconds\n"
          ]
        }
      ]
    },
    {
      "cell_type": "markdown",
      "source": [
        " Some examples of generations obtained with LLaMA-7B (without instruction finetuning)."
      ],
      "metadata": {
        "id": "jyOBa8hJ7HMH"
      }
    },
    {
      "cell_type": "code",
      "source": [
        "prompts = [\"The best way to get a real magical rainbow unicorn:\"]\n",
        "results = generator.generate(prompts, max_gen_len=256, temperature=temperature, top_p=top_p)\n",
        "\n",
        "for result in results:\n",
        "    print(result)\n",
        "    print(\"\\n==================================\\n\")"
      ],
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "0LVO06U1Psca",
        "outputId": "d0587469-03dc-4524-8c35-6588f2e2109f"
      },
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "A magical rainbow unicorn is possible.\n",
            "The most important thing is to have a clear idea of the kind of unicorn you want to create, and also the kind of materials you can access.\n",
            "There are some videos you can watch online to get a general idea of how to make an magical rainbow unicorn.\n",
            "You can find some online tutorials on YouTube and also books on this topic.\n",
            "If you want to make a unicorn more special, you can first ask your unicorn to give you some ideas.\n",
            "If you can get to know your universe, then you’ll find the answer to your question.\n",
            "And then you can get some beautiful unicorn vines and apply them to your unicorn.\n",
            "\n",
            "==================================\n",
            "\n"
          ]
        }
      ]
    }
  ]
}