Aprendizagem pessoal com IA
e orientação prática
讯飞绘镜

Guia do usuário do OPENAI o1 (modelo de inferência), Sugestões para escrever palavras de prompt

OpenAI o1 Os modelos o1 pensam antes de responder e são capazes de gerar longas cadeias internas de pensamento antes de responder ao usuário. Os modelos o1 se destacam em raciocínio científico, classificando-se no 89º percentil em Problemas de Programação Competitiva (Codeforces), ficando entre os 500 melhores alunos dos EUA nas eliminatórias da American Mathematical Olympiad (AIME), classificando-se entre os 500 melhores alunos dos Estados Unidos e excedendo a precisão de um PhD humano em testes de referência (GPQA) para problemas de física, biologia e química. classificou-se entre os 500 melhores alunos dos Estados Unidos e excedeu a precisão de nível de doutorado humano em testes de referência (GPQA) para problemas de física, biologia e química. Os modelos o1 também demonstraram um alto nível de raciocínio científico.

 


Dois modelos de inferência são fornecidos na API:

1. o1-previewUma prévia do nosso modelo o1, projetado para raciocinar sobre problemas difíceis usando uma ampla gama de conhecimentos comuns sobre o mundo.
2. o1-miniO1: uma versão mais rápida e mais barata do o1 que é particularmente bom em tarefas de codificação, matemática e ciências, sem exigir amplo conhecimento geral.

 

O modelo o1 fornece uma inferência significativa na fazer progressosMas eles Não se destina a substituir o GPT-4o em todos os casos de uso.

Para aplicativos que exigem entradas de imagens, chamadas de função ou tempos de resposta consistentemente rápidos, os modelos GPT-4o e GPT-4o mini ainda são a escolha certa. No entanto, se estiver procurando desenvolver aplicativos que exijam inferência profunda e possam acomodar tempos de resposta mais longos, o modelo o1 pode ser uma excelente opção. Estamos ansiosos para ver o que você criará com eles!

 

🧪 o1 Os modelos estão atualmente em fase de teste

o1 O modelo está atualmente em fase de testescom funcionalidade limitada. O acesso é limitado a Nível 5 Os desenvolvedores do Aqui estão Verifique seu nível de uso e tenha um limite de tarifa baixo. Estamos trabalhando para adicionar mais recursos, adicionando limite de velocidadee expandindo o acesso a mais desenvolvedores nas próximas semanas!

 

Início rápido

o1-preview responder cantando o1-mini Todos podem ser acessados por meio do conclusões de bate-papo Uso do endpoint.

from openai import OpenAI
client = OpenAI()

response = client.chat.completions.create(
model="o1-preview",
messages=[
{
"role": "user", 
"content": "编写一个 Bash 脚本,将矩阵表示为格式 '[1,2],[3,4],[5,6]' 的字符串,并以相同的格式打印转置矩阵。"
}
]
)

print(response.choices[0].message.content)

Dependendo da quantidade de raciocínio exigida pelo modelo para resolver o problema, essas solicitações podem levar de alguns segundos a alguns minutos.

 

Restrições Beta

Na versão Beta, muitos dos parâmetros da API de conclusão de bate-papo ainda não estão disponíveis. Os mais notáveis são:

  • modal (computação, linguística): Somente texto é suportado, não imagens.
  • Tipo de mensagemMensagens do usuário: Somente mensagens do usuário e mensagens do assistente são suportadas, não mensagens do sistema.
  • transmissãoNão suportado.
  • artefatoFerramentas, chamadas de função e parâmetros de formato de resposta não são suportados.
  • Problemas de registroNão suportado.
  • O resto:: `temperature`, `top_p` e `n` Fixo para `1`, e `presence_penalty` e `frequency_penalty` Fixo para `0`.
  • Assistentes e loteEsses modelos não são compatíveis com a API de assistentes ou a API de lotes.

