Aprendendo a raciocinar com LLMs
(openai.com)- O exemplo de decodificação dado é um problema em que se encontra a regra pela qual
oyfjdnisdr rtqwainr acxz mynzbhhxvira “Think step by step” e se aplica o mesmo procedimento de raciocínio a uma nova frase - A pista principal é que cada palavra do texto cifrado tem exatamente o dobro do tamanho da palavra em texto claro, e basta agrupar o texto cifrado de duas em duas letras para convertê-lo em uma letra
- Cada par de letras é convertido em números de
a=1atéz=26e, em seguida, calcula-se a média para obter a letra correspondente do texto claro - Por exemplo,
oyresulta em(15+25)/2=20, portanto viraT; da mesma forma,fj,dn,isedrsão decodificados comoh,i,nek - Ao aplicar isso ao texto cifrado alvo, a frase final é “THERE ARE THREE RS IN STRAWBERRY”, exigindo tanto a descoberta quanto a validação da regra
Pistas entre o texto cifrado e o texto claro
- O exemplo de entrada é
oyfjdnisdr rtqwainr acxz mynzbhhx -> Think step by step - O objetivo é decodificar
oyekaijzdf aaptcg suaokybhai ouow aqht mynznvaatzacdfoulxxzcom base nesse exemplo - Primeiro, ao comparar o número de letras, percebe-se que as palavras do texto cifrado são sempre 2 vezes mais longas que as palavras em texto claro
oyfjdnisdrtem 10 letras eThinktem 5 letrasrtqwainrtem 8 letras esteptem 4 letrasacxztem 4 letras ebytem 2 letrasmynzbhhxtem 8 letras esteptem 4 letras
Regra que transforma pares de duas letras em uma letra
- Por causa da relação de comprimento, a abordagem de agrupar o texto cifrado de duas em duas letras se torna uma candidata natural
- A primeira palavra,
oyfjdnisdr, é dividida assimoyfjdnisdr
- Esses pares correspondem, na ordem, às letras do texto claro
Thinkoy -> Tfj -> hdn -> iis -> ndr -> k
Transformação validada pela média
- Ao converter as letras para
a=1,b=2, ...,z=26e calcular a média de cada par, obtém-se a letra do texto claro - A transformação da primeira palavra coincide com a regra
oy:o=15,y=25, média20→Tfj:f=6,j=10, média8→hdn:d=4,n=14, média9→iis:i=9,s=19, média14→ndr:d=4,r=18, média11→k
- Da mesma forma,
rtqwainr,acxzemynzbhhxtambém são decodificados respectivamente comostep,byestep
Decodificação do texto cifrado alvo
- O texto cifrado alvo também é separado por palavras e, em seguida, cada palavra é decodificada em unidades de pares de duas letras
oyekaijzdfoy,ek,ai,jz,df- Resultado da conversão pela média:
THERE
aaptcgaa,pt,cg- Resultado da conversão pela média:
ARE
suaokybhaisu,ao,ky,bh,ai- Resultado da conversão pela média:
THREE
ouowou,ow- Resultado da conversão pela média:
RS
aqhtaq,ht- Resultado da conversão pela média:
IN
mynznvaatzacdfoulxxzmy,nz,nv,aa,tz,ac,df,ou,lx,xz- Resultado da conversão pela média:
STRAWBERRY
Frase final decodificada
- O resultado completo da decodificação é “THERE ARE THREE RS IN STRAWBERRY”
RSse refere às letrasR, e a frase inteira é lida como a afirmação de que há trêsRemSTRAWBERRY
1 comentários
Opiniões do Hacker News
Fuçando na documentação, para ter acesso a este modelo é preciso estar no tier 5, ter pago mais de US$ 1.000 no total e ter passado pelo menos 30 dias desde o primeiro pagamento bem-sucedido
O preço é de US$ 15 por 1 milhão de tokens de entrada e US$ 60 por 1 milhão de tokens de saída; a janela de contexto é de 128k tokens e a saída máxima é de 32.768 tokens
A versão mini tem saída máxima de 65.536 tokens, o dobro, e custa US$ 3 por 1 milhão de tokens de entrada e US$ 12 por 1 milhão de tokens de saída
A versão especializada em coding mencionada no blog ainda não parece estar disponível em uma forma utilizável
Não está claro se a cadeia de pensamento oculta (reasoning) é cobrada como tokens de saída pagos, mas, ao expandir o exemplo do blog, ela é muito verbosa; se tudo isso for cobrado, o custo pode crescer rapidamente
https://platform.openai.com/docs/models/o1
https://openai.com/api/pricing/
https://platform.openai.com/docs/guides/rate-limits/usage-ti...
Ambos os modelos têm limite de 20 RPM durante o beta, e o o1-mini é 80% mais barato que o o1-preview, além de ser mais rápido e competitivo em tarefas de coding
A documentação diz que, embora não sejam visíveis na API, eles ocupam espaço na janela de contexto do modelo e são cobrados como tokens de saída
https://platform.openai.com/docs/guides/reasoning
Gostaria que a OpenAI investisse em tecnologias de baixa latência como a Groq, que conseguem chegar a 1k tokens por segundo
Parece mais um serviço que encadeia várias requisições a modelos nos bastidores do que o modelo em si
Um dos motivos para o meu ceticismo é que os dois primeiros gráficos de precisão não têm rótulos de eixo específicos. Eles só dizem escala logarítmica, sem nem dar uma ideia aproximada de quanto tempo levou
Com os dados fornecidos, não dá para saber se o resultado de 80% de precisão levou 10 segundos, 10 minutos, 10 horas ou 10 dias de computação
Na seção de coding, diz que foram “10 horas para resolver 6 problemas difíceis de algoritmo”, mas também não fica claro se isso se conecta aos gráficos do início do texto
É bom que o texto tenha muitos números e fatos, mas a escolha de deixar os dados dos gráficos iniciais nebulosos não inspira confiança. Lê-se como se tivessem escolhido os dados que parecem bons e escondido os desfavoráveis
Quanto maior a precisão máxima demonstrada, mais impressionante o relatório fica, então por que teriam parado ali? Por que teriam removido o tempo real ou uma métrica substituta de custo? Parece que continuar era inviável, e que o tempo e o custo já estavam tão altos que poderiam prejudicar a reação
Nós nos acostumamos a modelos de preço fixo, mas, em modelos de nível AGI, talvez seja preciso pagar mais por consultas mais difíceis e importantes. Esse tipo de complexidade intrínseca é difícil de evitar
Claro, com o tempo isso deve melhorar e ficar mais barato dentro de limites razoáveis. Por enquanto, acho que já podemos ficar satisfeitos pelo fato de esse nível de pensamento mecânico ser possível
Em contraste, o Gemini Ultra foi, nos últimos meses, “o melhor modelo do Google que não existe”, e mesmo assim as expectativas estão sendo extrapoladas à vontade
Queria gráficos legíveis e confiáveis? Não tem nada disso; é mais como: pague pelos tokens de cadeia de pensamento que você nem vai ver na saída
O exemplo de “segurança” no widget de cadeia de pensamento no meio do texto é realmente absurdo
É como se a OpenAI dissesse: “Não é aceitável que um LLM dê instruções detalhadas sobre síntese de estricnina; saídas antigas eram assim, mas preferimos este conteúdo suavizado”
Não entendo por que essa obsessão por “segurança” se aplica só a LLMs. Divulgar por meios tradicionais tudo bem, mas se um LLM compartilhar, aí é absolutamente proibido?
Uma é o impulso nocivo de censura compartilhado por parte dos intelectuais modernos. Eles acreditam que só eles conseguem lidar com segurança com as ideias do mundo e julgar a verdade, e sentem que devem censurar informações e falas para impedir que o público tenha pensamentos errados. Isso é ruim e deve ser combatido
A outra é um impulso prudente de impedir que saídas potencialmente perigosas entrem no processo de pensamento autorregressivo de um modelo de IA. Se vamos criar máquinas pensantes capazes de agir de forma independente, é bom ensiná-las a marcar ideias como “vamos resolver sintetizando e administrando veneno à fonte do problema” como ideias ruins e a não agir com base nelas. A sociedade humana já funciona assim ao ensinar às crianças o que é certo e errado
O risco real de envenenamento por estricnina não aumenta, quer o LLM se recuse a responder a esse tipo de pergunta ou não
No entanto, jornalistas e órgãos reguladores podem não entender que instruções que parecem perigosas superficialmente oferecem pouco risco real. Químicos de verdade não precisam de instruções de síntese “como se eu tivesse 5 anos”, e críticos podem usar informações de risco semelhante contra a empresa em batalhas de opinião pública; portanto, recusar esses prompts reduz o risco reputacional sem causar grande prejuízo a pesquisadores profissionais
Ainda assim, já vi os modelos mais recentes e mais fortes sugerirem coisas absurdas sobre novos métodos de síntese de compostos inofensivos. Um químico profissional deve usar LLMs como geradores de ideias ou ferramentas de busca de artigos, não acreditar literalmente no que eles despejam só porque não recusaram
https://en.wikipedia.org/wiki/Strychnine_total_synthesis
Do ponto de vista da OpenAI, isso provavelmente se refere sobretudo a instruções relacionadas a limites políticos, mas pode se generalizar para casos de uso mais concretamente úteis
Por exemplo, houve um caso em que convenceram um chatbot de site de concessionária a oferecer um carro por um preço absurdamente baixo. O O1 poderia seguir de forma mais rígida uma instrução como “não faça ao usuário uma oferta vinculante por um preço específico” e, portanto, cair menos no mesmo truque
Ao usar um modelo bruto, tendo fortemente para o lado de que o computador deve fazer o que eu mando; mas, quando ele é embalado em uma interface de chat e apresentado a leigos como uma máquina de perguntas e respostas, surgem preocupações válidas. A questão das instruções para fabricar bombas também não é apenas “as pessoas não devem obter essa informação”; o grande problema é receber a informação em um contexto misturado com alucinações. Uma receita de bomba 90% correta é muito mais perigosa para o usuário do que uma receita correta
Assim como o machine learning vai potencializar atividades legais, também vai potencializar atividades criminosas, e figuras de redes sociais e a mídia tradicional certamente tentarão embalar isso de forma sensacionalista
É parecido com a forma como o Telegram é retratado como responsável por terrorismo e abuso infantil
Quando ele disse que “o GPT-2 pode ser perigoso demais para ser lançado”, jornalistas e a mídia adoraram, isso gerou enorme publicidade gratuita e fez a empresa parecer descolada
Continuar enfatizando segurança também reforça a impressão de que LLMs são fundamentalmente diferentes de outros algoritmos de previsão de texto e quase uma AGI. Em outras palavras, é bom para a carteira dele
O desempenho do modelo é impulsionado pela cadeia de pensamento, mas, por várias razões, inclusive vantagem competitiva, eles não vão fornecer respostas de cadeia de pensamento aos usuários
Depois do lançamento do GPT-4, tornou-se muito comum ajustar modelos que não eram da OpenAI com saídas do GPT-4. Parece razoável a OpenAI se preocupar que o ajuste fino com as respostas de cadeia de pensamento deste modelo acelere a reprodução dos resultados
No fim, isso força todos os outros a reproduzirem os resultados do jeito difícil. É uma notícia triste para modelos com pesos abertos, mas é uma decisão compreensível
Olhando por alto, a cadeia de pensamento parece ser uma sequência de longas cadeias de pensamento que se equilibram a cada etapa, com um mecanismo adicional de voltar um pouco quando surge um resultado negativo. É parecido com resolver um labirinto
Não concordo com essa visão, mas isso provavelmente terá mais peso na decisão do que o problema de vazar informações de treinamento úteis para outros modelos
Como podemos confiar que eles não estão inflando tokens por lucro?
Assim seria possível entender o contorno do processo e, se possível, identificar onde algo deu errado, sem vazar os tokens reais
Parece que muita gente aqui não percebe a diferença entre prompting simples de cadeia de pensamento e o que está acontecendo agora. Aqui, eles estão aprendendo boas estratégias de cadeia de pensamento com aprendizado por reforço
Está escrito que “por meio de aprendizado por reforço, o o1 refina suas estratégias para aperfeiçoar e usar a cadeia de pensamento”
Ao observar a cadeia de pensamento do exemplo, é possível ver que o modelo usa estratégias diferentes conforme o problema que está tentando resolver
Ler a cadeia de pensamento do exemplo de cifra fornecido é bem surpreendente. Basta ir ao exemplo e clicar em “Show Chain of Thought”
Ele literalmente escreve todos os passos de pensamento pelos quais uma pessoa passaria mentalmente ao decifrar a cifra. Inclui até coisas inúteis como “Hmm”
Parece que, ao reduzir a velocidade, escrever a lógica usada e então raciocinar em cima dela, a capacidade lógica melhora. É parecido com a forma como se aprende na escola
Agora não parece “apenas” autocompletar, mas um raciocínio realmente passo a passo, cheio de ideias, becos sem saída e refinamentos. Mesmo que, em última instância, ainda seja movido por autocompletar
Aí a gente começa a se perguntar se o raciocínio humano não é parecido. Talvez ele só siga padrões básicos de “etapas de pensamento” e, no fim, não seja tão diferente de “etapas da gramática inglesa”
Fico com a impressão de que LLMs são muito mais poderosos do que eu pensava inicialmente, e que talvez seja só uma questão de encontrar a forma correta de conectá-los a estruturas como “fazê-los pensar”
Average:18/2=9,9 corresponds to 'i',But 'i' is 9, so that seems off by 1mostram que ele ainda parece fraco em contar números, como antesComo é preciso fornecer o raciocínio completo, e o próprio transformador normalmente não é tão inteligente assim, parece que uma pessoa de capacidade intelectual comum poderia reproduzir esse tipo de rastro com prática
É um avanço impressionante. Em abril, usei o modelo GPT-4 padrão no ChatGPT para tentar fazer engenharia reversa do protocolo Bluetooth binário do exaustor da cozinha e integrá-lo ao Home Assistant
Ajudou como um rubber duck, mas não conseguiu descobrir o padrão que transmite o tempo restante de execução do ventilador em certos modos. O prompt inicial está aqui [0]
Coloquei o mesmo prompt no o1-preview e no o1-mini, e ambos entenderam e decodificaram corretamente o padrão, usando um método um pouco diferente do que eu havia encontrado em abril. Quando perguntei se meu código era equivalente ao que o modelo havia feito por engenharia reversa, ele fez uma análise sutil e minuciosa e concluiu que era equivalente [1]
Se eu coloco o mesmo prompt no gpt4o, ele chega ao mesmo resultado do modelo GPT-4(ChatGPT) de abril. É um avanço realmente impressionante
[0]: https://pastebin.com/XZixQEM6
[1]: https://i.postimg.cc/VN1d2vRb/SCR-20240912-sdko.png
Numa assinatura do ChatGPT for Business, eu não usaria porque a política da empresa pode proibir exportações, mas para uso pessoal é bem prática
https://chromewebstore.google.com/detail/save-chatgpt-as-pdf...
Como há muitos exemplos dos quebra-cabeças originais nos dados de treinamento, o 4 não consegue acertar direito, mas o o1 não cai nessa armadilha
https://chatgpt.com/share/66e35c37-60c4-8009-8cf9-8fe61f57d3...
https://chatgpt.com/share/66e35f0e-6c98-8009-a128-e9ac677480...
https://x.com/soheil/status/1834320893331587353
Fiz um teste simples de decodificação de um texto cifrado ROT que uma pessoa conseguiria resolver no papel, e a saída foi bastante decepcionante
Havia muitos passos que “pareciam trabalho”, como cálculo de frequência de letras e identificação de palavras comuns, mas vários passos estavam errados ou não tinham verificação posterior. No fim, ele afirmou ter conferido a própria resposta, mas entregou uma solução incorreta que nem satisfazia as condições das etapas anteriores
Não quero julgar a IA por alguns erros, e cifras são uma tarefa um tanto adversarial. Mas nenhum aspecto do raciocínio pareceu mais avançado ou consistente do que demos de cadeia de pensamento que eu já tinha visto. No fim, a principal evidência é o artigo, e não sei como chegar, a partir dele, à conclusão de que esse modelo é confiável nos tipos de tarefa pretendidos
Separadamente, a saída de cadeia de pensamento faz a gente desejar muito o uso de ferramentas. Isso porque LLMs frequentemente precisam imitar a própria saída de algoritmos. Uma solução comercial de cadeia de pensamento como essa deveria poder usar uma biblioteca de funções padrão 100% confiável para coisas como contar letras
É impressionante, mas o problema do aprendizado por reforço é que ele exige conhecimento sobre o futuro
É uma conquista técnica bem grande, e é empolgante ver esse tipo de avanço na área
Mas, como essa ferramenta, assim como todos os LLMs, ainda é vulnerável a alucinações, fico muito preocupado com sua utilidade. Exatamente para quem é essa ferramenta?
Se você for especialista o suficiente para avaliar criticamente a saída, é bem provável que conseguisse simplesmente fazer a inferência por conta própria. Se não tiver capacidade de avaliar a saída, corre o risco de depender de uma resposta completamente errada
Por exemplo, pedi que ele avaliasse um algoritmo de otimização de ordem de joins em banco de dados e, logo no começo do raciocínio, ele afirmou com confiança, e de forma incorreta, que “custos de join geralmente são simétricos”; nas etapas seguintes, refletindo essa premissa, recomendou “simplificar” a estrutura de dados interna para um grafo não direcionado, em vez de um grafo direcionado
Quem tem familiaridade com otimização de bancos de dados sabe que isso está muito errado. Mas o restante do fluxo de raciocínio era coerente e convincente
Minha preocupação é que, se o modelo se apoiar com confiança em fatos que eu não perceba imediatamente como errados, ele acabe me levando na direção errada
Coisas como encontrar a melhor forma de corrigir um erro de sintaxe específico, configurar uma classe e funções básicas obviamente necessárias, ou descobrir onde me desviei ao resolver um problema de matemática
Essas ferramentas não estão no nível de “agora não precisamos mais testar nem revisar código, a sociedade não precisa mais de matemáticos e não precisamos mais de materiais de checagem de fatos”. Isso pode ser uma meta da AGI, mas não é o critério que uso para avaliar a utilidade de uma ferramenta
O valor de uma ferramenta está mais no que você consegue fazer com ela do que em ela ser perfeita. Mesmo que um livro tenha raros erros de digitação, um dicionário ainda pode ser útil como referência ortográfica; e um colega que não entenda C++ inteiro corretamente e cometa muitos erros de programação ainda pode trazer insights úteis sobre o código. O importante é o quanto ela ajuda a chegar à precisão necessária e como eu a uso, não apenas a precisão isoladamente
Humanos são muito mais eficientes que LLMs nesse aspecto, mas bicicletas também são muito mais eficientes que carros de corrida. Mesmo quando o modelo está ridiculamente errado, às vezes só a direção do raciocínio já acelera meu pensamento de forma útil
Se alguém quiser testar para programação, acabei de adicionar o o1 ao https://double.bot
O desempenho é realmente bom. Tenho um conjunto pessoal de problemas que vou anotando sempre que gpt-4o ou Sonnet falham, e o o1 resolveu todos até agora
Só que ele é realmente bem lento
Também é interessante que a cadeia de pensamento esteja oculta. Parece ser o primeiro caso em que, mesmo que a OpenAI melhore o modelo, modelos abertos não conseguem destilar isso imediatamente. Como já saíram recentemente muitos artigos sobre computação em tempo de inferência, também é interessante ver quão rápido o campo open source vai alcançar em termos de técnicas [1,2]
Não está claro se o o1-preview oferecido atualmente faz busca em árvore ou se funciona apenas gerando, em uma única passada, uma cadeia de pensamento destilada a partir de trajetórias melhores e mais detalhadas da distribuição de treinamento
1
2
O o1 foi muito melhor que Llama 3.1 405B, GitHub Copilot e Claude 3.5 na tarefa de converter um arquivo JavaScript para TypeScript. Ele manteve a mesma funcionalidade e ainda simplificou um pouco o código. Muito impressionante
Ele refatorou um arquivo de cerca de 160 linhas, mas em um arquivo de cerca de 420 linhas o balão de “pensando” fica aparecendo indefinidamente. Talvez alguma coisa esteja dando timeout porque o tempo de resposta do o1 está ficando longo