Skip to main content

Criar um modelo personalizado para o GitHub Copilot

Você pode ajustar o recurso de conclusão do código do Copilot criando um modelo personalizado com base no código nos repositórios da sua organização.

Quem pode usar esse recurso?

Owners of organizations enrolled in the versão prévia pública.

The organization must belong to an enterprise with a Copilot Enterprise subscription.

Note

Os modelos personalizados para GitHub Copilot Enterprise estão em versão prévia pública e estão sujeitos a alterações. Durante a fase de versão prévia pública, não há custo adicional para clientes inscritos no Copilot Enterprise na versão prévia pública para criar ou usar um modelo personalizado.

Pré-requisito

O código no qual você deseja treinar um modelo personalizado deve ser hospedado em repositórios pertencentes à sua organização em GitHub.

Limitações

  • Para o versão prévia pública, uma empresa pode implantar um modelo personalizado em uma única organização.
  • As sugestões de conclusão do código com base no modelo personalizado só estão disponíveis para usuários gerenciados que obtêm uma assinatura Copilot Enterprise da organização na qual o modelo personalizado é implantado. Para saber mais, confira Sobre os Enterprise Managed Users.
  • O modelo personalizado não é usado para código sugerido em respostas por GitHub Copilot Chat.

Sobre modelos personalizados do Copilot

Por padrão, o GitHub Copilot usa um modelo de linguagem grande que foi treinado em um grande número de repositórios de código públicos para que possa oferecer conclusão do código para uma ampla variedade de linguagens de programação em muitos contextos diferentes. Você pode usar esse modelo como base para criar um modelo de linguagem grande personalizado treinado por você especificamente em seu próprio código. Esse processo é frequentemente conhecido como ajuste fino.

Ao criar um modelo personalizado, você habilita GitHub Copilot para mostrar sugestões de conclusão do código que são:

  • Baseadas no código em seus próprios repositórios designados.
  • Criadas para linguagens de programação proprietárias ou menos representadas publicamente.
  • Adaptadas de acordo com o estilo e as diretrizes de codificação da sua organização.

Isso proporciona:

  • Personalização: o Copilot tem um conhecimento detalhado de sua base de código, incluindo módulos, funções e bibliotecas internas disponíveis. Um modelo personalizado pode ser particularmente benéfico se o código não for típico da ampla variedade de código usada para treinar o modelo base.
  • Eficiência e qualidade: o Copilot está mais bem equipado para ajudar você a escrever código mais rapidamente e com menos erros.
  • Privacidade: o processo de treinamento, a hospedagem e a inferência do modelo personalizado são seguros e privados para sua organização. Seus dados sempre permanecem seus, nunca são usados para treinar modelos de outros clientes e seu modelo personalizado nunca é compartilhado.

Sobre a criação de modelos

No momento, no versão prévia pública, apenas uma organização em uma empresa tem permissão para criar um modelo personalizado.

Como proprietário da organização que tem permissão para criar um modelo personalizado, você pode escolher qual dos repositórios da sua organização será usado para treinar o modelo. Você pode treinar o modelo em um, vários ou todos os repositórios da organização. O modelo é treinado no conteúdo das ramificações padrão dos repositórios selecionados. Opcionalmente, você pode especificar que apenas o código escrito em determinadas linguagens de programação deve ser usado para treinamento. O modelo personalizado será usado para gerar sugestões de conclusão do código em todos os tipos de arquivo, independentemente de esse tipo de arquivo ter sido usado para treinamento.

Você também pode escolher se os dados de telemetria (como os prompts inseridos pelos usuários e as sugestões geradas pelo Copilot) devem ser usados ao treinar o modelo. Para obter mais informações, confira Coleta e uso de dados de telemetria para modelos personalizados, mais adiante neste artigo.

Depois de iniciada, a criação do modelo personalizado levará muitas horas para ser concluída. Você pode verificar o progresso do treinamento nas configurações da sua organização. Quando a criação do modelo for concluída – ou se não for concluída – a pessoa que iniciou o treinamento do modelo será notificada por e-mail.

Se a criação do modelo falhar, o Copilot continuará a usar o modelo atual para gerar sugestões de conclusão do código.

Sobre o uso de modelos

Assim que o modelo personalizado for criado com êxito, todos os usuários gerenciados em sua empresa que obtiverem acesso ao Copilot Enterprise da organização na qual o modelo personalizado é implantado começarão a ver sugestões de conclusão do código do Copilot geradas usando o modelo personalizado. O modelo personalizado sempre será usado para qualquer código que esses usuários editarem, independentemente de onde o código reside. Os usuários não podem escolher qual modelo é usado para gerar as sugestões de conclusão do código que eles veem.