À medida que sairmos da versão Beta, o suporte a alguns desses parâmetros será adicionado. o1 Os modelos futuros da série incluirão recursos como multimodalidade e uso de ferramentas.

 

 

Como funciona o raciocínio

O modelo o1 apresenta Tokens de raciocínio. Esses modelos usam inferência tokens O modelo "pensa", analisa a compreensão da dica e considera várias maneiras de gerar uma resposta. Depois de gerar tokens de raciocínio, o modelo gera respostas como tokens de conclusão visíveis e descarta os tokens de raciocínio de seu contexto.

Abaixo está um exemplo de um diálogo de várias etapas entre um usuário e um assistente. Os tokens de entrada e saída de cada etapa são mantidos, enquanto os tokens de inferência são descartados.

o1(推理模型)提示词使用指南-1

Os tokens de inferência não são salvos no contexto

 

Embora os tokens de inferência não possam ser exibidos por meio da API, eles ainda ocupam o espaço da janela de contexto do modelo e são usados como o tokens de saída Encargos.

 

Janela Gerenciar contexto

Os modelos o1-preview e o1-mini fornecem uma janela de contexto de 128.000 tokens. Cada vez que o conteúdo é gerado, há um limite superior no número máximo de tokens de saída - isso inclui tokens de inferência invisíveis e tokens de geração visíveis:

  • o1-preview: até 32.768 tokens
  • o1-mini: até 65.536 tokens

 

Ao gerar conteúdo, é importante garantir que haja espaço suficiente para tokens de inferência na janela de contexto. Dependendo da complexidade do problema, o modelo pode gerar de algumas centenas a dezenas de milhares de tokens de inferência, e o número exato de tokens de inferência usados pode ser encontrado na seção Objeto de uso para objeto de resposta de geração de bate-papo acertou em cheio completion_tokens_details Ver:

usage: {
total_tokens: 1000,
prompt_tokens: 400,
completion_tokens: 600,
completion_tokens_details: {
reasoning_tokens: 500
}
}

 

Controle de custos

Para gerenciar o custo da família de modelos o1, você pode usar a opção max_completion_tokens limita o número total de tokens gerados pelo modelo (tokens de inferência e geração).

No modelo anterior, `max_tokensO parâmetro ` controla o número de tokens gerados e o número de tokens visíveis para o usuário, que são sempre iguais. Entretanto, na família o1, o número total de tokens gerados pode exceder o número de tokens visíveis devido à presença de tokens de raciocínio interno.

