AI-901: Embeddings y búsqueda semántica con Foundry
En esta guía voy a enseñar la competencia de usar embeddings para implementar una búsqueda semántica con Microsoft Foundry y OneLake — un área práctica evaluada con frecuencia en la parte de implementación de soluciones de IA. Comprender embeddings y cómo indexarlos/consultarlos es útil para el examen y fundamental para construir búsquedas por significado en documentos, FAQs y aplicaciones conversacionales.
Lo que necesitas saber
Los embeddings son representaciones numéricas (vectores) de texto, imágenes u otro contenido que capturan semántica: objetos semánticamente similares tienen vectores próximos. En sistemas de búsqueda semántica, convertimos documentos y consultas en vectores y usamos similitud (ej.: cosine similarity) para encontrar los documentos más relevantes.
Ejemplo simple: los textos "Cómo cambiar la contraseña" y "Alterar password" tendrán embeddings cercanos, aunque las palabras sean diferentes — a diferencia de una búsqueda por palabra exacta.
En la práctica
Pasos esenciales para implementar una búsqueda semántica con Foundry y OneLake:
- Preparar datos: recopila y limpia documentos (archivos, páginas, transcripciones). Normaliza el texto: elimina HTML innecesario, normaliza espacios y separa por unidades de contexto (párrafos, segmentos).
- Generar embeddings: elige un modelo de embeddings (proporcionado por Azure OpenAI, u otro integrado en Foundry) y transforma cada segmento en un vector.
- Almacenar vectores: registra los vectores en un índice vectorial soportado por OneLake/Foundry (o en un servicio de vector store compatible), incluyendo metadatos (id del documento, ubicación, resumen).
- Indexar y optimizar: utiliza técnicas como chunking adecuado (tamaño del segmento), normalización y, cuando esté disponible, creación de índices aproximados (ej.: HNSW) para consultas rápidas.
- Consultar: para cada consulta del usuario, genera el embedding de la consulta, calcula similitudes con los vectores indexados y devuelve los documentos más próximos. Opcional: rerank con un modelo de comprensión o summarización antes de presentar al usuario.
Aquí tienes un ejemplo simplificado en Python (pseudo-código) para generar y comparar embeddings:
from azure.identity import DefaultAzureCredential
from azure.ai.openai import OpenAIClient
import numpy as np
# Autenticação e cliente (exemplo conceptual)
credential = DefaultAzureCredential()
client = OpenAIClient(endpoint, credential)
# 1. Gerar embedding para um documento
resp = client.get_embeddings(model='embedding-model', input='Texto do documento aqui')
doc_vector = np.array(resp.data[0].embedding)
# Armazenar doc_vector com id e metadados no índice vetorial (OneLake/Foundry)
# (Esta etapa depende do serviço de indexação do Foundry)
# 2. Gerar embedding para a query
q_resp = client.get_embeddings(model='embedding-model', input='Como alterar a password?')
query_vector = np.array(q_resp.data[0].embedding)
# 3. Calcular cosine similarity (exemplo para poucos vetores)
def cosine_similarity(a, b):
return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b))
score = cosine_similarity(query_vector, doc_vector)
# ordenar por score e retornar os top-K
Notas prácticas: en producción, no cargues todos los vectores en memoria — utiliza un índice vectorial que soporte búsquedas aproximadas y escalables (por ejemplo, HNSW). En Foundry, usa los componentes de indexing/OneLake que facilitan la gestión de los vectores y metadatos.
Errores comunes
- Fragmentación inadecuada: dividir documentos en segmentos demasiado grandes o pequeños. Segmentos muy grandes diluyen el contexto; demasiado pequeños pierden sentido. Prueba tamaños y evalúa la calidad de la recuperación.
- Comparar vectores sin normalización: olvidar normalizar vectores o usar métricas inconsistentes puede distorsionar los resultados. Para cosine similarity, normaliza o calcula correctamente.
- Ignorar metadatos: no guardar metadatos útiles (fecha, título, ubicación) dificulta el filtrado y la explicabilidad. Los metadatos permiten combinar filtros semánticos y estructurados.
Cómo practicar
Para practicar esta competencia de forma alineada con el examen y con recursos oficiales:
- Haz el Practice Assessment OFICIAL de Microsoft (gratuito) para el AI-901 — es la forma correcta de evaluar tu preparación.
- Sigue la study guide / learning path de Microsoft para AI-901 en Microsoft Learn (gratuito). Busca módulos sobre embeddings, Azure OpenAI y servicios de indexación/Vector Search.
- Implementa un pequeño proyecto: toma 50–200 documentos, genera embeddings con un modelo disponible en tu entorno Azure/Foundry, indexa-os e implementa consultas. Evalúa la calidad con ejemplos reales y ajusta el chunking y los modelos.
En resumen
- Los embeddings transforman texto en vectores; la búsqueda semántica usa similitud para recuperar contenido por significado.
- Flujo práctico: preparar datos → generar embeddings → almacenar en un índice vectorial → consultar con embeddings de la query.
- Evita fragmentación inadecuada, fallos de normalización y falta de metadatos; usa índices aproximados para escalabilidad.
- Practica con el Practice Assessment OFICIAL de Microsoft y con los módulos en Microsoft Learn para consolidar conocimiento.