OPENAI o1 (модель вывода) Руководство пользователя, предложения по написанию слов подсказки

OpenAI o1 Модели серии - это новые большие языковые модели, обученные с помощью обучения с усилением и предназначенные для проведения сложных рассуждений. o1-модели думают, прежде чем ответить, и способны генерировать длинные внутренние цепочки мыслей, прежде чем ответить пользователю. o1-модели демонстрируют превосходство в научных рассуждениях, занимая 89-е место в процентиле в соревновательных задачах по программированию (Codeforces), входя в 500 лучших студентов в США на Американской математической олимпиаде (AIME). В отборочном туре Американской математической олимпиады (AIME) модели o1 также продемонстрировали высокий уровень научного мышления, войдя в число 500 лучших студентов в США и превысив точность на уровне доктора философии в эталонных тестах (GPQA) для задач по физике, биологии и химии.

 

В API предусмотрены две модели вывода:

1. o1-preview: Предварительный просмотр нашей модели o1, предназначенной для рассуждений о сложных проблемах с использованием широкого спектра общих знаний о мире.
2. o1-mini: более быстрая и дешевая версия o1, которая особенно хорошо справляется с задачами по кодированию, математике и естественным наукам, не требуя обширных общих знаний.

 

Модель o1 обеспечивает значительные выводы в продвигатьсяНо они Не предназначен для замены GPT-4o во всех случаях использования.

Для приложений, требующих ввода изображений, вызова функций или стабильно быстрого времени отклика, модели GPT-4o и GPT-4o mini по-прежнему являются правильным выбором. Однако если вы хотите разрабатывать приложения, требующие глубоких выводов и допускающие более длительное время отклика, модель o1 может стать отличным выбором. Нам не терпится увидеть, что вы создадите с их помощью!

 

🧪 o1 Модели в настоящее время находятся на стадии тестирования

o1 Модель в настоящее время находится в этап тестирования, с ограниченной функциональностью. Доступ ограничен Уровень 5 Разработчики в здесь Проверьте уровень использования и установите низкий лимит тарифа. Мы работаем над добавлением новых функций, добавляем ограничение скоростиВ ближайшие недели мы расширим доступ для новых разработчиков!

 

Быстрый старт

o1-preview ответить пением o1-mini Все они доступны через завершения чата Использование конечной точки.

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)

В зависимости от объема рассуждений, необходимых модели для решения проблемы, эти запросы могут занимать от нескольких секунд до нескольких минут.

 

Ограничения бета-версии

В бета-версии многие параметры API завершения чата пока недоступны. Наиболее заметными из них являются:

  • модальный (вычисления, лингвистика): Поддерживается только текст, но не изображения.
  • Тип сообщения: Поддерживаются только пользовательские сообщения и сообщения помощника, но не системные сообщения.
  • потоковое вещание: Не поддерживается.
  • артефакт: Инструменты, вызовы функций и параметры формата ответа не поддерживаются.
  • Logprobs: Не поддерживается.
  • остальное:: `temperature`, `top_p` и `n`Фиксировано на `1`, и `presence_penalty` и `frequency_penalty`Фиксировано на `0`.
  • Ассистенты и партия: Эти модели не поддерживают API Assistants и API Batch.

По мере выхода из бета-версии будет добавлена поддержка некоторых из этих параметров. o1 Будущие модели серии будут включать такие функции, как мультимодальность и использование инструментов.

 

 

Как работает рассуждение

Модель o1 представляет Жетоны рассуждений. Эти модели используют вывод жетоны Модель "думает", разбивает понимание подсказки на части и рассматривает несколько способов создания ответа. После генерирования маркеров рассуждений модель генерирует ответы в виде видимых маркеров завершения и отбрасывает маркеры рассуждений из их контекста.

Ниже приведен пример многоэтапного диалога между пользователем и помощником. Входные и выходные лексемы для каждого шага сохраняются, а лексемы умозаключений отбрасываются.

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

Токены вывода не сохраняются в контексте

 

Хотя маркеры выводов не могут быть отображены через API, они по-прежнему занимают пространство контекстного окна модели и используются в качестве выходные лексемы Заряды.

 

Управление контекстным окном

Модели o1-preview и o1-mini предоставляют контекстное окно из 128 000 лексем. Каждый раз, когда генерируется контент, существует верхнее ограничение на максимальное количество выходных лексем - сюда входят как невидимые лексемы вывода, так и видимые лексемы генерации:

  • o1-preview: до 32 768 токенов
  • o1-mini: до 65 536 токенов

 

