From 5df2d26a2b120c57d7dbd2870e1f4d18ad90222a Mon Sep 17 00:00:00 2001 From: Julien Simon <3436143+juliensimon@users.noreply.github.com> Date: Mon, 19 Aug 2024 22:50:21 +0200 Subject: [PATCH] Sample notebook: model pretraining (#77) Co-authored-by: Julien Simon Co-authored-by: Tyler-Odenthal <113200203+Tyler-Odenthal@users.noreply.github.com> --- notebooks/model_pretraining.ipynb | 382 +++++++++++++++++++++++++++++ notebooks/model_pretraining_01.png | Bin 0 -> 70669 bytes 2 files changed, 382 insertions(+) create mode 100644 notebooks/model_pretraining.ipynb create mode 100644 notebooks/model_pretraining_01.png diff --git a/notebooks/model_pretraining.ipynb b/notebooks/model_pretraining.ipynb new file mode 100644 index 0000000..0089683 --- /dev/null +++ b/notebooks/model_pretraining.ipynb @@ -0,0 +1,382 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Pretraining a model on Arcee Cloud\n", + "\n", + "In this notebook, you will learn how to run continuous pretraining a model on Arcee Cloud. In this example, we'll train a Llama3-8B model on the Energy domain.\n", + "\n", + "In order to run this demo, you need a Starter account on Arcee Cloud. Please see our [pricing](https://www.arcee.ai/pricing) page for details.\n", + "\n", + "The Arcee documentation is available at [docs.arcee.ai](https://docs.arcee.ai/deployment/start-deployment)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Prerequisites\n", + "\n", + "Please [sign up](https://app.arcee.ai/account/signup) to Arcee Cloud and create an [API key](https://docs.arcee.ai/getting-arcee-api-key/getting-arcee-api-key).\n", + "\n", + "Then, please update the cell below with your API key. Remember to keep this key safe, and **DON'T COMMIT IT to one of your repositories**." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%env ARCEE_API_KEY=YOUR_API_KEY" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Create a new Python environment (optional but recommended) and install [arcee-python](https://github.com/arcee-ai/arcee-python)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Uncomment the next three lines to create a virtual environment\n", + "#!pip install -q virtualenv\n", + "#!virtualenv -q arcee-cloud\n", + "#!source arcee-cloud/bin/activate\n", + "\n", + "%pip install -q arcee-py" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import arcee\n", + "from IPython.display import Image" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Preparing our dataset\n", + "\n", + "We need a dataset that holds the appropriate domain knowledge on the Energy domain. Arcee Cloud can ingest data in a variety of formats, like PDF, JSON, XML, TXT, HTML, and CSV. Please check the [documentation](https://docs.arcee.ai/continuous-pretraining/upload-pretraining-data) for an up-to-date list of supported formats.\n", + "\n", + "\n", + "We assembled a collection of about 300 PDF reports from the [International Energy Agency]((https://www.iea.org/analysis?type=report)) and the [Energy Reports](https://www.sciencedirect.com/journal/energy-reports) journal. The total size of the dataset is 1.5GB and 16 million tokens. Please note that this is probably too small for efficient pretraining. For real-life applications, we recommend using at least 100 million tokens.\n", + "\n", + "For convenience, we have stored the dataset in this Google drive [folder](https://drive.google.com/drive/folders/1DX5hIuVfykHqz2gwLTu4MR9R6TTAxiEO?usp=sharing). However, please note that Arcee Cloud requires training datasets to be stored in Amazon S3, so we also uploaded the dataset to a \"customer\" bucket defined below. You will be able to use this bucket to run the rest of this notebook, but you won't be able to list its content. In real-life, you would of course use your own S3 bucket." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "dataset_bucket_name = \"juliensimon-datasets\"\n", + "dataset_name = \"energy-pdf\"\n", + "dataset_s3_uri=f\"s3://{dataset_bucket_name}/{dataset_name}\"\n", + "print(f\"Dataset S3 URI: {dataset_s3_uri}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The training code in Arcee Cloud runs in one of Arcee's AWS accounts. \n", + "\n", + "We need to allow this account to access the data stored in the bucket above (which is attached to a different AWS account). \n", + "\n", + "This setup is called \"cross-account access\" and it requires adding a policy to the bucket, allowing the Arcee account to read the data it stores. \n", + "\n", + "You'll find more information about cross-account access and bucket policies in the [AWS documentation](https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-walkthroughs-managing-access-example2.html). \n", + "\n", + "If you're unfamiliar with the process, or don't have the AWS permissions required, please contact your AWS administrator." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here is the bucket policy applied to the \"customer\" bucket. \n", + "\n", + "It gives Arcee's AWS account `812782781539` read and list permission on the \"customer\" bucket. Working with your bucket, you would need to update the `Resource` section with your bucket and prefixes. Then, you would either apply this bucket policy to your bucket, using either the AWS console or one of the AWS SDKs.\n", + " \n", + " \n", + " import boto3\n", + " import json\n", + "\n", + " bucket_policy = {\n", + " \"Version\": \"2012-10-17\",\n", + " \"Statement\": [\n", + " {\n", + " \"Effect\": \"Allow\",\n", + " \"Principal\": {\n", + " \"AWS\": \"arn:aws:iam::812782781539:root\"\n", + " },\n", + " \"Action\": [\n", + " \"s3:GetBucketLocation\",\n", + " \"s3:ListBucket\",\n", + " \"s3:GetObject\",\n", + " \"s3:GetObjectAttributes\",\n", + " \"s3:GetObjectTagging\"\n", + " ],\n", + " \"Resource\": [\n", + " \"arn:aws:s3:::juliensimon-datasets\",\n", + " \"arn:aws:s3:::juliensimon-datasets/*\"\n", + " ]\n", + " },\n", + " ]\n", + " }\n", + "\n", + " policy_string = json.dumps(bucket_policy)\n", + "\n", + " boto3.client('s3').put_bucket_policy(Bucket=\"juliensimon-datasets\", Policy=policy_string)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Uploading our dataset\n", + "\n", + "Now that Arcee Cloud can read the training dataset, let's upload it with the `upload_corpus_folder()` API." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "help(arcee.upload_corpus_folder)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "model_name = \"meta-llama/Meta-Llama-3-8B\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = arcee.upload_corpus_folder(\n", + " corpus=dataset_name,\n", + " s3_folder_url=dataset_s3_uri,\n", + " tokenizer_name=model_name,\n", + " block_size=8192 # see max_position_embeddings in https://huggingface.co/meta-llama/Meta-Llama-3-8B/blob/main/config.json\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from time import sleep\n", + "\n", + "while True:\n", + " response = arcee.corpus_status(dataset_name)\n", + " if response[\"processing_state\"] == \"processing\":\n", + " print(\"Upload is in progress. Waiting 30 seconds before checking again.\")\n", + " sleep(30)\n", + " else:\n", + " print(response)\n", + " break\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Pretraining our model\n", + "\n", + "Once the dataset has been uploaded, we can launch training with the `start_pretraining()` API." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "help(arcee.start_pretraining)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "pretraining_name=f\"{model_name}-{dataset_name}\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = arcee.start_pretraining(\n", + " pretraining_name=pretraining_name,\n", + " corpus=dataset_name,\n", + " base_model=model_name\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the Arcee Cloud console, we can see the training job has started. After a few minutes, you should see the training loss decreasing, indicating that the model is learning how to correctly predict the tokens present in your dataset." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "Image(\"model_pretraining_01.png\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Deploying our trained model\n", + "\n", + "Once training is complete, we can deploy and test the pretrained model. The model hasn't been aligned, so chances are it's not going to generate anything really useful. However, we should still check that the model is able to generate properly.\n", + "\n", + "As part of the Arcee Cloud free tier, model deployment is free of charge and the endpoint will be automatically shut down after 2 hours.\n", + "\n", + "Deployment should take 5-7 minutes. Please see the model deployment sample notebook for details." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "deployment_name = f\"{model_name}-{dataset_name}\"" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "response = arcee.start_deployment(deployment_name=deployment_name, pretraining=pretraining_name)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "while True:\n", + " response = arcee.deployment_status(deployment_name)\n", + " if response[\"deployment_processing_state\"] == \"pending\":\n", + " print(\"Deployment is in progress. Waiting 60 seconds before checking again.\")\n", + " sleep(60)\n", + " else:\n", + " print(response)\n", + " break" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Once the model endpoint is up and running, we can prompt the model with a domain-specific question." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "query = \"Is solar a good way to achieve net zero?\"\n", + "\n", + "response = arcee.generate(deployment_name=deployment_name, query=query)\n", + "print(response[\"text\"])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Stopping our deployment\n", + "\n", + "When we're done working with our model, we should stop the deployment to save resources and avoid unwanted charges.\n", + "\n", + "The `stop_deployment()` API only requires the deployment name." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "arcee.stop_deployment(deployment_name=deployment_name)\n", + "arcee.deployment_status(deployment_name)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This concludes the model pretraining demonstration. Thank you for your time!\n", + "\n", + "If you'd like to know more about using Arcee Cloud in your organization, please visit the [Arcee website](https://www.arcee.ai), or contact [sales@arcee.ai](mailto:sales@arcee.ai).\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "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.12.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/notebooks/model_pretraining_01.png b/notebooks/model_pretraining_01.png new file mode 100644 index 0000000000000000000000000000000000000000..3c89bd302e1227b5e4f5cee2cf95ba73c2b45951 GIT binary patch literal 70669 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∋~w;`4_F%)cBq%ZdqE+Wz~nq>59`*IVsFpI!0cs>-3_^arm@bf=)SR2T!A zE&L)N1(@>S>F^zG8k}ONbde`*<|SS}cW3X3*_BmD@Noks1+w9PAOSdyvDpvH2*5T9 zu2T$$5!{x>zov2@jm6e|@l8H}gG)RA8?-wksO0OZS5((=YBsX5-$h$t4$*3tSHGeQ z>qn=Oe#In<7TKK>AqW)*o<7>y)O0CpVesK96bV5TOaR9&0ccQ1g`kzEO)_&iT$AR7 z+O4OI-}x4GSJH9oJM4$~LuH9nSt-JMm!Z⋘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 literal 0 HcmV?d00001