OpenAI o1: что нужно знать разработчикам
В сентябре 2024 года OpenAI представила новейшую серию своих проприетарных больших языковых моделей (LLM), названную серией o1. Основная особенность, отличающая серию o1 от предыдущей самой мощной модели OpenAI, GPT-4o, — их способность обдумывать проблемы перед генерацией окончательного ответа для пользователя. Это означает, что модели o1 обучены разбивать задачи на более мелкие компоненты и решать их пошагово — процесс, который обычно называют рассуждением по цепочке мыслей.
В этой статье мы поговорим о серии o1 с точки зрения разработчика, рассмотрев, как эти модели могут быть реализованы для сложных сценариев использования. Перед этим давайте кратко рассмотрим, что представляют собой модели o1, как они работают по сравнению с GPT-4o и какие новые функции OpenAI представила в этой серии.
Краткое введение в модели o1
OpenAI представила три варианта в серии o1: o1-preview, o1 и o1-mini, причем o1-preview был запущен первым. Все три варианта имеют уникальную особенность по сравнению с другими моделями OpenAI, такими как GPT-4: продвинутые возможности рассуждения.
Модели o1 разработаны так, чтобы тратить больше времени на анализ проблемы перед генерацией ответа. Этот подход имитирует то, как люди разбирают и решают сложные вопросы. Для любой заданной проблемы эти модели пытаются разбить вопрос на части, пошагово сформулировать свой мыслительный процесс и изучить альтернативные решения, если их первоначальное рассуждение оказывается недостаточным.
Поскольку эти модели полностью закрыты, явные подробности об их процессе обучения остаются недоступными. Однако есть два вероятных подхода, использованных во время обучения моделей o1: prompting по цепочке мыслей (CoT) и обучение с подкреплением (RL).
Концепция CoT prompting проста. Вместо того чтобы давать модели прямые ответы на заданные задачи, CoT prompts включают подробные контекстные шаги для решения задач, как вы можете видеть ниже:
Сравнение обычного prompt и CoT prompt.
Объединяя огромный объем данных CoT prompting с RL во время тонкой настройки, модель итеративно уточняет свой процесс рассуждения. Она учится выявлять недостатки в своей логике и применять более осмысленные подходы к решению задач. Затем модель вознаграждается за генерацию точных шагов рассуждения и правильных ответов. В результате модели серии o1 могут критически мыслить и эффективно рассуждать перед предоставлением ответов.
Чтобы реализовать эту способность к рассуждению, OpenAI ввела в модели o1 дополнительные токены, называемые "reasoning tokens". В отличие от других LLM, которые используют только входные и выходные токены, модели o1 используют reasoning tokens для обеспечения своего мыслительного процесса.
Эти reasoning tokens позволяют модели анализировать prompts и рассматривать несколько подходов перед генерацией выходных токенов. После того как ответ финализирован, reasoning tokens удаляются из контекста. Ниже приведена визуализация динамики входных, выходных и reasoning tokens в ходе нескольких раундов взаимодействия пользователя с моделью:
Динамика входных, выходных и reasoning tokens в ходе нескольких раундов взаимодействия пользователя с моделью. Источник.
Что делает o1 уникальной (и почему это важно для разработчиков)
По сути, модели o1 развивают всё, что делает GPT-4o выдающейся, но расширяют границы возможностей, объединяя подходы цепочки мыслей (CoT) и обучения с подкреплением (RL). В результате модели o1 превосходят GPT-4o в различных областях, требующих сложного рассуждения, таких как программирование, математика и общая наука.
Как показано в визуализации ниже, обе модели o1-preview и o1 превосходят GPT-4o в бенчмарках, требующих продвинутого рассуждения. В частности, они демонстрируют значительно лучшие результаты на трех ключевых бенчмарках научного рассуждения: AIME 2024, Codeforces и GPQA Diamond.
AIME 2024: Бенчмарк на основе математических экзаменов, разработанный для проверки самых способных школьников-математиков в США.
GPQA Diamond: Оценивает экспертные знания в научных дисциплинах, таких как химия, биология и физика.
Codeforces: Включает задачи из соревнований по спортивному программированию.
Сравнение моделей GPT-4o, o1-preview и o1 на нескольких бенчмарках рассуждения. Источник.
Хотя модель o1-preview демонстрирует превосходную производительность в сложных задачах рассуждения по сравнению с GPT-4o, у нее есть заметные недостатки:
Высокое использование токенов рассуждения: o1-preview генерирует большое количество токенов рассуждения, которые потребляют значительную часть контекстного окна модели в 128 000 токенов. Для задач, требующих большого объема входных и выходных токенов, ответы могут быть усечены. Это также увеличивает стоимость использования по сравнению с GPT-4o.
Проблемы с задержкой: Большое количество токенов приводит к более медленному времени ответа. В среднем задержка o1-preview примерно в 10 раз выше, чем у GPT-4o, что делает ее менее подходящей для использования в продакшене.
Чтобы устранить эти ограничения, OpenAI представила две дополнительные модели в серии o1: o1-mini и новейшую модель o1.
o1-mini — это меньшая модель по сравнению с o1-preview, специально оптимизированная для данных, связанных со STEM. Эта оптимизация позволяет ей превосходить o1-preview на научных бенчмарках, таких как AIME 2024 (достигая точности 70% по сравнению с 44,6% у o1-preview) и Codeforces.
Сравнение моделей GPT-4o, o1-preview и o1-mini на бенчмарках Codeforces. Источник.
Кроме того, меньший размер по сравнению с o1-preview обеспечивает для o1-mini более низкую задержку. Время инференса этой модели примерно в 3–5 раз быстрее, чем у o1-preview. Однако важно отметить, что производительность o1-mini на бенчмарках, не связанных со STEM, все еще хуже, чем у o1-preview.
Чтобы еще больше повысить производительность и возможности, OpenAI представила последнюю версию модели o1. Как показано в визуализации выше, эта модель превосходит o1-preview по всем научным бенчмаркам.
Помимо более высокой производительности в сложных задачах рассуждения, новейшая модель o1 также предлагает несколько ключевых улучшений:
Увеличенное контекстное окно: Поддерживает до 200 000 токенов на входе и максимум 100 000 выходных токенов.
Эффективное использование токенов рассуждения: В среднем использует примерно на 60% меньше токенов рассуждения, чем o1-preview, для любого заданного запроса. Это делает задержку новейших моделей o1 ниже, чем у o1 preview.
Возможности работы со зрением: Принимает изображения в качестве входных данных, обеспечивая рассуждение на основе визуальных данных. Обратите внимание, что эта функция недоступна ни в моделях o1-preview, ни в o1-mini.
Расширенная интеграция с инструментами OpenAI: Включает функциональность структурированных выходных данных, вызова функций и определяемых разработчиком стилей или тонов. Кроме того, пользователи могут настраивать усилие рассуждения (низкое, среднее или высокое) с помощью параметра
reasoning_effort, чтобы сбалансировать скорость, стоимость и качество.
Реальные сценарии использования моделей o1
Существует множество реальных сценариев использования, которые можно решить с помощью серии o1. В этом разделе мы рассмотрим несколько примеров, таких как рассуждение над сложными задачами, извлечение информации и выводы из текстов, Retrieval Augmented Generation (RAG), понимание изображений и вызов функций.
Однако на момент написания этой статьи доступность последней модели o1 всё ещё ограничена, поскольку она доступна только для определённых уровней пользователей. Поэтому мы будем демонстрировать фрагменты кода для сценариев использования с моделью o1-mini везде, где это возможно, так как эта модель доступна большинству уровней пользователей (с Tier 1 по 5).
Прежде чем перейти к примерам, нам нужно сначала установить наш OpenAI API key. Подробнее о том, как настроить собственный API key, вы можете узнать здесь. Затем добавьте API key в окружение следующим образом:
import getpass
import os
if not os.environ.get("OPENAI_API_KEY"):
os.environ["OPENAI_API_KEY"] = getpass.getpass("Enter API key for OpenAI: ")
И теперь мы готовы использовать модели от OpenAI.
Решение сложных задач с рассуждением
Самое прямолинейное применение модели o1 — решение сложных задач по математике и программированию, которые требуют глубокого обдумывания, прежде чем можно прийти к ответу. Допустим, мы хотим, чтобы она научила нас решать математическую задачу; мы можем сделать это, вызвав OpenAI API следующим образом:
from openai import OpenAI
client = OpenAI()
prompt = """
Julie is reading a 120-page book. Yesterday, she was able to read 12 pages and
today, she read twice as many pages as yesterday. If she wants to read half of the
remaining pages tomorrow, how many pages should she read?
"""
response = client.chat.completions.create(
model="o1-mini",
messages=[
{
"role": "user",
"content": prompt
}
]
)
print(response.choices[0].message.content)
"""
Output:
To determine how many pages Julie should read tomorrow, let's break down the problem step by step:
1. **Total Pages in the Book:**
The book has **120 pages**.
2. **Pages Read Yesterday:**
Julie read **12 pages** yesterday.
3. **Pages Read Today:**
Today, she read **twice** as many pages as yesterday.
( 2 times 12 = 24 ) pages.
4. **Total Pages Read in Two Days:**
( 12 text{ (yesterday)} + 24 text{ (today)} = 36 ) pages.
5. **Remaining Pages:**
( 120 text{ (total)} - 36 text{ (read)} = 84 ) pages left.
6. **Pages to Read Tomorrow:**
She wants to read **half** of the remaining pages:
( frac{84}{2} = 42 ) pages.
**Answer:**
Julie should read **42 pages** tomorrow.
"""
Как видите, вместо того чтобы просто предоставить окончательный ответ, модель генерирует свой пошаговый мыслительный процесс, что улучшает наше понимание того, как подходить к похожим задачам в будущем.
Творческие автоматизации
Как и другие LLM от OpenAI, модель o1 можно использовать для творческой автоматизации, например для краткого изложения содержимого PDF, генерации сценария YouTube на основе статьи, а также извлечения и вывода определённой информации из документов.
В следующем примере мы используем модель o1-mini, чтобы извлечь определённую информацию из текста с конкретной схемой вывода. Мы не только извлечём информацию, содержащуюся в тексте, но также попросим модель вывести информацию, выполнив простые математические операции.
import requests
def fetch_html(url):
response = requests.get(url)
if response.status_code == 200:
return response.text
else:
return None
url = "<https://en.wikipedia.org/wiki/List_of_NBA_career_scoring_leaders>"
html_content = fetch_html(url)
json_format = """
{
companies: [
{
"player_name": "Tim Duncan",,
"total_points": "1750",
"total_points_without_free_throw": "1050",
}
]
}
"""
o1_response = client.chat.completions.create(
model="o1-mini",
messages=[
{
"role": "user",
"content": f"""
Extract information from the text.
- Read the following html and return players with the most points without free throw in the NBA's history: {html_content}.
- Верните результат в порядке от наибольшего к наименьшему и покажите мне топ-5. Верните только JSON в следующем формате: {json_format}"
"""
}
]
)
print(o1_response.choices[0].message.content)
"""
Вывод:
```json
{
"players": [
{
"player_name": "LeBron James",
"total_points": "41599",
"total_points_without_free_throw": "33048"
},
{
"player_name": "Kareem Abdul-Jabbar",
"total_points": "38387",
"total_points_without_free_throw": "31675"
},
{
"player_name": "Karl Malone",
"total_points": "36928",
"total_points_without_free_throw": "27141"
},
{
"player_name": "Wilt Chamberlain",
"total_points": "31419",
"total_points_without_free_throw": "25362"
},
{
"player_name": "Kobe Bryant",
"total_points": "33643",
"total_points_without_free_throw": "25265"
}
]
}
"""
Как видите, модель o1 не только извлекает информацию в соответствии с выходной схемой, которую мы определили, но также способна выполнять математические операции и включать соответствующий результат в выходную схему вместе с другой извлеченной информацией.
Поисковые системы на базе ИИ
Мы также можем использовать модель o1 в сценарии Retrieval Augmented Generation (RAG), где мы используем ее для генерации ответа на запрос на основе предоставленного контекста, полученного с помощью поиска по сходству.
Обычный рабочий процесс RAG-приложения выглядит следующим образом: при заданном пользовательском запросе запрос преобразуется в эмбеддинг с помощью выбранной нами модели эмбеддингов, такой как text-embedding-3-large от OpenAI. Затем эмбеддинг запроса сравнивается с коллекцией контекстных эмбеддингов, хранящихся внутри векторной базы данных, с помощью поиска по сходству. Затем извлекаются top-k наиболее релевантных контекстов и добавляются в prompt, предоставляя нашей LLM полезный контекст для ответа на запрос.
Рабочий процесс RAG.
Как видите, чтобы использовать модель o1 в сценарии RAG, мы обычно объединяем ее с векторными базами данных, такими как Milvus, для хранения огромных объемов контекста и выполнения эффективного и быстрого поиска по сходству.
В примере ниже мы создадим простое RAG-приложение, используя комбинацию модели o1-mini и Milvus.
Сначала мы загружаем текстовый источник из HTML, который будем использовать как возможные контексты в нашем RAG-приложении. Затем мы разбиваем исходный текст на фрагменты, каждый из которых состоит примерно из 2000 символов. После процесса разбиения на фрагменты мы можем сохранить все фрагменты внутри векторной базы данных Milvus. Мы установим тип индексирования на "FLAT", поскольку хотим провести исчерпывающий поиск, чтобы найти лучшие возможные контексты для любого заданного запроса.
!pip install --upgrade --quiet langchain langchain-core langchain-community langchain-text-splitters langchain-milvus langchain-openai bs4
import bs4
from langchain_community.document_loaders import WebBaseLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_milvus import Milvus
from langchain_openai import OpenAIEmbeddings
# Create a WebBaseLoader instance to load documents from web sources
loader = WebBaseLoader(
web_paths=(
"<https://lilianweng.github.io/posts/2023-06-23-agent/>",
"<https://lilianweng.github.io/posts/2023-03-15-prompt-engineering/>",
),
bs_kwargs=dict(
parse_only=bs4.SoupStrainer(
class_=("post-content", "post-title", "post-header")
)
),
)
# Load documents from web sources using the loader
documents = loader.load()
# Initialize a RecursiveCharacterTextSplitter for splitting text into chunks
text_splitter = RecursiveCharacterTextSplitter(chunk_size=2000, chunk_overlap=200)
# Разделить документы на фрагменты с помощью text_splitter
docs = text_splitter.split_documents(documents)
# Определить модель эмбеддингов по умолчанию от OpenAI
embeddings = OpenAIEmbeddings()
# Сохранить фрагментированные данные в Milvus
vectorstore = Milvus.from_documents(
documents=docs,
embedding=embeddings,
connection_args={
"uri": "./milvus_demo.db",
},
index_params={"index_type": "FLAT", "metric_type": "L2"},
drop_old=True, # Удалить старую коллекцию Milvus, если она существует
)
Теперь мы можем определить модель и промпт, который содержит инструкции вроде "Используйте предоставленный контекст, чтобы ответить на запрос", а также сам запрос. В результате мы получим топ-1 наиболее релевантный контекст.
from langchain_openai import ChatOpenAI
from langchain import hub
# Инициализировать языковую модель OpenAI для генерации ответов
llm = ChatOpenAI(model_name="o1-mini", temperature=1)
# Определить шаблон промпта для генерации ответов ИИ
prompt = hub.pull("rlm/rag-prompt")
# Преобразовать векторное хранилище в ретривер
retriever = vectorstore.as_retriever()
query = "What is self-reflection of an AI Agent?"
vectorstore.similarity_search(query, k=1)
Наконец, мы можем легко организовать рабочий процесс RAG с помощью LangChain, а затем получить ответ от нашей модели o1-mini на любой заданный запрос, используя наиболее релевантный контекст, полученный из нашей базы данных Milvus.
from langchain_core.runnables import RunnablePassthrough
from langchain_core.output_parsers import StrOutputParser
# Определить функцию для форматирования полученных документов
def format_docs(docs):
return "nn".join(doc.page_content for doc in docs)
# Определить цепочку RAG (Retrieval-Augmented Generation) для генерации ответов ИИ
rag_chain = (
{"context": retriever | format_docs, "question": RunnablePassthrough()}
| prompt
| llm
| StrOutputParser()
)
# rag_chain.get_graph().print_ascii()
# Вызвать цепочку RAG с конкретным вопросом и получить ответ
res = rag_chain.invoke(query)
print(res)
"""
Вывод:
Саморефлексия у ИИ-агента означает его способность оценивать и уточнять собственные действия и решения на основе прошлого опыта. Этот процесс позволяет агенту выявлять и исправлять ошибки, тем самым со временем улучшая свою производительность. Она необходима для выполнения сложных задач реального мира, где требуется итеративное улучшение методом проб и ошибок.
"""
Понимание изображений
Одно из главных преимуществ последней модели o1 по сравнению с o1-preview и o1-mini — ее мультимодальная возможность: она принимает на вход не только текст, но и изображения. Это делает модель o1 идеальной для сценариев рассуждения по изображениям, таких как описание содержимого изображения, краткое изложение текста на изображении и извлечение структурированной информации из изображения.
Есть два способа передать модели изображение на вход: передать ссылку на изображение или передать изображение, закодированное в Base64. Ниже приведен пример кода для этого:
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model="o1",
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "What's in this image?"},
{
"type": "image_url",
"image_url": {
"url": "<https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg>",
},
},
],
}
],
max_tokens=300,
)
print(response.choices[0])
Вызов функций
Еще один интересный сценарий использования, который мы можем рассмотреть с моделью o1, — это вызов функций. По сути, вызов функций позволяет LLM взаимодействовать с нашим кодом или внешними сервисами, такими как поисковая система или API. Благодаря своей способности продумывать задачу, она может точно использовать подходящие внешние сервисы, чтобы помочь решить текущую задачу.
Например, допустим, мы хотим узнать текущую погоду в Лос-Анджелесе. Без внешних сервисов LLM было бы невозможно дать нам правильный ответ, и она, вероятно, начала бы галлюцинировать. Если у нас есть доступ к weather API, мы можем использовать этот "tool" как дополнительный ресурс, чтобы помочь нашей модели o1 ответить на наш запрос.
Вы можете узнать больше о реализации вызова функций в коде для создания агентной модели в документации, предоставленной OpenAI или LangChain.
Сравнение модели o1 и ее альтернатив
В этом разделе мы сравним плюсы и минусы модели o1 с ее альтернативами, такими как GPT 4o, o3-mini, Claude 3.5 Sonnet и DeepSeek R1.
Сравнение с GPT 4o
Хотя производительность модели o1 значительно превосходит модель GPT-4o в бенчмарках сложного рассуждения, это не означает, что мы всегда должны выбирать модель o1 вместо GPT-4o.
В целом, модель o1 отлично справляется с задачами, требующими сложных и детальных мыслительных процессов, такими как задачи генерации идей. Например, мы можем использовать модель o1 как партнера, который поможет нам планировать стратегии и обозначать лучшие и худшие сценарии для бизнеса, который мы собираемся начать. В образовательной сфере мы можем использовать модель o1 для генерации подробных объяснений для каждого компонента научного курса, который мы разрабатываем. Мы также можем использовать модель o1 как нашего партнера во время ревью кода или для оптимизации кода.
Однако, когда мы хотим развернуть AI assistant в production, GPT-4o в настоящее время всё еще предпочтительнее модели o1. Это связано с тем, что GPT-4o гораздо более зрелая с точки зрения реализации API OpenAI по сравнению с моделью o1. Например, хотя и GPT-4o, и модель o1 принимают изображения в качестве входных данных, модель o1 не имеет доступа к нескольким инструментам и функциям, таким как custom instructions, загрузка файлов (кроме изображений), голосовые возможности и веб-браузинг. Поэтому, если наш сценарий использования требует этих функций, нам нужно использовать GPT-4o.
Более того, доступность модели o1 на данный момент ограничена. Доступ к модели имеют только определенные пользователи, поскольку мы должны быть как минимум пользователем Tier 3 или оформить подписку на план ChatGPT Plus или Pro, чтобы получить доступ к этой модели. Кроме того, если задержка вывода очень критична в нашем сценарии использования, GPT-4o по-прежнему предлагает лучшую альтернативу, чем модель o1.
Сравнение с o3-mini
Модель o3-mini — это новейшая модель среди reasoning LLMs от OpenAI. Как и o1-mini, o3-mini была сильно оптимизирована для STEM-доменов, но с производительностью, которая превосходит o1-mini и сопоставима с моделью o1, как вы можете видеть на графике производительности по различным STEM-бенчмаркам ниже:
Сравнение производительности o3-mini и модели o1 по различным STEM-бенчмаркам. Источник.
o3-mini сохраняет всё, что делает o1-mini отличной (низкая стоимость и задержка), и дополнительно улучшает это. Поэтому, если ваш сценарий использования находится в STEM-домене и задержка или стоимость критичны, то модель o3 будет предпочтительнее модели o1. Однако модель o1 всё еще предлагает более широкие знания, чем o3-mini, что делает ее более подходящей для использования, если ваш сценарий более общий и не относится к STEM-домену.
Модели o3-mini и o1 поддерживают расширенные функции API, такие как function calling, structured output, developer messages, а также регулируемое reasoning effort. Однако в настоящее время o3-mini поддерживает только текстовый ввод, а это означает, что если входными данными нашего сценария использования является изображение, то нам нужно использовать модель o1.
Что касается доступности через API, на данный момент модели o3-mini и o1 доступны только пользователям Tier 3-5. Вы можете использовать обе модели, если у вас есть подписка ChatGPT Plus, Pro и Team.
Сравнение с DeepSeek R1 и Claude 3.5 Sonnet
Другие альтернативы модели o1 включают Claude 3.5 Sonnet и DeepSeek R1. Из этих двух DeepSeek R1 является более близким конкурентом o1 благодаря оптимизации рассуждений во время обучения, тогда как Claude 3.5 Sonnet на самом деле не был оптимизирован для рассуждений. Как вы можете видеть на нескольких бенчмарках рассуждений ниже, и o1, и R1 значительно превосходят 3.5 Sonnet. В то же время производительность o1 и R1 сопоставима друг с другом.
Сравнение модели o1 с другими репрезентативными моделями. Источник.
Поэтому рекомендуется использовать либо o1, либо R1, когда вашему сценарию использования требуется способность LLM к рассуждению. Если нет, Claude 3.5 Sonnet будет предпочтительнее, поскольку он обеспечит как более низкую стоимость, так и меньшую задержку, чем модель o1.
Теперь предположим, что наш сценарий использования требует способности наших LLM к рассуждению, а это означает, что мы можем использовать либо модели o1, либо R1. Главное преимущество модели R1 — её open-source-характер, что означает, что мы можем разместить её в нашей собственной инфраструктуре. Это очень полезно, если в нашем сценарии использования важна конфиденциальность данных.
С точки зрения задержки R1 может быть лучше, чем o1, благодаря своей архитектуре Mixture-of-Expert (MoE). Благодаря MoE только небольшая часть параметров R1 будет активироваться в любом конкретном запросе, что ускоряет процесс инференса. Кроме того, R1 использует подход multi token prediction во время обучения, который может быть перепрофилирован для speculative decoding во время инференса. Это дополнительно ускоряет процесс инференса.
Однако важно отметить, что DeepSeek R1 содержит в общей сложности 671B параметров, а это означает, что вам потребуется примерно 1,5 ТБ памяти GPU (например, NVIDIA A100 80GB x16), чтобы разместить её. Поэтому самостоятельное размещение модели обходится очень дорого, и использование модели o1 будет предпочтительнее, чтобы избавить нас от сложных этапов размещения R1.С o1 нам нужно платить только тогда, когда мы выполняем API-запрос. В большинстве случаев это оказывается дешевле по сравнению с почасовой стоимостью GPU, которую нам нужно оплачивать при размещении модели R1 у популярных облачных провайдеров, таких как AWS или GCP.
Заключение
Модель o1 представляет собой шаг вперёд в возможностях AI-рассуждения, поскольку она улучшает GPT-4o за счёт интеграции chain-of-thought prompting и reinforcement learning. Благодаря способности разбивать сложные проблемы на части и исследовать альтернативные решения модель o1 отлично справляется с задачами, требующими глубокого аналитического мышления, такими как задачи, связанные со STEM или программированием. Кроме того, последняя модель o1 повышает эффективность за счёт большего контекстного окна, мультимодальных возможностей и оптимизированного использования reasoning tokens.
Однако, несмотря на свои сильные стороны, выбор модели o1 вместо её альтернатив всё ещё полностью зависит от требований конкретного сценария использования. Модель o1 превосходит GPT-4o в сложных задачах рассуждения, но с точки зрения стоимости, задержки и зрелости API GPT-4o предпочтительнее. По сравнению с o3-mini, o1 предлагает более широкие общие знания, тогда как o3-mini более эффективна для STEM-приложений с меньшей стоимостью и задержкой. В сравнении с DeepSeek R1 и Claude 3.5 Sonnet, o1 и R1 сильны в рассуждениях, но open-source-характер R1 и архитектура Mixture-of-Expert улучшают задержку, хотя для этого требуется дорогостоящая инфраструктура.
Руководства с использованием OpenAI GPT-o1
RAG-чатбот с LangChain, Milvus, OpenAI GPT-o1 и OpenAI text-embedding-3-small
RAG-чатбот с LangChain, Milvus, OpenAI GPT-o1 и NVIDIA embed-qa-4
RAG-чатбот с LangChain, Milvus, OpenAI GPT-o1 и Cohere embed-multilingual-v3.0
RAG-чатбот с LangChain, Milvus, OpenAI GPT-o1 и Ollama mxbai-embed-large
RAG-чатбот с LangChain, Milvus, OpenAI GPT-o1 и HuggingFace all-MiniLM-L12-v1
Читать далее

VDBBench Adds Cost-Aware Benchmarking for Vector Databases
Compare Zilliz Cloud, Pinecone, and turbopuffer with VDBBench cost-aware vector database benchmarks across latency, freshness, multitenancy, and cold starts.

From Vector Database to Vector Lakebase
Zilliz offers a fully managed Vector Lakebase powered by Milvus, unifying real-time vector search, lake-scale discovery, and Al data operations.

Vector Databases vs. Graph Databases
Use a vector database for AI-powered similarity search; use a graph database for complex relationship-based queries and network analysis.


