Como o InstructGPT prepara e rotula conjuntos de dados

Índice

1. Seleção do rotulador

2. A origem do conjunto de dados

3. Pré-processamento de dados

4. Métodos para rotular conjuntos de dados

4.1 Solicitações escritas por rotuladores

4.2 Solicitações enviadas por meio do playground da API

4.3 Gerar um conjunto de dados de acordo com o prompt

5. Diversidade de dados

6. O que o modelo InstructGPT aprendeu usando esse conjunto de dados rotulado?

7. Inadequações de tais dados rotulados

8. Instruções de rotulagem

 Glossário


1. Seleção do rotulador

        A OpenAI contratou cerca de 40 empreiteiros na plataforma Upwork e Scale AI para rotular os dados para eles, e por meio de testes de triagem (screening test) para julgar a capacidade dos empreiteiros de identificar e responder a solicitações sensíveis, e empreiteiros e pesquisadores com taxas de concordância no detalhamento tarefa de rotulagem. E mantenha a equipe de contratados pequena, o que facilita a comunicação com os contratados em tempo integral que executam as tarefas. O processo de triagem seleciona principalmente rotuladores que mostram uma alta propensão para detectar e responder a conteúdo confidencial. Mais especificamente, nossos anotadores de treinamento foram selecionados de um grupo inicial de candidatos a anotadores de acordo com os seguintes critérios:

  • Consistência de fala sensível . Criou um conjunto de dados de prompts e conclusões, alguns dos quais eram sensíveis (ou seja, qualquer coisa que pudesse provocar fortes emoções negativas, sejam prejudiciais, sexuais, violentas, críticas, políticas, etc.). Eles próprios rotularam a sensibilidade desses dados e mediram a concordância entre eles e os rotuladores.
  • Classificação de consistência . Envie as dicas para nossa API, juntamente com as conclusões de vários modelos, e faça com que o rotulador classifique as conclusões por qualidade geral. Meça a concordância do rotulador com o rótulo do pesquisador.
  • Escrita exemplar sensível . Crie um pequeno conjunto de sugestões sensíveis onde responder adequadamente à saída exigirá nuances. Em seguida, avalie cada ensaio de amostra em uma escala Likert de 1 a 7 e calcule a pontuação média de ensaio de amostra para cada etiquetador.
  • Autoavaliação da capacidade de identificar a fala sensível de diferentes grupos . Selecione um amplo campo de rotuladores que possam identificar coletivamente o conteúdo confidencial. Por motivos legais, não podemos contratar prestadores de serviços com base em informações demográficas. Então, eles pediram aos rotulados que respondessem à pergunta: "Para que tópico ou grupo cultural você estaria disposto a identificar fala sensível?" e usaram isso como parte de nosso processo de seleção.
     

2. A origem do conjunto de dados

        O conjunto de dados de prompts no modelo InstructGPT contém principalmente prompts de texto enviados à API OpenAI, especialmente aqueles que usam versões anteriores do modelo InstructGPT (por meio de treinamento supervisionado em um subconjunto dos dados de exemplo) na interface do Playground. Os clientes que usam são informados por meio de várias notificações de que seus dados podem ser usados ​​para treinar modelos InstructGPT a qualquer momento . Não há dados para clientes que usam a API implantada na produção .

3. Pré-processamento de dados

        Removendo heuristicamente prefixos de prompt duplicados verificando prompts que compartilham um denominador comum de longo prazo, eles limitam o número de prompts a 200 por ID de usuário . Para que os conjuntos de validação e teste não contenham os dados dos usuários no conjunto de treinamento, use o ID do usuário para dividir o conjunto de dados em conjuntos de treinamento, validação e teste . Para evitar que o modelo aprenda detalhes potencialmente confidenciais do cliente, eles filtram solicitações no conjunto de treinamento que podem capturar informações de identificação pessoal (PII) .

4. Métodos para rotular conjuntos de dados

4.1 Solicitações escritas por rotuladores

        Para treinar o primeiro modelo InstructGPT (ou seja, BetastructGPT), eles pediram aos rotuladores que escrevessem os próprios prompts. Isso ocorre porque eles precisam de uma fonte inicial de prompts semelhantes a instruções para orientar o processo, e esses tipos de prompts não são frequentemente enviados ao modelo GPT-3 regular na API OpenAI . Eles pediram aos rotuladores que escrevessem três prompts:

  • Simples : O rotulador propõe uma tarefa arbitrária enquanto garante que as tarefas tenham diversidade suficiente .
  • Few-shot : O rotulador propõe uma instrução e vários pares de consulta/resposta correspondentes à instrução.
  • Baseada no usuário : há muitos casos de uso para aplicativos de lista de espera na API OpenAI. Rotuladores apresentam dicas que correspondem a esses casos de uso.

