Заметки LLM-энтузиаста
390 subscribers
125 photos
14 videos
1 file
150 links
Дмитрий Жечков @djdim
архитектор в Yandex Cloud,
ex. VMware NSX specialist, ex. Cisco SE

Здесь пишу свои заметки по LLM (большим языковым моделям) и LLM-разработке.

Это личное мнение и не отражает официальную позицию компании, в которой я работаю.
Download Telegram
Как устроен Cursor: технические детали от создателей 🔧

Вчера прочитал очень интересное интервью с основателем Cursor. Интервью содержит множество деталей внутреннего устройства самого популярного AI-кодера, и с моей точки зрения будет интересно практически каждому.

Ниже мой краткий конспект.

Полная оригинальная версия здесь.
Перевод на русский язык: часть 1 | часть 2

Cursor — AI-редактор кода, который за год вырос в 100 раз по нагрузке и обрабатывает более 1 млн запросов в секунду. Сооснователь Суалех Асиф рассказал об используемых технических решениях.

Цифры проекта 📊

• 50 инженеров в команде
• 1M+ транзакций в секунду в пике
• 100x рост пользователей за 12 месяцев
• $500M+ годовая выручка
• Миллиард строк кода пишется ежедневно

Технический стек 💻

Клиент:
• TypeScript — основная логика
• Electron — форк VS Code
• Rust — производительные компоненты

Бэкенд:
• TypeScript + Rust
• Монолитная архитектура
• Node API для связи с Rust

Базы данных:
• Turbopuffer — хранение зашифрованных файлов
• Pinecone — векторная БД для документации

Инфраструктура:
• AWS + Azure для вычислений
• Десятки тысяч NVIDIA H100 GPU
• Terraform для управления инфраструктурой

Как работает автодополнение ⚡️

1️⃣ Клиент собирает контекст кода локально 2️⃣ Код шифруется и отправляется на сервер 3️⃣ Сервер расшифровывает и генерирует предложение 4️⃣ Предложение возвращается в IDE 5️⃣ Пользователь принимает через Tab

Ключевая задача — минимизировать задержки при максимальном качестве предложений.

Чат без хранения кода 🔒

Cursor не хранит исходный код на серверах, используя умную систему индексации:

Создание индексов:
• Код разбивается на чанки
• Создаются эмбеддинги без сохранения имен файлов
• Используются обфусцированные названия

Поиск по коду:
• Векторный поиск по эмбеддингам
• Запрос нужных файлов с клиента
• Анализ и ответ на основе контекста

Синхронизация через Merkle Trees:
• Каждые 3 минуты сравнение деревьев клиент-сервер
• Переиндексация только измененных файлов
• Эффективное использование ресурсов

Anyrun: оркестратор агентов 🤖

Написанный на Rust сервис для запуска AI-агентов в облаке:

• AWS EC2 — для корпоративных клиентов
• AWS Firecracker — микро-ВМ с запуском за 125мс
• Изоляция процессов — безопасность на уровне ВМ
• Снапшоты — сохранение состояния для быстрого восстановления

Инженерные вызовы 🚧

Проблемы масштабирования:
• Рост использования в 100 раз за год
• Миллиарды эмбеддингов ежедневно
• Один из крупнейших клиентов OpenAI

Проблема холодного старта:
• При падении всех нодов перезапуск критичен
• Нужно контролировать трафик при восстановлении
• Приоритизация пользователей во время инцидентов

Шардинг и его сложности:
• Ручное разделение индексов в Pinecone
• Недоиспользование ресурсов (30% простоя)
• Сложные миграции между шардами

Миграции баз данных 🔄

От Yugabyte к PostgreSQL:
• Yugabyte не справлялся с нагрузкой
• Долгие транзакции в распределенной системе
• PostgreSQL на AWS RDS решил проблемы

От PostgreSQL к Turbopuffer:
• 22TB данных в RDS достигли лимитов
• Особенности VACUUM в PostgreSQL
• Экстренная миграция за 10 часов во время инцидента

Культура разработки 👥

Релизы:
• Каждые 2-4 недели (десктопное приложение)
• Консервативные feature flags
• Тщательное тестирование перед выпуском

Команда:
• 15 инженеров в инфраструктурной команде
• Культура экспериментов
• Использование собственного продукта

Будущие вызовы:
• Масштабирование reinforcement learning
• Тысячи GPU для обучения
• Сложная архитектура с множеством компонентов

Выводы 💡

• Небольшие команды могут превосходить гигантов при правильном подходе
• Облачные провайдеры критичны для быстрого масштабирования
• Надо быть очень осторожными с использованием стартап-продуктов в инфраструктуре - лучше доверять гиперскейлерам
• Создание продукта для собственной аудитории упрощает разработку

Cursor своим примером показывает, как 50 инженеров могут конкурировать с Microsoft и GitHub, фокусируясь на потребностях разработчиков.

@llm_notes

#cursor #vibecoding #tech_architecture #startup_scaling