o1 это не чат модель (и в этом вся суть)
https://www.latent.space/p/o1-skill-issue
Всем привет! Сегодня расскажу вам про o1 с другой точки зрения. Это не чат-модель, и в этом вся суть. Перевёл для вас статью с Latent Space. Погнали!
o1 – это не чат-модель (и в этом вся суть)
Как Бен Хайлак превратился из скептика в фаната o1, разобравшись, как с ним работать. 12 января 2025
swyx: Мы рады представить наш первый гостевой пост в 2025! Он вызвал бурные обсуждения. gdb, Бен и Дэн активно его обсуждают.
С момента запуска o1 в октябре и анонса o1 pro/o3 в декабре, многие пытались понять, что к чему. Были как позитивные, так и негативные отзывы. Мы заняли позицию оптимистов. Это было в самый разгар негатива вокруг o1 Pro. Мы проанализировали, что нужно OpenAI, чтобы создать продукт за 2000 долларов в месяц. Ходят слухи, что его запустят в ближайшие недели. С тех пор o1 уверенно занимает первое место во всех рейтингах LMArena. Скоро появится управление стилем, как мы обсуждали в подкасте.
Мы следили за работой Бена Хайлака над Apple VisionOS. Пригласили его выступить на Всемирной выставке. Он запустил Dawn Analytics. Продолжил публиковать свои мысли об o1. Сначала он был скептиком, а потом стал постоянным пользователем. Мы любим, когда люди меняют свое мнение. Думаем, такие же разговоры происходят по всему миру. Люди пытаются перейти от чат-парадигмы к новому миру рассуждений. И к профессиональным AI-продуктам за сотни долларов в месяц, таким как Devin (выступал на WF, теперь в общем доступе). Вот наши мысли.
Как я перешел от ненависти к o1 к ежедневному использованию для самых важных вопросов?
Когда анонсировали o1 pro, я сразу подписался. Чтобы оправдать цену в 200 долларов в месяц, он должен экономить 1-2 часа работы инженера в месяц. Чем меньше мы нанимаем в dawn, тем лучше!
Но после целого дня попыток заставить модель работать, я решил, что это мусор. Каждый раз, когда я задавал вопрос, приходилось ждать 5 минут. Меня встречала стена противоречивой тарабарщины с ненужными схемами архитектуры и списками плюсов/минусов. o1 отвечал на мой вопрос, противореча себе несколько раз.
Я написал об этом в Твиттере, и многие согласились. Но, что более интересно, некоторые категорически не согласились. Они были поражены тем, насколько он хорош. Конечно, люди часто хайпят по поводу OpenAI после запусков. Это вторая лучшая стратегия, чтобы стать вирусным, сразу после негатива.
Но здесь было другое – эти отзывы исходили от людей, глубоко погруженных в тему. Чем больше я общался с теми, кто не согласен со мной, тем больше понимал, что я все делаю неправильно. Я использовал o1 как чат-модель, но o1 – это не чат-модель.
Как использовать o1 по полной
Если o1 – это не чат-модель, то что это?
Я думаю о нем как о «генераторе отчетов». Если дать ему достаточно контекста и сказать, какой нужен результат, он часто сразу найдет решение.
swyx: OpenAI публикует советы по запросам к o1. Но мы считаем их неполными. В каком-то смысле эту статью можно рассматривать как «Руководство пользователя» по работе с o1 и o1 pro на практике.
Не пишите запросы; пишите брифы
Дайте много контекста. Сколько бы вы ни думали, что означает «много» – умножайте на 10.
Когда вы используете чат-модель, такую как Claude 3.5 Sonnet или 4o, вы начинаете с простого вопроса и некоторого контекста. Если модели нужно больше контекста, она часто спрашивает об этом. Или это будет очевидно из ответа.
Вы общаетесь с моделью, исправляете ее и уточняете требования. Пока не достигнете желаемого результата. Это похоже на лепку из глины.
Чат-модели вытягивают из вас контекст. Со временем наши вопросы становятся короче и ленивее. Настолько ленивыми, насколько это возможно, чтобы получить хороший ответ.
o1 просто воспринимает ленивые вопросы буквально. И не пытается вытащить из вас контекст. Вместо этого вам нужно дать o1 как можно больше контекста.
Даже если вы задаете простой инженерный вопрос:
- Объясните все, что вы пробовали, и что не сработало.
- Добавьте полную выгрузку всех схем вашей базы данных.
- Объясните, чем занимается ваша компания, насколько она большая. И определите специфические для компании термины.
Короче говоря, относитесь к o1 как к новому сотруднику. Помните, что ошибки o1 включают рассуждения о том, сколько ему нужно рассуждать. Иногда он слишком много думает над простыми задачами.
Примечание: API o1 позволяет указать низкий/средний/высокий уровень reasoning_effort. Но это недоступно пользователям ChatGPT.
Советы, как упростить предоставление контекста o1
Я предлагаю использовать приложение «Голосовые заметки» на вашем Mac/телефоне. Я просто описываю всю проблему в течение 1-2 минут, а затем вставляю эту расшифровку.
У меня есть заметка, где я храню длинные фрагменты контекста для повторного использования.
swyx: Я использую Careless Whisper от Sarav из LS Discord.
ИИ-помощники, которые появляются внутри продуктов, часто могут упростить эту задачу. Например, если вы используете Supabase, попробуйте попросить Supabase Assistant выгрузить/описать все соответствующие таблицы/RPC/и т.д.
swyx: Я бы изменил начало на «потратьте в 10 раз больше времени на подготовку запроса».
Сосредоточьтесь на целях: опишите, ЧТО вы хотите получить, а не КАК
Как только вы загрузили в модель как можно больше контекста, сосредоточьтесь на объяснении того, каким должен быть результат.
С большинством моделей нас учили говорить модели, КАК мы хотим, чтобы она ответила. Например: «Ты опытный инженер-программист. Думай медленно и тщательно».
Это противоположно тому, как я добился успеха с o1. Я не говорю ему, КАК, а только ЧТО. Затем пусть o1 возьмет на себя планирование и решение. Для этого и нужны автономные рассуждения. Это может быть намного быстрее, чем если бы вы вручную проверяли и общались как «человек в цикле».
swyx: Разработка действительно хороших критериев того, что вы считаете «хорошим» и «плохим», помогает вам дать модели способ оценить свой собственный результат и самосовершенствоваться/исправлять свои ошибки. По сути, вы перемещаете LLM-как-судью в запрос и позволяете o1 запускать его при необходимости.
В качестве бонуса это в конечном итоге дает вам оценщиков LLM-как-судью. Вы можете использовать их для Reinforcement Finetuning, когда он будет в общем доступе.
Это требует от вас действительно знать, чего вы хотите. И вам действительно следует запрашивать один конкретный результат на запрос – он может рассуждать только в начале!
Звучит проще, чем есть! Хотел ли я, чтобы o1 реализовал определенную архитектуру в продакшене, создал минимальное тестовое приложение или просто изучил варианты и перечислил плюсы/минусы? Это все совершенно разные запросы.
o1 часто по умолчанию объясняет концепции в стиле отчета – с пронумерованными заголовками и подзаголовками. Если вы хотите пропустить объяснения и вывести готовые файлы – вам нужно явно это сказать.
С тех пор, как я научился использовать o1, я был поражен его способностью генерировать правильный ответ с первого раза. Он действительно лучше во всех отношениях (кроме стоимости/задержки). Вот несколько моментов, которые особенно выделяются:
Знайте, что o1 делает хорошо, а что нет
- Идеально генерирует целые/несколько файлов с первого раза: Это, безусловно, самая впечатляющая способность o1. Я копирую/вставляю кучу кода, кучу контекста о том, что я создаю, и он полностью генерирует весь файл (или файлы!), обычно без ошибок, следуя существующим шаблонам в моей кодовой базе.
- Меньше галлюцинирует: В целом, он просто меньше путает вещи. Например, o1 действительно хорошо справляется со специальными языками запросов (такими как ClickHouse и New Relic). Там, где Claude часто путает синтаксис с Postgres.
- Медицинские диагнозы: Моя девушка – дерматолог, поэтому всякий раз, когда у друга или кого-то из моей большой семьи возникают проблемы с кожей, они обязательно отправляют ей фотографию! Просто для удовольствия я начал параллельно спрашивать o1. Он обычно близок к правильному ответу – может быть, в 3 случаях из 5. Более полезно для медицинских работников – он почти всегда предоставляет чрезвычайно точный дифференциальный диагноз.
- Объяснение концепций: Я обнаружил, что он очень хорошо объясняет очень сложные инженерные концепции с примерами. Это почти как будто он генерирует целую статью. Когда я работаю над сложными архитектурными решениями, я часто прошу o1 сгенерировать несколько планов с плюсами/минусами для каждого. И даже сравнить эти планы. Я копирую/вставляю ответы в PDF и сравниваю их – почти как если бы я рассматривал предложения.
- Бонус: оценки. Я всегда скептически относился к использованию LLM в качестве судьи для оценок. Потому что, в основе своей, модель-судья часто страдает от тех же ошибок, что и то, что генерировало результаты. o1, однако, показывает многообещающие результаты – он часто может определить, является ли генерация правильной или нет, с очень небольшим контекстом.
- Пишет в определенных голосах/стилях: Нет, я не использовал o1 для написания этого поста :) Я обнаружил, что он довольно плохо пишет что-либо, особенно в определенных голосах или стилях. У него очень академический/корпоративный стиль отчета, которому он хочет следовать. Я думаю, что есть так много токенов рассуждений, смещающих тон в этом направлении, что очень трудно от него избавиться.
- Создание целого приложения: o1 потрясающе хорош в создании целых файлов с первого раза. Тем не менее, несмотря на некоторые… оптимистичные… демо, которые вы могли видеть в Твиттере, o1 не создаст для вас весь SaaS. По крайней мере, не без большого количества итераций. Но он может создавать целые функции с первого раза. Особенно, если это фронтенд или простые бэкенд функции.
В стороне: проектирование интерфейсов для генераторов отчетов
Задержка фундаментально меняет наше восприятие продукта.
swyx: мы согласны – сейчас распространены 6 уровней задержки ИИ.
Рассмотрим различия между почтой, электронной почтой и текстовыми сообщениями – это в основном просто задержка. Голосовое сообщение против телефонного звонка – задержка. Видео против Zoom – задержка. И так далее.
Я называю o1 «генератором отчетов», потому что это явно не чат-модель – он больше похож на электронную почту.
Это еще не проявилось в дизайне продукта o1. Я хотел бы видеть дизайн, более честно отражающий интерфейс.
Вот несколько советов по UX для всех, кто создает продукты на основе o1:
- Упростите просмотр иерархии ответа (подумайте о мини-оглавлении).
- Аналогично, сделайте иерархию более удобной для навигации. Поскольку каждый запрос обычно больше высоты окна, я бы использовал подход, подобный Perplexity. Где каждая страница вопроса/ответа получает раздел, а не свободную прокрутку. Внутри ответа такие вещи, как закрепленные заголовки, сворачиваемые заголовки и т.д., действительно могут помочь.
- Упростите управление и просмотр контекста, который вы предоставляете модели. (По иронии судьбы, пользовательский интерфейс Claude справляется с этим гораздо лучше – когда вы вставляете длинный текст, он отображается как небольшое вложение). Я также считаю, что проекты ChatGPT работают не так хорошо, как Claude, поэтому я много копирую и вставляю.
Заметка: Отдельно ChatGPT ДЕЙСТВИТЕЛЬНО глючит, когда дело доходит до o1. Описания рассуждений комичны, он часто вообще не генерирует, и чаще всего не работает в мобильном приложении.
Что дальше?
Мне очень интересно посмотреть, как эти модели будут использоваться на практике. Я думаю, что o1 сделает возможными определенные продукты впервые. Например, продукты, которые могут выиграть от высокой задержки, длительного фонового интеллекта.
Какие задачи пользователь готов ждать 5 минут? Час? День? 3-5 рабочих дней?
Много, я думаю, если это правильно спроектировано.
По мере того, как модели становятся дороже, экспериментирование становится труднее оправдать. Легче, чем когда-либо, потратить тысячи долларов всего за несколько минут.
o1-preview и o1-mini поддерживают потоковую передачу, но не поддерживают структурированную генерацию или системные запросы. o1 поддерживает структурированную генерацию и системные запросы, но пока не поддерживает потоковую передачу.
Учитывая, сколько времени занимает ответ, потоковая передача кажется необходимой.