4.2 Solicitações enviadas por meio do playground da API

        Para dicas de API, use dicas enviadas por usuários para versões anteriores do modelo InstructGPT no OpenAI API Playground mencionado anteriormente. Ao longo do processo, eles usam apenas dados do Playground , em vez de clientes usando seus modelos em produção, porque é mais fácil obter consentimento informado: toda vez que um usuário muda para um modelo InstructGPT, uma mensagem de aviso aparece informando que um commit foi feito Solicitar estes O modelo pode ser usado para treinar versões futuras do nosso modelo. Isso também foi comunicado em uma mensagem no canal Slack do desenvolvedor ao lançar a versão beta do modelo InstructGPT. Eles filtram dicas de divisões de treinamento que contêm informações de identificação pessoal (PII).

        Para garantir a diversidade de casos de uso, eles removem heuristicamente dicas duplicadas, verificando dicas que compartilham um longo prefixo comum e limitam o número de dicas a cerca de 200 por organização. Além disso, criamos divisões de treinamento, validação e teste com base no ID da organização, por exemplo, o conjunto de validação contém casos de uso diferentes do conjunto de treinamento.

4.3 Gerar um conjunto de dados de acordo com o prompt

        De acordo com as dicas acima, gere três conjuntos de dados diferentes ( conjunto de dados SFT, conjunto de dados RM, conjunto de dados PPO ) para procedimento de ajuste fino:

Tabela 6: Tamanho do conjunto de dados, de acordo com o número de dicas

        A tabela acima mostra o tamanho dos conjuntos de dados usados ​​para treinar/validar os modelos SFT, RM e RL e se as dicas foram escritas pelo contratante da rotulagem ou vieram da API OpenAI.

        (1) Conjunto de dados SFT , dados de exemplo do rotulador usados ​​para treinar o modelo SFT, conjunto de dados SFT contém cerca de 13 mil dicas de treinamento (da API e escritas pelo rotulador), para SFT, observe que as dicas escritas pelo rotulador são mais rápidas do que as dicas do cliente Muito mais, porque , no início do projeto, o rotulador escreve as instruções com a interface do usuário, solicitando que forneçam as instruções gerais do modelo e alguns exemplos das instruções. Eles construíram sinteticamente vários pontos de dados SFT a partir da mesma instrução, amostrando diferentes conjuntos de amostras pequenas.

        (2) conjunto de dados RM , usado para treinar o modelo RM, o conjunto de dados RM tem 33k dicas de treinamento (da API e escritas pelo rotulador), para RM, para cada dica, eles coletaram K saídas (de 4 a 9) classificam e treinam o \binomial{K}{2}modelo em todos eles , de modo que o número de pares classificados nos quais eles treinam o modelo seja uma ordem de grandeza maior que o número de sugestões.

        (3) O conjunto de dados PPO , sem quaisquer rótulos artificiais, é usado como entrada para o ajuste fino de RLHF. O conjunto de dados PPO tem 31k dicas de treinamento (somente da API). Mais detalhes sobre tamanhos de conjuntos de dados são fornecidos na tabela acima.
      

5. Diversidade de dados

        Os dados coletados abrangem uma ampla gama de categorias e casos de uso. A diversidade de categorias rotuladas por contratados nos conjuntos de dados de treinamento e validação de RM. A distribuição de classe do conjunto de dados PPO é semelhante. Um subconjunto de seus metadados de sinalização rotulados é mostrado na Tabela 7. Observe que os campos de comentário mudam ao longo do projeto, portanto, nem todos os campos são comentados para cada prompt.

Tabela 7: Anotações do conjunto de dados

Tabela 8: Média de gorjetas por cliente

Tabela 9: Comprimentos de prompt por conjunto de dados

25% é o quantil do trimestre, 50% é o meio quantil (ou seja, a mediana) e 75% é o quantil do terceiro trimestre

Tabela 10: Tamanho do prompt por categoria

