LangChain modelos huggingface

Intermedio
LangChain
LangChain
Actualizado: 02/12/2025

HuggingFacePipeline en LangChain

HuggingFacePipeline permite la ejecución local de modelos alojados en Hugging Face Hub. Esta aproximación descarga los pesos del modelo a tu infraestructura y utiliza tu propio hardware (CPU o GPU) para la inferencia, ofreciendo privacidad absoluta y control total sin depender de servicios externos.

Es ideal para investigación, desarrollo offline o cuando las políticas de datos impiden el uso de APIs en la nube. Sin embargo, requiere recursos de hardware considerables dependiendo del tamaño del modelo elegido.

Instalación y configuración

Para utilizar esta integración, es necesario instalar el paquete langchain-huggingface junto con las librerías base de transformers.

pip install langchain-huggingface transformers torch

Creación de un Pipeline local

El pipeline carga el modelo en memoria. Puedes especificar parámetros para optimizar el uso de recursos, como la cuantización o el mapeo automático de dispositivos.

  • 1. Configuración del Pipeline:
from langchain_huggingface import HuggingFacePipeline

# Cargar un modelo ligero para generación de texto
llm = HuggingFacePipeline.from_model_id(
    model_id="gpt2",  # Modelo de ejemplo ligero
    task="text-generation",
    pipeline_kwargs={
        "max_new_tokens": 100,
        "top_k": 50,
        "temperature": 0.7,
    },
)

print(llm.invoke("La inteligencia artificial es"))
  • 2. Uso con ChatHuggingFace:

Para modelos instructivos o de chat, es recomendable envolver el pipeline en ChatHuggingFace para manejar correctamente el formato de los mensajes.

from langchain_huggingface import ChatHuggingFace

chat_model = ChatHuggingFace(llm=llm)

Consideraciones de Hardware

La ejecución local depende críticamente de tu hardware. Si dispones de una GPU NVIDIA, asegúrate de tener instalada la versión correcta de torch con soporte CUDA para acelerar la inferencia.

# Ejemplo de configuración para usar GPU si está disponible
pipeline_kwargs={
    "device_map": "auto", # Usa GPU automáticamente si es posible
    "torch_dtype": "auto"
}

HuggingFaceEndpoint en LangChain

HuggingFaceEndpoint es la alternativa para consumir modelos a través de la API de Inferencia Serverless de Hugging Face. A diferencia del pipeline local, no requiere descargar el modelo ni tener hardware potente, ya que la computación se realiza en los servidores de Hugging Face.

Esta opción es excelente para probar modelos grandes (como Llama 3 70B o Mixtral) que no cabrían en la memoria de un ordenador personal estándar.

Configuración del Token

Para usar la API, necesitas un User Access Token de Hugging Face.

  • 1. Obtención del token: Ve a tus ajustes en Hugging Face, sección "Access Tokens", y crea un token con permisos de lectura.

  • 2. Configuración en Python:

import os
from dotenv import load_dotenv

load_dotenv()
# Asegúrate de tener HUGGINGFACEHUB_API_TOKEN en tu .env

Uso de HuggingFaceEndpoint

La clase HuggingFaceEndpoint se conecta a la API remota. Puedes elegir entre miles de modelos disponibles en el Hub.

  • 1. Inicialización del Endpoint:
from langchain_huggingface import HuggingFaceEndpoint

llm_remoto = HuggingFaceEndpoint(
    repo_id="HuggingFaceH4/zephyr-7b-beta",
    task="text-generation",
    max_new_tokens=512,
    do_sample=True,
    temperature=0.7
)

response = llm_remoto.invoke("Explica qué es un Transformer en NLP")
print(response)

Integración con Cadenas (Chains)

Ambas opciones (Pipeline y Endpoint) son totalmente compatibles con el ecosistema de LangChain y pueden usarse dentro de cadenas LCEL.

  • 1. Ejemplo de cadena con LCEL:
from langchain_core.prompts import PromptTemplate

template = PromptTemplate.from_template(
    "Resume el siguiente concepto técnico en una frase: {concepto}"
)

chain = template | llm_remoto

print(chain.invoke({"concepto": "Regularización en Machine Learning"}))

Comparativa: Pipeline vs Endpoint

  • Pipeline (Local):

    • Pros: Privacidad total, sin latencia de red, sin costes por token.
    • Contras: Requiere hardware potente, descarga inicial lenta, gestión de dependencias compleja.
  • Endpoint (Remoto):

    • Pros: Acceso inmediato a modelos grandes, no requiere GPU local, fácil de configurar.
    • Contras: Dependencia de internet, límites de rate (en capa gratuita), datos viajan a servidores externos.

Fuentes y referencias

Documentación oficial y recursos externos para profundizar en LangChain

Documentación oficial de LangChain
Alan Sastre - Autor del tutorial

Alan Sastre

Ingeniero de Software y formador, CEO en CertiDevs

Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, LangChain es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.

Más tutoriales de LangChain

Explora más contenido relacionado con LangChain y continúa aprendiendo con nuestros tutoriales gratuitos.

Aprendizajes de esta lección

Instalar langchain-huggingface y transformers, crear pipelines locales con HuggingFacePipeline, configurar modelos para ejecución en CPU o GPU, optimizar recursos con cuantización, y entender las ventajas y limitaciones de modelos locales.

Cursos que incluyen esta lección

Esta lección forma parte de los siguientes cursos estructurados con rutas de aprendizaje