При генерации контента важно убедиться, что в контекстном окне достаточно места для маркеров умозаключений. В зависимости от сложности задачи модель может генерировать от нескольких сотен до десятков тысяч маркеров вывода, а точное количество используемых маркеров вывода можно найти в разделе Объект использования для объекта ответа генерации чата попал в точку completion_tokens_details Вид:

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

 

Контроль расходов

Чтобы управлять стоимостью моделей семейства o1, вы можете использовать max_completion_tokens ограничивает общее количество лексем, генерируемых моделью (как лексем вывода, так и лексем генерации).

В предыдущей модели, `max_tokensПараметр ` контролирует количество генерируемых токенов и количество токенов, видимых пользователю, которые всегда равны. Однако в семействе o1 общее количество сгенерированных лексем может превышать количество видимых лексем из-за наличия внутренних лексем рассуждений.

Поскольку некоторые приложения могут полагаться на `max_tokensВ соответствии с количеством токенов, полученных от API, в серии o1 вводится `max_completion_tokens` для явного контроля общего количества лексем, генерируемых моделью, как предполагаемых, так и видимых генерируемых лексем. Этот явный выбор гарантирует, что существующие приложения не будут нарушены при использовании новых моделей. Для всех предыдущих моделей `max_tokensПараметр ` сохраняет свою первоначальную функцию.

 

Предоставьте возможность для рассуждений

Если генерируемые токены достигают предела контекстного окна или если вы установили значение `max_completion_tokensценность, вы получитеfinish_reason`Настроить на `lengthОтвет генерации чата. Это может произойти до того, как будут сгенерированы видимые жетоны, то есть вы можете заплатить за ввод и рассуждения, но не получить видимого ответа.

Чтобы предотвратить это, убедитесь, что вы оставили достаточно места в контекстном окне, или установите параметр `max_completion_tokensOpenAI рекомендует выделять не менее 25 000 лексем для вывода и вывода, когда вы начинаете использовать эти модели. Как только вы узнаете, какое количество токенов для вывода необходимо для подсказок, вы сможете соответствующим образом настроить этот буфер.

 

 

Предложения по выбору слов для подсказки

 

Эти модели показывают наилучшие результаты при использовании четких и лаконичных подсказок. Некоторые методы разработки подсказок (например, подсказки из нескольких кадров или предоставление модели возможности "думать шаг за шагом") могут не улучшить работу, а иногда и вовсе оказаться контрпродуктивными. Вот несколько лучших практик:

  • Пусть подсказки будут простыми и понятными: Эти модели хорошо понимают и реагируют на короткие, четкие инструкции, не требуя слишком многого.
  • Избегайте цепных мыслеобразов: Поскольку эти модели рассуждают внутренне, нет необходимости направлять их на "пошаговое мышление" или "объяснять свои рассуждения".
  • Используйте разделители для повышения четкости: Использование разделителей, таких как тройные кавычки, теги XML или заголовки разделов, для четкого обозначения различных частей входных данных помогает модели правильно понять каждую часть.
  • В поисках усиленной генерации (RAG) в ограниченном дополнительном контексте:** При предоставлении дополнительного контекста или документации включайте только самую важную информацию, чтобы не усложнять ответы модели.
OPENAI o1(推理模型)使用指南,提示词编写建议

 

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

 

Примеры подсказок

Кодирование (рефакторинг)

Семейство моделей OpenAI o1 способно реализовывать сложные алгоритмы и генерировать код. Следующие подсказки требуют от o1 рефакторинга React Компонент.

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)

 

Код (планирование)

Модели семейства OpenAI o1 также умеют создавать многоэтапные планы. В этом примере модели o1 предлагается создать структуру файловой системы готового решения и предоставить код на языке Python для реализации необходимых сценариев использования.

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)

 

Исследования в области НТИМ

Модели семейства OpenAI o1 хорошо зарекомендовали себя в исследованиях в области STEM. Подсказки, используемые для поддержки базовых исследовательских задач, обычно показывают высокие результаты.

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)

 

 

Пример использования

Некоторые примеры реальных примеров использования o1 можно найти в поваренная книга Найдено в.

© заявление об авторских правах

Похожие статьи

Нет комментариев

Вы должны войти в систему, чтобы участвовать в комментариях!
Войти сейчас
нет
Нет комментариев...