From 1335f2b9f8b97402e3e05391a4f5a15ed88c9ce9 Mon Sep 17 00:00:00 2001 From: Leonid Ganeline Date: Wed, 2 Aug 2023 13:30:28 -0700 Subject: [PATCH] `MLflow` examples (#8642) Updated `MLflow` examples with links to the examples from MLflow @baskaryan --- .../providers/mlflow_ai_gateway.mdx | 2 +- .../providers/mlflow_tracking.ipynb | 77 +++++++++++++------ 2 files changed, 54 insertions(+), 25 deletions(-) diff --git a/docs/extras/integrations/providers/mlflow_ai_gateway.mdx b/docs/extras/integrations/providers/mlflow_ai_gateway.mdx index 805157930ac..0b8591e6c8e 100644 --- a/docs/extras/integrations/providers/mlflow_ai_gateway.mdx +++ b/docs/extras/integrations/providers/mlflow_ai_gateway.mdx @@ -1,6 +1,6 @@ # MLflow AI Gateway -The MLflow AI Gateway service is a powerful tool designed to streamline the usage and management of various large language model (LLM) providers, such as OpenAI and Anthropic, within an organization. It offers a high-level interface that simplifies the interaction with these services by providing a unified endpoint to handle specific LLM related requests. See [the MLflow AI Gateway documentation](https://mlflow.org/docs/latest/gateway/index.html) for more details. +>`The MLflow AI Gateway` service is a powerful tool designed to streamline the usage and management of various large language model (LLM) providers, such as OpenAI and Anthropic, within an organization. It offers a high-level interface that simplifies the interaction with these services by providing a unified endpoint to handle specific LLM related requests. See [the MLflow AI Gateway documentation](https://mlflow.org/docs/latest/gateway/index.html) for more details. ## Installation and Setup diff --git a/docs/extras/integrations/providers/mlflow_tracking.ipynb b/docs/extras/integrations/providers/mlflow_tracking.ipynb index 8af99426a2e..5d78b429132 100644 --- a/docs/extras/integrations/providers/mlflow_tracking.ipynb +++ b/docs/extras/integrations/providers/mlflow_tracking.ipynb @@ -1,19 +1,49 @@ { "cells": [ { - "attachments": {}, "cell_type": "markdown", + "id": "5d184f91", "metadata": {}, "source": [ "# MLflow\n", "\n", - "This notebook goes over how to track your LangChain experiments into your MLflow Server" - ], - "id": "5d184f91" + ">[MLflow](https://www.mlflow.org/docs/latest/what-is-mlflow.html) is a versatile, expandable, open-source platform for managing workflows and artifacts across the machine learning lifecycle. It has built-in integrations with many popular ML libraries, but can be used with any library, algorithm, or deployment tool. It is designed to be extensible, so you can write plugins to support new workflows, libraries, and tools.\n", + "\n", + "This notebook goes over how to track your LangChain experiments into your `MLflow Server`" + ] + }, + { + "cell_type": "markdown", + "id": "ea73efae-7182-4a89-a492-c865b1fcf981", + "metadata": {}, + "source": [ + "## External examples" + ] + }, + { + "cell_type": "markdown", + "id": "97361a84-4e8f-45ba-b291-814cf73cd8f2", + "metadata": {}, + "source": [ + "`MLflow` provides [several examples](https://github.com/mlflow/mlflow/tree/master/examples/langchain) for the `LangChain` integration:\n", + "- [simple_chain](https://github.com/mlflow/mlflow/blob/master/examples/langchain/simple_chain.py)\n", + "- [simple_agent](https://github.com/mlflow/mlflow/blob/master/examples/langchain/simple_agent.py)\n", + "- [retriever_chain](https://github.com/mlflow/mlflow/blob/master/examples/langchain/retriever_chain.py)\n", + "- [retrieval_qa_chain](https://github.com/mlflow/mlflow/blob/master/examples/langchain/retrieval_qa_chain.py)\n" + ] + }, + { + "cell_type": "markdown", + "id": "e0cbd74b-1542-45a4-a72b-b2eedeffd2e0", + "metadata": {}, + "source": [ + "## Example" + ] }, { "cell_type": "code", "execution_count": null, + "id": "ca7bd72f", "metadata": {}, "outputs": [], "source": [ @@ -24,12 +54,12 @@ "!pip install openai\n", "!pip install google-search-results\n", "!python -m spacy download en_core_web_sm" - ], - "id": "ca7bd72f" + ] }, { "cell_type": "code", "execution_count": null, + "id": "bf8e1f5c", "metadata": {}, "outputs": [], "source": [ @@ -38,23 +68,23 @@ "os.environ[\"MLFLOW_TRACKING_URI\"] = \"\"\n", "os.environ[\"OPENAI_API_KEY\"] = \"\"\n", "os.environ[\"SERPAPI_API_KEY\"] = \"\"" - ], - "id": "bf8e1f5c" + ] }, { "cell_type": "code", "execution_count": null, + "id": "fd49fd45", "metadata": {}, "outputs": [], "source": [ "from langchain.callbacks import MlflowCallbackHandler\n", "from langchain.llms import OpenAI" - ], - "id": "fd49fd45" + ] }, { "cell_type": "code", "execution_count": null, + "id": "578cac8c", "metadata": {}, "outputs": [], "source": [ @@ -70,12 +100,12 @@ "llm = OpenAI(\n", " model_name=\"gpt-3.5-turbo\", temperature=0, callbacks=[mlflow_callback], verbose=True\n", ")" - ], - "id": "578cac8c" + ] }, { "cell_type": "code", "execution_count": null, + "id": "9b20acae", "metadata": {}, "outputs": [], "source": [ @@ -83,23 +113,23 @@ "llm_result = llm.generate([\"Tell me a joke\"])\n", "\n", "mlflow_callback.flush_tracker(llm)" - ], - "id": "9b20acae" + ] }, { "cell_type": "code", "execution_count": null, + "id": "8b872046", "metadata": {}, "outputs": [], "source": [ "from langchain.prompts import PromptTemplate\n", "from langchain.chains import LLMChain" - ], - "id": "8b872046" + ] }, { "cell_type": "code", "execution_count": null, + "id": "1b2627ef", "metadata": {}, "outputs": [], "source": [ @@ -117,12 +147,12 @@ "]\n", "synopsis_chain.apply(test_prompts)\n", "mlflow_callback.flush_tracker(synopsis_chain)" - ], - "id": "1b2627ef" + ] }, { "cell_type": "code", "execution_count": null, + "id": "e002823a", "metadata": { "id": "_jN73xcPVEpI" }, @@ -130,12 +160,12 @@ "source": [ "from langchain.agents import initialize_agent, load_tools\n", "from langchain.agents import AgentType" - ], - "id": "e002823a" + ] }, { "cell_type": "code", "execution_count": null, + "id": "655bd47e", "metadata": { "id": "Gpq4rk6VT9cu" }, @@ -154,8 +184,7 @@ " \"Who is Leo DiCaprio's girlfriend? What is her current age raised to the 0.43 power?\"\n", ")\n", "mlflow_callback.flush_tracker(agent, finish=True)" - ], - "id": "655bd47e" + ] } ], "metadata": { @@ -177,9 +206,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.16" + "version": "3.10.12" } }, "nbformat": 4, "nbformat_minor": 5 -} \ No newline at end of file +}