terça-feira, julho 23, 2024
InícioTecnologiaA IA na engenharia de software está atingindo um “momento Oppenheimer”?

A IA na engenharia de software está atingindo um “momento Oppenheimer”?

Esta manhã, quando coloquei gasolina no carro, reclamei porque os preços subiram novamente. Hoje, os preços da gasolina subiram para R$ 4,55 por litro.

Mas então comecei a fazer uma série de perguntas sobre o que foi necessário para trazer aqueles três quilos de líquido volátil até mim, especialmente como o software alimentou o processo. 

O software analisou dados geológicos e gerenciou as máquinas de perfuração para garantir que não superaquecessem. O software ajudou a monitorar o clima e orientou os navios gigantes que transportavam o combustível. 

Gerenciou os sistemas da refinaria e forneceu monitoramento de segurança. Além disso, ele administrou as operações de pagamento e bombeamento para colocá-lo no meu carro.

Depois, houve o que foi necessário para escrever o software que ajudou a localizar o combustível no subsolo. 

Certamente não é um programador sentado com uma Coca-Cola e uma pizza e escrevendo código enquanto ouve Rush. Software industrial, como aquele que aciona máquinas de perfuração profunda, requer engenharia de software especializada.

E essa engenharia de software provavelmente foi auxiliada pela IA.

Sinto-me extremamente excitado, mas profundamente aterrorizado em igual medida. A IA pode muito bem ser o momento “nuclear” da engenharia de software, onde estamos trazendo novas capacidades extremamente poderosas para o mundo, mas o que está contido nessas capacidades? O poder de criar e destruir.

O que é engenharia de software?

Para realmente entender a IA na engenharia de software, primeiro precisamos entender o software.

O software controla computadores, onde um computador pode variar desde um PC em sua mesa até um minúsculo processador em um equipamento de fábrica. Em termos simples, software é uma série de instruções que informam ao computador o que fazer.

Programação (coloquialmente chamada de “codificação”) é a prática de encadear essas instruções para fazer algo acontecer. Mantenho um pequeno programa que permite que as pessoas doem para organizações sem fins lucrativos. Possui 153.259 linhas de código. 

Programas maiores, como Windows e Linux, requerem centenas de milhões de linhas. É importante ressaltar que a ordem e a estrutura das instruções controlam a operação do programa. Faça certo, o programa faz o que você deseja. Se errar, os resultados são imprevisíveis.

Agora, vamos falar sobre linguagens de programação. Idiomas são a sintaxe da palavra usada para criar programas. Você pode ter ouvido falar de C, Java e Swift, mas existem centenas. 

A questão é que diferentes linguagens podem ser usadas para realizar a mesma coisa. Quer a receita de lasanha seja escrita em italiano ou inglês, você ainda precisa colocá-la no forno pelo tempo certo.

Os idiomas são escolhidos por vários motivos, desde a adequação a uma tarefa até a compatibilidade com o ambiente de destino desejado. Como é impossível conhecer todos eles, alguns programadores preferem trabalhar nas linguagens que conhecem. 

Não se preocupe muito com a ideia de linguagens, mas saiba que elas são as palavras e a estrutura das palavras usadas para criar o código.

Os programadores agrupam instruções de computador para fazer algo fazer alguma coisa. Mas pense nos números que mencionei. Só o código do meu software de doação tem mais de cem mil instruções desse tipo. Isso é muita complexidade. Ele pode rapidamente ficar muito confuso e quebrar com a mesma rapidez.

Veja como pensar sobre engenharia de software como uma disciplina:

  • A engenharia de software usa métodos científicos, como construir uma ponte, para projetar e testar software.
  • Trata-se de uma abordagem estruturada, semelhante ao planejamento dos arquitetos antes da construção.
  • Assim como os engenheiros usam as melhores práticas para estruturas robustas, os engenheiros de software garantem um software confiável e eficiente.

Então, se você vai deixar seu carro levá-lo pela estrada a 70 mph, seria bom saber que você não está colocando sua vida nas mãos de um software não testado, escrito por algum programador que vive de pizza e pacotes de seis. da Red Bull, mas em vez disso, alguma disciplina de engenharia foi dedicada à criação e teste do software que faz a direção.

