LangChain modelos huggingface

Intermedio
LangChain
LangChain
Actualizado: 18/04/2026

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.

Modelos de HuggingFace en LangChain: ejecución local con HuggingFacePipeline y remota con HuggingFaceEndpoint

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 4 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.

Selección de modelos y consideraciones prácticas

La elección del modelo adecuado en Hugging Face depende de varios factores: el tamaño del modelo, los recursos de hardware disponibles y el tipo de tarea a realizar. A continuación se presentan recomendaciones prácticas para diferentes escenarios.

Modelos recomendados por caso de uso

Para tareas de generación de texto con recursos limitados, los modelos más ligeros ofrecen un buen equilibrio entre calidad y rendimiento:

from langchain_huggingface import HuggingFacePipeline

# Modelo ligero para clasificación y tareas simples
llm_ligero = HuggingFacePipeline.from_model_id(
    model_id="distilgpt2",
    task="text-generation",
    pipeline_kwargs={"max_new_tokens": 200}
)

# Modelo intermedio para generación de texto más elaborada
llm_intermedio = HuggingFacePipeline.from_model_id(
    model_id="microsoft/phi-2",
    task="text-generation",
    pipeline_kwargs={
        "max_new_tokens": 512,
        "device_map": "auto"
    }
)

Gestión de memoria y recursos

La ejecución local de modelos puede consumir una cantidad significativa de memoria RAM y VRAM. Es importante monitorizar y gestionar estos recursos para evitar errores de memoria:

import torch

# Verificar disponibilidad de GPU
if torch.cuda.is_available():
    print(f"GPU disponible: {torch.cuda.get_device_name(0)}")
    print(f"VRAM total: {torch.cuda.get_device_properties(0).total_mem / 1e9:.1f} GB")
    print(f"VRAM libre: {torch.cuda.mem_get_info()[0] / 1e9:.1f} GB")
else:
    print("Sin GPU, se usará CPU (más lento)")

Embeddings con Hugging Face

Además de la generación de texto, Hugging Face ofrece modelos de embeddings que pueden ejecutarse localmente, lo cual resulta esencial para aplicaciones RAG completamente privadas:

from langchain_huggingface import HuggingFaceEmbeddings

embeddings = HuggingFaceEmbeddings(
    model_name="sentence-transformers/all-mpnet-base-v2",
    model_kwargs={"device": "cpu"},
    encode_kwargs={"normalize_embeddings": True}
)

vector = embeddings.embed_query("Ejemplo de texto para vectorizar")
print(f"Dimensiones del embedding: {len(vector)}")

El modelo all-mpnet-base-v2 produce embeddings de 768 dimensiones y ofrece un rendimiento sólido en tareas de búsqueda semántica. Para aplicaciones que requieren mayor precisión, el modelo all-MiniLM-L12-v2 proporciona un buen equilibrio entre calidad y velocidad de inferencia.

La integración de Hugging Face con LangChain democratiza el acceso a modelos de inteligencia artificial, permitiendo a los desarrolladores ejecutar inferencia localmente con total control sobre los datos y sin dependencia de servicios 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