La ejecución de grandes modelos de idiomas (LLM) presenta desafíos significativos debido a sus demandas de hardware, pero existen numerosas opciones para que estas herramientas poderosas sean accesibles. El panorama de hoy ofrece varios enfoques, desde el consumo de modelos a través de API proporcionadas por los principales jugadores como OpenAi y Anthrope, hasta la implementación de alternativas de código abierto a través de plataformas como abrazar a Face y Ollama. Ya sea que se interactúe con los modelos de forma remota o los ejecute localmente, comprender técnicas clave como la ingeniería rápida y la estructuración de salida puede mejorar sustancialmente el rendimiento para sus aplicaciones específicas. Este artículo explora los aspectos prácticos de la implementación de LLM, proporcionando a los desarrolladores el conocimiento para navegar las limitaciones de hardware, seleccionar métodos de implementación apropiados y optimizar las salidas de modelos a través de técnicas probadas.
1. Uso de API LLM: una introducción rápida
Las API de LLM ofrecen una forma directa de acceder a modelos de idiomas potentes sin administrar la infraestructura. Estos servicios manejan los complejos requisitos computacionales, lo que permite a los desarrolladores centrarse en la implementación. En este tutorial, comprenderemos la implementación de estos LLM utilizando ejemplos para hacer su potencial de alto nivel de una manera más directa y orientada al producto. Para mantener este tutorial conciso, nos hemos limitado a los modelos de código cerrado solo para la parte de implementación y al final, hemos agregado una descripción general de alto nivel de los modelos de código abierto.
2. Implementación de LLM de código cerrado: soluciones basadas en API
Los LLM de código cerrado ofrecen capacidades potentes a través de interfaces API sencillas, que requieren una infraestructura mínima al tiempo que ofrece un rendimiento de última generación. Estos modelos, mantenidos por compañías como OpenAI, Anthrope y Google, proporcionan a los desarrolladores una inteligencia lista para la producción accesible a través de simples llamadas de API.
2.1 Exploremos cómo usar una de las API de código cerrado más accesible, la API de Anthrope.
# First, install the Anthropic Python library
!pip install anthropic
import anthropic
import os
client = anthropic.Anthropic(
api_key=os.environ.get("YOUR_API_KEY"), # Store your API key as an environment variable
)
2.1.1 Aplicación: En el contexto, la pregunta respondiendo BOT para las guías de usuario
import anthropic
import os
from typing import Dict, List, Optional
class ClaudeDocumentQA:
"""
An agent that uses Claude to answer questions based strictly on the content
of a provided document.
"""
def __init__(self, api_key: Optional[str] = None):
"""Initialize the Claude client with API key."""
self.client = anthropic.Anthropic(
api_key="YOUR_API_KEY",
)
# Updated to use the correct model string format
self.model = "claude-3-7-sonnet-20250219"
def process_question(self, document: str, question: str) -> str:
"""
Process a user question based on document context.
Args:
document: The text document to use as context
question: The user's question about the document
Returns:
Claude's response answering the question based on the document
"""
# Create a system prompt that instructs Claude to only use the provided document
system_prompt = """
You are a helpful assistant that answers questions based ONLY on the information
provided in the DOCUMENT below. If the answer cannot be found in the document,
say "I cannot find information about this in the provided document."
Do not use any prior knowledge outside of what's explicitly stated in the document.
"""
# Construct the user message with document and question
user_message = f"""
DOCUMENT:
{document}
QUESTION:
{question}
Answer the question using only information from the DOCUMENT above. If the information
isn't in the document, say so clearly.
"""
try:
# Send request to Claude
response = self.client.messages.create(
model=self.model,
max_tokens=1000,
temperature=0.0, # Low temperature for factual responses
system=system_prompt,
messages=[
{"role": "user", "content": user_message}
]
)
return response.content[0].text
except Exception as e:
# Better error handling with details
return f"Error processing request: {str(e)}"
def batch_process(self, document: str, questions: List[str]) -> Dict[str, str]:
"""
Process multiple questions about the same document.
Args:
document: The text document to use as context
questions: List of questions to answer
Returns:
Dictionary mapping questions to answers
"""
results = {}
for question in questions:
results = self.process_question(document, question)
return results
### Test Code
if __name__ == "__main__":
# Sample document (an instruction manual excerpt)
sample_document = """
QUICKSTART GUIDE: MODEL X3000 COFFEE MAKER
SETUP INSTRUCTIONS:
1. Unpack the coffee maker and remove all packaging materials.
2. Rinse the water reservoir and fill with fresh, cold water up to the MAX line.
3. Insert the gold-tone filter into the filter basket.
4. Add ground coffee (1 tbsp per cup recommended).
5. Close the lid and ensure the carafe is properly positioned on the warming plate.
6. Plug in the coffee maker and press the POWER button.
7. Press the BREW button to start brewing.
FEATURES:
- Programmable timer: Set up to 24 hours in advance
- Strength control: Choose between Regular, Strong, and Bold
- Auto-shutoff: Machine turns off automatically after 2 hours
- Pause and serve: Remove carafe during brewing for up to 30 seconds
CLEANING:
- Daily: Rinse removable parts with warm water
- Weekly: Clean carafe and filter basket with mild detergent
- Monthly: Run a descaling cycle using white vinegar solution (1:2 vinegar to water)
TROUBLESHOOTING:
- Coffee not brewing: Check water reservoir and power connection
- Weak coffee: Use STRONG setting or add more coffee grounds
- Overflow: Ensure filter is properly seated and use correct amount of coffee
- Error E01: Contact customer service for heating element replacement
"""
# Sample questions
sample_questions = [
"How much coffee should I use per cup?",
"How do I clean the coffee maker?",
"What does error code E02 mean?",
"What is the auto-shutoff time?",
"How long can I remove the carafe during brewing?"
]
# Create and use the agent
agent = ClaudeDocumentQA()
# Process a single question
print("=== Single Question ===")
answer = agent.process_question(sample_document, sample_questions[0])
print(f"Q: {sample_questions[0]}")
print(f"A: {answer}\n")
# Process multiple questions
print("=== Batch Processing ===")
results = agent.batch_process(sample_document, sample_questions)
for question, answer in results.items():
print(f"Q: {question}")
print(f"A: {answer}\n")
Salida del modelo
Preguntas y respuestas de documentos de Claude: una aplicación LLM especializada
Este agente de preguntas y respuestas de documentos de Claude demuestra una implementación práctica de las API de LLM para la respuesta de las preguntas conscientes de contexto. Esta aplicación utiliza la API Claude de Anthrope para crear un sistema que base estrictamente en sus respuestas en el contenido de documentos proporcionado, una capacidad esencial para muchos casos de uso empresarial.
El agente trabaja envolviendo las poderosas capacidades de lenguaje de Claude en un marco especializado que:
- Toma un documento de referencia y una pregunta del usuario como entradas
- Estructura el indicador de delinear entre el contexto del documento y la consulta
- Utiliza instrucciones del sistema para restringir a Claude para usar solo la información presente en el documento
- Proporciona un manejo explícito para la información que no se encuentra en el documento
- Admite el procesamiento de preguntas individuales y por lotes
Este enfoque es particularmente valioso para los escenarios que requieren respuestas de alta fidelidad vinculadas a contenido específico, como automatización de atención al cliente, análisis de documentos legales, recuperación de documentación técnica o aplicaciones educativas. La implementación demuestra cómo la ingeniería rápida cuidadosa y el diseño del sistema pueden transformar un LLM de propósito general en una herramienta especializada para aplicaciones específicas de dominio.
Al combinar la integración directa de API con limitaciones reflexivas en el comportamiento del modelo, este ejemplo muestra cómo los desarrolladores pueden crear aplicaciones de IA confiables y conscientes del contexto sin requerir un ajuste fino costoso o una infraestructura compleja.
Nota: Esta es solo una implementación básica de la respuesta a las preguntas del documento, no hemos profundizado en las complejidades reales de las cosas específicas del dominio.
3. Implementación de LLM de código abierto: implementación local y adaptabilidad
Open Source LLMS ofrece alternativas flexibles y personalizables a las opciones de código cerrado, lo que permite a los desarrolladores implementar modelos en su propia infraestructura con control completo sobre los detalles de implementación. Estos modelos, de organizaciones como Meta (LLAMA), IA Mistral y varias instituciones de investigación, proporcionan un equilibrio de rendimiento y accesibilidad para diversos escenarios de implementación.
Las implementaciones de LLM de código abierto se caracterizan por:
- Implementación local: los modelos pueden ejecutarse en hardware personal o infraestructura en la nube autogestionada
- Opciones de personalización: capacidad de ajustar, cuantificar o modificar modelos para necesidades específicas
- Escala de recursos: el rendimiento se puede ajustar en función de los recursos computacionales disponibles
- Preservación de la privacidad: los datos permanecen dentro de entornos controlados sin llamadas de API externas
- Estructura de costos: costo computacional único en lugar de fijación de precios por televisión
Las principales familias de modelos de código abierto incluyen:
- LLAMA/LLAMA-2: Los poderosos modelos de la Fundación de Meta con licencias comerciales
- Mistral: modelos eficientes con un rendimiento fuerte a pesar de los recuentos de parámetros más pequeños
- Falcon: Modelos eficientes en entrenamiento con rendimiento competitivo de TII
- Pythia: modelos orientados a la investigación con una extensa documentación de metodología de capacitación
Estos modelos se pueden implementar a través de marcos como Hugging Face Transformers, Llama.cpp o Ollama, que proporcionan abstracciones para simplificar la implementación mientras conservan los beneficios del control local. Si bien generalmente requiere una configuración más técnica que las alternativas basadas en API, Open Source LLMS ofrece ventajas en la gestión de costos para aplicaciones de alto volumen, privacidad de datos y potencial de personalización para necesidades específicas de dominio.
Aquí está el Cuaderno de colab. Además, no olvides seguirnos Gorjeo y únete a nuestro Canal de telegrama y LinkedIn GRsalpicar. No olvides unirte a nuestro Subreddit de 80k+ ml.
🚨 Lectura de lectura recomendada Liberaciones de investigación de IA: un sistema avanzado que integra el sistema de IA del agente y los estándares de cumplimiento de datos para abordar las preocupaciones legales en los conjuntos de datos de IA
Asjad es consultor interno en MarktechPost. Está persiguiendo B.Tech en Ingeniería Mecánica en el Instituto de Tecnología Indio, Kharagpur. Asjad es un entusiasta de aprendizaje automático y aprendizaje profundo que siempre está investigando las aplicaciones del aprendizaje automático en la atención médica.