Há sobreposição entre codificação e engenharia de software. Sou um engenheiro de software treinado que também sabe codificar. Um desenvolvedor, desde empresas até indivíduos, cria produtos de software. Suas habilidades incluem codificação, engenharia de software e desenvolvimento de negócios. 

A engenharia de software é a disciplina por trás da codificação que a torna gerenciável, sustentável e, em última análise, confiável.

Qual é a diferença entre IA e software?

Tecnicamente, software é qualquer coisa que faça algo baseado em bits e bytes, em vez de hardware. Por exemplo, uma planilha de orçamento do Excel não é considerada um software como o próprio programa Excel, a menos que essa planilha inclua uma tonelada de macros e seja vendida como um aplicativo de software.

O software tradicional envolve uma série de etapas e decisões. Se você está criando código descrevendo etapas e decisões, você está programando tradicionalmente.

Mas a IA não funciona assim. A ideia da IA ​​é dar saltos intelectuais que não foram pré-definidos como etapas e decisões. Em vez disso, a IA utiliza dados – geralmente muitos e muitos dados – para ajudar a orientar a sua produção.

Quando você pede ao ChatGPT para escrever um artigo sobre infraestrutura de TI, ele o faz com sucesso, não porque os designers anteciparam sua pergunta e escreveram um código especial que ajuda a escrever artigos sobre infraestrutura de TI. Da mesma forma, quando Midjourney ajuda você a criar a imagem de um elefante voador saindo de um laptop, não é porque algum programador escreveu uma rotina de elefante voador só porque alguém pode querer aquela imagem.

Em vez disso, os sistemas de IA usam grandes modelos de linguagem (LLMs) para construir o que lhes é solicitado a partir de enormes bibliotecas de dados – praticamente toda a Internet, além de todas as outras informações que os engenheiros de IA poderiam alimentar nos sistemas.

Tudo isso torna a IA um pouco além do software. Isso também significa que nenhum ser humano sabe exatamente o que faz com que o ChatGPT responda daquela maneira. Elas são chamadas de “habilidades emergentes” e são características de grandes modelos de linguagem que não foram programadas desde o início.

O interessante sobre a IA é que começamos a nos afastar das disciplinas típicas de engenharia. Nem sempre podemos prever o que as IAs farão ou como o farão. Convencer uma IA generativa a fazer algo, o que é chamado de “engenharia imediata”, é quase tanto gerenciamento e negociação quanto prática de engenharia tradicional.

Como ex-professor de programação, interagir com LLMs como o ChatGPT parece mais um envolvimento com os alunos do que com ambientes de codificação.

Como a IA pode ser aplicada na engenharia de software?

À medida que a IA se torna popular, estamos vendo o que pode se tornar uma relação simbiótica entre engenheiros de software e ferramentas generativas de IA. A IA, por exemplo, pode sugerir otimizações de código, identificar bugs e até prever os efeitos em cascata de mudanças em um sistema.

No início deste ano, fiz muitas  codificações acrobáticas com a IA , só para ver o que ela poderia fazer. 

Também o usei para  ajudar a encontrar um bug particularmente confuso, para ajudar a identificar o código que precisava ser alterado para garantir a compatibilidade com versões mais recentes do software da plataforma, para escrever rotinas curtas que  ajudassem minha esposa em seus negócios e para criar um bookmarklet do Chrome que  ajudasse eu crio links “Também”  em meus artigos do ZDNET. 

Eu não diria que a IA se tornou essencial para minha carga de trabalho, mas com certeza tem sido uma grande ajuda.

Sem dúvida, as ferramentas generativas de IA que estão na moda este ano foram desenvolvidas por engenheiros de software. A IA pode fazer parte do processo de engenharia de software. Também pode ser o resultado da engenharia de software. 

Além disso, a IA pode ajudar os desenvolvedores a realizar seu trabalho. Se você pensar nos aspectos da engenharia de software – design, codificação, depuração, manutenção, gerenciamento, testes, distribuição e migração (para citar alguns) – a IA pode ajudar em todas essas áreas. 

