"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Entropix: Técnicas de Amostragem para Maximizar o Desempenho de Inferência

Entropix: Técnicas de Amostragem para Maximizar o Desempenho de Inferência

Publicado em 2024-11-07
Navegar:803

Entropix: Técnicas de Amostragem para Maximizar o Desempenho de Inferência

De acordo com o README do Entropix, o Entropix usa um método de amostragem baseado em entropia. Este artigo explica as técnicas específicas de amostragem baseadas em entropia e varentropia.

Entropia e Varentropia

Vamos começar explicando a entropia e a varentropia, pois são fatores-chave na determinação da estratégia de amostragem.

Entropia

Na teoria da informação, a entropia é uma medida da incerteza de uma variável aleatória. A entropia de uma variável aleatória X é definida pela seguinte equação:

Entropix: Sampling Techniques for Maximizing Inference Performance

  • X: uma variável aleatória discreta.
  • x_i: O i-ésimo estado possível de X.
  • p(x_i): A probabilidade do estado x_i.

A entropia é maximizada quando a distribuição de probabilidade é uniforme. Por outro lado, quando um estado específico é muito mais provável do que outros, a entropia diminui.

Varentropia

A varentropia, intimamente relacionada à entropia, representa a variabilidade no conteúdo da informação. Considerando o conteúdo de informação I(X), entropia H(X) e variância para uma variável aleatória X, a varentropia V E(X) é definida da seguinte forma:

Entropix: Sampling Techniques for Maximizing Inference Performance

A varentropia torna-se grande quando as probabilidades p(x_i) variam muito. Torna-se pequeno quando as probabilidades são uniformes - seja quando a distribuição tem entropia máxima ou quando um valor tem probabilidade de 1 e todos os outros têm probabilidade de 0.

Métodos de amostragem

A seguir, vamos explorar como as estratégias de amostragem mudam com base nos valores de entropia e varentropia.

Entropix: Sampling Techniques for Maximizing Inference Performance

1. Baixa Entropia, Baixa Varentropia → Argmax

Neste cenário, um determinado token tem uma probabilidade de previsão muito maior do que os outros. Como o próximo token é quase certo, Argmax é usado.

if ent 



Link do código

2. Baixa Entropia, Alta Varentropia → Ramificação

Isso ocorre quando há alguma confiança, mas existem várias opções viáveis. Nesse caso, a estratégia Branch é usada para obter amostras de múltiplas escolhas e selecionar o melhor 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)

Link do código

Embora esta estratégia seja chamada de "Branch", o código atual parece ajustar o intervalo de amostragem e selecionar um único caminho. (Se alguém tiver mais informações, mais esclarecimentos serão apreciados.)

3. Alta Entropia, Baixa Varentropia → CoT ou Inserir Token de Pausa

Quando as probabilidades de previsão do próximo token são razoavelmente uniformes, indicando que o próximo contexto não é certo, um token de esclarecimento é inserido para resolver a ambiguidade.

elif ent > 3.0 and vent 



Link do código

4. Alta Entropia, Alta Varentropia → Reamostrar

Nesse caso, existem vários contextos e as probabilidades de previsão do próximo token são baixas. Uma estratégia de reamostragem é usada com uma configuração de temperatura mais alta e um p. superior mais baixo.

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)

Link do código

Casos intermediários

Se nenhuma das condições acima for atendida, a amostragem adaptativa será executada. Várias amostras são coletadas e a melhor pontuação de amostragem é calculada com base na entropia, varentropia e informações de atenção.

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
    )

Link do código


Referências

  • Repositório Entropix
  • O que a Entropix está fazendo?
Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/m_sea_bass/entropix-sampling-techniques-for-maximizing-inference-performance-2hgc?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3