Um vídeo do Ciência Todo Dia me fez entender a bitnet 1.58, afinal, atenção e imaginação é tudo que você precisa.

Atenção é tudo o que você precisa.

Comecemos este paper que deu origem ao modelo de Transformers. Se tirarmos o significado geral podemos mudar com ele a nós mesmos.

Acredito que muitos programadores nunca deram real valor ao algoritmo e mais valor ao código bruto principalmente aqueles que passaram pela faculdade e vocês não estão totalmente errados nisso (jogando uma probabilidade aí) mas veja como um vídeo do canal ciência todo dia me ajudou a entender o conceito de bitnet 1.58.

Compreendendo o que será a bitnet 1.58

Este post apresentou-me o conceito das bitnet 1.58 que eram uma teoria de quantização para usar valores −1, 0 e 1 para representar a ativação dos neurônios de uma rede neural.

Isso para mim era algo muito estranho como que maior, menor ou igual (famoso starship) de ruby poderia ter o poder todo de representar o estado de ativação de um neurônio.

Plot Twist: Não tem

o que ocorre é que na programação, ou melhor, na computação, nós abstraímos tudo que trabalhamos (o computador é numérico) e obedece às leis da matemática. Ou seja, tudo, além disso, é uma suave abstração.

A regra matemática da bitnet 1.58

Apesar de não ter lido completamente o paper do bitnet 1.58 entendia mais ou menos o ponto onde o paper tenta atingir. Apesar de −1, 0, 1 serem usados no starship de ruby existe outra regra que pode retornar tais valores.

Transformada rápida de fourier

Claro que o paper pode modificar a transformada para propósitos de AI, mas o conceito permanece, o uso de senos e cossenos para definir uma função.

Novamente, eu não havia entendido esse ponto até o Pedro Loos do Canal Ciência Todo Dia fez este vídeo.

Conclusão

Veja que eu permaneceria sem ter entendido esse ponto até ver outros conteúdos sobre diversos temas, é muito difícil dar nome aos bois apesar de você entender as diferenças de cada um.

Nunca assuma que 1 é 1 na programação, existem no mínimo 2 coisas que esse 1 estará representando, afinal conhecimento de mundo real e o contexto no qual está sendo aplicado determinará o 1.

Quer ver um exemplo?

ipv6, md5, uuid.

Todos eles são valores randômicos gerados como um conjunto de hexadecimais. E todos eles são diferentes um dos outros, então não tem como usar um ipv6 no lugar de um uuid para salvar no banco de dados e nem usar um md5 no lugar de um ipv6 para setar valor de rede.

O mundo real é muito mais desordenado e caótico do que parece e cada boi tem seu nome porque eles são devidamente distinguido e separado. E a melhor forma de entender isso não é sendo um “programador” e sim um “polímata” no sentido de:

Existia o problema e que conhecimentos a pessoa achava que precisava pra resolver o problema. Akita, Fabio - Modelagem de Dados Ver vs Enxergar