Por exemplo, a IA pode automatizar tarefas repetitivas de codificação, tornando o processo mais rápido e eficiente. Além disso, pode prever possíveis bugs ou vulnerabilidades no código, garantindo um software mais robusto e seguro.

Existem, no entanto, limites. Usei IA pela primeira vez para escrever algumas rotinas simples. Então, quando tentei com rotinas mais complexas, a IA começou a perseguir o próprio rabo. 

Mas quando alimentei uma IA com uma pilha de código que estava quebrando (onde não consegui encontrar o que estava errado), a IA apontou o erro. 

A IA também pode ajudar a estabelecer regimes de testes. Pode ajudar o pessoal do suporte técnico a responder perguntas quando os novos agentes não têm experiência para saber as respostas por conta própria.

Em seu estado atual, não se pode confiar na IA para acertar ao ajudar na engenharia de software. Ele pode ser comparado a um estudante universitário particularmente talentoso, mas igualmente excêntrico, que às vezes tem insights de profundo brilho, mas não produz as respostas precisas necessárias.

Depois, há o que a IA pode fazer pelo mundo. É aqui que precisamos de cogitação comunitária sobre o conceito. 

Tenha em mente que os incríveis avanços e aplicações de IA listados abaixo são construídos sobre os fundamentos da engenharia de software. Sem os princípios e práticas da engenharia de software, estas ferramentas e serviços orientados pela IA não seriam possíveis.

Aqui estão dez coisas que a IA faz por nós no mundo real agora:

  1. Assistentes pessoais como Siri, Alexa e Google Assistant nos ajudam nas tarefas e respondem perguntas.
  2. Algoritmos de saúde auxiliam no diagnóstico de doenças e na previsão de resultados dos pacientes.
  3. Ferramentas de análise financeira auxiliam na negociação de ações e na detecção de fraudes.
  4. Algoritmos de recomendação de conteúdo sugerem filmes, músicas e artigos com base em nossas preferências.
  5. Os chatbots de atendimento ao cliente lidam com dúvidas e reclamações dos clientes.
  6. Os robôs de fabricação auxiliam nas linhas de montagem e no controle de qualidade.
  7. Os serviços de tradução de idiomas são alimentados por IA.
  8. A IA é muito usada nos principais jogos de estúdio para torná-los interativos, inteligentes e atraentes.
  9. Os sistemas de segurança usam reconhecimento facial e detecção de anomalias na segurança cibernética.
  10. Os algoritmos de marketing personalizam os anúncios e o alcance do cliente.

E como tivemos o surgimento da IA ​​generativa este ano (que está mudando muito mais), naturalmente, aqui estão dez coisas que a IA fará por nós na próxima década:

  1. Os cuidados de saúde avançados podem incluir a descoberta de medicamentos assistida por IA e a medicina personalizada.
  2. Modelagem climática para prever e mitigar os efeitos das mudanças climáticas.
  3. Inteligência emocional em IA que pode ler e responder às emoções humanas.
  4. Robótica avançada que pode realizar tarefas complexas e auxiliar na vida diária.
  5. Experiências de realidade virtual alimentadas por IA, oferecendo mundos virtuais totalmente imersivos.
  6. Sistemas educacionais que oferecem experiências de aprendizagem personalizadas, adaptadas às necessidades individuais.
  7. Exploração espacial auxiliada por IA na navegação e operação de naves espaciais.
  8. Assistência jurídica por meio de IA em pesquisas jurídicas e preparação de casos.
  9. Arte e criatividade aprimoradas por arte e música geradas por IA ou como ferramenta colaborativa para artistas.
  10. Melhorias na segurança pública através da IA ​​na previsão e resposta a desastres.

E depois há os carros autônomos. Na verdade, a IA e a aprendizagem automática estão a melhorar a eficácia das comunicações em carros autónomos e a melhorar o desempenho das câmaras dos nossos smartphones. 

A IA, assim como o software, estará incorporada em tudo o que usarmos, agregando valor ao longo do caminho.

