diff --git a/notebooks/official/prediction/llm_streaming_prediction.ipynb b/notebooks/official/prediction/llm_streaming_prediction.ipynb index b111ee25d..faf2f30d1 100644 --- a/notebooks/official/prediction/llm_streaming_prediction.ipynb +++ b/notebooks/official/prediction/llm_streaming_prediction.ipynb @@ -32,25 +32,27 @@ "# Vertex AI LLM and streaming prediction\n", "\n", "\n", - " \n", + " \n", + " \n", + " \n", - " \n", - " \n", - "
\n", + " \n", + " \n", + " \"Google
Open in Colab\n", + "
\n", + "
\n", + " \n", + " \"Google
Open in Colab Enterprise\n", + "
\n", + "
\n", + " \n", + " \"Vertex
Open in Workbench\n", + "
\n", + "
\n", " \n", - " \"GitHub\n", - " View on GitHub\n", + " \"GitHub
View on GitHub\n", "
\n", "
\n", - " \n", - " \"Colab Run in Colab\n", - " \n", - " \n", - " \n", - " \"Vertex\n", - " Open in Vertex AI Workbench\n", - " \n", - "
\n", - "


" + "" ] }, { @@ -127,157 +129,122 @@ { "cell_type": "markdown", "metadata": { - "id": "install_mlops" + "id": "4b331e2fd155" }, "source": [ - "## Installations\n", - "\n", - "Install the packages required for executing this notebook." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "NQ6SdFxji8ks" - }, - "outputs": [], - "source": [ - "! pip3 install --upgrade --quiet google-cloud-aiplatform" + "## Get Started" ] }, { "cell_type": "markdown", "metadata": { - "id": "restart" + "id": "a2c2cb2109a0" }, "source": [ - "### Colab only: Uncomment the following cell to restart the kernel" + "### Install Vertex AI SDK for Python and other required packages\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "id": "D-ZBOjErv5mM" + "id": "24166b67eab5" }, "outputs": [], "source": [ - "# Automatically restart kernel after installs so that your environment can access the new packages\n", - "# import IPython\n", - "\n", - "# app = IPython.Application.instance()\n", - "# app.kernel.do_shutdown(True)" + "! pip3 install --upgrade --quiet google-cloud-aiplatform \\\n", + " pandas" ] }, { "cell_type": "markdown", "metadata": { - "id": "yfEglUHQk9S3" + "id": "ff555b32bab8" }, "source": [ - "## Before you begin\n", + "### Restart runtime (Colab only)\n", "\n", - "### Set your project ID\n", - "\n", - "**If you don't know your project ID**, try the following:\n", - "* Run `gcloud config list`.\n", - "* Run `gcloud projects list`.\n", - "* See the support page: [Locate the project ID](https://support.google.com/googleapi/answer/7014113)" + "To use the newly installed packages, you must restart the runtime on Google Colab." ] }, { "cell_type": "code", "execution_count": null, "metadata": { - "id": "set_project_id" + "id": "f09b4dff629a" + }, + "outputs": [], + "source": [ + "import sys\n", + "\n", + "if \"google.colab\" in sys.modules:\n", + "\n", + " import IPython\n", + "\n", + " app = IPython.Application.instance()\n", + " app.kernel.do_shutdown(True)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "ee775571c2b5" + }, + "source": [ + "
\n", + "⚠️ The kernel is going to restart. Wait until it's finished before continuing to the next step. ⚠️\n", + "
\n" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "92e68cfc3a90" + }, + "source": [ + "### Authenticate your notebook environment (Colab only)\n", + "\n", + "Authenticate your environment on Google Colab.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "46604f70e831" + }, + "outputs": [], + "source": [ + "import sys\n", + "\n", + "if \"google.colab\" in sys.modules:\n", + "\n", + " from google.colab import auth\n", + "\n", + " auth.authenticate_user()" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "4f872cd812d0" + }, + "source": [ + "### Set Google Cloud project information and initialize Vertex AI SDK for Python\n", + "\n", + "To get started using Vertex AI, you must have an existing Google Cloud project and [enable the Vertex AI API](https://console.cloud.google.com/flows/enableapi?apiid=aiplatform.googleapis.com). Learn more about [setting up a project and a development environment](https://cloud.google.com/vertex-ai/docs/start/cloud-environment)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "6ddefefd807a" }, "outputs": [], "source": [ "PROJECT_ID = \"[your-project-id]\" # @param {type:\"string\"}\n", - "\n", - "# Set the project id\n", - "! gcloud config set project {PROJECT_ID} --quiet" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "region" - }, - "source": [ - "#### Region\n", - "\n", - "You can also change the `REGION` variable used by Vertex AI. Learn more about [Vertex AI regions](https://cloud.google.com/vertex-ai/docs/general/locations)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "region" - }, - "outputs": [], - "source": [ - "REGION = \"us-central1\" # @param {type: \"string\"}" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "gcp_authenticate" - }, - "source": [ - "### Authenticate your Google Cloud account\n", - "\n", - "Depending on your Jupyter environment, you may have to manually authenticate. Follow the relevant instructions below.\n", - "\n", - "**1. Vertex AI Workbench**\n", - "* Do nothing as you are already authenticated.\n", - "\n", - "**2. Local JupyterLab instance, uncomment and run:**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "ce6043da7b33" - }, - "outputs": [], - "source": [ - "# ! gcloud auth login" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "0367eac06a10" - }, - "source": [ - "**3. Colab, uncomment and run:**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "21ad4dbb4a61" - }, - "outputs": [], - "source": [ - "# from google.colab import auth\n", - "# auth.authenticate_user()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "c13224697bfb" - }, - "source": [ - "**4. Service account or other**\n", - "* See how to grant Cloud Storage permissions to your service account at https://cloud.google.com/storage/docs/gsutil/commands/iam#ch-examples." + "LOCATION = \"us-central1\" # @param {type:\"string\"}" ] }, { @@ -286,7 +253,7 @@ "id": "bucket:mbsdk" }, "source": [ - "### Create a Cloud Storage bucket\n", + "#### Create a Cloud Storage bucket\n", "\n", "Create a storage bucket to store intermediate artifacts such as datasets." ] @@ -308,7 +275,7 @@ "id": "autoset_bucket" }, "source": [ - "**Only if your bucket doesn't already exist**: Run the following cell to create your Cloud Storage bucket." + "**If your bucket doesn't already exist**: Run the following cell to create your Cloud Storage bucket." ] }, { @@ -319,7 +286,29 @@ }, "outputs": [], "source": [ - "! gsutil mb -l {REGION} -p {PROJECT_ID} {BUCKET_URI}" + "! gsutil mb -l {LOCATION} -p {PROJECT_ID} {BUCKET_URI}" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "b7c2a8a91840" + }, + "source": [ + "#### Set Google Cloud project" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "d72078ee9da2" + }, + "outputs": [], + "source": [ + "import vertexai\n", + "\n", + "vertexai.init(project=PROJECT_ID, location=LOCATION, staging_bucket=BUCKET_URI)" ] }, { @@ -328,10 +317,7 @@ "id": "setup_vars" }, "source": [ - "### Set up variables\n", - "\n", - "Next, set up some variables used throughout the tutorial.\n", - "### Import libraries and define constants" + "## Import libraries" ] }, { @@ -342,32 +328,9 @@ }, "outputs": [], "source": [ - "import vertexai\n", "from vertexai.preview.language_models import TextGenerationModel" ] }, - { - "cell_type": "markdown", - "metadata": { - "id": "init_aip:mbsdk" - }, - "source": [ - "### Initialize Vertex AI SDK for Python\n", - "\n", - "Initialize the Vertex AI SDK for Python for your project and corresponding bucket." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "id": "oiraqRwdooE0" - }, - "outputs": [], - "source": [ - "vertexai.init(project=PROJECT_ID, location=REGION, staging_bucket=BUCKET_URI)" - ] - }, { "cell_type": "markdown", "metadata": { @@ -616,6 +579,7 @@ }, "outputs": [], "source": [ + "# Tuning model\n", "! gsutil cp gs://cloud-samples-data/vertex-ai/prediction/llm/q_a_train_with_context.jsonl {BUCKET_URI}/q_a_train_with_context.jsonl\n", "\n", "tuning_job = model3.tune_model(\n", @@ -635,6 +599,7 @@ }, "outputs": [], "source": [ + "# Make a prediction with the fine tuned model\n", "tuned_model = tuning_job.get_tuned_model()\n", "\n", "print(tuned_model.predict(\"Tell me some ideas combining VR and fitness:\"))" @@ -648,6 +613,7 @@ }, "outputs": [], "source": [ + "# List tuned model names\n", "model3.list_tuned_model_names()" ] }, @@ -659,6 +625,7 @@ }, "outputs": [], "source": [ + "# Get tuned model\n", "tuned_model4 = model3.get_tuned_model(\n", " tuned_model_name=model3.list_tuned_model_names()[0]\n", ")" @@ -672,6 +639,7 @@ }, "outputs": [], "source": [ + "# Make a prediction with the fine tuned model\n", "print(tuned_model4.predict(\"Brainstorm some ideas combining VR and fitness:\"))" ] }, @@ -722,6 +690,7 @@ }, "outputs": [], "source": [ + "# Tune pretrained model\n", "model4 = TextGenerationModel.from_pretrained(\"google/text-bison@001\")\n", "\n", "tuning_job = model4.tune_model(\n", @@ -741,6 +710,7 @@ }, "outputs": [], "source": [ + "# Make a prediction with the fine tuned model\n", "tuned_model = tuning_job.get_tuned_model()\n", "\n", "print(tuned_model.predict(\"Tell me some ideas combining VR and fitness:\"))" @@ -763,14 +733,14 @@ }, "outputs": [], "source": [ - "import os\n", + "delete_bucket = False\n", "\n", + "# Delete job\n", "batch_job_1.delete()\n", "batch_job_2.delete()\n", "\n", - "delete_bucket = False\n", - "if delete_bucket or os.getenv(\"IS_TESTING\"):\n", - " ! gsutil rm -rf {BUCKET_URI}" + "if delete_bucket:\n", + " ! gsutil -m rm -r $BUCKET_URI" ] } ],