Volver a la lista

¿Qué pasaría si desaparecieran los algoritmos de ordenación? — La búsqueda genómica redefinida por los modelos fundacionales.

Se analiza la diferencia fundamental entre la búsqueda basada en ordenamiento, que es precisa pero lenta, y la búsqueda por embeddings de modelos fundacionales, que es rápida pero aproximada, junto con las discusiones más recientes de MIT 6.874.

Avanzado
|
22min
|
Verificado (2026-07-29)
protein embeddingapproximate nearest neighborhomology searchsequence alignment
Progreso0/120 (0%)

Si un agente selecciona una herramienta, la propia herramienta está cambiando

En F33 vimos cómo un agente decide por sí mismo qué herramienta utilizar. Sin embargo, lo que realmente está cambiando es la propia naturaleza de las herramientas dentro de ese conjunto. Junto a los algoritmos de alineación tipo BLAST, que han sido el estándar para la búsqueda de similitud de secuencias durante más de 40 años, ahora se están integrando métodos basados en encontrar los vecinos más cercanos en el espacio de embeddings de modelos fundacionales. En F34 se analizan las diferencias fundamentales entre estos dos enfoques y en qué puntos se complementan en lugar de sustituirse mutuamente.

Principios: alineación precisa y búsqueda aproximada mediante embeddings

Lo que hacen BLAST/MMseqs2

BLAST y su sucesor MMseqs2 calculan un alineamiento explícito entre secuencias para cuantificar la similitud. Utilizan una función de puntuación basada en programación dinámica que identifica semillas, las expande y aplica penalizaciones por inserciones, deleciones y sustituciones. El resultado proporciona una base interpretable, indicando exactamente "en qué posición se alinearon y cuántas discrepancias hubo".

Lo que hace la búsqueda mediante embeddings

Modelos de lenguaje de proteínas como ESM2 (F11) convierten las secuencias en vectores de longitud fija (embeddings). La similitud entre dos secuencias no se define mediante una puntuación de alineamiento, sino mediante la distancia entre los dos vectores (como la similitud del coseno).

similarity(x,y)=exeyexey\text{similarity}(x, y) = \frac{\mathbf{e}_x \cdot \mathbf{e}_y}{\lVert \mathbf{e}_x \rVert \, \lVert \mathbf{e}_y \rVert}

La ventaja de este enfoque es que incluso si las secuencias difieren mucho, pueden estar cerca en el espacio de embeddings si su estructura o función son similares. Mientras que la búsqueda basada en alineamiento pierde la capacidad de encontrar alineamientos significativos cuando la identidad de la secuencia cae por debajo de un cierto umbral (comúnmente conocido como "zona crepuscular", con una identidad de secuencia inferior al 20–30%), la búsqueda mediante embeddings a menudo logra capturar homólogos remotos (remote homologs) evolutivamente distantes. El inconveniente es la interpretabilidad: es difícil explicar por qué dos secuencias se consideran similares a nivel de posición, como ocurre con el alineamiento.

Ejemplo de cálculo manual: diferencia en la complejidad de la búsqueda

Supongamos que comparamos una consulta de longitud nn con NN secuencias de la base de datos de longitud media mm. Si realizamos un alineamiento exhaustivo mediante programación dinámica clásica, el coste por par de secuencias es O(nm)O(nm), y el total es:

O(Nnm)O(N \cdot nm)

Los métodos tipo BLAST y MMseqs2 reducen drásticamente la carga computacional real mediante la identificación de semillas y el filtrado de candidatos, realizando un alineamiento preciso solo para los candidatos que superan el filtro. Por otro lado, si se calculan previamente los embeddings y se insertan en un índice de vecinos más cercanos aproximados (ANN) como HNSW, es posible visitar muchos menos candidatos en comparación con la comparación exhaustiva de vectores, siempre que la distribución de los datos y los parámetros del índice sean adecuados.

No se puede garantizar universalmente que la búsqueda HNSW tenga una complejidad de O(logN)O(\log N). La latencia y el recall en la práctica dependen de la configuración del grafo, efSearch, la dimensión de los embeddings y la distribución de los datos. A medida que NN aumenta considerablemente, esta aceleración empírica es útil; sin embargo, dado que se pueden omitir los vecinos más cercanos reales, se debe medir el recall comparándolo con una búsqueda exhaustiva.

No es una sustitución, sino una reestructuración — Pipeline híbrido

En la práctica, se ha consolidado una estructura de dos etapas: la búsqueda por embeddings reduce rápidamente cientos de millones de candidatos a unos pocos cientos o miles, y luego se aplica un ordenamiento tradicional solo sobre esos candidatos reducidos para obtener una justificación precisa. Es decir, más que un reemplazo total del ordenamiento por parte de los modelos fundacionales, se trata de una reestructuración: "reducir rápidamente el área de búsqueda y confirmar la decisión final mediante el ordenamiento".

