Tópicos em alta
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.

Danielle Fong 🔆
* hiperamericano * propano e acessórios de propano
Substituindo o Woke Solar por Motor Fotônico de Chama de Propano Mais Brilhante que o Sol
*Esferas Dyson Portáteis*!
Danielle Fong 🔆 repostou
#BREAKING: Lendário #Maddow: "Trump não está anunciando nenhuma demissão, certo? Todo mundo só consegue ser um embaixador de algo quando é expulso neste mandato. Mas na parte militar e de segurança nacional do governo dos EUA, se você observar o que eles estão realmente fazendo, está realmente começando a parecer DEMISSÕES EM MASSA de todos com qualquer tipo de posição, todos de consequência. 😳
94,43K
Danielle Fong 🔆 repostou
Por que isso acontece? A modelo acredita que há um emoji de cavalo-marinho, com certeza, mas por que isso faz com que ele produza um emoji *diferente*? Aqui está uma pista da ferramenta de interpretabilidade subestimada favorita de todos, o Logit Lens!
No Logit Lens, usamos o lm_head do modelo de uma maneira estranha. Normalmente, o lm_head é usado para transformar o resíduo (o estado interno construído sobre as camadas do modelo) em um conjunto de probabilidades de token após a camada final. Mas no Logit Lens, usamos o lm_head após *cada* camada - mostrando-nos quais tokens o modelo produziria se essa camada fosse a camada final.
Para camadas iniciais, isso resulta em estados difíceis de interpretar. Mas à medida que nos movemos pelas camadas, o modelo refina iterativamente o resíduo primeiro em direção a conceitos úteis para continuar o texto e depois em direção à previsão final.
olhando para a imagem novamente, na camada final, temos a saída real do modelo - ĠðŁ, IJ, ł - também conhecido como um prefixo de byte emoji seguido pelo resto do emoji de peixe.
(parece um absurdo unicode por causa de uma peculiaridade de tokenização - não se preocupe com isso. se você estiver curioso, pergunte a Claude sobre esta linha de código: 'bytes([byte_decoder[c] for c in 'ĠðŁIJł']).decode('utf-8') == ' 🐠 '')
Mas veja o que acontece nas camadas intermediárias - não recebemos apenas bytes de emoji! Temos esses *conceitos*, especificamente o conceito de um cavalo-marinho. Por exemplo, na camada 52, obtemos "cavalo marinho". mais tarde, no top-k, temos uma mistura de "mar", "cavalo" e aquele prefixo emoji, "ĠðŁ".
Então, o que o modelo está pensando? Cavalo-marinho + emoji! está tentando construir uma representação residual de um emoji de cavalo-marinho.
Por que faria isso? Bem, vamos ver como o lm_head realmente funciona. O lm_head é uma enorme matriz de vetores de tamanho residual associados a IDs de token. Quando um resíduo é passado para ele, ele vai comparar esse resíduo com cada vetor de token e, em coordenação com o amostrador, selecionar o ID do token com um vetor mais semelhante ao residual. (mais tecnicamente: é uma camada linear sem viés, então v @ w.T faz produtos escalonados com cada vetor de desincorporação e, em seguida, log_softmax e argmax / amostra de temperatura.)
Portanto, se o modelo quiser gerar a palavra "hello", ele precisará construir um resíduo semelhante ao vetor para o token de saída "hello" que o lm_head pode transformar no ID do token hello. E se o modelo quiser gerar um emoji de cavalo-marinho, ele precisará construir um resíduo semelhante ao vetor para o(s) token(s) de saída de emoji de cavalo-marinho - que, em teoria, poderia ser qualquer valor arbitrário, Mas na prática é cavalo-marinho + emoji, estilo Word2vec.
O único problema é que o emoji de cavalo-marinho não existe! Então, quando esse resíduo de cavalo-marinho + emoji atinge o lm_head, ele faz seu produto escalar em todos os vetores, e o amostrador escolhe o token mais próximo - um emoji de peixe.
Agora, essa discretização é uma informação valiosa! você pode ver no exemplo do Armistice que quando o token é colocado de volta no contexto de forma autorregressiva, o modelo pode dizer que não é um emoji de cavalo-marinho. então ele tenta novamente, balança o resíduo e obtém um emoji ligeiramente diferente, enxágue e repita até perceber o que está acontecendo, desistir ou ficar sem tokens de saída.
Mas até que o modelo obtenha o token de saída errado do lm_head, ele simplesmente não sabe que não há um emoji de cavalo-marinho no lm_head. Ele assume que Seahorse + emoji produzirá o(s) token(s) que deseja.
------------------
Para especular (ainda mais), eu me pergunto se isso faz parte do benefício do RL - ele fornece aos modelos informações sobre seus lm_head que de outra forma seriam difíceis de obter porque estão no final da pilha de camadas. (lembre-se de que os modelos básicos não são treinados em suas próprias saídas / implementações - isso só acontece em RL.)

78,8K
Melhores
Classificação
Favoritos