Quando você pode se beneficiar de um modelo personalizado

O valor de um modelo personalizado é mais pronunciado em ambientes com:

  • Linguagens de programação proprietárias ou menos representadas publicamente
  • Bibliotecas internas ou estruturas personalizadas
  • Padrões personalizados e práticas de codificação específicas da empresa

No entanto, mesmo em ambientes padronizados, o ajuste fino oferece uma oportunidade de alinhar melhor o recurso de conclusão do código do Copilot às práticas e aos padrões de codificação estabelecidos da sua organização.

Avaliar a eficácia de um modelo personalizado

Embora alguns ambientes de codificação apresentem uma probabilidade maior de se beneficiar do ajuste fino, não há correlação garantida entre comportamentos específicos em uma base de código e a qualidade dos resultados obtidos de um modelo personalizado. Recomenda-se avaliar os níveis de uso e satisfação das sugestões de conclusão do código do GitHub Copilot antes e depois da implementação de um modelo personalizado.

A comparação dos resultados da pesquisa de API e do desenvolvedor, antes e depois da implementação de um modelo personalizado, fornecerá uma indicação da eficácia do modelo personalizado.

Criar um modelo personalizado

Você pode usar as configurações da sua organização para criar um modelo de linguagem grande personalizado.

  1. No canto superior direito de GitHub, selecione sua foto de perfil e selecione Suas organizações.

  2. Ao lado da organização, clique em Configurações.

  3. Na barra lateral esquerda, clique em Copilot e, em seguida, clique em Modelo personalizado.

  4. Na página "Modelos personalizados", clique em Treinar um novo modelo personalizado.

  5. Em "Selecionar repositórios", escolha Repositórios selecionados ou Todos os repositórios.

  6. Se você escolheu Repositórios selecionados, selecione os repositórios que deseja usar para treinamento e clique em Aplicar.

  7. Opcionalmente, se você quiser treinar seu modelo apenas em código escrito em determinadas linguagens de programação, em "Especificar linguagens", comece a digitar o nome de uma linguagem que deseja incluir. Na lista exibida, selecione a linguagem desejada. Repita o processo para cada linguagem que deseja incluir.

  8. Para melhorar o desempenho do modelo, marque a caixa de seleção Incluir dados de prompts e sugestões.

    Note

    Se a caixa de seleção não estiver disponível para marcação, isso significa que a política de Coleta de dados de telemetria para modelos personalizados foi desabilitada nas configurações da sua organização. Para obter informações sobre como alterar as políticas da sua organização, confira Gerenciar políticas do Copilot na sua organização.

    Ao selecionar essa opção, você permite que o Copilot colete dados para prompts enviados pelo usuário e as sugestões de conclusão do código que foram geradas. Uma vez coletados dados suficientes, o Copilot os usará como parte do processo de treinamento do modelo, o que permitirá produzir um modelo mais eficaz.

    Para obter mais informações, confira Coleta e uso de dados de telemetria para modelos personalizados, mais adiante neste artigo.

  9. Clique em Criar novo modelo personalizado.

Verificando o progresso da criação do modelo

Você pode verificar as configurações da sua organização para obter uma indicação de como a criação do modelo está progredindo.

  1. Acesse as configurações da sua organização para os modelos personalizados do Copilot. Confira Criando um modelo personalizado acima.

  2. Na primeira vez que você treina um modelo, a página exibida mostra os resultados do treinamento.

    Se esse não for o primeiro treinamento, as tentativas de treinamento atuais e anteriores serão listadas. Para ver detalhes do processo de treinamento atual, clique no primeiro botão de reticências (...) e, em seguida, clique em Detalhes do treinamento.

Razões para o fracasso do treinamento

O treinamento do modelo pode falhar por vários motivos, incluindo:

  • Dados insuficientes ou dados não representativos. A falta de dados fornecidos para treinamento ou o excesso de replicação nos dados pode tornar o ajuste fino instável.
  • Dados não diferenciados. Se os dados não forem suficientemente diferentes dos dados públicos nos quais o modelo base foi treinado, o treinamento poderá falhar ou a qualidade das sugestões de conclusão do código do modelo personalizado poderá ser apenas marginalmente melhorada.
  • Uma etapa do pré-processamento de dados pode encontrar tipos e formatos de arquivos inesperados, o que faz com que ela falhe. Uma solução pode ser especificar apenas determinados tipos de arquivo para treinamento.

Treinando novamente ou excluindo o modelo personalizado

