Ajuste fino de preferências da OpenAI: Um guia com exemplos
Saiba como alinhar grandes modelos de linguagem com as preferências do usuário usando o ajuste fino de preferências da OpenAI e a otimização direta de preferências.
O ajuste fino de preferências (PFT) é uma técnica usada há muito tempo para ajustar os LLMs. A OpenAI o apresentou recentemente como parte de seus 12 dias de lançamento de recursos.
Juntamente com o ajuste fino supervisionado (SFT) e o ajuste fino de reforço (RFT)o PFT é outra maneira de alinhar grandes modelos de linguagem com as preferências do usuário.
Neste artigo, explicarei rapidamente o ajuste fino de preferências e mostrarei a você como usá-lo com o mínimo de esforço no painel do desenvolvedor da OpenAI.
O que é o ajuste fino de preferências da OpenAI?
Enquanto o objetivo do ajuste fino supervisionado padrão é fazer com que o modelo retorne determinados resultados com determinadas entradas, o foco do ajuste fino de preferências (PFT) é direcionar o modelo para produzir as respostas de que gostamos e ficar longe das respostas que não gostamos.
Otimização direta de preferências (DPO) é a técnica padrão em PFT e ganhou popularidade como uma técnica de alinhamento forte por sua simplicidade e eficácia.
Diferente deaprendizado por reforço a partir de feedback humano (RLHF)o DPO não exige um modelo de recompensa complexo para alinhar o modelo de linguagem grande (LLM), mas, em vez disso, trata o problema de alinhamento como uma otimização "direta" de uma função de perda. Isso torna o DPO mais fácil de implementar e mais eficiente do ponto de vista computacional.
O conjunto de dados necessário para o OPD, assim como outros métodos de alinhamento, inclui um par de respostas "preferidas" e "não preferidas" para um determinado prompt. No caso do PFT da OpenAI, semelhante a outros métodos de ajuste fino, o conjunto de dados deve estar noformato JSONLe ter a seguinte estrutura:
{"input":{"messages":[{"role":"user","content":"Hello, can you tell me how cold San Francisco is today?"}],"tools":[],"parallel_tool_calls":true},"preferred_output":[{"role":"assistant","content":"Today in San Francisco, it is not quite cold as expected. Morning clouds will give away to sunshine, with a high near 68°F (20°C) and a low around 57°F (14°C)."}],"non_preferred_output":[{"role":"assistant","content":"It is not particularly cold in San Francisco today."}]}Tecnologia
A documentação oficial da OpenAIoficial da OpenAI para o PFT recomenda que você combine o SFT e o PFT para obter um melhor alinhamento. As técnicas de alinhamento, como o PFT, são comumente usadas após o ajuste fino do modelo em um conjunto de dados supervisionado. A combinação de SFT com PFT é considerada um padrão do setor e também é defendida pela OpenAI.
Como formatar o conjunto de dados para ajuste fino de preferências
Antes de qualquer coisa, precisamos garantir que nosso conjunto de dados esteja no formato necessário para o ajuste fino das preferências da OpenAI.
Há várias maneiras de criar um conjunto de dados de preferências. Um método é recuperar pares de saídas do LLM com diferentes temperaturas, top_k ou solicitações do sistema e, em seguida, usar outro LLM, de preferência um mais capaz, para escolher uma saída como "preferida" e a outra como "não preferida".
Para a demonstração deste tutorial, farei o download de um conjunto de dados de preferências do Hugging Face e o reestruturarei. Eu usareiargilla/ultrafeedback-binarized-preferencesque é um conjunto de dados de preferências, mas obterei apenas as primeiras 50 linhas.
Um exemplo de um conjunto de dados de preferências do Hugging Face.
Um script Python seria suficiente para converter a estrutura do conjunto de dados para os requisitos de ajuste fino da OpenAI, mas você pode decidir seguir outra abordagem com base no seu aplicativo.
Certifique-se de que o formato do seu conjunto de dados seja jsonl e não json. Você provavelmente terá uma linha vazia no final do arquivo, portanto, certifique-se de removê-la.
Como executar o ajuste fino de preferências da OpenAI
Com o conjunto de dados preparado, você pode seguir estas etapas para executar o ajuste fino de preferências:
Acesse o painel de controle da OpenAI.
Procure a seção de ajuste fino e selecione Criar para criar um novo trabalho de ajuste fino.
Escolha a otimização de preferência direta como seu método de ajuste fino.
Carregue seus dados de treinamento e validação (se você tiver um).
O OpenAI permite que você especifique hiperparâmetros, mas também pode deixá-los vazios, e o sistema decidirá automaticamente. Dependendo do tamanho do conjunto de dados, o treinamento pode demorar um pouco.
Conclusão
A otimização direta de preferências é um novo recurso útil na caixa de ferramentas de ajuste fino da OpenAI que permite que você controle explicitamente o tom e o estilo da resposta do seu modelo e o torne mais alinhado com a preferência do usuário.
Assim como acontece com a destilação, o ajuste fino de reforço e o ajuste fino supervisionado da OpenAI, sua principal contribuição no ajuste fino de preferência seria preparar o conjunto de dados de acordo com o formato e a estrutura da OpenAI, e as ferramentas deles cuidarão do resto:
Estudante de mestrado em Inteligência Artificial e redatora técnica de IA. Compartilho insights sobre a mais recente tecnologia de IA, tornando a pesquisa de ML acessível e simplificando tópicos complexos de IA necessários para manter você na vanguarda.
O ajuste fino dos grandes modelos de linguagem (LLMs, Large Language Models) revolucionou o processamento de linguagem natural (PLN), oferecendo recursos sem precedentes em tarefas como tradução de idiomas, análise de sentimentos e geração de textos. Essa abordagem transformadora aproveita modelos pré-treinados como o GPT-2, aprimorando seu desempenho em domínios específicos pelo processo de ajuste fino.
Explore o GPT-3.5 Turbo e descubra o potencial transformador do ajuste fino. Saiba como personalizar esse modelo de linguagem avançado para aplicativos de nicho, aprimorar seu desempenho e entender os custos associados, a segurança e as considerações de privacidade.
Uma visão geral abrangente da API Assistants com nosso artigo, que oferece uma análise aprofundada de seus recursos, usos no setor, orientação de configuração e práticas recomendadas para maximizar seu potencial em vários aplicativos de negócios.
Saiba como fazer o ajuste fino dos LLMs em conjuntos de dados personalizados, avaliar o desempenho e exportar e servir modelos com facilidade usando a estrutura com pouco ou nenhum código do LLaMA-Factory.
O ajuste fino de preferências (PFT) é uma técnica usada há muito tempo para ajustar os LLMs. A OpenAI o apresentou recentemente como parte de seus 12 dias de lançamento de recursos.
Juntamente com o ajuste fino supervisionado (SFT) e o ajuste fino de reforço (RFT)o PFT é outra maneira de alinhar grandes modelos de linguagem com as preferências do usuário.
Neste artigo, explicarei rapidamente o ajuste fino de preferências e mostrarei a você como usá-lo com o mínimo de esforço no painel do desenvolvedor da OpenAI.
O que é o ajuste fino de preferências da OpenAI?
Enquanto o objetivo do ajuste fino supervisionado padrão é fazer com que o modelo retorne determinados resultados com determinadas entradas, o foco do ajuste fino de preferências (PFT) é direcionar o modelo para produzir as respostas de que gostamos e ficar longe das respostas que não gostamos.
Otimização direta de preferências (DPO) é a técnica padrão em PFT e ganhou popularidade como uma técnica de alinhamento forte por sua simplicidade e eficácia.
Diferente de aprendizado por reforço a partir de feedback humano (RLHF)o DPO não exige um modelo de recompensa complexo para alinhar o modelo de linguagem grande (LLM), mas, em vez disso, trata o problema de alinhamento como uma otimização "direta" de uma função de perda. Isso torna o DPO mais fácil de implementar e mais eficiente do ponto de vista computacional.
O conjunto de dados necessário para o OPD, assim como outros métodos de alinhamento, inclui um par de respostas "preferidas" e "não preferidas" para um determinado prompt. No caso do PFT da OpenAI, semelhante a outros métodos de ajuste fino, o conjunto de dados deve estar noformato JSONL e ter a seguinte estrutura:
A documentação oficial da OpenAI oficial da OpenAI para o PFT recomenda que você combine o SFT e o PFT para obter um melhor alinhamento. As técnicas de alinhamento, como o PFT, são comumente usadas após o ajuste fino do modelo em um conjunto de dados supervisionado. A combinação de SFT com PFT é considerada um padrão do setor e também é defendida pela OpenAI.
Como formatar o conjunto de dados para ajuste fino de preferências
Antes de qualquer coisa, precisamos garantir que nosso conjunto de dados esteja no formato necessário para o ajuste fino das preferências da OpenAI.
Há várias maneiras de criar um conjunto de dados de preferências. Um método é recuperar pares de saídas do LLM com diferentes temperaturas, top_k ou solicitações do sistema e, em seguida, usar outro LLM, de preferência um mais capaz, para escolher uma saída como "preferida" e a outra como "não preferida".
Para a demonstração deste tutorial, farei o download de um conjunto de dados de preferências do Hugging Face e o reestruturarei. Eu usarei argilla/ultrafeedback-binarized-preferencesque é um conjunto de dados de preferências, mas obterei apenas as primeiras 50 linhas.
Um exemplo de um conjunto de dados de preferências do Hugging Face.
Um script Python seria suficiente para converter a estrutura do conjunto de dados para os requisitos de ajuste fino da OpenAI, mas você pode decidir seguir outra abordagem com base no seu aplicativo.
Certifique-se de que o formato do seu conjunto de dados seja
jsonle nãojson. Você provavelmente terá uma linha vazia no final do arquivo, portanto, certifique-se de removê-la.Como executar o ajuste fino de preferências da OpenAI
Com o conjunto de dados preparado, você pode seguir estas etapas para executar o ajuste fino de preferências:
O OpenAI permite que você especifique hiperparâmetros, mas também pode deixá-los vazios, e o sistema decidirá automaticamente. Dependendo do tamanho do conjunto de dados, o treinamento pode demorar um pouco.
Conclusão
A otimização direta de preferências é um novo recurso útil na caixa de ferramentas de ajuste fino da OpenAI que permite que você controle explicitamente o tom e o estilo da resposta do seu modelo e o torne mais alinhado com a preferência do usuário.
Assim como acontece com a destilação, o ajuste fino de reforço e o ajuste fino supervisionado da OpenAI, sua principal contribuição no ajuste fino de preferência seria preparar o conjunto de dados de acordo com o formato e a estrutura da OpenAI, e as ferramentas deles cuidarão do resto:
Para saber mais, recomendo estes recursos: