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.
Vamos começar explicando a entropia e a varentropia, pois são fatores-chave na determinação da estratégia de amostragem.
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:
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.
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:
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.
A seguir, vamos explorar como as estratégias de amostragem mudam com base nos valores de entropia e varentropia.
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 entLink 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 ventLink 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
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