Tabela 11: comprimentos de dados de amostra e solicitação

         Use um classificador leve (langid.py) para classificar o idioma de todas as instruções no conjunto de dados. Em sua experiência, cerca de 96% do conjunto de dados (110k pontos de dados) foi classificado como inglês, mas devido a imprecisões no classificador, estima-se que a pontuação real possa ser de 99% ou mais.
        Além do inglês, um pequeno conjunto de dicas foi encontrado em pelo menos 20 outros idiomas: espanhol, francês, alemão, português, italiano, holandês, romeno, catalão, chinês, japonês, sueco, polonês, dinamarquês, turco, indonésio, tcheco , norueguês, coreano, finlandês, húngaro, hebraico, russo, lituano, esperanto, eslovaco, croata, suaíli, estoniano, esloveno, árabe, tailandês, vietnamita, malaiala, grego, albanês e tibetano.
        A Tabela 8 mostra o número médio de gorjetas que cada cliente contribuiu para o conjunto de dados. Na Tabela 9, são relatadas estatísticas descritivas sobre os comprimentos de dica (em tokens) usados ​​para treinar vários modelos e, na Tabela 10, os comprimentos de token são divididos por caso de uso. Finalmente, as durações das demos escritas pelo contratado usadas para nosso modelo SFT, incluindo as dicas escritas pelo contratado e pelo rotulador, também são relatadas na Tabela 11.

6. O que o modelo InstructGPT aprendeu usando esse conjunto de dados rotulado?

        Quando se trata de alinhar um modelo de linguagem à intenção humana, o comportamento final é uma função do modelo base (e seus dados de treinamento), dos dados de ajuste fino e do método de alinhamento usado. Alguns dos fatores que afetam o ajuste fino dos dados são descritos em detalhes abaixo para finalmente determinar o que e o que alinhar. 
        A literatura costuma usar termos como "preferências humanas" ou "valores humanos" para construir alinhamentos. Neste trabalho, eles ajustaram as preferências de um grupo de rotuladores influenciados pelas instruções que receberam, o contexto em que receberam as instruções (como trabalho remunerado) e de quem receberam as instruções. Algumas ressalvas importantes se aplicam:
        primeiro, alinhe o modelo aos dados exemplares fornecidos pelo rotulador e às preferências do rotulador , e o rotulador gera diretamente os dados usados ​​para ajustar o modelo. De um modo geral, são principalmente pessoas que falam inglês e vivem nos EUA ou no Sudeste Asiático , contratados por meio da Upwork ou Scale AI. Rotuladores discordaram em muitos exemplos; eles descobriram que a concordância entre os rotuladores era de cerca de 73%.
        Em segundo lugar, ajuste as preferências do rotulador , como os pesquisadores que projetaram este estudo (e, portanto, por procuração para a organização de pesquisa mais ampla OpenAI): eles escrevem as instruções de rotulagem, que os rotuladores usam como guias ao escrever demos e escolher sua saída preferida , E responda suas perguntas sobre casos extremos em uma sala de bate-papo compartilhada. Mais pesquisas são necessárias sobre o impacto exato de diferentes conjuntos de instruções e designs de interface nos dados coletados das tags e seu impacto final no comportamento do modelo.
        Em terceiro lugar, os dados de treinamento são determinados por dicas que os clientes OpenAI enviam aos modelos no OpenAI API Playground, e, assim, alinham-se implicitamente com o que os clientes consideram valioso e, em alguns casos, seus usuários finais consideram valioso o uso atual da API. O consumidor e seus usuários finais podem não concordar, ou o cliente pode não estar otimizando para o bem-estar do usuário final; por exemplo, o cliente pode querer um modelo que maximize o tempo que os usuários gastam em sua plataforma, o que não tem que ser o que o usuário final deseja. Na prática, os anotadores não podem ver o contexto de uma determinada dica ou conclusão.
        Em quarto lugar, os clientes da OpenAI não representam todos os usuários atuais ou potenciais do modelo de linguagem, muito menos todos os indivíduos e grupos afetados pelo uso de modelos de linguagem . Durante a maior parte do projeto, os usuários da API OpenAI foram selecionados em uma lista de espera. Essa lista de espera era inicialmente de funcionários da OpenAI , direcionando o grupo final para nossa própria rede.
        Olhando para trás, há muitas dificuldades em desenhar um processo de ajuste que seja justo, transparente e tenha mecanismos de responsabilização apropriados. O objetivo deste artigo é demonstrar que esta técnica de alinhamento pode ser alinhada a um grupo de referência humano específico para uma aplicação específica. Não que pesquisadores, rotuladoras contratadas ou seus clientes de API sejam as fontes corretas de preferência . Há muitas partes interessadas a serem consideradas - a organização que treina o modelo, os clientes que usam o modelo para desenvolver produtos, os usuários finais desses produtos e a população em geral que pode ser direta ou indiretamente afetada. Não é apenas uma questão de tornar o processo de coordenação mais participativo; é impossível treinar imediatamente um sistema que atenda às preferências de todos, ou que todos concordem com os trade-offs.
       Treinar um modelo que pode ser condicionado às preferências de um determinado grupo, ou que pode ser facilmente ajustado ou solicitado para representar diferentes grupos pode ser a ideia certa. Grupos que suportam valores diferentes podem implantar e usar modelos diferentes. No entanto, esses modelos ainda podem afetar a sociedade em geral e exigir muitas decisões difíceis sobre quais preferências são condicionadas e como garantir que todos os grupos sejam representados e possam optar por não participar de processos potencialmente prejudiciais .

