1 pontos por GN⁺ 2023-08-23 | 1 comentários | Compartilhar no WhatsApp
  • Os desenvolvedores agora podem ajustar o GPT‑3.5 Turbo aos seus casos de uso com dados próprios, e o ajuste fino do GPT‑4 está previsto para o outono
  • Nos testes iniciais, o GPT‑3.5 Turbo ajustado mostrou desempenho igual ou melhor que o GPT‑4 base em algumas tarefas específicas, e os dados de entrada e saída da API continuam sendo propriedade do cliente
  • Clientes da private beta confirmaram melhorias em seguimento de instruções, estabilidade no formato de saída e adaptação ao tom da marca, e o ajuste fino do GPT‑3.5 Turbo processa 4k tokens
  • Alguns early testers treinaram as instruções diretamente no modelo e reduziram o tamanho do prompt em até 90%, o que pode levar a chamadas mais rápidas e menor custo
  • Com a descontinuação dos modelos base GPT‑3 existentes, babbage-002 e davinci-002 passam a ser oferecidos como substitutos, e o novo /v1/fine_tuning/jobs substitui o antigo /v1/fine-tunes

Disponível o ajuste fino do GPT‑3.5 Turbo

  • Os desenvolvedores agora podem trazer seus próprios dados e customizar o GPT‑3.5 Turbo para seus casos de uso
  • O ajuste fino do GPT‑3.5 Turbo já está disponível, e o ajuste fino do GPT‑4 está previsto para o outono
  • Nos testes iniciais, o GPT‑3.5 Turbo ajustado apresentou capacidade igual ou superior ao GPT‑4 base em algumas tarefas específicas
  • Os dados enviados e recebidos pela API de ajuste fino permanecem propriedade do cliente, e não são usados pela OpenAI nem por outras organizações para treinar outros modelos

Casos de uso com melhor desempenho

  • Clientes da private beta melhoraram o desempenho em vários casos de uso gerais com ajuste fino supervisionado (supervised fine-tuning)
    • Melhor seguimento de instruções: é possível fazer o modelo seguir melhor instruções, como manter saídas curtas ou sempre responder em um idioma específico
    • Formato de saída estável: em apps que exigem um formato de resposta específico, como conclusão de código ou composição de chamadas de API, o modelo mantém formatos consistentes com mais confiabilidade
    • Tom personalizado: o tom das saídas do modelo pode ser ajustado de forma mais consistente para combinar com a voz da marca da empresa
  • O ajuste fino não serve apenas para melhorar o desempenho, mas também para encurtar prompts mantendo resultados semelhantes
  • O ajuste fino do GPT‑3.5 Turbo processa 4k tokens, o dobro dos modelos de ajuste fino anteriores da OpenAI
  • Early testers treinaram as instruções no próprio modelo e reduziram o tamanho do prompt em até 90%, o que ajuda a melhorar a velocidade das chamadas de API e reduzir custos
  • O ajuste fino é mais poderoso quando combinado com outras técnicas, como engenharia de prompt, recuperação de informação e function calling
  • O modo de uso está descrito no guia de fine-tuning
  • O suporte a ajuste fino para function calling e gpt-3.5-turbo-16k está previsto para o fim do outono

Processamento de segurança e preços

  • A OpenAI faz os dados de treinamento passarem pela Moderation API e por um moderation system baseado em GPT‑4 para preservar os recursos de segurança do modelo base
  • Esse processo de moderação serve para detectar dados de treinamento inseguros que entrem em conflito com os padrões de segurança
  • O custo do ajuste fino do GPT‑3.5 Turbo é dividido entre custo de treinamento e custo de uso
    • Treinamento: $0.008 por 1K tokens
    • Entrada de uso: $0.012 por 1K tokens
    • Saída de uso: $0.016 por 1K tokens
  • Por exemplo, o custo estimado de um trabalho de ajuste fino de gpt-3.5-turbo com um arquivo de treinamento de 100.000 tokens por 3 epochs é de $2.40

