Skip to main content

Limitações de um único modelo de IA

Escrito por

Frank Fischer

blog feature ai lilac

7 de agosto de 2023

0 minutos de leitura

As discussões sobre IA hoje costumam ser influenciadas por emoções como medo e admiração, além de reduzirem a IA aos grandes modelos de linguagem (LLMs) — mas essa não é a história toda. Então, vamos deixar esses receios de lado e analisar os dados que mostram por que a IA é muito mais ampla do que os LLMs.

O que é IA?

Faz sentido ter algum conhecimento básico sobre IA. Na década de 1950, pesquisadores e profissionais discutiam como poderia ser a inteligência artificial e como poderíamos identificá-la. Se você perguntar ao ChatGPT, ele dirá: “A inteligência artificial pode ser identificada como um sistema ou máquina que demonstra capacidade de aprender, compreender, raciocinar, perceber e responder ao ambiente de maneiras tradicionalmente associadas à inteligência humana. Suas características incluem a capacidade de se adaptar a novas situações, resolver problemas, tomar decisões e compreender ideias ou padrões complexos.” Essa é, na verdade, uma ótima síntese.

Se você perguntar o que é IA hoje, na maioria das vezes a resposta descreverá um LLM — um tipo de rede neural de aprendizado profundo. Mas a IA abrange muitas outras tecnologias, mais diversas e abrangentes. Muitas vezes, a melhor opção é uma IA especializada (às vezes chamada de “IA restrita”) ou uma combinação de métodos.

Para simplificar, os métodos de IA se dividem, grosso modo, em duas grandes categorias: a abordagem lógica e a estatística. “Agentes inteligentes precisam ser capazes de lidar com a complexidade e a incerteza do mundo real. A IA lógica se concentrou principalmente na primeira, e a IA estatística, na segunda.” Por exemplo, em cibersegurança, é muito comum usar ML (IA estatística) na detecção de intrusões ou IA lógica em SAST. Para uma discussão mais detalhada sobre as diferentes abordagens de IA, consulte a publicação de Russell e Norvig.2 

A IA generativa, capaz de criar conteúdo como textos, imagens, filmes ou código-fonte, e os LLMs, que podem usar a linguagem natural como interface (por exemplo, em um chat), são relativamente recentes nessa área. A IA generativa funciona por meio de um processo chamado redes generativas adversariais (GANs). A ideia é treinar um modelo de ML (“Discriminador”) para classificar um conteúdo como válido ou incorreto (por exemplo, retratos de pessoas). Outro modelo de ML (“Gerador”) tenta criar um conteúdo (como uma imagem) que o discriminador aceite. Ao treinar os dois em conjunto — com aprendizado não supervisionado —, o sistema pode gerar conteúdos que são pouco ou nada distinguíveis de algo criado por uma pessoa.  Um LLM amplia essa ideia usando um Transformer.  O texto é então convertido em um formato de dados que o ML consegue processar (“Transformer”). Grandes volumes de texto são usados para treinar o modelo, que gera respostas textuais a consultas também textuais — geralmente chamadas de “prompts”. As respostas à mesma pergunta podem variar por causa de um fator que determina o nível de aleatoriedade usado pelo sistema — no GPT, esse fator é chamado de “temperatura”.  Os LLMs atuais costumam ter uma data limite que indica até quando os dados usados no treinamento foram coletados. No entanto, quem desenvolve IA planeja superar essa limitação conectando os LLMs à internet, para que tenham acesso a informações atualizadas. Por fim, os LLMs podem ser especializados e treinados para diferentes áreas, incluindo a geração de código-fonte (consulte o relatório do Google sobre o PaLM 2).

Os LLMs usam uma técnica chamada aprendizado profundo, que simula os neurônios do cérebro humano. Mas há muitas outras maneiras de fazer as máquinas aprenderem estatisticamente, como máquinas de vetores de suporte, algoritmos evolutivos, cadeias de Markov e outras. Como mencionamos, há também a escola da IA lógica, usada para criar sistemas especialistas com tecnologias como Prolog.

IA no SDLC

Casos de uso práticos de IA no desenvolvimento e na entrega de software.

Uso

Local

Vantagens

Desvantagens3

Geração de código

SAST, IDE

Mais produtividade, menos carga cognitiva

Qualidade do código, licenciamento, segurança

Refatoração e atualização de código

IDE

Mais produtividade, menos carga cognitiva

Qualidade do código, licenciamento, segurança, vazamento de informações

Depuração

IDE

Menos carga cognitiva

Vazamento de informações

Documentação

IDE, CI

Tarefa negligenciada

Vazamento de informações

Compreensão do código

IDE

Menos carga cognitiva

Identificar problemas e gerar correções

SAST, SCA, IaC, contêiner, IDE

Análise mais profunda e semântica

Falsos positivos e execução

Testes (geração de testes, fuzzing, dados de teste)

IDE, DAST, fuzzing

Encontrar problemas que ninguém imaginou

Execução, necessidade de agir com base nos resultados, casos de teste irreais