7. Inadequações de tais dados rotulados

        O comportamento do modelo InstructGPT depende em parte do feedback humano obtido de nossos contratados. Algumas tarefas de rotulagem dependem de julgamentos de valor que podem ser influenciados por quem são os contratados, suas crenças, antecedentes culturais e história pessoal . Esse grupo de rotuladores obviamente não é representativo de toda a população que usará e será afetada pelo modelo que implantamos . Como um exemplo simples, nossos rotuladores são predominantemente falantes de inglês e nossos dados consistem quase inteiramente em descrições em inglês. Eles também têm muitas maneiras de melhorar nossas configurações de coleta de dados. Por exemplo, a maioria dos conjuntos de dados comparativos (RM) são rotulados por apenas 1 contratado por motivos de custo. Marcar exemplos várias vezes pode ajudar a identificar áreas em que nossos contratados discordam , portanto, é improvável que um único modelo se alinhe com todos eles. Em casos de divergência, o alinhamento com a preferência média do rótulo pode não ser necessário. Por exemplo, ao gerar um texto que afeta desproporcionalmente um grupo minoritário, eles podem querer que as preferências dos taggers pertencentes a esse grupo recebam maior peso .

8. Instruções de rotulagem

        Ao longo do desenvolvimento do projeto, eles forneceram aos rotuladores instruções sobre como rotular os dados e foram alterando o conteúdo para que não houvesse nada confuso ou inconsistente nas instruções.

        É particularmente digno de nota que, durante o treinamento de rotulagem de dados, eles pediram aos rotuladores que priorizassem a utilidade para os usuários como o critério mais importante (acima da autenticidade e inofensividade), enquanto na avaliação final, eles pediram aos sinalizadores que priorizassem autenticidade e inocência. Eles estão explorando caminhos de pesquisa que permitem que os modelos às vezes priorizem a autenticidade e a inocência sobre a utilidade durante o treinamento, principalmente por meio do uso da rejeição: fazer com que o modelo se recuse a responder a certas instruções. Isso cria novos desafios: diferentes aplicativos têm diferentes níveis de risco, portanto, eles podem querer que o modelo rejeite o que está configurado no momento da inferência. Além disso, o modelo corre o risco de generalizar demais e rejeitar instruções inócuas, o que é indesejável para a maioria das aplicações.

        Trechos de suas instruções para a avaliação final de suas distribuições de prompt são mostrados na Tabela 10 e a distribuição RealToxicityPrompts é ilustrada na Tabela 11

Figura 10: Trecho das instruções dadas aos rotuladores para avaliação final da saída do modelo em sua distribuição de sugestões.
Eles fornecem instruções completas aqui.

Figura 11: Instruções completas fornecidas aos rotuladores para avaliar
a distribuição da toxicidade RealToxicityPrompts produzida pelo modelo.

Por fim, outra interface OpenAI API Playground

 

 Glossário

substantivo abreviado nome completo anotação
RLHF Aprendizagem por Reforço com Feedback Humano
GPT Transformador pré-treinado generativo
LMs Modelos de Linguagem
SFT Supervisionou o ajuste fino em demonstrações humanas
PPO otimização de política proximal Proximal Policy Optimization (PPO) é atualmente considerado o estado da arte em Reinforcement Learning. O algoritmo, introduzido pela OpenAI em 2017
FLAN Rede de Línguas Afinadas. 

MODELOS DE LINGUAGEM AFINADAS SÃO APRENDIZADO ZERO-SHOT

https://arxiv.org/pdf/2109.01652.pdf

T0

T0 é um modelo codificador-decodificador que consome entradas textuais e produz respostas de destino
 
RM modelo de recompensa

Acho que você gosta

Origin blog.csdn.net/keeppractice/article/details/130457237
Recomendado
Clasificación