Candidaturas totales N  ANN por embeddings  Candidaturas comprimidas k  Ordenamiento, O(knm)  Decisioˊn final\text{Candidaturas totales } N \;\xrightarrow{\text{ANN por embeddings}}\; \text{Candidaturas comprimidas } k \;\xrightarrow{\text{Ordenamiento, } O(k \cdot nm)}\; \text{Decisión final}

Práctica: Búsqueda aproximada de homólogos mediante embeddings de ESM2 (Colab T4)

python
# Ejecutar en Colab T4. Incrustar algunas secuencias con el modelo pequeño ESM2 y encontrar vecinos más cercanos.
!pip install -q fair-esm faiss-cpu
import torch, esm, faiss
import numpy as np
model, alphabet = esm.pretrained.esm2_t12_35M_UR50D() # Práctica con modelo pequeño (35M)
model.eval()
batch_converter = alphabet.get_batch_converter()
sequences = [
("query", "MKTAYIAKQRQISFVKSHFSRQLEERLGLIEVQAPILSRVGDGTQDNLSGAEKAVQVKVKALPDAQFEVVHSLAKWKR"),
("cand_1", "MKTAYIAKQRQISFVKSHFSRQLEERLGLIEVQAPILSRVGDGTQDNLSGAEKAVQVKVKALPDAQFEVVHSLAKWKR"),
("cand_2", "MSTNPKPQRKTKRNTNRRPQDVKFPGGGQIVGGVYLLPRRGPRLGVRATRKTSERSQPRGRRQPIPKARRPEGRTWA"),
]
_, _, tokens = batch_converter(sequences)
with torch.no_grad():
out = model(tokens, repr_layers=[12])
token_reps = out["representations"][12]
# Promedio de pooling solo de los residuos reales, excluyendo BOS/EOS y relleno
reps = torch.stack([
token_reps[i, 1:len(seq) + 1].mean(0)
for i, (_, seq) in enumerate(sequences)
]).cpu().numpy().astype("float32")
index = faiss.IndexFlatIP(reps.shape[1]) # Índice de producto interno para simular similitud de coseno
faiss.normalize_L2(reps)
index.add(reps[1:]) # Indexar solo los candidatos
D, I = index.search(reps[0:1], k=2) # Búsqueda de vecinos más cercanos con la consulta
print("Rango de similitud:", I, "Puntuaciones:", D)

Al comparar directamente en este ejercicio cuál de los dos candidatos está más cerca de la consulta y si su clasificación coincide con el orden de identidad de secuencia real, se puede experimentar que la distancia de embedding no siempre es proporcional a la identidad de secuencia.

Mapeo de CS

  • Búsqueda de vecinos cercanos aproximados (ANN): HNSW y FAISS son estructuras de datos que encuentran rápidamente soluciones aproximadas con alta precisión probabilística en lugar de vecinos cercanos exactos, abordando explícitamente el compromiso (trade-off) entre la búsqueda en tiempo logarítmico y la precisión.
  • La maldición de la dimensionalidad: El fenómeno por el cual la capacidad de discriminación basada en la distancia disminuye a medida que aumenta la dimensión de los embeddings es un problema estándar de la geometría de alta dimensión, y es la razón por la cual se requiere reducción de dimensionalidad o normalización al diseñar modelos de embedding.
  • Distancia de edición vs. distancia de embedding: El alineamiento define la similitud en un espacio de distancia de edición (edit distance) discreto, mientras que el embedding lo hace en un espacio vectorial continuo; el hecho de que dos espacios de distancia diferentes no produzcan necesariamente el mismo ranking es la diferencia fundamental entre ambos enfoques.

Errores comunes

  • Adoptar la similitud de embedding como evidencia directa de homología: Que los embeddings estén cerca no implica necesariamente una relación de homología evolutiva. Los embeddings pueden estar cerca incluso en casos de evolución convergente de estructura o función, por lo que se requiere una reconfirmación basada en alineamiento para conclusiones críticas.
  • Ignorar el error de aproximación del índice ANN: La tasa de recuperación (recall) de HNSW y otros métodos varía según los parámetros (como ef_search, etc.). Asumir que "si es rápido, debe ser preciso" sin verificar la tasa de recuperación puede provocar la pérdida de candidatos importantes.

Para profundizar más

Este texto ha sido reconstruido directamente por el equipo de investigación de BPD. Profundice con los artículos originales y los materiales oficiales.

  • Material de clase actualizado de MIT 6.874 (Manolis Kellis): El flujo de los modelos fundacionales en biología computacional.
  • Artículo original de ESM2 (Lin et al., 2023, Science): La base para predecir estructuras mediante embeddings de modelos de lenguaje.
  • Documentación oficial de FAISS: Tipos de índices de vecinos cercanos aproximados y parámetros.
  • GitHub oficial de MMseqs2: La implementación estándar actual para la búsqueda de secuencias a gran escala.

En el siguiente capítulo F35, abordaremos el aprendizaje federado: cómo estos modelos pueden entrenarse conjuntamente sin que las diversas instituciones compartan sus datos.

💬 Preguntas y comentarios

0 comentarios

Puedes publicar sin iniciar sesión. Los comentarios de invitados no pueden editarse ni eliminarse después.

0/2000

Cargando...