Zephyrnet-logo

Implementatie van grote taalmodellen in productie: LLMOps met MLflow

Datum:

Introductie

Grote taalmodellen (LLM's) worden nu veel gebruikt in een verscheidenheid aan toepassingen, zoals machinevertaling, chatbots, tekstsamenvatting, sentimentanalyse, en maken vorderingen op het gebied van natuurlijke taalverwerking (NLP). Het is echter moeilijk om deze LLM's daadwerkelijk in gebruik te nemen en te beheren, en dat is waar LLMOps om de hoek komt kijken. LLMOps verwijst naar de reeks werkwijzen, tools en processen die worden gebruikt om LLM's in productieomgevingen te ontwikkelen, implementeren en beheren.

MLflow is een opensourceplatform dat een set tools biedt voor het volgen van experimenten, het verpakken van code en het implementeren van modellen in productie. Gecentraliseerde modelregistratie van MLflow vereenvoudigt het beheer van modelversies en maakt eenvoudig delen en gezamenlijke toegang met de teamleden mogelijk, waardoor het een populaire keuze is voor datawetenschappers en machine learning-ingenieurs om hun workflow te stroomlijnen en de productiviteit te verbeteren.

Grote taalmodellen | LLM's | MLstroom

leerdoelen

  • Begrijp de uitdagingen bij het implementeren en beheren van LLM's in productieomgevingen.
  • Ontdek hoe MLflow kan worden gebruikt om de uitdagingen op te lossen bij het implementeren van de grote taalmodellen in productieomgevingen daar door LLMOps te implementeren.
  • Ontdek de ondersteuning voor populaire bibliotheken met grote taalmodellen, zoals Hugging Face-transformatoren, OpenAI en Lang Chain.
  • Leer hoe u MLflow voor LLMOps kunt gebruiken met praktische voorbeelden.

Dit artikel is gepubliceerd als onderdeel van het Data Science-blogathon.

Uitdagingen bij het implementeren en beheren van LLM's in productieomgevingen

De volgende factoren maken het beheer en de implementatie van LLM's in een productieomgeving moeilijk:

  1. Resource Management:  LLM's hebben veel bronnen nodig, waaronder GPU, RAM en CPU, om goed te kunnen functioneren. Deze middelen kunnen duur en moeilijk te beheren zijn.
  2. Modelprestaties: LLM's kunnen gevoelig zijn voor veranderingen in de invoergegevens en hun prestaties kunnen variëren afhankelijk van de gegevensdistributie. Ervoor zorgen dat de goede modelprestaties in een productieomgeving een uitdaging kunnen zijn.
  3. Modelversiebeheer: Het bijwerken van een LLM kan een uitdaging zijn, vooral als u meerdere versies van het model tegelijkertijd moet beheren. Het bijhouden van modelversies en ervoor zorgen dat ze correct worden geïmplementeerd, kan tijdrovend zijn.
  4. Infrastructuur: Het configureren van de infrastructuur voor het implementeren van LLM's kan een uitdaging zijn, vooral als u meerdere modellen tegelijk moet beheren.
MLOps | Grote taalmodellen | LLM's | MLstroom

Hoe MLflow te gebruiken voor LLMOps?

MLflow is een open-sourceplatform voor het beheer van de levenscyclus van machine learning. Het biedt een set tools en API's voor het beheren van experimenten, het verpakken van code en het implementeren van modellen. MLflow kan worden gebruikt om LLM's in productieomgevingen te implementeren en te beheren door de volgende stappen te volgen:

  1. Maak een MLflow-project: Een MLflow-project is een verpakte versie van een machine learning-applicatie. U kunt een MLflow-project maken door de afhankelijkheden, code en configuratie te definiëren die nodig zijn om uw LLM uit te voeren.
  2. Train en registreer uw LLM: U kunt TensorFlow, PyTorch of Keras gebruiken om uw LLM te trainen. Nadat u uw model hebt getraind, kunt u de modelartefacten in MLflow loggen met behulp van de MLflow API's. Als u een vooraf getraind model gebruikt, kunt u de trainingsstap overslaan.
  3. Verpak uw LLM: Nadat u de modelartefacten hebt vastgelegd, kunt u ze verpakken met behulp van de MLflow-opdrachten. De MLflow kan een Python-pakket maken dat de modelartefacten, afhankelijkheden en configuratie bevat die nodig zijn om uw LLM uit te voeren.
  4. Implementeer uw LLM: U kunt uw LLM implementeren met behulp van Kubernetes, Docker of AWS Lambda. U kunt de MLflow-API's gebruiken om uw LLM te laden en voorspellingen uit te voeren.

Knuffelen Face Transformers Ondersteuning in MLflow

Het is een populaire open-sourcebibliotheek voor het bouwen van modellen voor natuurlijke taalverwerking. Deze modellen zijn eenvoudig te implementeren en te beheren in een productieomgeving dankzij de ingebouwde ondersteuning van MLflow. Volg deze stappen om de Hugging Face-transformatoren met MLflow te gebruiken:

  • Installeer MLflow en transformatoren: Transformers en MLflow-installatie kunnen worden gedaan met behulp van Pip.
!pip install transformers
!pip install mlflow
  • Definieer uw LLM: De transformers-bibliotheek kan worden gebruikt om uw LLM te definiëren, zoals weergegeven in de volgende Python-code:
import transformers
import mlflow chat_pipeline = transformers.pipeline(model="microsoft/DialoGPT-medium")
  • Log uw LLM in: Gebruik het onderstaande Python-codefragment om uw LLM in MLflow te loggen:
with mlflow.start_run(): model_info = mlflow.transformers.log_model( transformers_model=chat_pipeline, artifact_path="chatbot", input_example="Hi there!" )
  • Laad uw LLM en maak er voorspellingen van:
# Load as interactive pyfunc
chatbot = mlflow.pyfunc.load_model(model_info.model_uri)
#make predictions
chatbot.predict("What is the best way to get to Antarctica?")
>>> 'I think you can get there by boat'
chatbot.predict("What kind of boat should I use?")
>>> 'A boat that can go to Antarctica.'

Open AI-ondersteuning in MLflow

Open AI is een ander populair platform voor het bouwen van LLM's. MLflow biedt ondersteuning voor Open AI-modellen, waardoor het eenvoudig is om Open AI-modellen in een productieomgeving te implementeren en te beheren. Hieronder volgen de stappen om Open AI-modellen met MLflow te gebruiken:

  • Installeer MLflow en Open AI: Pip kan worden gebruikt om Open AI en MLflow te installeren.
!pip install openai
!pip install mlflow
  • Definieer uw LLM: Zoals te zien is in het volgende codefragment, kunt u uw LLM definiëren met behulp van de Open AI API:
from typing import List
import openai
import mlflow # Define a functional model with type annotations def chat_completion(inputs: List[str]) -> List[str]: # Model signature is automatically constructed from # type annotations. The signature for this model # would look like this: # ---------- # signature: # inputs: [{"type": "string"}] # outputs: [{"type": "string"}] # ---------- outputs = [] for input in inputs: completion = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": "<prompt>"}] ) outputs.append(completion.choices[0].message.content) return outputs
  • Log uw LLM in: U kunt uw LLM loggen bij MLflow met behulp van het volgende codefragment:
# Log the model
mlflow.pyfunc.log_model( artifact_path="model", python_model=chat_completion, pip_requirements=["openai"],
)

Ondersteuning voor lange ketens in MLflow

Lang Chain is een platform voor het bouwen van LLM's met een modulaire aanpak. MLflow biedt ondersteuning voor Lang Chain-modellen, waardoor het eenvoudig is om Lang Chain-modellen in een productieomgeving te implementeren en te beheren. Om Lang Chain-modellen met MLflow te gebruiken, kunt u deze stappen volgen:

  • MLflow en Lang Chain installeren: U kunt MLflow en Lang Chain installeren met behulp van pip.
!pip install langchain
!pip install mlflow
  • Definieer uw LLM: Het volgende codefragment laat zien hoe u uw LLM kunt definiëren met behulp van de Lang Chain API:
from langchain import PromptTemplate, HuggingFaceHub, LLMChain template = """Translate everything you see after this into French: {input}""" prompt = PromptTemplate(template=template, input_variables=["input"]) llm_chain = LLMChain( prompt=prompt, llm=HuggingFaceHub( repo_id="google/flan-t5-small", model_kwargs={"temperature":0, "max_length":64} ),
)
  • Log uw LLM in: U kunt het volgende codefragment gebruiken om uw LLM in MLflow te loggen:
mlflow.langchain.log_model( lc_model=llm_chain, artifact_path="model", registered_model_name="english-to-french-chain-gpt-3.5-turbo-1"
)
  • Laad het model: U kunt uw LLM laden met behulp van de onderstaande code.
#Load the LangChain model import mlflow.pyfunc english_to_french_udf = mlflow.pyfunc.spark_udf( spark=spark, model_uri="models:/english-to-french-chain-gpt-3.5-turbo-1/1", result_type="string"
)
english_df = spark.createDataFrame([("What is MLflow?",)], ["english_text"]) french_translated_df = english_df.withColumn( "french_text", english_to_french_udf("english_text")
) 