Quais são as questões éticas urgentes em IA e engenharia de software?

Além de a IA ajudar no processo de implementação da engenharia de software, os engenheiros de software precisam orientar o crescimento da IA. Falamos sobre os modelos de linguagem em si, mas os engenheiros de software precisam ajustar o comportamento da IA, garantir as melhores práticas e garantir que o produto final (a parte que chega ao público em geral) tenha proteções para garantir o comportamento ético.

Isso é difícil. Os engenheiros de software agora têm o que eu acho que você poderia chamar de “dever” que vai além da codificação e da depuração. Essencialmente, os engenheiros de software que constroem IAs são os principais “guardiões” e “professores” dos sistemas de IA. Portanto, cabe a esses engenheiros garantir que a tecnologia de IA seja desenvolvida e implementada de forma ética.

Deixe-me ser claro aqui: isso está muito fora da zona de conforto para a maioria dos programadores. A maioria dos engenheiros de software é treinada em processos e análises, bem como em práticas de implementação e codificação. 

Eles não são treinados em filosofia e ética. E a maioria dos engenheiros de software certamente não está treinada para lidar com isso quando diferentes grupos de humanos têm perspectivas diferentes sobre o que é ético, ou mesmo sobre o que é certo ou errado.

Na ZDNET, há  muito tempo abordamos  a  questão do preconceito  conforme ele se manifesta nos sistemas de IA. Não é um problema simples. Mas os preconceitos na IA podem levar a problemas do mundo real, como decisões injustas sobre empréstimos ou preconceitos ocultos nas práticas de contratação. A IA está a tornar-se parte integrante de setores como os cuidados de saúde, as finanças e a segurança pública, entre muitos outros.

Se a IA fosse mal utilizada ou simplesmente não fosse implementada com uma vasta gama de considerações que incorporassem uma tomada de decisão equitativa, os resultados poderiam ser devastadores. Como tal, os engenheiros precisam incorporar controles de acesso, monitoramento de uso, mecanismos de auditoria e muito mais para sistemas baseados em IA.

Mas essas questões vão muito além do que é possível em um fluxo de trabalho tradicional de engenharia de software. As equipes que implantam sistemas de IA precisarão contar com especialistas nas áreas de psicologia, ciências sociais, ética, gestão comunitária e muito mais.

Se os grandes modelos modernos de linguagem forem treinados na Internet e no conteúdo de bibliotecas e bancos de dados, eles herdarão inerentemente os preconceitos dessas fontes. 

Mas, em vez de apenas provocar uma pontada de desconforto em alguém que responde a uma frase negativa, a tomada de decisões baseada na IA pode causar danos permanentes, físicos, dispendiosos e dolorosos aos indivíduos.

Tudo isso tem que ser gerenciado no software, mas orientado por profissionais com uma visão de mundo mais ampla do que normalmente é ensinado nas escolas de engenharia. 

A IA está passando por um ‘momento Oppenheimer’ agora?

Há algum tempo, fiz minha última aula de química no ensino médio. Calculadoras de bolso eram populares, mas meu professor de química insistia que todos aprendêssemos a usar a régua de cálculo para fazer cálculos.

Nunca usei uma régua de cálculo desde aquela aula. Meu professor estava ensinando uma habilidade que era claramente obsoleta. Embora eu ache que possa haver algum benefício em saber como usar uma régua de cálculo em algum cenário pós-apocalíptico onde não há fontes de energia, imagino que se estivermos lidando com um apocalipse, teremos problemas maiores do que uma régua de cálculo. pode ajudar a consertar.

Como engenheiro, não uso réguas de cálculo. Eu uso computadores poderosos, codificação complexa, planilhas e toda a gama de recursos que nosso mundo digital moderno oferece. A visão do meu antigo professor sobre o que era necessário para “fazer ciência” era muito diferente daquela que se tornou minha prática real de “fazer ciência” ao longo de minha carreira.