Monitoramento (processamento de dados, combinação de fluxos de dados, detecção de anomalias)

CD, Ops, SIEM

Mais dados, descoberta de padrões desconhecidos

Mapeando as categorias de IA

As tecnologias de IA podem ser aplicadas em todas as etapas do desenvolvimento de software. O eixo y mostra o aumento da complexidade e da capacidade da ferramenta de IA. O eixo x registra os recursos (por exemplo, elementos com os quais o desenvolvedor interage diretamente) e as capacidades (por exemplo, habilidades do back-end) das ferramentas em questão.

Diagrama que compara tipos de IA por capacidade e complexidade, experiência do desenvolvedor, mecanismo de análise, produtividade e precisão.

Observação: Todos os quadros roxos mostram tecnologias para as quais a Snyk oferece soluções próprias. A seguir, usaremos a Snyk como exemplo.

IA restrita

A IA restrita, também chamada de IA fraca, refere-se a sistemas de IA desenvolvidos especificamente para executar determinadas tarefas, como recomendar produtos em uma plataforma de comércio eletrônico ou prever o comportamento de usuários em um aplicativo. Embora demonstrem inteligência nessas tarefas específicas, esses sistemas operam dentro de parâmetros limitados e não conseguem compreender, aprender ou aplicar conhecimentos além das funções para as quais foram programados. Por isso, são ideais para soluções direcionadas ao desenvolvimento de software. Por exemplo, a Snyk usa IA restrita no Snyk Code para encontrar origens, destinos e sanitizadores. 

IA lógica

A IA simbólica, também conhecida como IA baseada em regras ou IA tradicional, é uma abordagem que usa lógica e símbolos específicos para representar problemas e manipulá-los a fim de chegar a uma solução — como em sistemas especialistas, nos quais a lógica de diagnóstico é codificada explicitamente. Para quem desenvolve software, isso pode significar criar um programa de diagnóstico que use regras predefinidas para identificar e corrigir bugs ou criar um jogo de xadrez em que a IA usa um conjunto específico de regras para decidir a melhor jogada. O Snyk Code, por exemplo, usa um solucionador lógico e regras compiladas em uma base de conhecimento.

IA generativa

A IA generativa é uma subárea da inteligência artificial que usa técnicas de aprendizado de máquina para produzir novos conteúdos — como imagens, textos ou músicas — semelhantes aos dados de treinamento. Para quem desenvolve software, isso pode significar criar um programa que gere automaticamente textos com linguagem natural para chatbots ou respostas automatizadas, ou desenvolver um modelo de IA que crie interfaces de usuário novas e visualmente atraentes com base em designs existentes de alta qualidade.

LLMs

LLM, sigla em inglês para grande modelo de linguagem, é um tipo de modelo de inteligência artificial treinado com enormes volumes de dados textuais, capaz de gerar textos semelhantes aos escritos por pessoas com base nos prompts recebidos. Para quem desenvolve software, isso pode significar usar um LLM para criar aplicativos como um chatbot automatizado de atendimento ao cliente ou uma ferramenta de revisão de código que gere comentários em linguagem natural sobre possíveis problemas no código.

Combinação de IAs ou IA híbrida

A IA híbrida é uma abordagem que combina diferentes tipos de metodologias de inteligência artificial — como IA simbólica e aprendizado de máquina — com elementos da inteligência humana para aproveitar os pontos fortes e compensar as limitações de cada uma. No desenvolvimento de software, isso pode significar criar um sistema que use IA baseada em regras para as decisões iniciais, aprendizado de máquina para reconhecer padrões e fazer previsões, e inteligência humana em tarefas que exigem criatividade, empatia ou julgamentos complexos — como a aprovação final de conteúdo gerado ou a resolução de problemas complexos. Por exemplo, a equipe de segurança da Snyk usa o mecanismo do Snyk Code e tecnologias de ML para criar a base de conhecimento do Snyk Code. Outro exemplo é o Code Fix, que usa IA generativa para criar sugestões de correção e IA lógica para encontrar essas sugestões e, depois, avaliar sua viabilidade. 

Modelos de IA em análise

Em resumo, a IA vai além dos LLMs e já é usada em diversas soluções. Os LLMs oferecem uma nova interface incrível e possibilidades ilimitadas, mas não são a única ferramenta à nossa disposição. Incluir outros elementos de IA nessa equação amplia a cobertura, a inteligência e as possibilidades da IA na segurança de aplicações.

Para saber mais sobre como integrar a IA à sua organização com sucesso, confira nosso guia prático com as melhores práticas para usar IA no SDLC.

Referências

1 Há quem argumente que mitos da Grécia Antiga já mencionavam máquinas inteligentes e que a ideia de inteligência artificial tem, na verdade, milhares de anos (consulte https://en.wikipedia.org/wiki/History_of_artificial_intelligence).

2 https://homes.cs.washington.edu/~pedrod/papers/aaai06c.pdf

3 Uma desvantagem geral é que todo caso de uso exige supervisão humana.