Conclusie

Het implementeren en beheren van LLM's in een productieomgeving kan een uitdaging zijn vanwege resourcebeheer, modelprestaties, modelversiebeheer en infrastructuurproblemen. LLM's zijn eenvoudig te implementeren en te beheren in een productieomgeving met behulp van de tools en API's van MLflow voor het beheer van de levenscyclus van het model. In deze blog hebben we besproken hoe MLflow kan worden gebruikt om LLM's in een productieomgeving te implementeren en te beheren, samen met ondersteuning voor Hugging Face-transformatoren, Open AI en Lang Chain-modellen. De samenwerking tussen datawetenschappers, ingenieurs en andere belanghebbenden in de levenscyclus van machine learning kan worden verbeterd door MLflow te gebruiken.

MLstroom | Knuffelend gezicht | AI openen | LangChain

Enkele van de belangrijkste afhaalrestaurants zijn als volgt:

  1. MLflow implementeert en beheert LLM's in een productieomgeving.
  2. Ondersteuning van Hugging Face-transformatoren, Open AI en Lang Chain-modellen in MLflow.
  3. Resourcebeheer, modelprestaties, modelversiebeheer en infrastructuurproblemen kunnen een uitdaging zijn bij het implementeren en beheren van LLM's in een productieomgeving, maar MLflow biedt een reeks tools en API's om deze uitdagingen te helpen overwinnen.
  4. MLflow biedt een gecentraliseerde locatie voor het volgen van experimenten, versiebeheermodellen en het verpakken en implementeren van modellen.
  5. MLflow integreert voor gebruiksgemak met bestaande workflows.

De in dit artikel getoonde media zijn geen eigendom van Analytics Vidhya en worden naar goeddunken van de auteur gebruikt.

spot_img

Laatste intelligentie

spot_img

Chat met ons

Hallo daar! Hoe kan ik u helpen?