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