From 2096f9c3bfe1946e13d0fe1e5bc89929bf398eaf Mon Sep 17 00:00:00 2001 From: Krrish Dholakia Date: Sun, 27 Aug 2023 22:26:15 -0700 Subject: [PATCH] updates to docs --- .../litellm_Test_Multiple_Providers.ipynb | 573 ++++++++++++++++++ .../litellm_Test_Multiple_Providers.md | 136 +++++ .../litellm_Test_Multiple_Providers_11_0.png | Bin 0 -> 26744 bytes .../litellm_Test_Multiple_Providers_14_0.png | Bin 0 -> 28936 bytes docs/my-website/sidebars.js | 3 +- 5 files changed, 711 insertions(+), 1 deletion(-) create mode 100644 cookbook/litellm_Test_Multiple_Providers.ipynb create mode 100644 docs/my-website/docs/tutorials/litellm_Test_Multiple_Providers.md create mode 100644 docs/my-website/docs/tutorials/litellm_Test_Multiple_Providers_files/litellm_Test_Multiple_Providers_11_0.png create mode 100644 docs/my-website/docs/tutorials/litellm_Test_Multiple_Providers_files/litellm_Test_Multiple_Providers_14_0.png diff --git a/cookbook/litellm_Test_Multiple_Providers.ipynb b/cookbook/litellm_Test_Multiple_Providers.ipynb new file mode 100644 index 000000000..f61130a9f --- /dev/null +++ b/cookbook/litellm_Test_Multiple_Providers.ipynb @@ -0,0 +1,573 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + } + }, + "cells": [ + { + "cell_type": "markdown", + "source": [ + "# Evaluate Multiple LLM Providers with LiteLLM\n", + "\n", + "\n", + "\n", + "* Quality Testing\n", + "* Load Testing\n", + "* Duration Testing\n", + "\n" + ], + "metadata": { + "id": "Ys9n20Es2IzT" + } + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "id": "ZXOXl23PIIP6" + }, + "outputs": [], + "source": [ + "!pip install litellm python-dotenv" + ] + }, + { + "cell_type": "code", + "source": [ + "import litellm\n", + "from litellm import load_test_model, testing_batch_completion\n", + "import time" + ], + "metadata": { + "id": "LINuBzXDItq2" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "from dotenv import load_dotenv\n", + "load_dotenv()" + ], + "metadata": { + "id": "EkxMhsWdJdu4" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "# Quality Test endpoint\n", + "\n", + "## Test the same prompt across multiple LLM providers\n", + "\n", + "In this example, let's ask some questions about Paul Graham" + ], + "metadata": { + "id": "mv5XdnqeW5I_" + } + }, + { + "cell_type": "code", + "source": [ + "models = [\"gpt-3.5-turbo\", \"gpt-3.5-turbo-16k\", \"gpt-4\", \"claude-instant-1\", \"replicate/llama-2-70b-chat:58d078176e02c219e11eb4da5a02a7830a283b14cf8f94537af893ccff5ee781\"]\n", + "context = \"\"\"Paul Graham (/ɡræm/; born 1964)[3] is an English computer scientist, essayist, entrepreneur, venture capitalist, and author. He is best known for his work on the programming language Lisp, his former startup Viaweb (later renamed Yahoo! Store), cofounding the influential startup accelerator and seed capital firm Y Combinator, his essays, and Hacker News. He is the author of several computer programming books, including: On Lisp,[4] ANSI Common Lisp,[5] and Hackers & Painters.[6] Technology journalist Steven Levy has described Graham as a \"hacker philosopher\".[7] Graham was born in England, where he and his family maintain permanent residence. However he is also a citizen of the United States, where he was educated, lived, and worked until 2016.\"\"\"\n", + "prompts = [\"Who is Paul Graham?\", \"What is Paul Graham known for?\" , \"Is paul graham a writer?\" , \"Where does Paul Graham live?\", \"What has Paul Graham done?\"]\n", + "messages = [[{\"role\": \"user\", \"content\": context + \"\\n\" + prompt}] for prompt in prompts] # pass in a list of messages we want to test\n", + "result = testing_batch_completion(models=models, messages=messages)" + ], + "metadata": { + "id": "XpzrR5m4W_Us" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "## Visualize the data" + ], + "metadata": { + "id": "9nzeLySnvIIW" + } + }, + { + "cell_type": "code", + "source": [ + "import pandas as pd\n", + "\n", + "# Create an empty list to store the row data\n", + "table_data = []\n", + "\n", + "# Iterate through the list and extract the required data\n", + "for item in result:\n", + " prompt = item['prompt'][0]['content'].replace(context, \"\") # clean the prompt for easy comparison\n", + " model = item['response']['model']\n", + " response = item['response']['choices'][0]['message']['content']\n", + " table_data.append([prompt, model, response])\n", + "\n", + "# Create a DataFrame from the table data\n", + "df = pd.DataFrame(table_data, columns=['Prompt', 'Model Name', 'Response'])\n", + "\n", + "# Pivot the DataFrame to get the desired table format\n", + "table = df.pivot(index='Prompt', columns='Model Name', values='Response')\n", + "table" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 403 + }, + "id": "X-2n7hdAuVAY", + "outputId": "69cc0de1-68e3-4c12-a8ea-314880010d94" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "Model Name claude-instant-1 \\\n", + "Prompt \n", + "\\nIs paul graham a writer? Yes, Paul Graham is considered a writer in ad... \n", + "\\nWhat has Paul Graham done? Paul Graham has made significant contribution... \n", + "\\nWhat is Paul Graham known for? Paul Graham is known for several things:\\n\\n-... \n", + "\\nWhere does Paul Graham live? Based on the information provided:\\n\\n- Paul ... \n", + "\\nWho is Paul Graham? Paul Graham is an influential computer scient... \n", + "\n", + "Model Name gpt-3.5-turbo-0613 \\\n", + "Prompt \n", + "\\nIs paul graham a writer? Yes, Paul Graham is a writer. He has written s... \n", + "\\nWhat has Paul Graham done? Paul Graham has achieved several notable accom... \n", + "\\nWhat is Paul Graham known for? Paul Graham is known for his work on the progr... \n", + "\\nWhere does Paul Graham live? According to the given information, Paul Graha... \n", + "\\nWho is Paul Graham? Paul Graham is an English computer scientist, ... \n", + "\n", + "Model Name gpt-3.5-turbo-16k-0613 \\\n", + "Prompt \n", + "\\nIs paul graham a writer? Yes, Paul Graham is a writer. He has authored ... \n", + "\\nWhat has Paul Graham done? Paul Graham has made significant contributions... \n", + "\\nWhat is Paul Graham known for? Paul Graham is known for his work on the progr... \n", + "\\nWhere does Paul Graham live? Paul Graham currently lives in England, where ... \n", + "\\nWho is Paul Graham? Paul Graham is an English computer scientist, ... \n", + "\n", + "Model Name gpt-4-0613 \\\n", + "Prompt \n", + "\\nIs paul graham a writer? Yes, Paul Graham is a writer. He is an essayis... \n", + "\\nWhat has Paul Graham done? Paul Graham is known for his work on the progr... \n", + "\\nWhat is Paul Graham known for? Paul Graham is known for his work on the progr... \n", + "\\nWhere does Paul Graham live? The text does not provide a current place of r... \n", + "\\nWho is Paul Graham? Paul Graham is an English computer scientist, ... \n", + "\n", + "Model Name replicate/llama-2-70b-chat:58d078176e02c219e11eb4da5a02a7830a283b14cf8f94537af893ccff5ee781 \n", + "Prompt \n", + "\\nIs paul graham a writer? Yes, Paul Graham is an author. According to t... \n", + "\\nWhat has Paul Graham done? Paul Graham has had a diverse career in compu... \n", + "\\nWhat is Paul Graham known for? Paul Graham is known for many things, includi... \n", + "\\nWhere does Paul Graham live? Based on the information provided, Paul Graha... \n", + "\\nWho is Paul Graham? Paul Graham is an English computer scientist,... " + ], + "text/html": [ + "\n", + "\n", + "
\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
Model Nameclaude-instant-1gpt-3.5-turbo-0613gpt-3.5-turbo-16k-0613gpt-4-0613replicate/llama-2-70b-chat:58d078176e02c219e11eb4da5a02a7830a283b14cf8f94537af893ccff5ee781
Prompt
\\nIs paul graham a writer?Yes, Paul Graham is considered a writer in ad...Yes, Paul Graham is a writer. He has written s...Yes, Paul Graham is a writer. He has authored ...Yes, Paul Graham is a writer. He is an essayis...Yes, Paul Graham is an author. According to t...
\\nWhat has Paul Graham done?Paul Graham has made significant contribution...Paul Graham has achieved several notable accom...Paul Graham has made significant contributions...Paul Graham is known for his work on the progr...Paul Graham has had a diverse career in compu...
\\nWhat is Paul Graham known for?Paul Graham is known for several things:\\n\\n-...Paul Graham is known for his work on the progr...Paul Graham is known for his work on the progr...Paul Graham is known for his work on the progr...Paul Graham is known for many things, includi...
\\nWhere does Paul Graham live?Based on the information provided:\\n\\n- Paul ...According to the given information, Paul Graha...Paul Graham currently lives in England, where ...The text does not provide a current place of r...Based on the information provided, Paul Graha...
\\nWho is Paul Graham?Paul Graham is an influential computer scient...Paul Graham is an English computer scientist, ...Paul Graham is an English computer scientist, ...Paul Graham is an English computer scientist, ...Paul Graham is an English computer scientist,...
\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + "
\n", + " \n", + "
\n", + "\n", + "\n", + "\n", + " \n", + "\n", + "\n", + " \n", + " \n", + "\n", + " \n", + "
\n", + "
\n" + ] + }, + "metadata": {}, + "execution_count": 17 + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Load Test endpoint\n", + "\n", + "Run 100+ simultaneous queries across multiple providers to see when they fail + impact on latency" + ], + "metadata": { + "id": "zOxUM40PINDC" + } + }, + { + "cell_type": "code", + "source": [ + "models=[\"gpt-3.5-turbo\", \"replicate/llama-2-70b-chat:58d078176e02c219e11eb4da5a02a7830a283b14cf8f94537af893ccff5ee781\", \"claude-instant-1\"]\n", + "context = \"\"\"Paul Graham (/ɡræm/; born 1964)[3] is an English computer scientist, essayist, entrepreneur, venture capitalist, and author. He is best known for his work on the programming language Lisp, his former startup Viaweb (later renamed Yahoo! Store), cofounding the influential startup accelerator and seed capital firm Y Combinator, his essays, and Hacker News. He is the author of several computer programming books, including: On Lisp,[4] ANSI Common Lisp,[5] and Hackers & Painters.[6] Technology journalist Steven Levy has described Graham as a \"hacker philosopher\".[7] Graham was born in England, where he and his family maintain permanent residence. However he is also a citizen of the United States, where he was educated, lived, and worked until 2016.\"\"\"\n", + "prompt = \"Where does Paul Graham live?\"\n", + "final_prompt = context + prompt\n", + "result = load_test_model(models=models, prompt=final_prompt, num_calls=5)" + ], + "metadata": { + "id": "ZkQf_wbcIRQ9" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "markdown", + "source": [ + "## Visualize the data" + ], + "metadata": { + "id": "8vSNBFC06aXY" + } + }, + { + "cell_type": "code", + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "## calculate avg response time\n", + "unique_models = set(result[\"response\"]['model'] for result in result[\"results\"])\n", + "model_dict = {model: {\"response_time\": []} for model in unique_models}\n", + "for completion_result in result[\"results\"]:\n", + " model_dict[completion_result[\"response\"][\"model\"]][\"response_time\"].append(completion_result[\"response_time\"])\n", + "\n", + "avg_response_time = {}\n", + "for model, data in model_dict.items():\n", + " avg_response_time[model] = sum(data[\"response_time\"]) / len(data[\"response_time\"])\n", + "\n", + "models = list(avg_response_time.keys())\n", + "response_times = list(avg_response_time.values())\n", + "\n", + "plt.bar(models, response_times)\n", + "plt.xlabel('Model', fontsize=10)\n", + "plt.ylabel('Average Response Time')\n", + "plt.title('Average Response Times for each Model')\n", + "\n", + "plt.xticks(models, [model[:15]+'...' if len(model) > 15 else model for model in models], rotation=45)\n", + "plt.show()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 552 + }, + "id": "SZfiKjLV3-n8", + "outputId": "00f7f589-b3da-43ed-e982-f9420f074b8d" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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WwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWwwqREREJFsMKkRERCRbDCpEREQkWz8UVB4+fIhx48ahXbt2CA8PBwAcOHAAt2/f1mhxRERElLmpHVSOHz+O4sWL4/z58wgICEBsbCwA4Pr165g4caLGCyQiIqLMS+2gMmrUKEybNg1BQUEwMDCQ2mvWrIlz585ptDgiIiLK3NQOKjdv3kSLFi3StNva2uLt27caKYqIiIgI+IGgYmFhgZcvX6Zpv3r1KnLmzKmRooiIiIiAHwgqbdu2xciRI/Hq1SsoFAoolUqcPn0aw4YNQ+fOndOjRiIiIsqk1A4qM2bMQKFCheDo6IjY2FgUKVIEVatWRcWKFTFu3Lj0qJGIiIgyKT11b2BgYICVK1di/PjxuHXrFmJjY1GqVCnkz58/PeojIiKiTEztoJIqV65cyJUrlyZrISIiIlKhdlARQmD79u0IDg5GeHg4lEqlyvKAgACNFUdERESZm9pBZdCgQVixYgVq1KiB7NmzQ6FQpEddREREROoHFT8/PwQEBKBhw4bpUQ8RERGRRO1ZP+bm5sibN2961EJERESkQu2gMmnSJEyePBnx8fHpUQ8RERGRRO1dP25ubti0aRNsbW3h5OQEfX19leVXrlzRWHFERESUuakdVNzd3XH58mV07NiRg2mJiIgoXakdVPbv34/AwEBUrlw5PeohIiIikqg9RsXR0RFmZmbpUQsRERGRCrWDyvz58zFixAiEhoamQzlERERE/6P2rp+OHTviw4cPyJcvH0xMTNIMpo2IiNBYcUSZndOo/dougbQsdFYjbZdApFVqBxUvL690KIOIiIgorR+a9UNERET0K3xXUImOjpYG0EZHR//ruhxoS0RERJryXUHF0tISL1++hK2tLSwsLL567BQhBBQKBVJSUjReJBEREWVO3xVUjh49CisrKwBAcHBwuhZERERElOq7gkq1atWQN29eXLx4EdWqVUvvmoiIiIgAqHEcldDQUO7WISIiol9K7QO+aZK3tzdcXFxgZmYGMzMzVKhQAQcOHNBmSURERCQjak1PDgwMhLm5+b+u07Rp0+++PwcHB8yaNQv58+eHEALr169Hs2bNcPXqVRQtWlSd0oiIiCgDUiuo/NcxVNSd9dOkSROV69OnT4e3tzfOnTvHoEJERETqBZVXr17B1tY2XQpJSUnBtm3bEBcXhwoVKnx1ncTERCQmJkrX/+uYLkRERPR7++4xKl87doom3Lx5E1myZIGhoSF69+6NnTt3okiRIl9dd+bMmTA3N5cujo6O6VITERERycN3BxUhRLoUULBgQVy7dg3nz59Hnz594O7ujn/++eer644ePRpRUVHS5enTp+lSExEREcnDd+/6cXd3h7GxscYLMDAwgLOzMwCgTJkyuHjxIhYtWoQVK1akWdfQ0BCGhoYar4GIiIjk6buDytq1a9OzDolSqVQZh0JERESZl9pnT9ak0aNHo0GDBsiVKxdiYmKwceNGHDt2DIGBgdosi4iIiGRCq0ElPDwcnTt3xsuXL2Fubg4XFxcEBgaiTp062iyLiIiIZEKrQWX16tXafHgiIiKSuR8+hH5ISAgCAwMRHx8PIP1mBREREVHmpXZQeffuHWrXro0CBQqgYcOGePnyJQCge/fuGDp0qMYLJCIiosxL7aAyePBg6Onp4cmTJzAxMZHa27Rpg4MHD2q0OCIiIsrc1B6jcujQIQQGBsLBwUGlPX/+/AgLC9NYYURERERq96jExcWp9KSkioiI4MHYiIiISKPUDipVqlTBhg0bpOsKhQJKpRJz5sxBjRo1NFocERERZW5q7/qZM2cOatWqhUuXLiEpKQkjRozA7du3ERERgdOnT6dHjURERJRJqd2jUqxYMdy/fx+VK1dGs2bNEBcXh5YtW+Lq1avIly9fetRIREREmdQPHfDN3NwcY8eO1XQtRERERCrU7lE5ePAgTp06JV1ftmwZSpYsifbt2+P9+/caLY6IiIgyN7WDyvDhwxEdHQ0AuHnzJoYMGYKGDRvi8ePHGDJkiMYLJCIiosxL7V0/jx8/RpEiRQAAO3bsQJMmTTBjxgxcuXIFDRs21HiBRERElHmp3aNiYGCADx8+AAAOHz6MunXrAgCsrKyknhYiIiIiTVC7R6Vy5coYMmQIKlWqhAsXLmDLli0AgPv376c5Wi0RERHRz1C7R2Xp0qXQ09PD9u3b4e3tjZw5cwIADhw4gPr162u8QCIiIsq81O5RyZUrF/bt25emfeHChRopiIiIiCjVDx1HRalUIiQkBOHh4VAqlSrLqlatqpHCiIiIiNQOKufOnUP79u0RFhYGIYTKMoVCgZSUFI0VR0RERJmb2kGld+/eKFu2LPbv348cOXJAoVCkR11ERERE6geVBw8eYPv27XB2dk6PeoiIiIgkas/6KV++PEJCQtKjFiIiIiIVaveo9O/fH0OHDsWrV69QvHhx6Ovrqyx3cXHRWHFERESUuakdVFq1agUA6Natm9SmUCgghOBgWiIiItKoHzrXDxEREdGvoHZQyZ07d3rUQURERJTGDx3w7eHDh/Dy8sKdO3cAAEWKFMHAgQORL18+jRZHREREmZvaQSUwMBBNmzZFyZIlUalSJQDA6dOnUbRoUezduxd16tTReJHa4jRqv7ZLIC0LndVI2yUQEWVqageVUaNGYfDgwZg1a1aa9pEjR2aooEJERETapfZxVO7cuYPu3bunae/WrRv++ecfjRRFREREBPxAULGxscG1a9fStF+7dg22traaqImIiIgIwA/s+unZsyd69eqFR48eoWLFigA+jVGZPXs2hgwZovECiYiIKPNSO6iMHz8eWbNmxfz58zF69GgAgL29PSZNmoQBAwZovEAiIiLKvNQOKgqFAoMHD8bgwYMRExMDAMiaNavGCyMiIiL6oeOoAEB4eDju3bsHAChUqBBsbGw0VhQRERER8AODaWNiYtCpUyfY29ujWrVqqFatGuzt7dGxY0dERUWlR41ERESUSakdVHr06IHz589j//79iIyMRGRkJPbt24dLly7Bw8MjPWokIiKiTErtXT/79u1DYGAgKleuLLXVq1cPK1euRP369TVaHBEREWVuaveoZMuWDebm5mnazc3NYWlpqZGiiIiIiIAfCCrjxo3DkCFD8OrVK6nt1atXGD58OMaPH6/R4oiIiChzU3vXj7e3N0JCQpArVy7kypULAPDkyRMYGhrizZs3WLFihbTulStXNFcpERERZTpqB5XmzZunQxlEREREaakdVCZOnJgedRARERGlofYYladPn+LZs2fS9QsXLmDQoEHw9fXVaGFEREREageV9u3bIzg4GMCnQbS1a9fGhQsXMHbsWEyZMkXjBRIREVHmpXZQuXXrFv744w8AwNatW1G8eHGcOXMG/v7+WLdunabrIyIiokxM7aCSnJwMQ0NDAMDhw4fRtGlTAJ/O9/Py5UvNVkdERESZmtpBpWjRovDx8cHJkycRFBQkHY32xYsXyJYtm8YLJCIiosxL7aAye/ZsrFixAtWrV0e7du1QokQJAMCePXukXUJEREREmqD29OTq1avj7du3iI6OVjlkfq9evWBiYqLR4oiIiChzU7tHBQCEELh8+TJWrFiBmJgYAICBgQGDChEREWmU2j0qYWFhqF+/Pp48eYLExETUqVMHWbNmxezZs5GYmAgfH5/0qJOIiIgyIbV7VAYOHIiyZcvi/fv3MDY2ltpbtGiBI0eOaLQ4IiIiytzU7lE5efIkzpw5AwMDA5V2JycnPH/+XGOFEREREando6JUKpGSkpKm/dmzZ8iaNatGiiIiIiICfiCo1K1bF15eXtJ1hUKB2NhYTJw4EQ0bNtRkbURERJTJqb3rZ/78+ahXrx6KFCmChIQEtG/fHg8ePIC1tTU2bdqUHjUSERFRJqV2UHFwcMD169exZcsWXL9+HbGxsejevTs6dOigMriWiIiI6GepHVQAQE9PDx06dECHDh2ktpcvX2L48OFYunSpxoojIiKizE2toHL79m0EBwfDwMAAbm5usLCwwNu3bzF9+nT4+Pggb9686VUnERERZULfPZh2z549KFWqFAYMGIDevXujbNmyCA4ORuHChXHnzh3s3LkTt2/fTs9aiYiIKJP57qAybdo0eHp6Ijo6GgsWLMCjR48wYMAA/P333zh48KB0FmUiIiIiTfnuoHLv3j14enoiS5Ys6N+/P3R0dLBw4UKUK1cuPesjIiKiTOy7g0pMTAzMzMwAALq6ujA2NuaYFCIiIkpXag2mDQwMhLm5OYBPR6g9cuQIbt26pbJO06ZNNVcdERERZWpqBRV3d3eV6x4eHirXFQrFVw+vT0RERPQjvjuoKJXK9KyDiIiIKA21z/VDRERE9KtoNajMnDkT5cqVQ9asWWFra4vmzZvj3r172iyJiIiIZESrQeX48ePw9PTEuXPnEBQUhOTkZNStWxdxcXHaLIuIiIhk4ofO9aMpBw8eVLm+bt062Nra4vLly6hataqWqiIiIiK50GpQ+VJUVBQAwMrK6qvLExMTkZiYKF2Pjo7+JXURERGRdvzQrp/IyEisWrUKo0ePRkREBADgypUreP78+Q8XolQqMWjQIFSqVAnFihX76jozZ86Eubm5dHF0dPzhxyMiIiL5Uzuo3LhxAwUKFMDs2bMxb948REZGAgACAgIwevToHy7E09MTt27dwubNm7+5zujRoxEVFSVdnj59+sOPR0RERPKndlAZMmQIunTpggcPHsDIyEhqb9iwIU6cOPFDRfTr1w/79u1DcHAwHBwcvrmeoaEhzMzMVC5ERESUcak9RuXixYtYsWJFmvacOXPi1atXat2XEAL9+/fHzp07cezYMeTJk0fdcoiIiCgDUzuoGBoafnUQ6/3792FjY6PWfXl6emLjxo3YvXs3smbNKgUdc3NzGBsbq1saERERZTBq7/pp2rQppkyZguTkZACfzu/z5MkTjBw5Eq1atVLrvry9vREVFYXq1asjR44c0mXLli3qlkVEREQZkNpBZf78+YiNjYWtrS3i4+NRrVo1ODs7I2vWrJg+fbpa9yWE+OqlS5cu6pZFREREGZDau37Mzc0RFBSEU6dO4caNG4iNjUXp0qVRu3bt9KiPiIiIMrEfPuBb5cqVUblyZU3WQkRERKRC7aCyePHir7YrFAoYGRnB2dkZVatWha6u7k8XR0RERJmb2kFl4cKFePPmDT58+ABLS0sAwPv372FiYoIsWbIgPDwcefPmRXBwMI8cS0RERD9F7cG0M2bMQLly5fDgwQO8e/cO7969w/3791G+fHksWrQIT548gZ2dHQYPHpwe9RIREVEmonaPyrhx47Bjxw7ky5dPanN2dsa8efPQqlUrPHr0CHPmzFF7qjIRERHRl9TuUXn58iU+fvyYpv3jx4/SAdvs7e0RExPz89URERFRpqZ2UKlRowY8PDxw9epVqe3q1avo06cPatasCQC4efMmD4dPREREP03toLJ69WpYWVmhTJkyMDQ0hKGhIcqWLQsrKyusXr0aAJAlSxbMnz9f48USERFR5qL2GBU7OzsEBQXh7t27uH//PgCgYMGCKFiwoLROjRo1NFchERERZVo/fMC3QoUKoVChQpqshYiIiEjFDwWVZ8+eYc+ePXjy5AmSkpJUli1YsEAjhRERERGpHVSOHDmCpk2b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\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "markdown", + "source": [ + "# Duration Test endpoint\n", + "\n", + "Run load testing for 2 mins. Hitting endpoints with 100+ queries every 15 seconds." + ], + "metadata": { + "id": "inSDIE3_IRds" + } + }, + { + "cell_type": "code", + "source": [ + "models=[\"gpt-3.5-turbo\", \"replicate/llama-2-70b-chat:58d078176e02c219e11eb4da5a02a7830a283b14cf8f94537af893ccff5ee781\", \"claude-instant-1\"]\n", + "context = \"\"\"Paul Graham (/ɡræm/; born 1964)[3] is an English computer scientist, essayist, entrepreneur, venture capitalist, and author. He is best known for his work on the programming language Lisp, his former startup Viaweb (later renamed Yahoo! Store), cofounding the influential startup accelerator and seed capital firm Y Combinator, his essays, and Hacker News. He is the author of several computer programming books, including: On Lisp,[4] ANSI Common Lisp,[5] and Hackers & Painters.[6] Technology journalist Steven Levy has described Graham as a \"hacker philosopher\".[7] Graham was born in England, where he and his family maintain permanent residence. However he is also a citizen of the United States, where he was educated, lived, and worked until 2016.\"\"\"\n", + "prompt = \"Where does Paul Graham live?\"\n", + "final_prompt = context + prompt\n", + "result = load_test_model(models=models, prompt=final_prompt, num_calls=100, interval=15, duration=120)" + ], + "metadata": { + "id": "ePIqDx2EIURH" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "## calculate avg response time\n", + "unique_models = set(unique_result[\"response\"]['model'] for unique_result in result[0][\"results\"])\n", + "model_dict = {model: {\"response_time\": []} for model in unique_models}\n", + "for iteration in result:\n", + " for completion_result in iteration[\"results\"]:\n", + " model_dict[completion_result[\"response\"][\"model\"]][\"response_time\"].append(completion_result[\"response_time\"])\n", + "\n", + "avg_response_time = {}\n", + "for model, data in model_dict.items():\n", + " avg_response_time[model] = sum(data[\"response_time\"]) / len(data[\"response_time\"])\n", + "\n", + "models = list(avg_response_time.keys())\n", + "response_times = list(avg_response_time.values())\n", + "\n", + "plt.bar(models, response_times)\n", + "plt.xlabel('Model', fontsize=10)\n", + "plt.ylabel('Average Response Time')\n", + "plt.title('Average Response Times for each Model')\n", + "\n", + "plt.xticks(models, [model[:15]+'...' if len(model) > 15 else model for model in models], rotation=45)\n", + "plt.show()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 552 + }, + "id": "k6rJoELM6t1K", + "outputId": "f4968b59-3bca-4f78-a88b-149ad55e3cf7" + }, + "execution_count": null, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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DaxZswYFCxaU/ua9fPkS4eHhcHNzU3mMd+/eyTrgcLcU5VkZuTsuLg5JSUlQKBQ4cOAAwsPDoaurCz09PURERMDV1RX//POPFGwSExOhr68PPz8/vH79msGGNEIIIQWbX3/9Fd27d8fcuXPRt29fjBgxAufPnwfwftdASkoKJkyYgMqVK+PVq1cqj8NgQ5/r/PnzaN68Obp374727dtj1KhRCAkJwbVr19ClSxcA708zkJaWhnXr1qFGjRo4ceKEymPIOdgADDeUx0VGRqJixYo4evQoNmzYgCZNmuDvv/8G8H5XU/ny5dGmTRtMnz5dWidfvnwYNWoU7t27B0tLSwYb0oiM7Wju3Ln4448/sHHjRty4cQNt27bFn3/+ifHjx+P06dMAAAMDA7i6uqJhw4YwNzfXYtUkRw8fPsTz589V2r7//nvs3r0bFy9eRJ8+fQC8P/VFixYtMH369EwjN7IniPK4Hj16CFNTU6GjoyOWL18utaemporNmzeL9PR0qU2pVGqjRPpGREVFibZt24pVq1YJIYTYvXu3MDU1Ff369ROurq6iYcOG4syZM0II1W3x3bt3WqmX5CkkJETY2NiITZs2SW0Z29v69euFk5OTOH/+fKb10tLSvliN2saRG8qzMk4J7uPjg/j4eBgYGMDW1hbJyckA3n8rad++vcrETY7SUG6ytrbGqFGj0KRJE1y+fBk+Pj6YNm0ali5dip9++glnzpyBj48PLl68qLItclcUaVLZsmVRr149rFu3DocOHQLwv799Li4uiI6Oli4z8yG574r6EMMN5VkZocXe3h4nTpyAl5cXOnbsiF27diEpKSlTfzleH4W051Pbk6urKwoXLox9+/bB2dkZffv2BQBYWlrCzc0NLVu2hKur65cslb4x9vb26NevH2JiYuDn54fdu3dLywoXLgxHR0ctVpc3fDsxjr4a4v8nAD9//hxpaWkoVqwYrK2tUaNGDSQnJ6NXr14ICgpCixYtYGRkhICAADRq1AhOTk7aLp1kQnwweXjFihWIjo6GgYEBRowYIV26IyUlBc+ePcOjR49QunRpHDhwAK1atcLAgQP/9bQERJ8j42i7evXqYcmSJRg7dixGjx6NkJAQODs7Y8uWLVAoFPjxxx+1XapW8VBwypOCg4MxadIkREVFoXnz5mjTpg1atmwJAOjRowd27NiB4cOH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\n" + }, + "metadata": {} + } + ] + } + ] +} \ No newline at end of file diff --git a/docs/my-website/docs/tutorials/litellm_Test_Multiple_Providers.md b/docs/my-website/docs/tutorials/litellm_Test_Multiple_Providers.md new file mode 100644 index 000000000..2503e3cbf --- /dev/null +++ b/docs/my-website/docs/tutorials/litellm_Test_Multiple_Providers.md @@ -0,0 +1,136 @@ +# Reliability test Multiple LLM Providers with LiteLLM + + + +* Quality Testing +* Load Testing +* Duration Testing + + + + +```python +!pip install litellm python-dotenv +``` + + +```python +import litellm +from litellm import load_test_model, testing_batch_completion +import time +``` + + +```python +from dotenv import load_dotenv +load_dotenv() +``` + +# Quality Test endpoint + +## Test the same prompt across multiple LLM providers + +In this example, let's ask some questions about Paul Graham + + +```python +models = ["gpt-3.5-turbo", "gpt-3.5-turbo-16k", "gpt-4", "claude-instant-1", "replicate/llama-2-70b-chat:58d078176e02c219e11eb4da5a02a7830a283b14cf8f94537af893ccff5ee781"] +context = """Paul Graham (/ɡræm/; born 1964)[3] is an English computer scientist, essayist, entrepreneur, venture capitalist, and author. He is best known for his work on the programming language Lisp, his former startup Viaweb (later renamed Yahoo! Store), cofounding the influential startup accelerator and seed capital firm Y Combinator, his essays, and Hacker News. He is the author of several computer programming books, including: On Lisp,[4] ANSI Common Lisp,[5] and Hackers & Painters.[6] Technology journalist Steven Levy has described Graham as a "hacker philosopher".[7] Graham was born in England, where he and his family maintain permanent residence. However he is also a citizen of the United States, where he was educated, lived, and worked until 2016.""" +prompts = ["Who is Paul Graham?", "What is Paul Graham known for?" , "Is paul graham a writer?" , "Where does Paul Graham live?", "What has Paul Graham done?"] +messages = [[{"role": "user", "content": context + "\n" + prompt}] for prompt in prompts] # pass in a list of messages we want to test +result = testing_batch_completion(models=models, messages=messages) +``` + + +# Load Test endpoint + +Run 100+ simultaneous queries across multiple providers to see when they fail + impact on latency + + +```python +models=["gpt-3.5-turbo", "replicate/llama-2-70b-chat:58d078176e02c219e11eb4da5a02a7830a283b14cf8f94537af893ccff5ee781", "claude-instant-1"] +context = """Paul Graham (/ɡræm/; born 1964)[3] is an English computer scientist, essayist, entrepreneur, venture capitalist, and author. He is best known for his work on the programming language Lisp, his former startup Viaweb (later renamed Yahoo! Store), cofounding the influential startup accelerator and seed capital firm Y Combinator, his essays, and Hacker News. He is the author of several computer programming books, including: On Lisp,[4] ANSI Common Lisp,[5] and Hackers & Painters.[6] Technology journalist Steven Levy has described Graham as a "hacker philosopher".[7] Graham was born in England, where he and his family maintain permanent residence. However he is also a citizen of the United States, where he was educated, lived, and worked until 2016.""" +prompt = "Where does Paul Graham live?" +final_prompt = context + prompt +result = load_test_model(models=models, prompt=final_prompt, num_calls=5) +``` + +## Visualize the data + + +```python +import matplotlib.pyplot as plt + +## calculate avg response time +unique_models = set(result["response"]['model'] for result in result["results"]) +model_dict = {model: {"response_time": []} for model in unique_models} +for completion_result in result["results"]: + model_dict[completion_result["response"]["model"]]["response_time"].append(completion_result["response_time"]) + +avg_response_time = {} +for model, data in model_dict.items(): + avg_response_time[model] = sum(data["response_time"]) / len(data["response_time"]) + +models = list(avg_response_time.keys()) +response_times = list(avg_response_time.values()) + +plt.bar(models, response_times) +plt.xlabel('Model', fontsize=10) +plt.ylabel('Average Response Time') +plt.title('Average Response Times for each Model') + +plt.xticks(models, [model[:15]+'...' if len(model) > 15 else model for model in models], rotation=45) +plt.show() +``` + + + +![png](litellm_Test_Multiple_Providers_files/litellm_Test_Multiple_Providers_11_0.png) + + + +# Duration Test endpoint + +Run load testing for 2 mins. Hitting endpoints with 100+ queries every 15 seconds. + + +```python +models=["gpt-3.5-turbo", "replicate/llama-2-70b-chat:58d078176e02c219e11eb4da5a02a7830a283b14cf8f94537af893ccff5ee781", "claude-instant-1"] +context = """Paul Graham (/ɡræm/; born 1964)[3] is an English computer scientist, essayist, entrepreneur, venture capitalist, and author. He is best known for his work on the programming language Lisp, his former startup Viaweb (later renamed Yahoo! Store), cofounding the influential startup accelerator and seed capital firm Y Combinator, his essays, and Hacker News. He is the author of several computer programming books, including: On Lisp,[4] ANSI Common Lisp,[5] and Hackers & Painters.[6] Technology journalist Steven Levy has described Graham as a "hacker philosopher".[7] Graham was born in England, where he and his family maintain permanent residence. However he is also a citizen of the United States, where he was educated, lived, and worked until 2016.""" +prompt = "Where does Paul Graham live?" +final_prompt = context + prompt +result = load_test_model(models=models, prompt=final_prompt, num_calls=100, interval=15, duration=120) +``` + + +```python +import matplotlib.pyplot as plt + +## calculate avg response time +unique_models = set(unique_result["response"]['model'] for unique_result in result[0]["results"]) +model_dict = {model: {"response_time": []} for model in unique_models} +for iteration in result: + for completion_result in iteration["results"]: + model_dict[completion_result["response"]["model"]]["response_time"].append(completion_result["response_time"]) + +avg_response_time = {} +for model, data in model_dict.items(): + avg_response_time[model] = sum(data["response_time"]) / len(data["response_time"]) + +models = list(avg_response_time.keys()) +response_times = list(avg_response_time.values()) + +plt.bar(models, response_times) +plt.xlabel('Model', fontsize=10) +plt.ylabel('Average Response Time') +plt.title('Average Response Times for each Model') + +plt.xticks(models, [model[:15]+'...' if len(model) > 15 else model for model in models], rotation=45) +plt.show() +``` + + + +![png](litellm_Test_Multiple_Providers_files/litellm_Test_Multiple_Providers_14_0.png) + + diff --git a/docs/my-website/docs/tutorials/litellm_Test_Multiple_Providers_files/litellm_Test_Multiple_Providers_11_0.png b/docs/my-website/docs/tutorials/litellm_Test_Multiple_Providers_files/litellm_Test_Multiple_Providers_11_0.png new file mode 100644 index 0000000000000000000000000000000000000000..8a6041ad88544d37e0a6327ce2c4fa634f405806 GIT binary patch literal 26744 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 literal 0 HcmV?d00001 diff --git a/docs/my-website/docs/tutorials/litellm_Test_Multiple_Providers_files/litellm_Test_Multiple_Providers_14_0.png b/docs/my-website/docs/tutorials/litellm_Test_Multiple_Providers_files/litellm_Test_Multiple_Providers_14_0.png new file mode 100644 index 0000000000000000000000000000000000000000..33addfaef90dba8d115260b39f88a9a0e6b86755 GIT binary patch literal 28936 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