Como proprietário da organização, você pode atualizar ou excluir o modelo personalizado na página de configurações da sua organização.

Treinar o modelo novamente o atualiza para incluir qualquer novo código que tenha sido adicionado aos repositórios selecionados para treinamento. Você pode treinar novamente o modelo uma vez por semana.

  1. Acesse as configurações da sua organização para os modelos personalizados do Copilot. Confira Criando um modelo personalizado acima.
  2. Na página de treinamento do modelo, clique no primeiro botão de reticências (...) e, em seguida, clique em Treinar novamente o modelo ou Excluir modelo.

Se você treinar novamente o modelo, o Copilot continuará a usar o modelo atual para gerar sugestões de conclusão do código até que o novo modelo esteja pronto. Depois que o novo modelo estiver pronto, ele será usado automaticamente para sugestões de conclusão do código para todos os usuários gerenciados que obtiverem uma assinatura do Copilot Enterprise da organização.

Se você excluir o modelo personalizado, o Copilot usará o modelo base para gerar sugestões de conclusão do código para todos os usuários que obtiverem uma assinatura do Copilot da organização.

Coleta e uso de dados de telemetria para modelos personalizados

Ao criar um modelo personalizado, você pode optar por permitir que o GitHub colete dados de telemetria para fins de treinamento do modelo. Esses dados são usados para melhorar a qualidade das sugestões de conclusão do código que o modelo pode gerar.

Que dados de telemetria são coletados?

  • Prompts: inclui todas as informações enviadas para o modelo de linguagem do GitHub Copilot pela extensão Copilot, incluindo o contexto de seus arquivos abertos.
  • Sugestões: as sugestões de conclusão do código geradas pelo Copilot.
  • Snippet de código: um instantâneo do código 30 segundos após uma sugestão ser aceita, capturando como a sugestão foi integrada à base de código. Isso ajuda a determinar se a sugestão foi aceita como está ou se ela foi modificada pelo usuário antes da integração final.

Como os dados de telemetria são usados?

Os dados de telemetria são usados principalmente para ajustar o modelo personalizado do Copilot para melhor entender e prever os padrões de codificação da sua organização. Especificamente, eles ajudam a:

  • Melhorar a precisão do modelo: ao analisar a telemetria coletada, o Copilot refina seu modelo personalizado para aumentar a relevância e a precisão de futuras sugestões de codificação.
  • Monitorar o desempenho: os dados de telemetria permitem que o GitHub monitore o desempenho dos modelos personalizados em comparação com o modelo base, permitindo assim melhorias contínuas.
  • Loops de feedback: os dados ajudam o GitHub a criar loops de feedback em que o modelo aprende com o uso no mundo real, adaptando-se ao seu ambiente de codificação específico ao longo do tempo.

Armazenamento e retenção de dados

  • Armazenamento de dados: todos os dados de telemetria coletados são armazenados no Copilot Data Store, um ambiente seguro e restrito. Os dados são criptografados e isolados para impedir o acesso não autorizado.
  • Período de retenção: os dados de telemetria são retidos por um período contínuo de 28 dias. Após esse período, os dados são excluídos automaticamente dos sistemas da GitHub, garantindo que apenas dados recentes e relevantes sejam usados para treinamento e aprimoramento do modelo.

Privacidade e segurança de dados

A GitHub tem o compromisso de garantir que os dados da sua organização permaneçam privados e seguros.

  • Uso exclusivo: os dados de telemetria coletados da sua organização são usados exclusivamente para treinar seu modelo personalizado e nunca são compartilhados com outras organizações nem usados para treinar modelos de outros clientes.
  • Prevenção de vazamento de dados: a GitHub implementa protocolos rígidos de isolamento de dados para evitar a contaminação cruzada entre os dados de diferentes organizações. Isso significa que seu código e informações proprietárias estão protegidos contra exposição a outras organizações ou indivíduos.

Considerações importantes

  • Aceitação da telemetria: a participação na coleta de dados de telemetria é opcional e controlada por meio das políticas de administrador da sua organização. Os dados de telemetria só são coletados quando habilitados explicitamente para treinar modelos personalizados.

  • Riscos potenciais: embora a GitHub empregue medidas abrangentes para evitar vazamento de dados, há cenários em que dados confidenciais, como links internos ou nomes, podem ser incluídos na telemetria e, posteriormente, usados no treinamento. Recomendamos revisar e filtrar os dados que você envia para treinamento para minimizar esses riscos.

    Para obter mais detalhes sobre nossas práticas de tratamento de dados, consulte a Central de Confiabilidade do GitHub Copilot ou consulte o contrato de proteção de dados da GitHub.