Tornando o ChatGPT um melhor desenvolvedor de software: SoTaNa é um assistente de desenvolvimento de software de código aberto
Em um mundo cada vez mais impulsionado pela tecnologia, o desenvolvimento de software é fundamental para inovações em diversos setores, desde saúde até entretenimento
A maneira como fazemos o que fazemos mudou rapidamente nos últimos anos. Começamos a usar assistentes virtuais para a maioria das tarefas e nos encontramos em uma posição onde sentimos a necessidade de continuar delegando nossas tarefas a um agente de IA.
Há uma chave que desbloqueia o poder de impulsionar todos esses avanços: Software. Em um mundo cada vez mais impulsionado pela tecnologia, o desenvolvimento de software é fundamental para inovações em diversos setores, desde saúde até entretenimento. No entanto, a jornada do desenvolvimento de software é frequentemente repleta de complexidades e desafios, exigindo dos desenvolvedores soluções rápidas e pensamento criativo.
É por isso que as aplicações de IA rapidamente encontraram seu lugar no espaço de desenvolvimento de software. Elas facilitam o processo, fornecendo aos desenvolvedores respostas oportunas para suas consultas de codificação e apoiando-os em seus esforços. Provavelmente, você também usa. Quando foi a última vez que você foi ao StackOverflow em vez do ChatGPT? Ou quantas vezes você pressiona Tab quando tem o GitHub Copilot instalado?
ChatGPT e Copilot são bons, mas ainda precisam ser bem instruídos para funcionar melhor no desenvolvimento de software. Hoje, conhecemos um novo jogador: SoTaNa.
SoTaNa é um assistente de desenvolvimento de software que aproveita as capacidades dos LLMs para melhorar a eficiência do desenvolvimento de software. LLMs como ChatGPT e GPT4 demonstraram sua habilidade em entender a intenção humana e gerar respostas semelhantes às humanas. Eles se tornaram valiosos em vários domínios, incluindo resumo de texto e geração de código. No entanto, sua acessibilidade tem sido limitada devido a certas restrições, que SoTaNa pretende abordar.
SoTaNa surge como um assistente de desenvolvimento de software de código aberto que visa estreitar a lacuna entre desenvolvedores e o vasto potencial dos LLMs. O principal objetivo dessa iniciativa é capacitar os LLMs de base a entender a intenção do desenvolvedor enquanto opera com recursos computacionais limitados. A pesquisa adota uma abordagem multi-etapa para alcançar isso, utilizando o ChatGPT para gerar dados de alta qualidade baseados em instruções para tarefas de engenharia de software.
O processo começa orientando o ChatGPT através de prompts específicos que detalham os requisitos para gerar novas instâncias. Para garantir precisão e alinhamento com a saída desejada, um pool de sementes anotado manualmente de instâncias relacionadas à engenharia de software serve como referência. Esse pool abrange várias tarefas de engenharia de software, formando a base para a geração de novos dados. Por meio de uma técnica de amostragem inteligente, essa abordagem diversifica efetivamente as instâncias de demonstração e garante a criação de dados de alta qualidade que atendem aos requisitos estipulados.
Para melhorar a compreensão do modelo sobre a intenção humana, SoTaNa emprega Lora, um método de ajuste fino eficiente em termos de parâmetros, para aprimorar os modelos de base de código aberto, especificamente LLaMA, usando recursos computacionais limitados. Esse processo de ajuste fino refina a compreensão do modelo sobre a intenção humana dentro do domínio da engenharia de software.
As capacidades de SoTaNa são avaliadas usando um conjunto de dados de perguntas e respostas do Stack Overflow, e os resultados, incluindo avaliações humanas, destacam a eficácia do modelo em auxiliar os desenvolvedores.
SoTaNa apresenta ao mundo um assistente de desenvolvimento de software de código aberto construído sobre os ombros dos LLMs, capaz de compreender as intenções dos desenvolvedores e gerar respostas pertinentes. Além disso, faz uma contribuição vital para a comunidade ao lançar pesos de modelo e um conjunto de dados baseado em instruções de alta qualidade projetado exclusivamente para engenharia de software. Esses recursos prometem acelerar pesquisas e inovações futuras no campo.