"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Entropix: técnicas de muestreo para maximizar el rendimiento de la inferencia

Entropix: técnicas de muestreo para maximizar el rendimiento de la inferencia

Publicado el 2024-11-07
Navegar:965

Entropix: técnicas de muestreo para maximizar el rendimiento de la inferencia

Según Entropix README, Entropix utiliza un método de muestreo basado en entropía. Este artículo explica las técnicas de muestreo específicas basadas en entropía y varentropía.

Entropía y varentropía

Comencemos explicando la entropía y la varentropía, ya que son factores clave para determinar la estrategia de muestreo.

entropía

En teoría de la información, la entropía es una medida de la incertidumbre de una variable aleatoria. La entropía de una variable aleatoria X está definida por la siguiente ecuación:

Entropix: Sampling Techniques for Maximizing Inference Performance

  • X: Una variable aleatoria discreta.
  • x_i: El i-ésimo estado posible de X.
  • p(x_i): La probabilidad del estado x_i.

La entropía se maximiza cuando la distribución de probabilidad es uniforme. Por el contrario, cuando un estado específico es mucho más probable que otros, la entropía disminuye.

Varentropía

La varentropía, estrechamente relacionada con la entropía, representa la variabilidad en el contenido de la información. Considerando el contenido de información I(X), la entropía H(X) y la varianza de una variable aleatoria X, la varentropía V E(X) se define de la siguiente manera:

Entropix: Sampling Techniques for Maximizing Inference Performance

La varentropía se vuelve grande cuando las probabilidades p(x_i) varían mucho. Se vuelve pequeño cuando las probabilidades son uniformes, ya sea cuando la distribución tiene la máxima entropía o cuando un valor tiene una probabilidad de 1 y todos los demás tienen una probabilidad de 0.

Métodos de muestreo

A continuación, exploremos cómo cambian las estrategias de muestreo según los valores de entropía y varentropía.

Entropix: Sampling Techniques for Maximizing Inference Performance

1. Baja entropía, baja varentropía → Argmax

En este escenario, un token en particular tiene una probabilidad de predicción mucho mayor que los demás. Dado que el próximo token es casi seguro, se utiliza Argmax.

if ent 



Enlace de código

2. Baja entropía, alta varentropía → Rama

Esto ocurre cuando hay cierta confianza, pero existen múltiples opciones viables. En este caso, la estrategia Sucursal se utiliza para muestrear entre múltiples opciones y seleccionar el mejor resultado.

elif ent  5.0:
    temp_adj = 1.2   0.3 * interaction_strength
    top_k_adj = max(5, int(top_k * (1   0.5 * (1 - agreement))))
    return _sample(logits, temperature=min(1.5, temperature * temp_adj), top_p=top_p, top_k=top_k_adj, min_p=min_p, generator=generator)

Enlace de código

Aunque esta estrategia se llama "Rama", el código actual parece ajustar el rango de muestreo y seleccionar una única ruta. (Si alguien tiene más información, se agradecería una mayor aclaración).

3. Alta entropía, baja varentropía → CoT o Insertar token de pausa

Cuando las probabilidades de predicción del siguiente token son bastante uniformes, lo que indica que el siguiente contexto no es seguro, se inserta un token de aclaración para resolver la ambigüedad.

elif ent > 3.0 and vent 



Enlace de código

4. Alta entropía, alta varentropía → Remuestreo

En este caso, hay múltiples contextos y las probabilidades de predicción del siguiente token son bajas. Se utiliza una estrategia de remuestreo con un ajuste de temperatura más alto y una p superior más baja.

elif ent > 5.0 and vent > 5.0:
    temp_adj = 2.0   0.5 * attn_vent
    top_p_adj = max(0.5, top_p - 0.2 * attn_ent)
    return _sample(logits, temperature=max(2.0, temperature * temp_adj), top_p=top_p_adj, top_k=top_k, min_p=min_p, generator=generator)

Enlace de código

Casos intermedios

Si no se cumple ninguna de las condiciones anteriores, se realiza muestreo adaptativo. Se toman varias muestras y se calcula la mejor puntuación de muestreo en función de la información de entropía, varentropía y atención.

else:
    return adaptive_sample(
        logits,
        metrics,
        gen_tokens,
        n_samples=5,
        base_temp=temperature,
        base_top_p=top_p,
        base_top_k=top_k,
        generator=generator
    )

Enlace de código


Referencias

  • Repositorio Entropix
  • ¿Qué está haciendo Entropix?
Declaración de liberación Este artículo se reproduce en: https://dev.to/m_sea_bass/entropix-sampling-techniques-for-maximizing-inference-performance-2hgc?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3