Когда Натан Собо намеревался построить редактор кода ZED, у него была простая, но амбициозная цель: сделать его быстрым и веселым.
Zed Industries (ZED, для краткости) создает то, что он ожидает самого быстрого в мире текстового редактора для гиперреактивного и совместного опыта кодирования. Он предлагает инструменты для нативной поддержки отладки на нескольких языках, агентского редактирования и редактирования прогнозирования, а на дорожной карте запланировано больше функций.
Редактор кода ZED и его возможности ИИ являются открытым исходным кодом, в том числе Zeta, модель Open Language (LLM), которая поддерживает прогноз Zed от редактирования.
Производительность — это ключ
«Вы нажимаете ключ или взаимодействуете с приложением каким -либо образом, и у нас есть пиксели, доступные для вас с нулевым ощутимым отставанием», — сказал Собо в новом стеке. «Ноль ощутимой лаг означает, что мы нуждаемся в следующем обновлении вашего монитора».
Такая производительность казалась невозможной в эпоху, когда большинство редакторов кода построены на веб -технологиях. Но Собо, который ранее руководил проектом Atom’s Github, точно знал, почему этот подход не сработает. «Вы никогда не собираетесь делать это с JavaScript», — сказал он прямо.
Тем не менее, через три года после основания Zed Industries в 2021 году компания построила IDE с ржавчиной, которая привлекает десятки тысяч разработчиков с сочетанием нативных производительности и функций сотрудничества в реальном времени. Но по мере того, как возможности ИИ стали «табличными ставками» для инструментов разработчиков, Зед столкнулся с новой проблемой в том, как доставить завершение кода с AI, которое соответствовало его философии с нулевой задержкой.
По словам Собо, решение было принято через партнерство, которое преобразовало инфраструктуру вывода всего за одну неделю.
Задача интеграции AI
К 2024 году Zed создал прочную основу для редактора компании, первого результата, но он знал, что функции искусственного интеллекта становятся важными. «Новые функции, поступающие из языковых моделей и революция в языковых моделях, становятся в значительной степени столовые ставки и ожидают в рамках опыта того, что значит писать программное обеспечение», — сказал Собо новый стек в проницательном обмене.
Компания разработала «Редактировать прогноз» — функцию искусственного интеллекта, основанную на модели Zeta, которая предвидит то, что разработчики хотят делать дальше, и предлагает изменения в режиме реального времени. Построенная на серии моделей с открытым исходным кодом, система использует методику, называемую спекулятивным декодированием для оптимизации для конкретного случая редактирования кода.
«Идея редактирования подразумевает, что большая часть текста неизменна, но несколько частей можно изменить», — пояснил Собо. «То, что делает спекулятивное декодирование, это говорит о том, что каждый раз, когда мы получаем пробег токенов из модели, которая соответствует тому, что на входе, почему бы нам просто не предположить, что мы будем продолжать соответствовать ей немного дольше и бежать вперед».
Тем не менее, благодаря своему запуску, установленным всего через неделю, существующий поставщик выводов Zed не обеспечивал необходимую производительность компании, сказал Собо.
Они отсутствовали критические цели: задержка P90 до 500 мс и P50 до 200 мс. Хуже того, поставщик предложил ограниченную вычислительную мощность, без поддержки многорегиона и то, что Собо называет подходом «черного ящика», который противоречит значениям с открытым исходным кодом Зеда.
«Они были очень своего рода под ключ в природе», — сказал Собо.
По его словам, с открытым исходным кодом в качестве одного из основных ценностей Zed хотел больше видимости в том, что стимулировало его модель, чтобы команда могла вырастить свой опыт и найти итеративные улучшения, отметил он.
Инженерное партнерство
Введите Baseten, поставщика платформы вывода, который использовал другой подход. Вместо услуги по делам, он развернул вперед инженеров непосредственно к проблеме Зеда. Через несколько дней команда проверила более 75 различных оптимизаций производительности.
«Басетен появился с выдающимся уровнем взаимодействия», — сказал Собо. «Они велись с инженерией и велись с компетентностью.… Смотрение их прохождением кривой, откуда они были, что похоже на:« Эй, я люблю вас, как люди, мне нравится, как вы появляетесь, но число не подходит », — поверьте нам, мы сделаем этот номер, мы переместим его туда, где он должен быть вовремя для вашего срока». А потом увидев, что они делают это, это довольно допинг ».
Техническое решение включало структуру Tensorrt-LLM вместо VLLM в качестве структуры вывода; КВ-кэширование и настраиваемое спекулятивное декодирование для массового уменьшения задержки; Lookahead Decoding для более высокой пропускной способности; и управление мощностями с мультикозом с гео-осторожным маршрутизацией. Команда также настроена на заказ настраивающих настроек, чтобы обеспечить оптимальное использование ресурсов при сохранении низкой задержки.
«Получение их прямой, практической помощи, на самом деле получение этой модели, которую мы разработали, развернувшись, выполняя спекулятивное декодирование, было супер-ключом»,-отметил Собо. «Мы очень люди процессора. Когда мы касаемся графического процессора, это запускать графические шейдеры, верно?
Результаты: 2x улучшение производительности
Партнерство дало результаты, которые превысили первоначальные цели Зеда:
- На 45% меньше задержки P90
- 3,6 раза выше пропускной способности
- 100% времени безотказной работы
- Более чем в 2 раза быстрее отредактировать прогноз по сравнению с его предыдущим поставщиком
Кроме того, миграция была бесшовной, сказал Собо. Поскольку Baseten поддерживал совместимость с Openai, Zed перенесла весь свой трафик в течение одного дня без необходимости изменений кода.
Более того, улучшения производительности не остановились при запуске. Команда Baseten продолжила итерацию, в конечном итоге отправив собственный метод декодирования «Baseten Lookahead», который побрил сотни дополнительных миллисекундов от времени прогнозирования.
Помимо исполнения: матч философии
Для Собо технические достижения были только частью истории. Партнерство также было уроком в том, как компании должны работать вместе.
«У вас есть это конечное количество времени на этой планете. И с кем я хочу потратить это время на общение?» он сказал. «Эти ребята только что появились так, чтобы я почувствовал, что мне нравятся эти парни, как будто я действительно хочу вести с ними дело. И это была главная проблема».
Эта философия распространяется на то, как Собо думает обо всем ландшафте инструментов разработчиков. В то время как Zed напрямую конкурирует с VS -кодом для отдельных разработчиков, Sobo имеет еще большие амбиции: преобразование того, как сотрудничают команды программного обеспечения.
«GIT — это буквально инструмент, который Linus Torvalds предназначен для управления патчами, которые отправлялись по почте в список рассылки Linux ядра», — отметил он. «Это буквально инструмент, разработанный по электронной почте».
По словам Собо, видение Зеда включает в себя в режиме реального времени, мелкозернистого сотрудничества, которое выходит далеко за рамки традиционных рабочих процессов на основе коммит. Например, представьте, что вы можете подчеркнуть код и мгновенно подключиться к тому, кто его написал, или на постоянных разговорах, которые переживают изменения кода и рефакторинг, добавил он.
«Таким образом, это видение долгосрочно поесть на рынок сотрудничества программного обеспечения, но пляжный голов, который мы пытаемся получить,-это просто заставлять разработчиков, используя наш инструмент, как только мы утверждаем эту недвижимость»,-добавил он.
Фундамент ржавчины
Ничто из этого не было бы возможно без основополагающего выбора Зеда для строительства в ржавчине. Когда Собо начал проект в 2018-2019 годах, он не увидел альтернативы для производительности системного уровня, которую он требовал.
«Вам нужен язык системного программирования, чтобы реализовать что -то из сложности редактора, если вы хотите, чтобы он действительно был отзывчивым», — пояснил он.
«Таким образом, с ZED, после опыта работы с атомом и построения на веб -технологии, создание веб -страницы, маскирующегося как настольное приложение — именно это и все эти электронные приложения — я знал, что веб -технологии никогда не доведут меня до уровня отзывчивости, который я действительно хотел.
«Вы не собираетесь делать это с помощью JavaScript, когда -либо. Например, вам нужен контроль над памятью, многопоточную, общую память по нескольким темам, и то, что предлагает Rust, это способность делать все это при сохранении многих преимуществ производительности некоторых из этих более управляемых языков, таких как JavaScript — более медленнее, чем на типоппид, я не буду, но это не так, как не так, как не более сложив, а не только что -то, что более C ++ или C для нас, он исключает большие категории вещей, которые могут пойти не так, статически ».
По словам Собо, у Zed есть база с открытым исходным кодом, в котором многие люди вносят «повсюду».
И «делая это в мире, где вы можете реализовать бесплатное использование или нет поддержки компилятора для избежания некоторых из этих очень трудно [bugs] … Сделал бы Зед с небольшой командой, невозможно построить, тогда как Руст сделала это возможным ».
ИИ без интеллектуальной лени
По мере того, как инструменты искусственного интеллекта становятся более мощными, Sobo разработала представления о том, как эффективно их использовать. Он сказал, что он является тяжелым пользователем ИИ по кодированию, часто переключаясь между моделями для различных задач — используя более легкие модели для исследования кодовой базы, а затем переключение на более мощные модели для сложной работы по реализации.
Но он опасается того, что он называет «интеллектуальной лень».
Сказал Собо: «Если бы вы могли буквально войти в три подсказки и сделать посуду, пока рвет эту штуку, это так ценно?
Эта философия отражает его подход к созданию самого ZED — используйте каждый доступный инструмент, но никогда не упускайте из виду цель создания лучших систем.
Что дальше?
Между тем, благодаря оптимизированной инфраструктуре ИИ и растущей пользовательской базой, ZED сталкивается с проблемой любого инструмента разработчика: полноты функции. Редактору по -прежнему не хватает поддержки Windows, которая генерировала постоянные запросы от пользователей. И компания работает над расширением возможностей отладки инструмента и других предметов первой необходимости IDE, сказал он.
Тем не менее, Собо сказал, что он по-прежнему сосредоточен на долгосрочном видении преобразования сотрудничества разработчиков. Недавняя работа компании возродила ранние функции сотрудничества, с планами постоянного кода постоянного значения, общего редактирования в реальном времени и то, что Собо называет «уровнями метаданных» поверх кода, которые могут захватить разговоры человека и ИИ.
«Таким образом, это чувство, как код, где мы вместе общаемся, как люди, которые дружат в« World of Warcraft », как будто они тусуются вместе во вселенной World of Warcraft», — сказал Собо. «Я никогда не играл в это. Для меня моя вселенная World of Warcraft — это кодовая база ZED, где я общаюсь со своими друзьями и говорю о коде, рассказываю об изменениях», — сказал он, описывая, как уже работает распределенная команда Zed. Цель состоит в том, чтобы масштабировать этот опыт для более широкого сообщества разработчиков.
Партнерство Baseten доказало, что когда речь заходит о критически важной инфраструктуре, инженерные отношения могут обеспечить преобразующие результаты.
Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Дэррил К. Тафт охватывает DevOps, инструменты разработки программного обеспечения и проблемы, связанные с разработчиком из своего офиса в районе Балтимора. Он имеет более чем 25 -летний опыт работы в бизнесе и всегда ищет следующий совок. Он работал … читайте больше от Дэррила К. Тафта