quarta-feira, 29 de janeiro de 2025

A Inteligência Artificial chinesa só pode ser uma fraude.

Nos últimos dias surgiu o DeepSeek como algo melhor que o ChatGPT.

O problema não é o DeepSeek ser melhor que o ChatGPT, é ter sido anunciado pelos inventores de que usa muito menos cálculo do que os modelos americanos.


O problema dos modelos está na sua dimensão.

Quando estudamos Introdução à Programação de Computadores, um dos exercícios iniciais é implementar o algoritmo que multiplica duas matriz quadradas.

É importante compreendermos o comportamento doa multiplicação de matrizes porque os modelos de AI usam redes neuronais que, por sua vez, são resolvidas usando multiplicação matricial. Para quem quiser aprofundar o assunto, recomendo este texto:

Artificial Intelligence - Statistical Inference, Rules, Neural Networks, and GPU

Vou apresentar o modelo implementado pelo chatGPT sem explicações porque pretendo apenas mostrar que o algoritmo tem poucas linhas.

def multiplica_duas_matrizes(M1, M2):
    n = len(M1)
    M1xM2 = [[0] * n for _ in range(n)]  # Criar matriz resultado
    for i in range(n):
        for j in range(n):
            elemento = 0
            for k in range(n):
                elemento += M1[i][k] * M2[k][j]
            M1xM2[i][j] = elemento  # Guardar o elemento
    return M1xM2


Agora, vamos à dimensão da matriz.

Se multiplicar duas matrizes de dimensão 20x20, vou precisar de 0.0041 segundos; se a dimensão for 100x100, já preciso de 0.468 segundos e com 500x500 vou precisar de 59.9 segundos. O aumento de 5 vezes na dimensão, obriga a cerca de 120 vezes mais cálculo.

Vou fazer um gráfico que me mostra a evolução do tempo necessário para multiplicar duas matrizes em função do seu tamanho.

    matriz=[]
    for i in range(n):
        linha = [random.randint(-2**63,2**63) for j in range(n)]
        matriz.append(linha)
    inv_A = gauss_jordan_inverse(matriz)

Agora, vou ver como o tempo que demora a inverter uma matriz em função da sua dimensão.

Fig. 1 - Tempo que demora a multiplicar duas matrizes quadradas.


Todo o chatGPT são multiplicações e somas de matrizes usando um algoritmo conhecido.
A minha pequena função é exactamente igual à usada pela OpenAI sendo, portanto, usada em todos os cálculos que criam o chatGPT. O problema é que as matrizes têm dimensão na ordem de 160000x160000 e é preciso calcular milhares de milhões de multiplicações.
No meu computador, demoraria cerca de 13 anos a realizar cada multiplicação. Agora imaginem a dificuldade de "digerir" milhares de milhões de documentos em que cada documento obriga a várias multiplicações.


Mas não se pode fazer um modelo com matrizes mais pequenas?
A capacidade de interpretar as perguntas, raciocinar e guardar conhecimento está nos parâmetros das matrizes.
No sentido de compreender o significado, cada palavra precisa ser codificada como 1024 números e cada número é um parâmetro do modelo. Depois, cada frase vai ser composta por várias palavras e cada documento por várias frases.
Se pretendermos "guardar" informação de milhões de documentos, mesmo que muita informação seja redundante, é necessário guardar milhões de milhões de relações entre palavras sendo que cada palavra precisa de 1024 parâmetros.
Isto tudo está a multiplicar pelo que, para termos um modelo que ataca problemas de filosofia, de matemática e mesmo de construir imagens, são necessários milhões de milhões de parâmetros.

Tirar um parâmetro ao modelo é como um neurónio que morre no cérebro de uma  pessoa. 
A princípio, ninguém dá conta, há pequenos esquecimentos e atrapalhações. Mas morrendo mais e mais neurónios, acabamos com demência.
O modelo de AI começa a ter mais dificuldade em compreender as perguntas, escreve mais alucinações e acaba por se tornar demente, em que ninguém pode confiar nas suas respostas.


Mas onde estará a fraude chinesa?

Pode estar em vários sítios.


1) Têm muito poder de cálculo mas não revelam porque compraram os processadores no mercado negro.

2) Treinaram o modelo durante muito mais tempo (desde que saiu o chatGPT) do que anunciam.

3) Alguém, em troca de uns milhões, copiou os parâmetros já estimados do chatGPT que passou aos chineses.


É que o pintainho não cresce de um dia para o outro.

Dizem os chineses que conseguiram com 5 milhões o que o chatGPT precisou de 5000 milhões, um milhão de 1000 vezes.

O problema é que, da mesma forma que os algoritmos de multiplicação de matrizes são totalmente conhecidos, os modelos de AI são totalmente conhecidos, qualquer pessoa tem acesso a quase tudo o que está no chatGPT.

Não é possível aparecer um chinês a dizer "Tenho um algoritmo que multiplica num segundo uma matriz que demora à chatGPT 1000 segundos a calcular."

Esses algoritmos têm como fundamento a matemática e a estatística e não houve nenhuma inovação na matemática nem na estatística que justifique, de um momento para o outro, esse salto de mil vezes.


Talvez daqui a dois anos...

A capacidade dos processadores duplica a cada 2 anos mas um aumento de 1000 vezes de um dia para o outro?

Não acredito.


A destilação é uma banhada.

Consiste me, depois de estimado o modelo, cortar os parâmetros que são próximos de zero. Em AI clássica é um processo conhecido por "poda" ou "generalização".

Mas temos sempre o problema de apensa ser feito "depois de estimado o modelo" que precisa de uma imensidão de cálculo que os chineses dizem nunca terem usado.

0 comentários:

Enviar um comentário

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Best Hostgator Coupon Code