Substituição dos modelos GPT‑3 e mudanças na API

  • Em julho de 2023, a OpenAI anunciou que descontinuará em 4 de janeiro de 2024 os modelos base GPT‑3 existentes: ada, babbage, curie e davinci
  • babbage-002 e davinci-002 são os modelos substitutos correspondentes, e podem ser usados como modelos base ou modelos ajustados
  • Os clientes podem acessar babbage-002 e davinci-002 chamando a Completions API
  • Esses modelos podem ser ajustados pelo novo endpoint de API /v1/fine_tuning/jobs
  • O novo endpoint oferece paginação e maior escalabilidade, dando suporte à evolução futura da API de fine-tuning
  • A forma de migrar do /v1/fine-tunes existente para o novo endpoint está explicada no guia de fine-tuning
  • O endpoint /v1/fine-tunes existente ficará deprecated e será descontinuado em 4 de janeiro de 2024

1 comentários

 
GN⁺ 2023-08-23
Opiniões do Hacker News
  • Alguém poderia explicar de forma simples o que exatamente o fine-tuning faz?
    Fico na dúvida se é mostrar ao modelo como responder a perguntas, dar novas informações a ele, ou as duas coisas.
    Por exemplo, se eu quiser usar um LLM para responder perguntas sobre uma grande base de conhecimento privada, gostaria de saber se o certo é fazer fine-tuning do modelo com essa base de conhecimento; se sim, como reduzir alucinações; e se isso é melhor do que colocar os documentos relevantes no prompt todas as vezes.

    • Fine-tuning é o processo de mostrar exemplos de sequências que o modelo deve produzir e atualizar o modelo para que ele gere melhor sequências parecidas com esses exemplos.
      O que exatamente significa “parecido” em um novo prompt é algo próximo da magia negra da generalização.
      Ele pode ser usado para ensinar estilo, informação, ou ambos, mas não há um método perfeito para fazê-lo responder apenas com os dados de fine-tuning.
      Se você incluir muitos exemplos de recusa para tópicos não relacionados a X, pode esperar algum nível de desempenho.
      Para uma grande base de conhecimento privada, normalmente eu não recomendaria fine-tuning, e sim uma abordagem baseada em busca.
      Ao colocar as informações na entrada, é possível verificar as fontes, e fica mais fácil para o modelo responder sem alucinar.
      Dito isso, busca funciona bem para perguntas de consulta, mas pode ser fraca em perguntas que exigem comparar ou combinar várias fontes, então o fine-tuning pode ter algumas vantagens.
    • No começo, eu também achava que ensinar novos dados ao modelo era um bom caso de uso para fine-tuning, mas muita gente diz que o certo é usar fine-tuning mais para alterar o formato e o estilo das respostas do que para ensinar novos dados.
      Este post do blog também parece ir nessa direção.
      Também fico curioso para saber como a OpenAI faz fine-tuning; acho que não deve ser LoRA.
    • Acho que não.
      Como se vê pelas alucinações, modelos de linguagem não são ferramentas para armazenar ou acessar dados.
      Para armazenar e acessar dados, o mais adequado é usar embeddings + banco de dados vetorial.
      Fine-tuning serve para mudar que tipo de linguagem o modelo gera.
      Se você quer uma IA que escreva como jornalista, faz fine-tuning com artigos de jornal; se quer uma IA que escreva avaliações, faz fine-tuning com avaliações.
    • O fine-tuning mencionado aqui é fine-tuning supervisionado, em que se dão pares de pergunta/resposta ao LLM para ajustá-lo a eles.
      Veja https://huyenchip.com/2023/05/02/rlhf.html
      Isso é bem diferente de fazer fine-tuning do próprio modelo base ou de fazer RLHF.
      Pode funcionar bem para ajustar o objetivo para que ele se comporte de uma maneira específica ou realize outras tarefas, em vez de ser um chatbot geral.
      Por outro lado, adicionar conhecimento ao bot é mais próximo de geração fundamentada ou geração aumentada por recuperação (GG/RAG), uma abordagem para complementar o modelo base com novos dados, por exemplo dados confidenciais.
      Para perguntas e respostas sobre uma grande base de conhecimento privada, não me parece adequado; acho que GG/RAG é mais apropriado.
      Também escrevi recentemente sobre isso: https://vectara.com/fine-tuning-vs-grounded-generation/
    • A deeplearning.ai, de Andrew Ng, lançou ontem um curso sobre esse tema: https://www.deeplearning.ai/short-courses/finetuning-large-l...
      Em alto nível, ele permite colocar dentro do modelo mais dados do que caberiam no prompt.
      Uma grande base de conhecimento privada foi um dos exemplos principais dados no curso, e em cenários específicos de domínio ou em que privacidade é importante, fine-tuning pode fazer mais sentido do que prompting.
  • A frase “os dados de treinamento de fine-tuning passam pela Moderation API e por um sistema de revisão baseado em GPT-4” parece algo bem caro.
    Olhando os preços da API, rodar inferência do GPT-4 é mais caro do que treinar o modelo, então imagino que usem o GPT-4 só quando a decisão de segurança for ambígua.

    • Isso parece uma desvantagem decisiva.
      Se eu já sei que tipo de linguagem quero, não entendo por que devo deixar a OpenAI revisar meu dataset de ajuste de parâmetros.
  • Ao fazer fine-tuning do Llama2 13B ou 70B, normalmente é preciso alugar GPUs na nuvem, e fico curioso para saber como isso se compara ao fine-tuning da OpenAI.
    Na OpenAI, você não precisa alugar a infraestrutura diretamente; ela já está incluída na cobrança pelo uso. Gostaria de ouvir uma comparação da perspectiva de quem tem experiência com fine-tuning de modelos Llama2.

    • Não sou especialista nessa área, mas mexi um pouco com fine-tuning do GPT-3 via API.
      Acho que o “fine-tuning” do GPT é diferente de fazer fine-tuning de um modelo como o Llama2.
      É provável que eles não ajustem todos os pesos da rede, mas apenas uma parte muito pequena, e exatamente como a OpenAI faz isso é tecnologia proprietária.
      O trade-off é que o fine-tuning da OpenAI é mais barato, mas menos potente que um fine-tuning “de verdade”.
    • Ainda não fiz fine-tuning do GPT-3.5-turbo, mas, no geral, é bem possível que llama2 seja mais barato.
      Especialmente se 13B for suficiente; no modal.com, dá para usar inferência de um modelo llama2 13B com fine-tuning por cerca de US$ 0,003 por 1K tokens.
      Com certeza há opções mais baratas.
      Se você não tiver um volume enorme de dados, o custo de treinar o llama2 normalmente também fica na casa de alguns dólares.
  • Quando vi que eles estavam oferecendo davinci-002 como modelo de conclusão, pensei que talvez estivessem voltando a oferecer modelos “inseguros”, mas tanto davinci-002 quanto babbage-002 entram em loop infinito em solicitações de conclusão “inseguras”.
    text-davinci-003 e text-curie-001 funcionavam bem, mas parece que a OpenAI realmente não quer oferecer modelos sem censura para uso.

    • O que é um modelo “inseguro”?
  • O custo de geração do GPT-3.5 Turbo com fine-tuning é 8 vezes maior que o do modelo base, então, para valer a pena em termos de custo, é preciso entrar naquela faixa de “redução de 90% no tamanho do prompt” mencionada pela OpenAI

    • 8 vezes é uma diferença grande.
      Talvez seja melhor simplesmente conduzir a saída usando few-shot prompting, colocando alguns exemplos em cada prompt.
      Claro que isso não serve para todos os casos de uso, mas vale experimentar.
      Além disso, chamadas de função também não estarão disponíveis até depois do outono deste ano.
      Como a maior parte do meu uso hoje é de chamadas de função, acho que vou passar por enquanto.
      Estou curioso sobre a conclusão a respeito de fine-tuning na OAI, e antes, nesta thread, o clima era de que não era algo indispensável: https://news.ycombinator.com/item?id=37174850
    • Segundo https://twitter.com/OfficialLoganK/status/169406294917713961..., usuários dos testes iniciais fizeram fine-tuning das próprias instruções no modelo, reduzindo o tamanho do prompt em até 90% e diminuindo a latência e o custo de cada chamada de API.
      Fico me perguntando se esses 90% são justamente o número que aparece no cálculo acima
    • Se a comparação for com o GPT-4, imagino que fique muito mais barato
    • Gostaria de ver exemplos de como se faz fine-tuning em um serviço real, o que é colocado no treinamento e como, depois do fine-tuning, a interação com o modelo muda em relação a antes
    • Vejo o fine-tuning como um caminho para reduzir bastante o custo de inferência de LLMs, então é um avanço interessante.
      Se compararmos apenas GPT-3.5-turbo com GPT-3.5-turbo com fine-tuning, isso está correto, mas, se for parecido com fazer fine-tuning de modelos Llama-2, deve dar para alcançar desempenho no nível do GPT-4 em vários casos de uso práticos, como geração de consultas SQL.
      No entanto, matemática ou programação provavelmente continuarão difíceis, a menos que o fine-tuning use uma quantidade considerável de dados.
      Na prática, até um modelo Llama-2 de 7B já mostrou desempenho no nível do GPT-4 depois de fine-tuning: https://www.anyscale.com/blog/fine-tuning-llama-2-a-comprehe...
  • O GPT-3.5 é ruim demais para mim, então não serve.
    Na escrita, ele repete o mesmo tipo de jargão; em programação, erra com frequência demais; e, em processamento de linguagem natural, exige que eu seja muito mais explícito, então parece apenas um chatbot mediano.
    GPT-4 por US$ 20/mês é muito melhor em todos os aspectos, e eu também o uso para trabalhar com Angular.
    Quando a IA explica todos os motivos, até esse framework superprojetado começa a fazer sentido de verdade.
    É bom tê-lo como tradutor, professor e assistente de resolução de problemas, e, se isso melhorar ainda mais, fica difícil imaginar procurar respostas para problemas no Google.
    O recurso que eu gostaria é divisão de prompts embutida.
    Acho que, se deixarem de lado versões antigas do GPT e debates éticos falsos, focarem na melhor versão dessa tecnologia e a venderem por US$ 20/mês, podem ganhar bilhões e sacudir muita coisa online.

    • Experimentei bastante com Llama 2 censurado e não censurado, e concluí que fine-tuning para politicamente correto e ética afeta negativamente todas as respostas.
      As respostas ficam repetitivas e sem graça
    • Fico aliviado por não ser só eu que acho o Angular uma bagunça superprojetada
    • Para um GPT-3.5 com fine-tuning competir com o GPT-4 em casos de uso como assistência com Angular, acho que seria preciso uma quantidade de dados suficiente para ficar mais perto de pré-treinamento do que de fine-tuning.
      Se a ideia não for transformar isso em um produto, provavelmente não vale muito o esforço.
      Por outro lado, muitos produtos ou recursos valiosos com LLM têm escopo mais estreito e podem ter grandes melhorias com fine-tuning.
      Por exemplo, em geração de consultas SQL, houve um experimento em que até um modelo Llama-2 de 7B com fine-tuning superou o GPT-4: https://www.anyscale.com/blog/fine-tuning-llama-2-a-comprehe...
    • Dá para enviar arquivos pelo code interpreter e dar um prompt pedindo que ele faça perguntas em sequência para descobrir o que deve ser feito a seguir
    • Acho que LLMs funcionam melhor como mecanismos de busca difusos.
      Eles brilham quando é difícil formular a pergunta certa para o Google.
      Uma pergunta como “ouvi falar de um estudo que o Google fez sobre novos funcionários e GPA, dizendo que acima de 3,0 o GPA não fazia diferença. Você consegue me passar o link desse estudo? Houve estudos posteriores?” é difícil de encontrar no Google e tende a ficar soterrada em links sobre GPA mínimo e emprego.
      O Bard deu informações sobre Laszlo Bock e o livro dele, permitindo uma busca mais refinada como “Laszlo Bock Google GPA”.
      Testei a mesma frase em vários LLMs: o ChatGPT respondeu com limitação de conhecimento; o Bard encontrou de imediato; e o Hugging Face Chat foi o melhor, trazendo Bock, o Project Oxygen e o Project Aristotle.
      O Claude não encontrou o estudo, mas sugeriu outros candidatos, e o LLaMa também não encontrou, mas apresentou o estudo do Google e alguns nomes.
      Concordo que fine-tuning voltado à precisão piora os resultados.
      Alinhamento também é, ao mesmo tempo, desalinhamento, porque desloca a distribuição de probabilidade, então inevitavelmente há trade-offs.
      Infelizmente, pesquisas nessa área não são populares, e os métodos necessários exigem discussões profundas sobre redes controversas e sobre probabilidades e distribuições, então hoje parecem propensos a ser rejeitados nas principais conferências.
      Ajustar para preferências humanas, na verdade, não é ajustar para conhecimento, mas para resultados de que as pessoas gostam.
      É como inserir no modelo um viés que hackeia o avaliador — o ser humano —, de modo que, mesmo aumentando a acurácia factual média, pode piorar o LLM ao fazê-lo apresentar informações erradas de forma mais convincente.
      É preciso tomar muito cuidado com o paradoxo de Simpson e o paradoxo de Berkson, em que a avaliação se deteriora por causa da forma de agregação dos dados; na prática, estamos fazendo tuning por meio da lei de Goodhart
  • Se alguém já fez fine-tuning de um modelo tão grande, fico curioso sobre quanta quantidade de dados normalmente é necessária para ter efeito
    Quero saber se os 100k tokens mencionados na documentação podem mesmo influenciar bastante o comportamento do modelo base, ou se é só um exemplo de brinquedo

    • Segundo o guia de fine-tuning recém-atualizado, para fazer fine-tuning de um modelo são necessários no mínimo 10 exemplos, e no gpt-3.5-turbo normalmente já se vê uma melhoria clara com apenas 50 a 100 exemplos de treinamento
      O número exato varia muito conforme o caso de uso
      A recomendação é começar com 50 demonstrações bem feitas e ver se há algum sinal de melhora
      Mesmo que não seja suficiente, se houver melhora, é provável que continue melhorando à medida que mais dados forem adicionados; se não houver melhora, antes de aumentar os exemplos é melhor repensar a configuração da tarefa ou a estrutura dos dados
    • Fiz bastante fine-tuning em um assistente de IA que estava construindo, e vi boas melhorias ao passar de 200 a 300 amostras
    • Dá para olhar para o fine-tuning de instruções que transforma um modelo completo em um modelo assistente
      Mesmo com alguns milhares de exemplos, dá para mudar de forma bastante significativa o comportamento do modelo e o conteúdo e a forma das saídas
      Mecanismos como LoRA são formas muito eficientes de fine-tuning, embora tenham perda de precisão, e alterar apenas algumas camadas superiores já muda bastante o modelo
    • Experimentei com datasets na faixa de 5K a 100K exemplos e obtive ótimos resultados
      Exemplos incluem https://huggingface.co/datasets/b-mc2/sql-create-context e https://huggingface.co/datasets/GEM/viggo
      Por outro lado, 8K exemplos não foram suficientes para aprender a resolver problemas de matemática do ensino fundamental, então a dependência do problema é muito grande
      Referência: https://www.anyscale.com/blog/fine-tuning-llama-2-a-comprehe..., https://huggingface.co/datasets/gsm8k
    • O impacto é grande
      A melhoria começa a aparecer a partir de 1000 tokens
  • Parece um fluxo em que eles lançam como beta gratuito aquilo que originalmente deveriam ter aberto, corrigem bugs, depois lançam um irmão mais poderoso como serviço por assinatura, enfraquecem bastante os dois, lançam fine-tuning para permitir aproximar o GPT-3.5 enfraquecido do nível que tinha no lançamento — mas só se você fizer o fine-tuning direito —, guardam a versão não enfraquecida para uso interno da Microsoft e então lucram
    Pelo menos o Google é honesto
    A postura deles é que têm o melhor produto, mas ele vale mais como ferramenta interna, então não o disponibilizam; depois do lançamento do GPT, anunciaram o Bard para defender a cotação das ações, mas ele não era grande coisa e provavelmente nem vão lançá-lo de verdade
    Ainda assim, a Meta lançou ao menos uma versão enfraquecida como open source
    Alguns meses atrás, com o GPT-4, minha produtividade era realmente enorme; agora parece que voltei a ser um desenvolvedor solo
    Usando agora, muitas vezes perco mais tempo corrigindo erros do que economizo, então é melhor simplesmente fazer eu mesmo
    Portanto entendo por que não querem entregar isso aos outros
    Se for para responder com algo obviamente falso como “não foi enfraquecido”, agradeço se não desperdiçarem meu tempo

  • Tenho curiosidade sobre privacidade
    A OpenAI diz que não usa chamadas de API para treinar modelos, mas quero saber se a OpenAI ou a Microsoft ainda armazenam o texto e, se armazenam, por quanto tempo
    No geral é excelente, e estou ansioso pelo fine-tuning de 16k

    • Não tenho certeza quanto às chamadas diretas à API da OpenAI, mas a oferta da Azure armazena prompts e saídas por 30 dias para monitoramento de abuso
      Se quiser isenção desse requisito, há um formulário de solicitação
      https://learn.microsoft.com/en-us/legal/cognitive-services/o...
    • Na maioria dos casos, no máximo 30 dias: https://platform.openai.com/docs/models/default-usage-polici...
      Eles não fazem nada suspeito com os dados armazenados; literalmente é apenas para investigar possíveis violações de confiança e segurança por um curto período após a ocorrência
    • O modelo com fine-tuning fica nos servidores da OpenAI?
      Se sim, fico curioso sobre qual é a garantia de privacidade de que a OpenAI não vai aproveitá-lo mais tarde na expansão do GPT-5
  • Bastante interessante
    É a primeira vez que os modelos “Chat” da OpenAI podem receber fine-tuning
    Fico curioso se alguém já conseguiu contornar detectores de IA com um modelo ajustado por fine-tuning
    Sei que é possível, mas queria ter uma noção de como montar o dataset

    • Os detectores de IA atuais são puro lixo
      Quem paga por eles está sendo enganado, e quem os usa para decisões reais está cometendo um erro grave
      É realmente lamentável que algumas escolas usem detectores de IA para tentar descobrir se alunos escreveram redações com ChatGPT
      Há muitos casos de redações claramente escritas por humanos sendo marcadas como geradas por IA
      Brincando por 30 minutos pedindo ao ChatGPT para escrever redações, você já entende o estilo do ChatGPT
      Com bons prompts, dá para fazê-lo escrever em outros estilos, mas, sinceramente, quem faz dever de casa com ChatGPT normalmente não se esforça para não parecer ChatGPT
    • Na prática, ao usar “detectores” de IA, a precisão é do nível de jogar uma moeda
      Eles não funcionam, e texto gerado por GPT já não pode ser detectado
    • Detectores de IA são produtos fraudulentos
      É impossível detectar com confiabilidade se um texto foi gerado por uma pessoa ou pelo ChatGPT
    • Para que fine-tuning seria necessário?
      Esses detectores estão completamente quebrados, e só induzir um processo de raciocínio simples já permite obter um resultado que não “soa” como ChatGPT
      Depois disso, a chance de ser detectado como IA é parecida com a de um texto escrito por uma pessoa
    • Parece que seria fácil até com o modelo base