Ajuste fino do GPT-3.5 Turbo e atualizações da API
(openai.com)- 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-002edavinci-002passam a ser oferecidos como substitutos, e o novo/v1/fine_tuning/jobssubstitui 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
- Política relacionada: API data privacy
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-16kestá 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-turbocom 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,curieedavinci babbage-002edavinci-002são os modelos substitutos correspondentes, e podem ser usados como modelos base ou modelos ajustados- Os clientes podem acessar
babbage-002edavinci-002chamando 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-tunesexistente para o novo endpoint está explicada no guia de fine-tuning - O endpoint
/v1/fine-tunesexistente ficará deprecated e será descontinuado em 4 de janeiro de 2024
1 comentários
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.
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.
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.
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.
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/
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.
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.
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”.
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 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
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
Fico me perguntando se esses 90% são justamente o número que aparece no cálculo acima
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.
As respostas ficam repetitivas e sem graça
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...
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
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
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
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
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
Se quiser isenção desse requisito, há um formulário de solicitação
https://learn.microsoft.com/en-us/legal/cognitive-services/o...
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
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
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
Eles não funcionam, e texto gerado por GPT já não pode ser detectado
É impossível detectar com confiabilidade se um texto foi gerado por uma pessoa ou pelo ChatGPT
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