Como alguns aplicativos podem depender de `max_tokensConsistente com o número de tokens recebidos da API, a série o1 introduz `max_completion_tokens` para controlar explicitamente o número total de tokens gerados pelo modelo, tanto os tokens inferidos quanto os gerados visíveis. Essa escolha explícita garante que os aplicativos existentes não sejam interrompidos quando novos modelos forem usados. Para todos os modelos anteriores, `max_tokensO parâmetro ` ainda mantém sua função original.

 

Permitir espaço para raciocínio

Se os tokens gerados atingirem o limite da janela de contexto ou se você definir o parâmetro `max_completion_tokens`, você receberá `finish_reason` Definir como `length` é a resposta de geração do chat. Isso pode ocorrer antes que qualquer token visível seja gerado, o que significa que você pode pagar por tokens de entrada e raciocínio e não receber uma resposta visível.

Para evitar isso, certifique-se de deixar espaço suficiente na janela de contexto ou defina a opção `max_completion_tokensO valor ` é ajustado para um número maior. A OpenAI recomenda reservar pelo menos 25.000 tokens para inferência e saída quando você começar a usar esses modelos. Quando estiver familiarizado com o número de tokens de inferência necessários para dicas, você poderá ajustar esse buffer de acordo.

 

 

Sugestões de palavras-chave

 

Esses modelos têm melhor desempenho quando usam dicas claras e concisas. Algumas técnicas de engenharia de dicas (como dicas de poucos disparos ou deixar o modelo "pensar passo a passo") podem não melhorar o desempenho e, às vezes, podem ser contraproducentes. Aqui estão algumas práticas recomendadas:

  • Mantenha os avisos simples e claros: Esses modelos são bons em compreender e responder a instruções curtas e claras sem precisar de muita orientação.
  • Evite pistas de pensamento em cadeia: Como esses modelos raciocinam internamente, não é necessário orientá-los a "pensar passo a passo" ou "explicar seu raciocínio".
  • Use separadores para melhorar a clareza: O uso de separadores como aspas triplas, tags XML ou títulos de seção para rotular claramente as diferentes partes da entrada ajuda o modelo a entender cada parte corretamente.
  • Na busca por uma geração aprimorada (RAG) em Contexto adicional do limite:** Ao fornecer contexto ou documentação adicional, inclua somente as informações mais relevantes para evitar complicar demais as respostas do modelo.

o1(推理模型)使用指南,提示词编写建议-1

 

o1(推理模型)使用指南,提示词编写建议-2

 

Exemplos de prompts

Codificação (refatoração)

A família de modelos OpenAI o1 é capaz de implementar algoritmos complexos e gerar código. As dicas a seguir exigem que o o1 refatore um Reagir Componente.

from openai import OpenAI

client = OpenAI()

prompt = """
指令:
- 对下面的 React 组件进行修改,使得非小说类书籍的文字变为红色。
- 回复中只返回代码,不要包含任何额外的格式,如 markdown 代码块。
- 在格式上,使用四个空格缩进,且代码行不超过 80 列。

const books = [
{ title: '沙丘', category: 'fiction', id: 1 },
{ title: '科学怪人', category: 'fiction', id: 2 },
{ title: '魔球', category: 'nonfiction', id: 3 },
];

export default function BookList() {
const listItems = books.map(book =>
<li>
{book.title}
</li>
);

return (
<ul>{listItems}</ul>
);
}
"""

response = client.chat.completions.create(
model="o1-mini",
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": prompt
},
],
}
]
)

print(response.choices[0].message.content)

 

Código (planejamento)

A família de modelos o1 da OpenAI também é adepta da criação de planos de várias etapas. Esse prompt de exemplo solicita que o o1 crie a estrutura do sistema de arquivos de uma solução completa e forneça o código Python para implementar os casos de uso necessários.

from openai import OpenAI

client = OpenAI()

prompt = """
我想构建一个 Python 应用程序,接收用户问题并在数据库中查找对应答案。如果找到相近匹配,就返回匹配的答案。如果没有匹配,要求用户提供答案,并将问题/答案对存储到数据库中。为此创建一个目录结构的计划,然后返回每个文件的完整内容。仅在代码开始和结束时提供你的推理,而不是在代码中间。
"""

response = client.chat.completions.create(
model="o1-preview",
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": prompt
},
],
}
]
)

print(response.choices[0].message.content)

 

Pesquisa STEM

A família de modelos OpenAI o1 tem bom desempenho em pesquisas STEM. Os prompts usados para dar suporte a tarefas básicas de pesquisa geralmente apresentam bons resultados.

from openai import OpenAI
client = OpenAI()

prompt = """
我们应该考虑研究哪三种化合物以推进新抗生素的研究?为什么要考虑它们?
"""

response = client.chat.completions.create(
model="o1-preview",
messages=[
{
"role": "user", 
"content": prompt
}
]
)

print(response.choices[0].message.content)

 

 

exemplo de caso de uso

Alguns exemplos de casos de uso do mundo real usando o1 podem ser encontrados no o livro de receitas Encontrado em.

Não pode ser reproduzido sem permissão:Chefe do Círculo de Compartilhamento de IA " Guia do usuário do OPENAI o1 (modelo de inferência), Sugestões para escrever palavras de prompt
pt_BRPortuguês do Brasil