À medida que avançamos em um mundo onde as ferramentas de IA são tão predominantes e revolucionárias quanto os PCs eram quando eu era um jovem engenheiro graduado, nossas ferramentas serão muito diferentes. Como nossas ferramentas incorporarão recursos de IA, precisaremos expandir nossas habilidades para compreendê-las e usá-las.

Muitas disciplinas de engenharia exigem que seus profissionais considerem ativamente a segurança. Os construtores de pontes precisam de compreender como fornecer oxigénio aos trabalhadores e manter o mar afastado quando utilizam caixões para construir fundações de pontes. 

Os engenheiros aeronáuticos precisam entender como manter um avião no ar e o oxigênio na cabine ao voar acima das nuvens. Os construtores de estradas precisam entender como moldar e esculpir cuidadosamente as explosões para limpar o terreno sem causar danos às áreas circundantes.

E assim, a engenharia de software deve progredir dos testes e validações para verdadeiras considerações de segurança social. Estas são algumas considerações finais que devemos ter em mente ao considerarmos o futuro da IA ​​e da engenharia de software.

Estamos à beira de uma nova era, tão transformadora, diferente, fortalecedora e problemática como foram a revolução industrial, a revolução dos PCs e o nascimento da Internet. As ferramentas e metodologias nas quais confiávamos estão evoluindo e, com elas, nossas responsabilidades e considerações éticas se expandem.

Devemos ter em mente estes três pilares da transformação:

  • Aceite a mudança : assim como a régua de cálculo se tornou obsoleta com o advento das calculadoras e computadores modernos, as práticas tradicionais de engenharia de software precisarão se adaptar às capacidades da IA. Isso não significa descartar o conhecimento fundamental, mas sim aumentá-lo com novos insights e ferramentas que a IA traz para a mesa.
  • Adote uma abordagem holística : A integração da IA ​​em nosso cenário digital exige uma abordagem holística à engenharia de software. Não se trata mais apenas de codificação; trata-se de compreender as implicações mais amplas das nossas criações, desde os impactos sociais até às considerações éticas.
  • Pratique a aprendizagem contínua em todos os níveis : Os rápidos avanços na IA significam que a aprendizagem e a adaptação contínuas são essenciais. Os engenheiros de software precisarão se manter atualizados com os mais recentes desenvolvimentos de IA, garantindo que aproveitem seu poder de forma responsável e eficaz. Da mesma forma, a IA também precisa de aprender continuamente, adotando novas melhores práticas e proteções à medida que as implicações da sua implantação se tornam aparentes na vida quotidiana.

É justo que, no meio de um ano em que a IA generativa tenha impulsionado a indústria tecnológica, o filme Oppenheimer tenha tomado conta das nossas telas de cinema. A cinebiografia segue a vida de J. Robert Oppenheimer, o físico teórico mais conhecido como “o pai da bomba atômica”. 

Em essência, Oppenheimer serve como uma reflexão comovente sobre os custos do avanço científico, o peso da responsabilidade suportado por aqueles que estão na vanguarda da inovação e a complexa interação entre ciência, ética e política no mundo moderno.

O diretor Christopher Nolan disse em uma entrevista recente: “Quando converso com os principais pesquisadores na área de IA no momento… eles literalmente se referem a isso como seu momento Oppenheimer”.

Essa mesma afirmação descreve perfeitamente como o efeito cascata da IA ​​na engenharia de software explode a partir da prática de codificação em nossas comunidades em geral

Gostou dessa dica incrível? Se sim, compartilhe com seus amigos e nas suas redes sociais. Receba diariamente aqui em nosso blog ideias e dicas gratuitas e siga-nos também no Google Notícias. Obrigado!

Fonte: Zdnet

Marco Aurelio Duarte
Marco Aurelio Duartehttps://connectionx360.com/
Natura do Rio de Janeiro formado em Gestão de Empresa na Faculdade de Cienc. e Adm. SP Apóstolo, "adoro leitura e escrever conteúdos para rede social, atuo em nichos como decoração, tecnologia e moda feminina", nos meus dias de folga adoro ir a praia, passear com a familia, cinema e viajar.
RELATED ARTICLES

MOSTRAR MAIS LIDAS