O método mais comum de criação de aplicações com tecnologia GenAI requer linguagens de programação, estruturas, ciência de dados e muito mais. Há uma razão para isso: ninguém sabe realmente que é possível fazer tudo com low-code.
Low-code é uma abordagem de desenvolvimento de software visual que permite aos desenvolvedores criar aplicações minimizando processos tradicionais e complexos de codificação manual. Ele apresenta um ambiente de desenvolvimento de arrastar e soltar fácil de usar, que torna o desenvolvimento de aplicações acessível tanto para iniciantes em codificação quanto para profissionais experientes. Esta seção explora as ferramentas e habilidades necessárias para criar aplicações baseadas em GenAI usando métodos tradicionais e mostra como você pode fazer isso com uma plataforma low-code.
TL;DR: Criar aplicações GenAI com código tradicional é complexo e requer habilidades que se estendem aos domínios da engenharia de IA/ML, ciência de dados, administração de banco de dados e comportamento humano. Mude para “Usando low-code para acelerar o desenvolvimento de aplicações GenAI” para saber como o low-code simplifica drasticamente o desenvolvimento GenAI.
Usando métodos tradicionais para desenvolver aplicações incorporadas com GenAI
As aplicações GenAI são uma combinação de tecnologia de nuvem, linguagens de desenvolvimento de software, ciência de dados, análise de dados, DevOps, processamento e modelos de IA, o que inclui um tipo especial de ML chamado Large Language Models (LLMs). Os LLMs podem resolver vários casos de uso imediatamente, enquanto o aprendizado de máquina tradicional exige um treinamento significativo do modelo. Os LLMs permitem aproveitar a inteligência artificial sem precisar de talentos especializados em IA para criar modelos e recursos de engenharia. Deixando os LLMs de lado, os desenvolvedores devem se tornar especialistas em serverless, infraestrutura como código, conceitos de aprendizado de máquina, algoritmos e outras técnicas avançadas. Isso inclui aprendizado supervisionado e não supervisionado, estruturas GenAI, arquiteturas de deep learning e otimização.
Parte do processo de desenvolvimento da aplicação GenAI também requer saber qual modelo ou modelos usar e decidir se você deve criar o seu próprio ou usar aqueles que estão disponíveis publicamente. Você também precisa estar familiarizado com as estruturas de desenvolvimento de software disponíveis para GenAI.
Conheça a terminologia da GenAI
Usar GenAI significa aprender alguns termos novos. Aqui estão alguns conceitos importantes que ajudarão você a progredir:
- Modelos de base - Os modelos que a IA generativa usa são chamados de modelos de base. Grandes e versáteis, eles são treinados com dados extensos que podem ser adaptados para fazer coisas como escrever texto ou analisar imagens. O número continua crescendo à medida que especialistas em IA fazem experiências com eles.
- Grandes Modelos de Linguagem (LLMs) são um tipo de modelo de base. Eles geram e completam conteúdo escrito em grande escala. ChatGPT e Claude usam LLMs para gerar parágrafos completos de texto, por exemplo.
- A busca vetorial é um tipo de recurso de pesquisa em que documentos e consultas são representados como vetores para permitir alto desempenho de busca em dados textuais. É o novo padrão para recuperar conteúdo de grandes bases de conhecimento de documentação de texto, que por sua vez é repassado aos LLMs para casos de uso de GenAI.
- A geração aumentada de recuperação (RAG) é uma técnica de IA que combina LLMs com recuperação de conteúdo para permitir casos de uso baseados em fontes de dados proprietárias. A RAG consiste em recuperar texto de uma base de conhecimento (por exemplo, usando busca vetorial), que por sua vez é passado para um LLM com um conjunto de instruções para gerar uma resposta. Um exemplo é um chatbot que recupera dados do conhecimento de suporte ao cliente e passa esse conteúdo para um LLM para gerar uma resposta informada à pergunta do usuário.
- Modelos de difusão são usados para geração de imagens e síntese de vídeo ou imagem. DALL-E 2 e MidJourney são exemplos populares.
- O prompting de poucos disparos melhora os resultados dos LLMs ao incluir exemplos em um prompt, mostrando ao modelo exatamente o que você está procurando em termos de estrutura de saída, tom e estilo.
As linguagens do desenvolvimento tradicional de GenAI
As opiniões sobre as linguagens de programação mais adequadas para criar aplicações de GenAI são muitas, variadas e expressivas. No entanto, há cinco que os especialistas das equipes de desenvolvimento da OpenAI, Anthropic, Meta, Cohere e Google concordam que são mais comumente usados para criar aplicações de GenAI. Alguns fornecem serviços e backends de IA e contam com linguagens de codificação tradicionais para criar interfaces de usuário.
Python
Python é provavelmente a linguagem mais amplamente usada em inteligência artificial e desenvolvimento de GenAI devido à sua versatilidade, simplicidade, legibilidade, recursos de visualização e análise de dados e amplo suporte da comunidade. Os desenvolvedores podem usá-lo para processamento de linguagem natural (NLP), modelagem preditiva, reconhecimento de imagem, detecção de rosto, chatbots e muito mais. No entanto, se uma aplicação de GenAI precisa de tarefas computacionalmente intensivas que exigem consideração cuidadosa dos requisitos do projeto, Python pode não ser a melhor escolha.
JavaScript
Assim como o Python, o JavaScript oferece acessibilidade e versatilidade, por isso é uma linguagem popular para IA generativa. O JavaScript é executado diretamente em navegadores da web, o que significa que os desenvolvedores podem usá-lo para criar aplicações de IA generativas interativas que podem ser executadas em qualquer dispositivo com conexão à internet. Além disso, a ampla adoção do JavaScript e sua grande comunidade fornecem acesso a inúmeras bibliotecas e estruturas projetadas especificamente para tarefas de IA.
R
Comumente usado em computação estatística e análise de dados, o R fornece pacotes para modelagem generativa. Esses pacotes permitem a manipulação e visualização de dados para o desenvolvimento de GenAI, especialmente arte generativa. Por ser uma linguagem de ciência de dados, o R tem uma curva de aprendizado acentuada para desenvolvedores.
Prompt English
O Prompt English não é uma linguagem de programação propriamente dita, mas usa a linguagem humana para criar prompts eficazes que aplicações de IA generativa podem usar para "responder" adequadamente. Engenheiros de prompt criam entradas que interagem de forma otimizada com outras entradas em uma ferramenta GenAI para que um modelo possa escrever e-mails de marketing, gerar código, interagir com clientes, criar arte digital e assim por diante. A engenharia de prompt requer proficiência linguística, habilidades de resolução de problemas, conhecimento de frameworks de IA e NLP, escrita criativa, consciência ética, comprometimento com testes iterativos e uma compreensão básica de cognição humana, psicologia e sociologia.
Exemplos de prompting: Cadeia de Pensamento e Árvore de Pensamento
O prompting da Cadeia de Pensamento (CoT) é uma técnica usada para melhorar a capacidade dos LLMs de resolver problemas complexos. Envolve estruturar prompts em etapas menores e mais gerenciáveis e articular essas etapas explicitamente antes de chegar a uma conclusão. Aqui está uma visão geral de alto nível do processo da CoT:
- Desmembrar o problema: o prompt é estruturado para orientar o modelo a desmembrar o problema em uma série de etapas lógicas.
- Raciocinar passo a passo: O modelo então processa cada etapa individualmente, articulando o processo de raciocínio que leva de uma etapa à outra.
- Concluir: O modelo combina os insights de cada etapa para chegar a uma solução final.
A Árvore do Pensamento (ToT) se baseia no conceito CoT. Ela cria uma estrutura de ideias semelhante a uma árvore. Cada ideia na árvore representa uma etapa de resolução de problemas, e o LLM pode avaliar cada etapa para decidir se ela é viável. Essa abordagem é inspirada na maneira como os humanos resolvem problemas por meio de tentativa e erro. Isso permite que o LLM:
- Explore ideias diferentes.
- Reavalie quando necessário.
- Autoavalie pensamentos intermediários.
- Decida se deseja continuar em um caminho ou escolher outro.
- Corrija erros automaticamente.
- Acumule conhecimento.
Outras linguagens
Comunidades e fóruns de desenvolvedores revelam que outras linguagens que não são comumente associadas à IA generativa também estão sendo usadas. Por exemplo, o uso de Java para aplicações de IA generativa está crescendo na comunidade de engenharia da IBM.11 Vários ambientes GenAI populares oferecem Java SDKs. A linguagem é adequada para criar agentes de IA e análises incorporadas em softwares empresariais e para capacitar mecanismos de recomendação.
Alguns desenvolvedores optam por usar C++ para tarefas computacionais intensivas em IA generativa.12 Ele também fornece controle de baixo nível sobre recursos de hardware, tornando-o eficiente para treinar modelos generativos em larga escala. E para aqueles que estão interessados em aplicar suas habilidades em C# à IA generativa, há tutoriais que demonstram como isso pode ser feito.13
Uma linguagem por si só não é suficiente
É importante observar que uma única linguagem raramente é suficiente para criar uma aplicação com tecnologia GenAI ou incorporar a GenAI em uma aplicação existente. Os desenvolvedores devem esperar usar pelo menos duas.
As habilidades necessárias para desenvolver aplicações GenAI com métodos tradicionais
Além das linguagens tradicionais da GenAI, os desenvolvedores devem ter habilidade para usar e entender frameworks, bibliotecas, técnicas de IA e muito mais.
Frameworks de IA
Frameworks de IA fornecem APIs e ferramentas de alto nível para criar e implementar modelos de IA de forma mais rápida e fácil. LangChain, Haystack e LlamaIndex são os frameworks mais comuns usados para desenvolvimento GenAI.
LangChain
Criado especificamente para a GenAI, o LangChain é um framework open-source disponível em bibliotecas baseadas em Python e Javascript que ajuda desenvolvedores de software a criar aplicações usando Large Language Models (LLMs). Ele fornece ferramentas e APIs que simplificam a integração de LLMs em projetos.
Um conceito fundamental no LangChain é a cadeia, uma série de ações automatizadas que conectam a consulta de um usuário à saída do modelo. As cadeias permitem que os desenvolvedores combinem vários componentes para criar uma aplicação coerente, conectar várias fontes de dados e gerar conteúdo exclusivo. Elas também podem ser usadas para fornecer respostas sensíveis ao contexto, mantendo vários componentes de IA juntos.
Haystack
Haystack é um framework Python open-source para criar aplicações LLM prontas para produção, pipelines generativos aumentados por recuperação e sistemas de pesquisa de última geração que funcionam de forma inteligente em grandes coleções de documentos. Os usuários do Haystack relatam que ele é mais útil para desenvolver sistemas de busca em larga escala e IA conversacional do que o Langchain.14
LlamaIndex
LlamaIndex é um framework de orquestração projetada para ampliar os recursos de LLMs como o GPT-4. Ele indexa os dados privados ou específicos do domínio em formatos otimizados para LLMs para oferecer suporte ao RAG. Então, quando alguém faz uma pergunta à GenAI, ele pode encontrar informações relevantes de uma grande coleção de dados e usá-las para fornecer uma resposta precisa e detalhada. Isso pode levar a respostas melhores e mais relevantes, especialmente para tópicos que exigem conhecimento atualizado ou específico.
Hugging Face
Embora não seja um framework típico de orquestração de IA, os desenvolvedores também contam com o Hugging Face ao criar aplicações GenAI. O Hugging Face fornece um vasto repositório de modelos pré-treinados e uma abordagem orientada pela comunidade para compartilhamento e desenvolvimento de modelos. Os modelos do Hugging Face podem ser ajustados para tarefas específicas, economizando tempo valioso e recursos computacionais dos desenvolvedores. Um Model Hub atua como um centro para compartilhar, descobrir e colaborar em modelos de NLP. A biblioteca "Transformers" do Hugging Face fornece APIs fáceis de usar para trabalhar com modelos pré-treinados, permitindo que os desenvolvedores integrem recursos de linguagem poderosos em suas aplicações com o mínimo de esforço.
Frameworks de deep learning
Além disso, existem algumas aplicações GenAI que foram desenvolvidas com estruturas de deep learning, como Pytorch, TensorFlow e Keras. Por exemplo, o Pytorch potencializa o ChatGPT-4, e o TensorFlow e o Keras foram usados para desenvolver redes adversárias generativas, que são modelos básicos usados em detecção de anomalias, aumento de dados, síntese de imagens e tradução de texto para imagem e de imagem para imagem. No entanto, essas estruturas não são focadas em GenAI e não estão sendo muito usadas em projetos de GenAI atuais.
Técnicas de processamento de linguagem natural
O Processamento de Linguagem Natural (NLP) treina computadores para entender, interpretar e gerar linguagem humana, preenchendo a lacuna entre a linguagem humana e a linguagem de máquina. A lista de técnicas de NLP é longa (14 e contando) e inclui:
- Tokenização: Dividir um texto em unidades menores, como palavras ou subpalavras (tokens).
- Classificação de classes gramaticais: Classificar cada palavra em uma frase, como substantivos, verbos, adjetivos, etc., para entender a função e o contexto das palavras.
- Reconhecimento de entidade nomeada: Identificar e classificar nomes de pessoas, organizações, locais, datas e muito mais em um texto.
- Análise de sentimentos: Determinar a emoção expressa em um texto, como positiva, negativa ou neutra.
- Modelagem de linguagem: Construção de modelos estatísticos que preveem a sequência de palavras em um determinado idioma que serão usadas em tarefas de NLP, incluindo geração de texto.
Processamento, manuseio e armazenamento de dados em larga escala
Um stack de dados moderno para GenAI é uma combinação de ferramentas e tecnologias. Eles permitem a coleta, o processamento, o armazenamento, a análise e a utilização de dados para treinamento e implementação de modelos generativos. Veja aqui alguns dos principais componentes.
| Plataformas de streaming de dados em tempo real | Data lakes ou warehouses | Frameworks de processamento de dados distribuídos | Preparação de dados e engenharia de recursos |
|---|---|---|---|
|
Facilitar a coleta e ingestão de dados de várias fontes, incluindo interações do usuário, sensores ou qualquer entrada relevante.
|
Fornecer um repositório centralizado para dados estruturados e não estruturados.
|
Transformar e limpar dados e lidar com processamento em lote em larga escala ou habilitar o processamento de fluxo em tempo real.
|
Limpar, preparar e projetar recursos a partir de dados brutos. A engenharia de recursos é crucial para treinar modelos generativos eficazes.
|
Plataformas para implementação de modelos e aplicações GenAI
Kubernetes e Docker são ferramentas essenciais para mover modelos GenAI para produção e garantir que eles possam fornecer previsões em escala. O Docker ajuda a empacotar um modelo de IA e seu ambiente em um contêiner para que ele possa ser executado de forma confiável em diferentes ambientes de computação. Os Kubernetes gerenciam esses contêineres, ajudando a implementá-los, dimensioná-los e operá-los com eficiência. Embora essas plataformas simplifiquem o processo de implementação e gerenciamento de aplicações GenAI, aprendê-las é complicado.
Construir aplicações GenAI usando métodos tradicionais é complexo e assustador
A lista formidável de linguagens e habilidades necessárias para criar aplicações baseadas em GenAI pode parecer assustadora. Mas para o desenvolvedor obstinado e determinado, é possível aprendê-los e seguir em frente para ter uma carreira de sucesso. Mas há uma maneira melhor de fazer isso do que passar meses ou anos treinando: usar low-code.
Como os desenvolvedores estão aprendendo habilidades de GenAI
Aqui estão algumas das maneiras pelas quais os desenvolvedores estão se qualificando para a GenAI:
- Educação formal, como cursos universitários e programas online
- Experiência prática com projetos e contribuição open-source
- Mantendo-se atualizado sobre tendências consultando artigos de pesquisa, lendo blogs, entrando em contato com outros desenvolvedores com experiência e participando de conferências.
- Colaboração com especialistas em análise preditiva, cientistas sociais, engenheiros e especialistas em ética para abordar desafios de dados, éticos e sociais
- Pedindo ajuda e mentoria em comunidades como StackOverflow e GitHub ou em subreddits.
Usando low-code para acelerar o desenvolvimento (e a empolgação) de aplicações GenAI
Plataformas low-code provaram ser excelentes na criação rápida de aplicações corporativas e incorrem em custos mais baixos do que a codificação tradicional. As aplicações de IA generativa não são diferentes de outras aplicações, e o low-code oferece uma escolha. Você pode investir bastante em uma equipe de GenAI, treinamento e ferramentas para fazer isso do zero ou pode iniciar com uma plataforma low-code e começar quase imediatamente. Interfaces visuais, conectores fáceis de usar, componentes pré-criados e funcionalidade de arrastar e soltar: esses recursos de plataformas low-code podem abrir muitas portas para desenvolvedores que gostariam de (ou foram solicitados a) criar aplicações de GenAI.
Focar na estratégia em vez da execução
Com o low-code, os desenvolvedores podem se concentrar no que suas aplicações de GenAI devem fazer, não em como fazê-los fazer isso. Eles podem se conectar a modelos de base com o mínimo de esforço e o máximo de velocidade, simplicidade e satisfação. E para cientistas de dados interessados em criar aplicações com seus modelos, o low-code é uma das melhores maneiras de fazer isso.
Plataformas low-code facilitam a incorporação de IA generativa em aplicações e workflows. Com apenas alguns cliques, os desenvolvedores podem reunir o melhor dos LLMs e RAG. Plataformas low-code também oferecem conectores para GPTs, LLMs e funcionalidades GenAI da Amazon Web Services (AWS), Microsoft Azure e Google Cloud Platform. Com essas conexões, ninguém precisa passar pelo incômodo de construir modelos ou escolher frameworks.
O low-code também permite que os desenvolvedores criem seus próprios agentes de IA sem escrever uma linha de Java ou Python ou usar a biblioteca Langchain. Pelo menos uma plataforma low-code fornece às equipes de desenvolvimento o que elas precisam para criar agentes de IA generativos e incorporá-los em aplicações novas ou existentes. Algumas plataformas até aceleram o processo de criação de agentes ao fornecer uma biblioteca de aplicações de IA generativa de início rápido, incluindo uma aplicação de tíquete de suporte que responde às perguntas dos clientes com precisão e uma aplicação de inteligência de vendas que resume as chamadas de suporte.
Aplicações GenAI desenvolvidas com low-code
- Uma empresa de manufatura usou um conector OpenAI low-code para integrar o ChatGPT à sua aplicação de colaboradores.
- Uma empresa de software está usando a GenAI para fornecer suporte ao cliente e fechar tickets mais rapidamente, melhorando a experiência do cliente.
- Em uma aplicação de comércio eletrônico, os clientes usam um chatbot GenAI desenvolvido com low-code para obter ajuda para fazer pedidos, recomendações personalizadas e respostas para perguntas frequentes.
- Um assistente virtual com tecnologia GenAI, desenvolvido por uma plataforma low-code, permite que os colaboradores acessem informações e concluam tarefas com mais eficiência.
- Uma aplicação GenAI para vendas fornece resumos de chamadas no Slack, sugere as próximas melhores ações em um e-mail e gera insights acionáveis no Salesforce.
- Uma comunidade de desenvolvedores criou uma experiência de usuário que se conecta a vários LLMs e gera traduções de seus fóruns.
É importante observar que, embora desenvolvedores sem conhecimento básico de IA e ML possam usar uma plataforma low-code para criar uma aplicação de GenAI, geralmente essa não é a melhor ideia. Sim, o low-code elimina muita complexidade, especialmente em comparação ao desenvolvimento tradicional, mas há coisas que os desenvolvedores ainda precisam saber.
O que os desenvolvedores precisam saber para criar aplicações de GenAI com low-code
Quando os desenvolvedores usam low-code para criar aplicações de GenAI , o conhecimento necessário é uma lista muito menor do que o do desenvolvimento tradicional, e tem mais a ver com a compreensão de conceitos do que com codificação intensa e estudo de framework. Aqui estão alguns exemplos:
- Uma compreensão básica dos conceitos de IA e ML. Isso inclui aprendizado supervisionado e não supervisionado, redes neurais e processamento de linguagem natural.
- Familiaridade com a forma como os dados são coletados, limpos e pré-processados para treinar e avaliar modelos de GenAI de forma eficaz. Eles também devem saber como funcionam a integração de dados, a avaliação da qualidade dos dados e a engenharia de recursos.
- Princípios do design de experiência do usuário (UX): criar interfaces fáceis de usar e workflows intuitivos é essencial para a adoção e o sucesso de aplicações de GenAI. Os desenvolvedores devem ser capazes de criar aplicações visualmente atraentes e fáceis de usar.
Estas são apenas algumas das razões para considerar o low-code para entrega de aplicações GenAI. No entanto, aqui está uma que é ainda mais convincente: enquanto a codificação tradicional está sendo derrubada pela GenAI e pode um dia ser eliminada por ela, o low-code e a GenAI podem trabalhar em conjunto.
11Andre Tost, Defendendo Java na IA Generativa, 2023 (mais comentários). LinkedIn, 24 de novembro.
12 Inferência de IA generativa em C++: velocidade e controle prontos para produção, 2024. ChemicalQDevice, 13 de junho.
12 Chris Pietschmann, Crie uma aplicação de IA generativa em C# com Phi-3 SLM e ONNX, 2024. Build Five Nines, 18 de maio.
14 Sarfraz Nawaz, Langchain vs Haystack: Qual é o melhor para o desenvolvimento de IA?, 2024. LinkedIn, 1º de abril.