O objetivo aqui é organizar o Sistema de Inteligência de Aprendizagem Artificial (ALIS), cobrindo seus conceitos e princípios, bem como seu design básico e métodos de desenvolvimento.
Conceito
A atual IA generativa, principalmente os grandes modelos de linguagem, é treinada com base em aprendizagem supervisionada utilizando redes neuronais.
Posicionamos este processo de treino de redes neuronais como aprendizagem inata.
O ALIS é um sistema que permite a inferência abrangente ao integrar processos de aprendizagem inata e adquirida, incorporando um processo de aprendizagem adquirida separado da aprendizagem inata.
Nesta aprendizagem adquirida, o conhecimento aprendido é armazenado externamente à rede neuronal e utilizado durante a inferência.
Portanto, o cerne técnico do ALIS reside na extração, armazenamento de conhecimento reutilizável e na seleção e utilização de conhecimento durante a inferência.
Além disso, o ALIS não é meramente uma tecnologia elementar única, mas também uma tecnologia de sistema que combina aprendizagem inata e adquirida.
Elementos de um Sistema de Inteligência de Aprendizagem
O ALIS trata tanto a aprendizagem inata existente quanto a futura aprendizagem adquirida como operando sob os mesmos princípios no âmbito da aprendizagem e inferência.
Para explicar os princípios da aprendizagem no ALIS, definimos cinco elementos de um sistema de inteligência de aprendizagem:
O primeiro é o Processador Inteligente. Refere-se a um sistema de processamento que realiza inferência utilizando conhecimento e extrai conhecimento para aprendizagem.
Exemplos representativos de processadores inteligentes incluem LLMs e partes do cérebro humano.
O segundo é o Repositório de Conhecimento (Knowledge Store). Refere-se a um local de armazenamento onde o conhecimento extraído é guardado e pode ser recuperado conforme necessário.
Nos LLMs, o repositório de conhecimento são os parâmetros da rede neuronal. Nos humanos, corresponde à memória de longo prazo no cérebro.
O terceiro é o Mundo. Refere-se ao ambiente externo tal como percebido por sistemas de inteligência de aprendizagem, como humanos ou ALIS.
Para os humanos, o mundo é a própria realidade. No caso dos LLMs, o mecanismo que recebe a saída do LLM e lhe fornece feedback é considerado o equivalente ao mundo.
O quarto é a Memória de Estado. Refere-se a uma memória temporária interna, como um bloco de notas, que um sistema de inteligência de aprendizagem utiliza durante a inferência.
Nos LLMs, este é o espaço de memória utilizado durante a inferência, conhecido como estados ocultos. Nos humanos, corresponde à memória de curto prazo.
O quinto é o Estrutura (Framework). Esta é a chamada estrutura de pensamento. Na terminologia de um sistema de inteligência de aprendizagem, refere-se aos critérios para selecionar o conhecimento necessário durante a inferência e à estrutura lógica do espaço de estados para organizar a memória de estado.
Nos LLMs, é a estrutura semântica dos estados ocultos e, geralmente, o seu conteúdo é vago e incompreensível para os humanos. Além disso, a seleção de conhecimento está integrada no mecanismo de atenção, que seleciona quais tokens existentes devem ser referenciados para cada token que está a ser processado.
Para os humanos, como mencionado anteriormente, é a estrutura de pensamento. Ao pensar utilizando uma estrutura de pensamento específica, certos conjuntos de know-how são recordados da memória de longo prazo e carregados para a memória de curto prazo. Em seguida, a informação percebida atualmente é organizada de acordo com a estrutura de pensamento para compreender a situação.
Princípios de um Sistema de Inteligência de Aprendizagem
Um sistema de inteligência de aprendizagem opera da seguinte forma:
O processador inteligente atua sobre o mundo. O mundo responde com resultados baseados nessa ação.
O processador inteligente extrai conhecimento reutilizável desses resultados e armazena-o no repositório de conhecimento.
Quando o processador inteligente atua repetidamente sobre o mundo, ele seleciona conhecimento do repositório de conhecimento e o utiliza para modificar seu modo de ação.
Este é o mecanismo básico.
No entanto, fundamentalmente, os métodos para extração, armazenamento, seleção e utilização do conhecimento determinam se o sistema pode alcançar uma aprendizagem significativa.
Os humanos possuem mecanismos que permitem a extração, armazenamento, seleção e utilização eficazes do conhecimento, o que lhes permite aprender.
As redes neuronais, incluindo os LLMs, possuem mecanismos de armazenamento, seleção e utilização, embora a parte de extração seja tratada por um professor externo. Isso permite que aprendam enquanto um professor fornecer a entrada.
Além disso, um sistema de inteligência de aprendizagem pode alcançar uma aprendizagem mais complexa aprendendo também a extração, armazenamento e seleção de frameworks, e a sua utilização na memória de estado, como conhecimento.
Tipos de Conhecimento
Com base neste princípio, ao projetar a aprendizagem adquirida, é necessário clarificar que forma de informação o conhecimento adquirido assumirá.
É concebível aprender o conhecimento adquirido separadamente como parâmetros de uma rede neuronal.
No entanto, o conhecimento adquirido não precisa de se limitar apenas aos parâmetros da rede neuronal. Um candidato realista é o conhecimento textualizado em linguagem natural.
Se o conhecimento for textualizado em linguagem natural, pode ser extraído e utilizado aproveitando as capacidades de processamento de linguagem natural dos LLMs. Além disso, pode ser tratado como dados num sistema de TI regular, facilitando o armazenamento e a seleção.
Adicionalmente, o conhecimento textualizado em linguagem natural é fácil para humanos e outros LLMs verificarem, compreenderem e, em alguns casos, editarem.
Também pode ser partilhado com outros sistemas de inteligência de aprendizagem e ser fundido ou dividido.
Por estas razões, o conhecimento adquirido no conceito ALIS será inicialmente projetado para visar o conhecimento textualizado em linguagem natural.
Memória de Estado Adquirida e Estrutura
Expliquei as vantagens de escolher o conhecimento textualizado em linguagem natural como conhecimento adquirido.
Da mesma forma, o texto em linguagem natural também pode ser usado para a memória de estado e a estrutura para inferência.
A estrutura (framework), que é uma construção conceptual, também pode ser armazenada e utilizada no repositório de conhecimento como conhecimento textualizado em linguagem natural.
Ao inicializar ou atualizar estados com base na estrutura definida por essa estrutura, a memória de estado baseada em texto pode ser utilizada.
Ao conceber o ALIS para usar o formato de texto não apenas para o conhecimento adquirido, mas também para as estruturas e memória de estado, o ALIS pode aproveitar as capacidades de processamento de linguagem natural dos LLMs tanto para a aprendizagem adquirida quanto para a inferência geral.
Conhecimento Formal
O conhecimento adquirido, os frameworks e a memória de estado podem ser representados não só por texto em linguagem natural, mas também por linguagens formais ou modelos formais mais rigorosos.
Embora tenha escrito "selecionar", o objetivo do ALIS é incorporar múltiplos mecanismos de aprendizagem de conhecimento adquirido para permitir uma utilização híbrida da aprendizagem inata e adquirida.
O conhecimento representado por linguagens formais ou modelos formais pode ser mais rigoroso e livre de ambiguidade.
Além disso, se um framework for expresso utilizando uma linguagem formal ou um modelo formal, e um estado inicial for expandido na memória de estado, então um modelo formal pode ser processado por um processador inteligente (não um LLM) para realizar simulações rigorosas e raciocínio lógico.
Um exemplo primordial de tais linguagens formais e modelos formais são as linguagens de programação.
À medida que o sistema aprende sobre o mundo, se puder expressar as leis e conceitos subjacentes como programas dentro de um framework, estes podem então ser simulados por um computador.
Coluna 1: Tipos de Conhecimento
Ao organizar o conhecimento dentro de um sistema de inteligência de aprendizagem, fica claro que ele pode ser amplamente categorizado em três sistemas e dois tipos.
Os três sistemas são: conhecimento de parâmetros de rede, manipulado por redes neuronais; conhecimento natural, em linguagem natural; e conhecimento formal, em linguagens formais.
Os dois tipos são: sem estado (stateless) e com estado (stateful).
O conhecimento de parâmetros de rede sem estado é o conhecimento intuitivo, como o encontrado na IA de deep learning. As características de cães e gatos, que não podem ser pensadas ou identificadas verbalmente, podem ser aprendidas como conhecimento de parâmetros de rede sem estado.
O conhecimento de parâmetros de rede com estado é o conhecimento difuso, derivado de processos iterativos, como o encontrado na IA generativa.
O conhecimento natural sem estado é o conhecimento como o significado associado a uma palavra.
O conhecimento natural com estado é o conhecimento que inclui o contexto encontrado numa frase.
Parte do conhecimento natural está inerentemente incluída no conhecimento de parâmetros de rede com estado, mas também há conhecimento que pode ser adquirido pós-natalmente a partir de texto em linguagem natural.
O conhecimento formal sem estado é o conhecimento que pode ser expresso por fórmulas matemáticas que não incluem iteração. O conhecimento formal com estado é o conhecimento que pode ser expresso por programas.
A memória de curto prazo do próprio cérebro também pode ser usada como memória de estado para conhecimento natural e formal.
No entanto, por ser memória de curto prazo, há o problema de ser difícil manter um estado de forma estável. Além disso, não é boa a manter o conhecimento num estado formalizado e inequívoco.
Por outro lado, papel, computadores ou smartphones podem ser usados como memória de estado para anotar e editar texto em linguagem natural, linguagens formais ou modelos formais.
Geralmente, os dados em papel ou computadores são frequentemente percebidos como algo para armazenar conhecimento como um repositório de conhecimento, mas também podem ser usados como memória de estado para organizar pensamentos.
Assim, é evidente que os humanos realizam atividades intelectuais utilizando habilmente esses três sistemas e dois tipos de conhecimento.
O ALIS também tem o potencial de melhorar dramaticamente as suas capacidades, permitindo e aprimorando atividades intelectuais que utilizem esses mesmos três sistemas e dois tipos de conhecimento.
Em particular, o ALIS tem a força de ser capaz de utilizar vastos repositórios de conhecimento e memória de estado. Além disso, pode facilmente preparar múltiplas instâncias de cada um e realizar tarefas intelectuais alternando ou combinando-as.
Coluna 2: Orquestração Intelectual
Embora seja uma vantagem poder armazenar uma grande quantidade de conhecimento no repositório de conhecimento, ter simplesmente uma grande quantidade de conhecimento não é necessariamente vantajoso para a atividade intelectual, devido às limitações no número de tokens que uma IA generativa pode usar de uma só vez e à restrição de que o conhecimento irrelevante se torna ruído.
Por outro lado, ao segmentar adequadamente o repositório de conhecimento e criar repositórios de conhecimento especializados de alta densidade que reúnem o conhecimento necessário para tarefas intelectuais específicas, os problemas de limites de tokens e ruído podem ser mitigados.
Em troca, esses repositórios de conhecimento especializados seriam utilizáveis apenas para essas tarefas intelectuais específicas.
Muitas atividades intelectuais são combinações complexas de várias tarefas intelectuais. Portanto, ao dividir o conhecimento em repositórios de conhecimento especializados, de acordo com o tipo de tarefa intelectual, e subdividir a atividade intelectual em tarefas intelectuais, o ALIS pode executar toda a atividade intelectual, alternando apropriadamente entre os repositórios de conhecimento especializados.
Isto é como uma orquestra composta por músicos profissionais que tocam diferentes instrumentos e um maestro que lidera o conjunto.
Através desta tecnologia de sistema, a "orquestração intelectual", o ALIS será capaz de organizar as suas atividades intelectuais.
Design Básico e Método de Desenvolvimento do ALIS
A partir de agora, vou organizar a abordagem de desenvolvimento para o ALIS.
Conforme já afirmado nos princípios e colunas, o ALIS é inerentemente projetado para estender facilmente suas funções e recursos. Isso ocorre porque a essência do ALIS não reside em funções específicas, mas nos processos de extração, armazenamento, seleção e utilização do conhecimento.
Por exemplo, múltiplos tipos de mecanismos de extração de conhecimento podem ser preparados e, em seguida, selecionados ou usados simultaneamente, dependendo do design do sistema.
Além disso, o ALIS pode ser configurado para realizar essa seleção por si mesmo.
O armazenamento, a seleção e a utilização podem, de forma similar, ser livremente selecionados ou paralelizados.
Portanto, o ALIS pode ser desenvolvido de forma incremental e ágil, sem a necessidade de projetar toda a funcionalidade de forma linear (modelo waterfall).
O Início do ALIS
Agora, vamos projetar um ALIS muito simples.
A interface de utilizador (UI) básica será a familiar IA de chat. Inicialmente, a entrada do utilizador será passada diretamente para o LLM. A resposta do LLM será então exibida na UI, e o sistema aguardará a próxima entrada do utilizador.
Quando a próxima entrada chegar, o LLM receberá não apenas a nova entrada, mas também todo o histórico de chat entre o utilizador e o LLM até aquele momento.
Por trás desta UI de IA de chat, prepararemos um mecanismo para extrair conhecimento reutilizável do histórico de chat.
Isso pode ser adicionado ao sistema de IA de chat como um processo executado quando uma conversa termina ou em intervalos regulares. Naturalmente, um LLM será usado para a extração de conhecimento.
Este LLM receberá o conceito e os princípios do ALIS, juntamente com o know-how de extração de conhecimento, como prompts de sistema. Se o conhecimento não for extraído conforme o esperado, os prompts do sistema deverão ser refinados através de tentativa e erro.
O conhecimento extraído do histórico de chat será armazenado diretamente num knowledge lake. Um knowledge lake é um mecanismo para simplesmente armazenar conhecimento num estado plano e não estruturado antes de ser estruturado.
Em seguida, prepararemos um mecanismo de estruturação para facilitar a seleção de conhecimento do knowledge lake.
Isso significa fornecer embedding vector stores para pesquisa semântica, como tipicamente usado em RAG, e índices de palavras-chave, entre outras coisas.
Opções mais avançadas incluem a geração de um grafo de conhecimento ou a realização de classificação de categorias.
Esta coleção de informação estruturada para o knowledge lake será chamada de knowledge base. Esta knowledge base e o knowledge lake completos constituirão o knowledge store.
Em seguida, integraremos o knowledge store no processamento da UI do chat.
Isso é basicamente o mesmo que um mecanismo RAG geral. Para a entrada do utilizador, o conhecimento relevante é selecionado do knowledge store e passado para o LLM juntamente com a entrada do utilizador.
Isso permite que o LLM utilize automaticamente o conhecimento ao processar a entrada do utilizador.
Desta forma, o conhecimento acumular-se-á a cada conversa com o utilizador, realizando um ALIS simples que usa o conhecimento acumulado de conversas anteriores.
Cenário Simples
Por exemplo, imagine um utilizador a desenvolver uma aplicação web usando este ALIS simples.
O utilizador relata que o código proposto pelo LLM resultou num erro. Após o utilizador e o LLM colaborarem para solucionar o problema, descobrem que a especificação da API externa conhecida pelo LLM estava desatualizada, e o programa funciona corretamente após ser adaptado à última especificação da API.
A partir desta conversa, o ALIS poderia então acumular conhecimento no seu repositório de conhecimento: especificamente, que a especificação da API conhecida pelo LLM é antiga e qual é a última especificação da API.
Então, da próxima vez que um programa que utilize a mesma API for criado, o ALIS seria capaz de aproveitar este conhecimento para gerar um programa baseado na última especificação da API desde o início.
Melhorias no ALIS Inicial
No entanto, para que isto aconteça, este conhecimento deve ser selecionado em resposta à entrada do utilizador. É possível que este conhecimento não esteja diretamente ligado à entrada do utilizador, pois o nome da API problemática pode não aparecer na entrada do utilizador.
Nesse caso, o nome da API só surgiria durante a resposta do LLM.
Portanto, estenderemos ligeiramente o ALIS simples, adicionando mecanismos para pré-análise e pós-verificação.
A pré-análise é semelhante ao "modo de pensamento" nos LLMs recentes. Será preparada uma memória capaz de armazenar texto como memória de estado, e o prompt do sistema instruirá o LLM a realizar a pré-análise ao receber a entrada do utilizador.
O resultado da pré-análise do LLM será armazenado na memória de estado. Com base neste resultado de pré-análise, o conhecimento será selecionado do repositório de conhecimento.
Em seguida, o histórico do chat, o resultado da pré-análise, o conhecimento correspondente à entrada do utilizador e o conhecimento correspondente ao resultado da pré-análise serão passados para o LLM para receber uma resposta.
Além disso, o resultado devolvido pelo LLM também será utilizado para procurar conhecimento no repositório de conhecimento. Incluindo o conhecimento encontrado, o LLM será solicitado a realizar uma pós-verificação.
Se forem encontrados quaisquer problemas, os pontos problemáticos e as razões para a sugestão serão incluídos e passados de volta ao LLM do chat.
Ao proporcionar oportunidades para selecionar conhecimento durante a pré-análise e a pós-verificação, podemos aumentar as chances de utilizar o conhecimento acumulado.
Perspetivas
Esta abordagem de construir um ALIS inicial e, em seguida, adicionar melhorias para resolver as suas fraquezas ilustra perfeitamente o desenvolvimento ágil e a melhoria incremental do ALIS.
Além disso, como exemplificado, o ALIS inicial é mais adequado para uso no desenvolvimento de software. Isso ocorre porque é um campo de alta procura e também um onde o conhecimento pode ser clara e facilmente acumulado.
É um género onde as coisas são claramente preto ou branco, mas é também um campo crucial onde a tentativa e erro e a acumulação iterativa de conhecimento são necessárias e importantes.
Adicionalmente, uma vez que o desenvolvimento do ALIS é ele próprio desenvolvimento de software, o facto de os desenvolvedores do ALIS poderem ser os próprios utilizadores do ALIS também é apelativo.
E, juntamente com o sistema ALIS, o knowledge lake também pode ser partilhado abertamente em plataformas como o GitHub.
Isso permitiria que muitas pessoas colaborassem nas melhorias do sistema ALIS e na acumulação de conhecimento, com todos a beneficiarem dos resultados, acelerando ainda mais o desenvolvimento do ALIS.
É claro que a partilha de conhecimento não se limita aos desenvolvedores do ALIS, mas pode ser recolhida de todos os desenvolvedores de software que utilizam o ALIS.
O facto de o conhecimento estar em linguagem natural oferece mais duas vantagens:
A primeira vantagem é que o conhecimento pode ser aproveitado mesmo quando o modelo LLM muda ou é atualizado.
A segunda vantagem é que o vasto knowledge lake acumulado pode ser utilizado como um conjunto de dados de pré-treino para LLMs. Isso pode ser feito de duas formas: usando-o para fine-tuning, ou usando-o para o próprio pré-treino do LLM.
Em qualquer caso, se LLMs que aprenderam inatamente o conhecimento acumulado no knowledge lake puderem ser utilizados, o desenvolvimento de software tornar-se-á ainda mais eficiente.
Além disso, dentro do desenvolvimento de software, existem vários processos como análise de requisitos, design, implementação, testes, operação e manutenção, e existe conhecimento especializado para cada domínio e plataforma de software. Se for criado um mecanismo para segmentar o vasto conhecimento acumulado a partir dessas perspetivas, uma orquestra ALIS também pode ser formada.
Assim, as tecnologias elementares para o ALIS estão em vigor. A chave agora é experimentar praticamente vários métodos — como o know-how de extração de conhecimento, a seleção apropriada de conhecimento, a segmentação de conhecimento especializado e como utilizar a memória de estado — para descobrir abordagens eficazes. Além disso, à medida que a complexidade aumenta, o tempo de processamento e os custos de utilização do LLM aumentarão, exigindo otimização.
Estes processos de tentativa e erro e de otimização podem ser prosseguidos de forma adaptativa através do desenvolvimento e melhoria de frameworks.
Inicialmente, os desenvolvedores, como utilizadores, provavelmente incorporarão frameworks no ALIS através de tentativa e erro. No entanto, mesmo assim, o próprio LLM pode ser feito para gerar ideias de framework.
E ao incorporar no ALIS frameworks que melhoram ou descobrem frameworks com base nos resultados recebidos do mundo e no conhecimento extraído, o próprio ALIS realizará a tentativa e erro e a otimização de forma adaptativa.
ALIS no Mundo Real
Uma vez que o ALIS tenha sido refinado até esta fase, deverá ser capaz de aprender conhecimento não só no mundo do desenvolvimento de software, mas também de forma ampla em vários domínios.
À semelhança do desenvolvimento de software, espera-se que o ALIS expanda o seu âmbito para várias atividades intelectuais que os humanos realizam utilizando computadores.
Mesmo em tais atividades puramente intelectuais, o ALIS possui uma espécie de natureza de IA encarnada (embodied AI) em relação ao mundo-alvo.
Isto deve-se ao facto de reconhecer a fronteira entre si e o mundo, agir sobre o mundo através dessa fronteira e conseguir percecionar a informação recebida do mundo.
Aquilo a que geralmente nos referimos como um "corpo" é uma fronteira com o mundo que é fisicamente visível e localizada num único lugar.
No entanto, mesmo que a fronteira seja invisível e espacialmente distribuída, a estrutura de perceção e ação através de uma fronteira é a mesma que ter um corpo físico.
Nesse sentido, o ALIS, ao realizar atividades intelectuais, pode ser considerado como possuindo a natureza de uma IA virtualmente encarnada.
E uma vez que o ALIS seja refinado a um estágio em que possa aprender adequadamente mesmo em mundos novos e desconhecidos, existe a possibilidade de o ALIS ser integrado como parte de uma IA encarnada real que possua um corpo físico.
Desta forma, o ALIS será eventualmente aplicado ao mundo real e começará a aprender a partir dele.