IA open source para desenvolvedores
Open source e IA: uma combinação revolucionária
A inteligência artificial (IA) e o machine learning operations (MLOps) estão transformando os processos de desenvolvimento e as aplicações.
Soluções inovadoras baseadas em modelos de IA oferecem novas possibilidades para criar conteúdo, aprimorar os processos de tomada de decisões e personalizar a experiência dos usuários. Os fluxos de trabalho modernos de MLOps otimizam a integração, a implantação e o gerenciamento de modelos de IA nos ambientes de produção, assegurando a confiabilidade e o alto desempenho deles. Combinando a IA e o MLOps, os desenvolvedores se tornam mais ágeis e atendem rapidamente às demandas empresariais em transformação com aplicações dinâmicas, fluxos de trabalho eficientes e ciclos de desenvolvimento acelerados.
As ferramentas de IA open source oferecem muitos benefícios para as equipes de desenvolvimento em termos de flexibilidade e personalização. Com elas, os desenvolvedores podem modificar e adaptar aplicações inteligentes para atender às demandas empresariais usando soluções personalizadas. Os projetos open source promovem o trabalho conjunto em uma ampla comunidade de usuários e colaboradores. Por isso, eles viabilizam melhorias contínuas e o desenvolvimento de novas funcionalidades nas principais tecnologias de IA. Graças a essa adaptabilidade, as organizações podem personalizar as ferramentas de IA com base nos requisitos, sendo a escolha ideal para projetos que exigem funcionalidades especializadas.
Planeje sua estratégia de desenvolvimento
Para gerar bons resultados, você precisa de uma abordagem estruturada de desenvolvimento de aplicações baseadas em IA. Cada etapa do processo precisa ser pensada com cuidado para assegurar que a aplicação não só atinja as metas esperadas, como também funcione com responsabilidade e eficiência. Incluindo definir objetivos claros, escolher um modelo e seguir práticas éticas, essas etapas ajudam a criar soluções baseadas em IA robustas e confiáveis.
- Identifique os objetivos da IA. Comece descrevendo claramente o problema que sua aplicação baseada em IA pretende resolver. Determine as tarefas específicas que ela precisa executar. Isso pode incluir funções relacionadas a código e de geração, classificação, conversação e resumo.
- Avalie os dados disponíveis. Analise os dados minuciosamente, já quea qualidade e o escopo deles determinam o sucesso do modelo. Em geral, os modelos de IA generativa exigem conjuntos de dados grandes para treinamento. Já os modelos de IA preditiva são mais apropriados para conjuntos de dados rotulados e menores. É fundamental que os dados sejam relevantes e diversificados, além de representar as situações associadas à sua aplicação. Corrija falhas e vieses nos dados para evitar resultados distorcidos ou imprecisos.
- Analise as tarefas de IA. Escolha uma abordagem de IA com base nos requisitos da aplicação. Os modelos de IA generativa se destacam pelo entendimento de linguagem diferenciada, geração de imagens e vídeos, aumento de dados e interação em tempo real. Por isso, eles são ideais para a criação de conteúdo, IA conversacional e resumo de texto. Já a IA preditiva é voltada a tarefas estruturadas com resultados bem definidos, como segmentação de imagens e detecção de fraudes, além de possibilitar a inferência rápida nas aplicações em tempo real. Alguns modelos do tipo incluem as Redes Neurais Convolucionais (RNCs) e as árvores de decisão. Em alguns casos, faz sentido combinar as duas abordagens. Por exemplo, os chatbots de atendimento ao cliente podem usar modelos de IA preditiva para classificar intenções e de IA generativa para processar linguagem natural.
- Escolha os modelos apropriados. Com modelos de IA prontos para uso disponibilizados por serviços gerenciados e interfaces de programação de aplicações (APIs) de terceiros, é possível adicionar funcionalidades avançadas de IA às aplicações. Esses modelos ajudam a integrar funcionalidades complexas, como processamento de linguagem natural, reconhecimento de imagens e análise preditiva: e tudo isso sem precisar de expertise avançada sobre IA e machine learning. As APIs de terceiros e os serviços gerenciados simplificam o treinamento de modelos e os processos de manutenção. Assim, você oferece funcionalidades de IA que impulsionam o engajamento dos usuários e o desempenho da aplicação.
- Mantenha a conformidade ética. As aplicações baseadas em IA costumam lidar com dados confidenciais e têm um poder significativo de influência nas decisões. Considere as implicações éticas das ações e previsões da sua aplicação. Priorize a transparência, imparcialidade e responsabilidade para evitar consequências inesperadas e conquistar a confiança dos usuários.
Quem deve ler este e-book
Este e-book é voltado a desenvolvedores e cientistas de dados iniciantes e intermediários que querem aplicar estratégias, plataformas e ferramentas de IA open source aos seus projetos. Com foco nos aspectos práticos do desenvolvimento, o e-book oferece orientações sobre como escolher, integrar, refinar e implantar um modelo para criar aplicações inovadoras baseadas em IA.
Desenvolva aplicações inovadoras baseadas em IA
A IA abrange diversas tecnologias com diferentes propósitos. A IA preditiva e generativa são as principais, e cada uma oferece recursos distintos. Elas são ideais para criar aplicações inteligentes. A IA preditiva se concentra na análise dos dados existentes para identificar tendências e resultados futuros. Ela usa dados históricos para prever eventos, comportamentos e condições. Assim, os usuários podem tomar decisões embasadas em situações prováveis. Por outro lado, a IA generativa cria novos dados e conteúdo usando os padrões que aprendeu com informações existentes. Ela pode gerar textos, imagens e outras mídias que tenham relação com os dados de treinamento, oferecendo soluções inovadoras de personalização e criação de conteúdo. Enquanto a IA preditiva oferece insights sobre possibilidades futuras, a generativa produz novos resultados com base nos padrões aprendidos.
IA preditiva
Muitas vezes, o desenvolvimento de aplicações baseadas em IA começa com a escolha do modelo certo para a tarefa. No caso da IA preditiva, isso envolve escolher uma arquitetura ou um modelo pré-treinado que atendam às suas necessidades. Os modelos comuns incluem o ResNet para classificação de imagens, o YOLO (You Only Look Once) para detecção de objetos e o Isolation Forest para identificação de anomalias. Ao escolher um modelo, é essencial considerar o tamanho e a complexidade dele em relação à velocidade da inferência (a rapidez com que um modelo treinado faz previsões usando novos dados inseridos). Caso sua organização já tenha uma prática madura de IA, você também poderá desenvolver seu próprio modelo de IA preditiva usando os dados da empresa. Com bibliotecas open source e frameworks de deep learning, como o OpenCV, scikit-learn, TensorFlow e PyTorch, é possível integrar com eficiência os modelos internos e externos às aplicações baseadas em IA.
Depois disso, as etapas importantes são a preparação dos dados e a avaliação do modelo. Ao analisar minuciosamente os dados, você entende melhor as características deles e soluciona possíveis problemas. Testes com diferentes arquiteturas de modelo e pesos pré-treinados ajudam a encontrar o equilíbrio perfeito entre desempenho e velocidade de inferência. Para assegurar a generalização adequada dos modelos, é essencial fazer uma rigorosa validação em um conjunto de dados de teste separado.
Após escolher e validar um modelo, as próximas etapas no processo de desenvolvimento são o refinamento e a implantação. Você pode precisar pré-processar os dados usando técnicas como redimensionamento e normalização. Ao usar modelos pré-treinados, é crucial executar o ajuste fino em conjuntos de dados específicos. Além disso, em alguns casos, aplicar técnicas de pós-processamento pode melhorar os resultados do modelo. Com o monitoramento do desempenho do modelo em produção (incluindo o tempo de resposta de inferência e o uso de recursos), você pode retreinar e otimizar o modelo para manter a eficiência dele. Verificar os modelos para encontrar desvios de dados assegura que os dados apresentados na inferência não variem tanto daqueles usados para treinar ou ajustar o modelo.
Os modelos de IA preditiva costumam ser melhores para aplicações em tempo real, já que eles têm uma inferência mais rápida que a IA generativa. Com a combinação de IA preditiva e generativa, você cria soluções mais completas. No entanto, isso pode aumentar a complexidade e o tempo de execução do modelo.
IA generativa
A primeira etapa para desenvolver aplicações baseadas na IA generativa é escolher o melhor Large Language Model (LLM). Há várias opções open source disponíveis, como Bidirectional Encoder Representations from Transformers (BERT), Text-to-Text Transfer Transformer (T5) e modelos Granite. Cada um deles oferece diferenciais exclusivos com base em tarefas distintas. É importante escolher um LLM que tenha a ver com os objetivos da sua aplicação. Por exemplo, você pode ajustar o Granite-7B-Starter para resumir textos específicos sobre seguros que destaquem fatores de risco, cobertura e obrigações. Já o BERT é perfeito para análise de sentimentos.
Avaliar o desempenho do modelo é crucial, já que os LLMs têm precisão, fluência e eficácia geral variáveis nas tarefas relevantes para suas aplicações. Além disso, modelos de alta capacidade, como o GPT-3 e algumas versões do Granite, exigem um volume significativo de recursos computacionais, como unidades de processamento gráfico (GPUs) caros. Portanto, é essencial equilibrar essas necessidades com base no orçamento e infraestrutura disponíveis. Por fim, com acesso a dados de alta qualidade suficientes para ajuste fino, você assegura que o LLM tenha desempenho ideal para atender aos requisitos da aplicação.
Frameworks como o Langchain simplificam a integração de LLMs com aplicações para você se concentrar na lógica principal delas. Esses frameworks oferecem ferramentas de engenharia de prompt e encadeamento de modelos, aprimorando os componentes do LLM com memória ou contexto.
Após escolher os melhores frameworks e LLMs, você pode adicionar recursos generativos às aplicações. Esse processo envolve refinar o desempenho do modelo e elaborar prompts precisos e efetivos que façam a IA gerar os resultados desejados. Estabelecer ciclos robustos de feedback é crucial para a melhoria contínua, já que o modelo pode se adaptar e aprimorar os resultados ao longo do tempo.
Com os prompts, você instrui o LLM a gerar os resultados desejados. Ao criar prompts concisos e claros, usar templates para gerar instruções refinadas e aplicar técnicas como o encadeamento para orientar o LLM em tarefas complexas, você aprimora significativamente a efetividade do modelo. Essas estratégias asseguram que os modelos de IA produzam respostas consistentes e relevantes, até mesmo nas interações com várias etapas.
O ciclo de aprendizagem por reforço com feedback humano (RLHF) é crucial para fazer o ajuste fino do LLM. Após a implantação do modelo, colete as interações do usuário e utilize esse feedback para refinar o desempenho do LLM. Com esse processo iterativo, você faz o modelo aprender com os erros e sempre melhorar, aumentando a capacidade dele de gerar resultados precisos e relevantes conforme se adapta a casos de uso reais.
O ajuste fino personaliza ainda mais os LLMs pré-treinados com base no seu domínio ou tarefa específicos. Ao treinar modelos com conjuntos de dados menores e voltados a tarefas específicas, você melhora o desempenho e personaliza os resultados para atender aos requisitos da aplicação. Usando ferramentas como o Hugging Face Transformers, você aproveita o conhecimento do modelo pré-treinado enquanto o refina para suas finalidades. O método de alinhamento do InstructLab ajuda a alinhar os resultados do modelo aos valores organizacionais e necessidades dos usuários, gerando respostas precisas e apropriadas ao contexto.
A Geração Aumentada de Recuperação (RAG) combina LLMs a sistemas de recuperação de informações para os modelos acessarem e incorporarem dados relevantes de fontes externas durante a geração. Essa abordagem melhora a coerência e precisão factual dos resultados e costuma ser muito usada ao aumentar as respostas do LLM com dados internos e empresariais. Os recursos de RAG integrados do Langchain otimizam esse processo, ainda mais ao usar modelos Granite para produzir respostas precisas e contextualmente relevantes.
Os agentes são sistemas autônomos que funcionam em um ambiente definido para atingir metas específicas. Com a incorporação de comportamentos adaptáveis e interativos, esses sistemas modificam dinamicamente o contexto operacional deles para responder às mudanças nas condições. Assim, é possível lidar com tarefas complexas e tomar decisões em tempo real. O desenvolvimento de agentes envolve construir sistemas de vários componentes que planejam, executam e avaliam ações com base nos resultados do modelo de IA. É possível aprimorar os recursos operacionais do sistema orquestrando tarefas complexas, como a tomada de decisões em tempo real e a integração de APIs externas à fonte de dados.
O encadeamento de modelos conecta vários processos ou modelos de IA para formar um fluxo de trabalho coeso. Nele, cada modelo usa como base os resultados do modelo anterior. Com essa abordagem, você pode desenvolver aplicações capazes de lidar com tarefas complexas usando interações em várias etapas. Ao usar os recursos de diferentes modelos em uma sequência definida, você desenvolve sistemas eficientes personalizados para seus requisitos.
Ao avaliar minuciosamente o fluxo de trabalho da sua aplicação com a IA integrada, você proporciona uma experiência eficiente e simplificada. Com testes rigorosos de todo o sistema, você identifica e responde a problemas e ineficiências. Assim, é possível refinar a aplicação para melhorar a funcionalidade e a usabilidade. Esse processo iterativo não só aprimora o desempenho, como também alinha ainda mais a aplicação às necessidades e expectativas dos usuários.
Como avaliar e comparar LLMs
- Gere prompts. Crie vários prompts para avaliar os recursos criativos e generativos. Refine os prompts para gerar as melhores respostas e resultados para várias situações.
- Faça experimentações com os dados. Teste os modelos com dados proprietários exclusivos para sua aplicação. Ajuste os prompts e configurações para otimizar o desempenho do modelo em tarefas específicas.
- Avalie o desempenho. Analise e compare o desempenho do modelo usando os resultados dos testes.
Exemplo 1: chatbot de atendimento ao cliente
- Problema: as organizações de prestação de serviços precisam tirar as dúvidas e solucionar os problemas dos clientes com rapidez e eficiência: o dia inteiro, durante toda a semana
- Dados: logs de chat, documentação da solução e artigos da base de conhecimento
- Modelos: Granite-7B-Starter ajustado para conversa e classificação de intenção, aprimorado com a RAG para recuperação de conhecimento
- Considerações éticas: assegurar a privacidade dos dados, diminuir os vieses e oferecer transparência aos usuários
- Implantação e iteração: implantar o chatbot, monitorar as interações, coletar feedback, treinar os modelos novamente e atualizar a base de conhecimento com frequência
Crie um chatbot usando APIs de terceiros
- Serviço do modelo: API ChatGPT da OpenAI com o Quarkus REST Client
- Outras considerações: classificação de intenção e integração da base de conhecimento
Exemplo 2: avaliação de risco na análise de credito de um seguro
- Problema: as organizações precisam otimizar os processos de análise de crédito resumindo automaticamente documentos complexos de seguro
- Dados: um conjunto completo de documentos de seguro, como políticas, pedidos de indenização e prontuários
- Modelo: Granite-7B-Starter com ajuste fino para resumir textos específicos de seguro com foco em fatores de risco, cobertura e responsabilidades
- Considerações éticas: priorizar a precisão, manter a conformidade legal e assegurar a privacidade dos dados
- Implantação e iteração: integrar modelos ao fluxo de trabalho de análise de crédito, coletar feedback e refinar os modelos para melhorar a avaliação de riscos
Avalie o risco de seguros usando APIs de terceiros
- Serviço do modelo: API Google Gemini com o Quarkus REST Client
- Outras considerações: ajuste fino e pré-processamento dos dados
É essencial entender sobre engenharia de prompt, ajuste fino, RAG e agentes para desenvolver aplicações inovadoras baseadas em IA. Cada método oferece ferramentas e estratégias diferentes para enfrentar desafios complexos e melhorar as funcionalidades interativas das aplicações baseadas em IA. Ao aplicar essas técnicas com sucesso, você cria sistemas baseados em IA mais inteligentes, responsivos e efetivos para atingir as importantes metas dos negócios.
O Red Hat® OpenShift® AI é baseado no Red Hat OpenShift e oferece uma plataforma completa para desenvolver, treinar, ajustar, implantar e monitorar modelos e aplicações, além de atender às demandas de carga de trabalho e desempenho das soluções de IA modernas. Ele inclui ferramentas e ambientes que aumentam a produtividade do desenvolvimento com a IA:
- Os Jupyter Notebooks e o PyTorch facilitam os testes e o desenvolvimento colaborativo, otimizando a transição do protótipo à produção.
- O Red Hat OpenShift Pipelines automatiza os fluxos de trabalho de integração/implantação contínuas (CI/CD) para a entrega de modelos ser simples e eficiente.
- Com ferramentas aprimoradas de monitoramento e observabilidade, você acompanha a integridade e o desempenho do modelo em tempo real, além de identificar vieses e desvios de dados. Isso oferece suporte a manutenção e ajustes proativos.
O Red Hat OpenShift AI também otimiza o desenvolvimento e a implantação de aplicações baseadas em IA nos ambientes de nuvem híbrida. Usando recursos aprimorados de model serving, você implanta modelos de IA com simplicidade e flexibilidade. Eles incluem suporte para runtimes e servidores de modelo como KServe, vLLM e Text Generation Inference Server (TGIS). O Red Hat OpenShift AI leva os recursos de model serving até os locais de edge para você entregar soluções baseadas em IA nos ambientes com recursos limitados. Com acesso self-service a aceleradores de hardware, você acelera a iteração e otimiza as aplicações.
O Red Hat Enterprise Linux® AI é uma plataforma de modelo fundamental usada para desenvolver, testar e executar com facilidade os LLMs da família Granite, oferecendo suporte a aplicações empresariais. Ele viabiliza a portabilidade nos ambientes de nuvem híbrida e possibilita a escalabilidade dos fluxos de trabalho de IA com o Red Hat OpenShift AI.
Por fim, a extensão Podman Desktop AI Lab oferece uma configuração otimizada para desenvolver e testar aplicações baseadas em IA no local. Assim, você pode simular ambientes de produção com precisão e eficiência.
Preparar, apontar, desenvolver
Comece a criar hoje mesmo aplicações baseadas em IA com o Red Hat OpenShift AI.
O Red Hat OpenShift AI simplifica os fluxos de trabalho complexos, acelera os ciclos de desenvolvimento e amplia as opções de implantação. Ao reduzir o tempo e o esforço necessários para desenvolver e implantar modelos de IA, você pode se concentrar na inovação e criar soluções excelentes com mais rapidez.
Veja por onde começar com o Red Hat OpenShift AI gratuitamente
Acesse o Red Hat OpenShift AI no Sandbox do desenvolvedor: é grátis!
Descubra como usar o Red Hat OpenShift AI
Acesse trajetórias de aprendizagem interativas destinadas a vários casos de uso da IA.