Forwarded from whargarbl
Simple Diffusion Status
В пятый раз сменил механику ембедингов
Вопреки расхожему заблуждению пулед ембединги дают полную инфу о изображении а не только стиль - пруф - обучка только на пулед https://huggingface.co/AiArtLab/sdxs/blob/main/media/promo.png
Обучка на хайден слое - в противовес - теряет информацию о форме изображения. Те обучая на токенах собака // лежит // трава - мы обучаем как бы отдельно и собаку и лежит и трава
Проблема:
Пулед дает композицию но не содержит файн детайлс
Хайден теряют композицию и взаимосвязь между токенами
Также пулед в отличие от хайден дает мультиязычность. В пулед слое dog и собака - это вектора которые смотрят в одном и том же напрвлении. Но на уровне токенов - это уже разные вектора (сюрприз)
В четвертой иттерации я сделал их объединение штатным механизмом дифузерс - пулед был добавлен как доп слой текстовых ембедингов в кросс-этеншен
Тренилось хреново. Я заглянул под капот и с удивлением обнаружил линейную проекцию. Проще говоря тончайшую материю сжатого представления о тексте а очередной кастрировали топором
Пришлось придумать свою имплементацию - простую как палка - эффективную как стрела. Пулед кладу в нулевой токен. Теперь ембединг выглядит так:
- собака лежит на траве
- собака
- лежит
- трава
Обучка пошла сразу сильно веселее. Вернулась композиция. Вернулась мультиязычность и мелкие детали
Лосс падает // град не колосится
https://huggingface.co/AiArtLab/sdxs/blob/main/media/result_grid.jpg
Такой день
ЗЫ Брюллов работал над "Последний день Помпеи" - 6 лет
Художник не считал картину завершенной до тех пор пока ему не удалось добавить в картину глубину. Те вот типа все персонажи уже были прорисованы и драма вроде как на месте, но глубины не было. По легенде финальным штрихом стало добавления игры света и тени для камней на мостовой. Так вот - соединение пулед и хайден ембедов дает "глубину". Посмотрите на шлем астронавта в космосе - он трехмерный. Вот что важно
https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D0%B9_%D0%B4%D0%B5%D0%BD%D1%8C_%D0%9F%D0%BE%D0%BC%D0%BF%D0%B5%D0%B8
В пятый раз сменил механику ембедингов
Вопреки расхожему заблуждению пулед ембединги дают полную инфу о изображении а не только стиль - пруф - обучка только на пулед https://huggingface.co/AiArtLab/sdxs/blob/main/media/promo.png
Обучка на хайден слое - в противовес - теряет информацию о форме изображения. Те обучая на токенах собака // лежит // трава - мы обучаем как бы отдельно и собаку и лежит и трава
Проблема:
Пулед дает композицию но не содержит файн детайлс
Хайден теряют композицию и взаимосвязь между токенами
Также пулед в отличие от хайден дает мультиязычность. В пулед слое dog и собака - это вектора которые смотрят в одном и том же напрвлении. Но на уровне токенов - это уже разные вектора (сюрприз)
В четвертой иттерации я сделал их объединение штатным механизмом дифузерс - пулед был добавлен как доп слой текстовых ембедингов в кросс-этеншен
Тренилось хреново. Я заглянул под капот и с удивлением обнаружил линейную проекцию. Проще говоря тончайшую материю сжатого представления о тексте а очередной кастрировали топором
Пришлось придумать свою имплементацию - простую как палка - эффективную как стрела. Пулед кладу в нулевой токен. Теперь ембединг выглядит так:
- собака лежит на траве
- собака
- лежит
- трава
Обучка пошла сразу сильно веселее. Вернулась композиция. Вернулась мультиязычность и мелкие детали
Лосс падает // град не колосится
https://huggingface.co/AiArtLab/sdxs/blob/main/media/result_grid.jpg
Такой день
ЗЫ Брюллов работал над "Последний день Помпеи" - 6 лет
Художник не считал картину завершенной до тех пор пока ему не удалось добавить в картину глубину. Те вот типа все персонажи уже были прорисованы и драма вроде как на месте, но глубины не было. По легенде финальным штрихом стало добавления игры света и тени для камней на мостовой. Так вот - соединение пулед и хайден ембедов дает "глубину". Посмотрите на шлем астронавта в космосе - он трехмерный. Вот что важно
https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D0%B9_%D0%B4%D0%B5%D0%BD%D1%8C_%D0%9F%D0%BE%D0%BC%D0%BF%D0%B5%D0%B8
Forwarded from whargarbl
Пост про предвзятость в исследованиях, кризис воспроизводимости
https://t.iss.one/Fourier_series/687
Ну типа есть проблемки как с предвзятостью так и с воспроизводимостью
Или вот про психологию занятно:
Предвзятость + кривые методологии + смешные приземленные вещи, типа:
Моя любимая часть про космические корабли:
Ну типа на arXiv то нет вот этих жалких проблем - ни кривых методологий, ни подогнанных метрик. И тщеславие там чуждо, и бабки не нужны
Так мы до двача для статей докатимся
https://t.iss.one/Fourier_series/687
Ну типа есть проблемки как с предвзятостью так и с воспроизводимостью
Из 53 знаковых исследований в онкологии воспроизвелись 6
Или вот про психологию занятно:
Вот две опорные работы. Если очень коротко, что произошло:
— Часть экспериментов психологов, на которых строится вся наука, нельзя повторить с тем же результатом. В других науках обычно можно, и это и делает науку наукой.
— Почему? Потому что психологи оказались самыми предвзятыми по каким-то причинам.
Предвзятость + кривые методологии + смешные приземленные вещи, типа:
— Выборочное сообщение — исследователи публикуют только положительные результаты, скрывая отрицательные или неубедительные находки. По опросам больше 30% исследователей признали участие в такой фигне из тщеславия.
— Принцип сисек (если оно сразу большое и красивое, возможно, силикон SOTA!!!11) — журналы значительно чаще публикуют работы с интересными результатами, чем исследования, которые не выявили эффектов.
— Правило бабок. Продвижение по карьере, получение грантов и репутация зависят в первую очередь от количества публикаций.
Моя любимая часть про космические корабли:
Open Science platforms, such as arXiv and bioRxiv, enable researchers to share their findings before formal peer review. This not only accelerates the dissemination of knowledge but also invites constructive criticism, improving the quality of research.
Ну типа на arXiv то нет вот этих жалких проблем - ни кривых методологий, ни подогнанных метрик. И тщеславие там чуждо, и бабки не нужны
Так мы до двача для статей докатимся
Telegram
Ряды Фурье
Как-то @Achisov с канала @bayesyatinaa про рациональное мышление напомнил про кризис воспроизводимости в психологии.
Вот две опорные работы. Если очень коротко, что произошло:
— Часть экспериментов психологов, на которых строится вся наука, нельзя повторить…
Вот две опорные работы. Если очень коротко, что произошло:
— Часть экспериментов психологов, на которых строится вся наука, нельзя повторить…
Forwarded from От убеждений к реальности
Старческий бубнеж
#книги #наблюдение #распределенные_системы
Сейчас провожу очень много собеседований, стандартных слотов в количестве 7 в неделю не хватает, иногда доходит до 3–4 собеседований в день. И очень редко, когда получается выйти с собеседования с чувством, что кандидат клевый, надо брать. Анекдот ситуации в том, что у меня сейчас вакансий руководителей (разных уровней) больше, чем вакансий разработчиков (они очень хорошо закрылись). Т. е. собеседую не новичков, а людей с опытом в разработке, с опытом в руководстве командами. Отдельная боль - это собеседование архитекторов. Помните анекдот про мышек, которым сова советовала стать ежиками? Вот именно такие «совы» и приходят. Не знают базовых вещей, при этом в послужном списке имеют по куче лет на должностях типа «ведущий архитектор», «главный архитектор». И не могут объяснить, синхронный или асинхронный способ взаимодействия использовать в той или иной ситуации. Ну как так-то? А если в задаче попадается что-то, что требует подумать про идемпотентную обработку, то хорошо, если предлагаю ключ идемпотентности, при этом большинство забывают его куда-нибудь прикопать. В общем, впереди новогодние праздники, давайте я в вас кину подборкой рекомендаций к чтению, которую я даю после своего курса по распределенным системам:
1. Мартин Фаулер. Тык, например, про переписывание легаси — тык.
2. Крис Ричардсон. Тык.
3. От Microsoft. Тык.
4. Конечно же, Эванс. Тык. Очень полезно для думания о декомпозиции систем.
5. Распределенные системы. Тык. Про всякие локальные паттерны (сайдкары, амбасадоры) с примерами реализации.
6. Книжка — аналог того, чем мы занимаемся на курсе. Тык.
7. Книжка про задачу, которую мы решаем на самостоятельной работе (ну ладно, не прям про такую, но очень похожую). Тык.
8. Альтернативное решение задачи с самостоятельной работы. Тык.
P. S. Заполняю отзывы по собеседованиям, что-то накипело.
#книги #наблюдение #распределенные_системы
Сейчас провожу очень много собеседований, стандартных слотов в количестве 7 в неделю не хватает, иногда доходит до 3–4 собеседований в день. И очень редко, когда получается выйти с собеседования с чувством, что кандидат клевый, надо брать. Анекдот ситуации в том, что у меня сейчас вакансий руководителей (разных уровней) больше, чем вакансий разработчиков (они очень хорошо закрылись). Т. е. собеседую не новичков, а людей с опытом в разработке, с опытом в руководстве командами. Отдельная боль - это собеседование архитекторов. Помните анекдот про мышек, которым сова советовала стать ежиками? Вот именно такие «совы» и приходят. Не знают базовых вещей, при этом в послужном списке имеют по куче лет на должностях типа «ведущий архитектор», «главный архитектор». И не могут объяснить, синхронный или асинхронный способ взаимодействия использовать в той или иной ситуации. Ну как так-то? А если в задаче попадается что-то, что требует подумать про идемпотентную обработку, то хорошо, если предлагаю ключ идемпотентности, при этом большинство забывают его куда-нибудь прикопать. В общем, впереди новогодние праздники, давайте я в вас кину подборкой рекомендаций к чтению, которую я даю после своего курса по распределенным системам:
1. Мартин Фаулер. Тык, например, про переписывание легаси — тык.
2. Крис Ричардсон. Тык.
3. От Microsoft. Тык.
4. Конечно же, Эванс. Тык. Очень полезно для думания о декомпозиции систем.
5. Распределенные системы. Тык. Про всякие локальные паттерны (сайдкары, амбасадоры) с примерами реализации.
6. Книжка — аналог того, чем мы занимаемся на курсе. Тык.
7. Книжка про задачу, которую мы решаем на самостоятельной работе (ну ладно, не прям про такую, но очень похожую). Тык.
8. Альтернативное решение задачи с самостоятельной работы. Тык.
P. S. Заполняю отзывы по собеседованиям, что-то накипело.
Forwarded from Hans I
Кажется, еще инсайдов может подкинуть чтение https://www.labirint.ru/books/537961/ где описывается уже порядком подзабытая лямбда-архитектура
www.labirint.ru
Книга: Большие данные. Принципы и практика построения масштабируемых систем обработки данных - Марц, Уоррен. Купить книгу, читать…
Книга: Большие данные. Принципы и практика построения масштабируемых систем обработки данных (Big Data. Principles And Best Practices Of Scalable Real-Time Data Systems).📙 Автор: Марц, Уоррен. Аннотация, 🔝 отзывы читателей, иллюстрации. Купить книгу по привлекательной…
Forwarded from Artem Ryblov’s Data Science Weekly
Deep Learning Tuning Playbook by Google
This document helps you train deep learning models more effectively. Although this document emphasizes hyperparameter tuning, it also touches on other aspects of deep learning training, such as training pipeline implementation and optimization.
This document assumes your machine learning task is either a supervised learning problem or a similar problem (for example, self-supervised learning) That said, some of the advice in this document may also apply to other types of machine learning problems.
Links:
- GitHub
- Site
Navigational hashtags: #armknowledgesharing #armtutorials
General hashtags: #dl #deeplearning #google
@data_science_weekly
This document helps you train deep learning models more effectively. Although this document emphasizes hyperparameter tuning, it also touches on other aspects of deep learning training, such as training pipeline implementation and optimization.
This document assumes your machine learning task is either a supervised learning problem or a similar problem (for example, self-supervised learning) That said, some of the advice in this document may also apply to other types of machine learning problems.
Links:
- GitHub
- Site
Navigational hashtags: #armknowledgesharing #armtutorials
General hashtags: #dl #deeplearning #google
@data_science_weekly
Forwarded from commit history
Открыл сегодня x и увидел пару постов на 100k+ просмотров про статью Recursive Language Models
Суть такая. Вместо того чтобы запихивать всё в контекст, предлагают относиться к проблеме длинного контекста как к software engineering задаче. Дать LLM инструменты вроде поиска по регуляркам, чтобы она сама обрабатывала контекст, плюс инструмент для запросов в LLM, чтобы параллельно гонять сабагентов. Идейно – обычный агент (codex/claude-code/итд) просто теперь вместо репозитория нужно искать агент работает по большому txt. Приложил картинку из статьи, очень наглядная.
Сразу после статьи вышел блогпост от PrimeIntellect (очень бодрые ребята, много делают для agentic rl и хайпуют в x). Они делали эксперименты на эту же тему и показали больше ablations, плюс небольшие улучшения вроде: а давайте инструменты будут доступны только сабагентам, чтобы не раздувать контекст основной LLM.
Мои мысли такие:
1. Мне казалось, что все deep research агенты и так работают примерно так? Саша Абрамов @dealerAI вроде писал много про инжиниринг контекста, память итп.
2. По ablations у PrimeIntellect видно, что на двух бенчмарках есть просадка, но это похоже на проблему скаффолдинга, значит лечится обучением.
3. Такой swe-agentic подход хорошо подходит для needle-in-a-haystack задач, когда в массиве текста есть атомарные факты, их нужно найти и обработать. А вот для неявной и глубокой семантики, где на текст нужно смотреть как бы сверху, кажется, уже не очень.
4. Такой swe-agentic подход удобно заводить под rl: есть multi-turn, удобнее суммаризации, инфраструктура для обучения у многих уже есть из-за расцвета RLVR. И в отличие от SWE задач не нужно 100500 разных sandbox-контейнеров под каждую задачу.
5. По названию Recursive Language Models кажется, что это про архитектуру моделей и прочее, а не про простой цикл. Но это мб только для меня так.
сама статья https://arxiv.org/abs/2512.24601v1
блогпост PrimeIntellect https://www.primeintellect.ai/blog/rlm
Твит автора https://x.com/a1zhang/status/2007198916073136152
P.S. Кстати, датасет с траекториями https://t.iss.one/c0mmit/88, про который я писал на прошлой неделе сидит в первой десятке trending huggingface с >100 лайков.
Суть такая. Вместо того чтобы запихивать всё в контекст, предлагают относиться к проблеме длинного контекста как к software engineering задаче. Дать LLM инструменты вроде поиска по регуляркам, чтобы она сама обрабатывала контекст, плюс инструмент для запросов в LLM, чтобы параллельно гонять сабагентов. Идейно – обычный агент (codex/claude-code/итд) просто теперь вместо репозитория нужно искать агент работает по большому txt. Приложил картинку из статьи, очень наглядная.
Сразу после статьи вышел блогпост от PrimeIntellect (очень бодрые ребята, много делают для agentic rl и хайпуют в x). Они делали эксперименты на эту же тему и показали больше ablations, плюс небольшие улучшения вроде: а давайте инструменты будут доступны только сабагентам, чтобы не раздувать контекст основной LLM.
Мои мысли такие:
1. Мне казалось, что все deep research агенты и так работают примерно так? Саша Абрамов @dealerAI вроде писал много про инжиниринг контекста, память итп.
2. По ablations у PrimeIntellect видно, что на двух бенчмарках есть просадка, но это похоже на проблему скаффолдинга, значит лечится обучением.
3. Такой swe-agentic подход хорошо подходит для needle-in-a-haystack задач, когда в массиве текста есть атомарные факты, их нужно найти и обработать. А вот для неявной и глубокой семантики, где на текст нужно смотреть как бы сверху, кажется, уже не очень.
4. Такой swe-agentic подход удобно заводить под rl: есть multi-turn, удобнее суммаризации, инфраструктура для обучения у многих уже есть из-за расцвета RLVR. И в отличие от SWE задач не нужно 100500 разных sandbox-контейнеров под каждую задачу.
5. По названию Recursive Language Models кажется, что это про архитектуру моделей и прочее, а не про простой цикл. Но это мб только для меня так.
сама статья https://arxiv.org/abs/2512.24601v1
блогпост PrimeIntellect https://www.primeintellect.ai/blog/rlm
Твит автора https://x.com/a1zhang/status/2007198916073136152
P.S. Кстати, датасет с траекториями https://t.iss.one/c0mmit/88, про который я писал на прошлой неделе сидит в первой десятке trending huggingface с >100 лайков.
Forwarded from Диджитализируй!
Бизнес-логика в dataclass, pydantic, attrs-классах или в обычных классах? ООП в Python
YouTube | VK | RuTube | Дзен
00:00:00 В каких классах вы пишете бизнес-логику?
00:00:57 Бизнес-логика в обычном классе
00:04:53 Класс сам поддерживает свои инварианты и правила
00:07:13 Бизнес-логика в dataclass
00:08:14 Мой курс «Хардкорная веб-разработка»
00:10:19 Бизнес-логика в dataclass
00:11:09 Проблемы с dataclass
00:16:10 Почему эти проблемы возникают?
00:16:39 dataclass для Value Objects
00:19:30 dataclass для DTO
00:20:53 Бизнес-логика в pydantic-классе
00:22:02 Бизнес-логика в attrs-классе
00:23:57 Резюмируем
YouTube | VK | RuTube | Дзен
00:00:00 В каких классах вы пишете бизнес-логику?
00:00:57 Бизнес-логика в обычном классе
00:04:53 Класс сам поддерживает свои инварианты и правила
00:07:13 Бизнес-логика в dataclass
00:08:14 Мой курс «Хардкорная веб-разработка»
00:10:19 Бизнес-логика в dataclass
00:11:09 Проблемы с dataclass
00:16:10 Почему эти проблемы возникают?
00:16:39 dataclass для Value Objects
00:19:30 dataclass для DTO
00:20:53 Бизнес-логика в pydantic-классе
00:22:02 Бизнес-логика в attrs-классе
00:23:57 Резюмируем
Forwarded from Айтигребец
Онлифанс напрягся 👸
Две новости одного дня, которые безусловно порадуют скамеров со всего мира.
1) Недавно нейронку Kling обновили до версии 2.6, значительно улучшив захват движений. Теперь внешность можно изменить одним кликом, и результат почти неотличим от реальности.
2) Microsoft выложили нейронку VibeVoice-1.5B (MIT), которая клонирует любой голос идеально, и это абсолютно бесплатно. Генерирует до 90 минут аудио за один раз и поддерживает до четырех голосов в одном диалоге.
На сайтике можно потыкать в экзамплы.
Уъ...
Айтигребец
Две новости одного дня, которые безусловно порадуют скамеров со всего мира.
1) Недавно нейронку Kling обновили до версии 2.6, значительно улучшив захват движений. Теперь внешность можно изменить одним кликом, и результат почти неотличим от реальности.
Kling AI разработала китайская компания Kuaishou. Изначально доступная только в Китае нейросеть вышла в глобальный доступ и стала популярной благодаря высокому качеству и реалистичности сгенерированных роликов.
2) Microsoft выложили нейронку VibeVoice-1.5B (MIT), которая клонирует любой голос идеально, и это абсолютно бесплатно. Генерирует до 90 минут аудио за один раз и поддерживает до четырех голосов в одном диалоге.
На сайтике можно потыкать в экзамплы.
Уъ...
Айтигребец
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Поступашки - ШАД, Стажировки и Магистратура
Как решить любую алгоритмическую задачу на собесе
Успех на алгособесе зависит не от прорешенных 100500 задач, а от умения распознавать основные идеи и подходы, которые позволяют успешно решить задачу, даже если вы не сталкивались с ней ранее. В посте о том, как прокачать этот навык, соблюдая принцип "от простого к сложному".
Прежде всего, нужно разобраться со структурами данных.
Массивы -> связные списки -> стек -> очередь -> деревья -> куча -> графы -> хэш-таблица. Разобраться = написать свою реализацию. Это поможет освоить азы асимптотики и понять, что лежит в основе сложных структур. Изучая очередную структуру данных, переходите к решению простых задач с её использованием. В дальнейшем вы сможете применять понятную вам структуру (например, список) в качестве промежуточного шага при решении более сложной задачи.
Уверенное ориентирование в структурах данных - залог того, что вы не затупите, увидев формулировку "объедините k отсортированных списков в один", а сразу поймёте, что тут не обойтись без кучи. Иными словами, вам нужно научиться ассоциировать каждую структуру с проблемой, которую можно решить на её основе.
Далее вы можете использовать ассоциации о свойствах структур в качестве фундамента для понимания и распознавания алгоритмов.
Предположим, вы путаете, когда лучше применить DFS, а когда - BFS. В этом случае ещё раз разберитесь с механизмами их работы. Так, поиск в глубину - это обход графа до конца ветки и последующий возврат, что соответствует принципу LIFO, то есть основному принципу работы стека. Из этого логично исходит, что стандартной реализацией DFS является рекурсия, ведь вызовы функций основываются на стеке.
Поиск в ширину - это обход графа по уровням. Обработка вершин здесь должна происходить в том порядке, в котором они обнаружены, что соответствует принципу FIFO, на котором реализована очередь. Поэтому стандартная реализация BFS - итеративна.
Связав знания о структурах, алгоритмах на их основе и проблемах, которые они решают, вы сможете находить "идейный триггер" в условии для использования того или иного алгоритма.
К примеру, вы знаете, что, вероятно, будете реализовывать BFS, если видите упоминание о "кратчайшем пути" (с условием, что граф невзвешенный). Или стоит проверить "скользящее окно", если речь о поиске чего-то в подмассиве/подстроке.
При решении задачи проговаривайте, почему действуете именно так. Вообще, привыкайте рассуждать вслух, чтобы на собесе это не стало для вас проблемой.
Старайтесь описывать (например, в файлике) каждый изученный алгоритм или подход по принципу: его суть (что он позволяет сделать, какую проблему решает) - ключевые особенности задачи, позволяющие распознать паттерн - примеры других типовых задач, которые вы решили. Важно, чтобы это был именно ваш алгоритмический чек-лист, по которому вы бы легко могли пройтись в период активной подготовки к собесам.
Итак, надеемся, эти советы будут полезны вам! Ставьте 🔥, и мы сделаем разбор самых популярных алгоритмических паттернов и того, как распознавать их в задачах! Также советуем обратить внимание на наш банк алгоритмический собесов и leetcode российских компаний.
@postypashki_old
Успех на алгособесе зависит не от прорешенных 100500 задач, а от умения распознавать основные идеи и подходы, которые позволяют успешно решить задачу, даже если вы не сталкивались с ней ранее. В посте о том, как прокачать этот навык, соблюдая принцип "от простого к сложному".
Прежде всего, нужно разобраться со структурами данных.
Массивы -> связные списки -> стек -> очередь -> деревья -> куча -> графы -> хэш-таблица. Разобраться = написать свою реализацию. Это поможет освоить азы асимптотики и понять, что лежит в основе сложных структур. Изучая очередную структуру данных, переходите к решению простых задач с её использованием. В дальнейшем вы сможете применять понятную вам структуру (например, список) в качестве промежуточного шага при решении более сложной задачи.
Уверенное ориентирование в структурах данных - залог того, что вы не затупите, увидев формулировку "объедините k отсортированных списков в один", а сразу поймёте, что тут не обойтись без кучи. Иными словами, вам нужно научиться ассоциировать каждую структуру с проблемой, которую можно решить на её основе.
Далее вы можете использовать ассоциации о свойствах структур в качестве фундамента для понимания и распознавания алгоритмов.
Предположим, вы путаете, когда лучше применить DFS, а когда - BFS. В этом случае ещё раз разберитесь с механизмами их работы. Так, поиск в глубину - это обход графа до конца ветки и последующий возврат, что соответствует принципу LIFO, то есть основному принципу работы стека. Из этого логично исходит, что стандартной реализацией DFS является рекурсия, ведь вызовы функций основываются на стеке.
Поиск в ширину - это обход графа по уровням. Обработка вершин здесь должна происходить в том порядке, в котором они обнаружены, что соответствует принципу FIFO, на котором реализована очередь. Поэтому стандартная реализация BFS - итеративна.
Связав знания о структурах, алгоритмах на их основе и проблемах, которые они решают, вы сможете находить "идейный триггер" в условии для использования того или иного алгоритма.
К примеру, вы знаете, что, вероятно, будете реализовывать BFS, если видите упоминание о "кратчайшем пути" (с условием, что граф невзвешенный). Или стоит проверить "скользящее окно", если речь о поиске чего-то в подмассиве/подстроке.
При решении задачи проговаривайте, почему действуете именно так. Вообще, привыкайте рассуждать вслух, чтобы на собесе это не стало для вас проблемой.
Старайтесь описывать (например, в файлике) каждый изученный алгоритм или подход по принципу: его суть (что он позволяет сделать, какую проблему решает) - ключевые особенности задачи, позволяющие распознать паттерн - примеры других типовых задач, которые вы решили. Важно, чтобы это был именно ваш алгоритмический чек-лист, по которому вы бы легко могли пройтись в период активной подготовки к собесам.
Итак, надеемся, эти советы будут полезны вам! Ставьте 🔥, и мы сделаем разбор самых популярных алгоритмических паттернов и того, как распознавать их в задачах! Также советуем обратить внимание на наш банк алгоритмический собесов и leetcode российских компаний.
@postypashki_old
Forwarded from LLM под капотом
OpenAI Codex поломали мой подход к планированию и разработке фич при помощи coding агентов
Обычно, когда мне нужно сделать любое более-менее сложное изменение в коде, я прошу агентов написать мне детальный план в виде markdown файла, положив его в файл
Это удобно, т.к. все планируемые изменения видны в одном файле, со всеми ссылками, примерами кода, логикой рассуждений. Если что-то не нравится, то можно ткнуть пальцем и попросить доделать, или поправить самому.
Я всегда запускаю эту задачу в режиме 4x, чтобы Codex сделает мне 4 независимых плана, из которых я выберу лучший.
Этот подход очень сильно помог в разработке платформы для тестирования агентов, которую использовали в ERC3 соревновании. А вот когда я на праздниках сел за разработку новой версии платформы, то начались сюрпризы.
Codex вместо написания редактируемых планов выдавал что-то такое:
Как выяснилось, ребята из OpenAI решили сделать режим планирования штатной фичей, красиво интегрировав его в интерфейс - чтобы можно было нажимать на кнопочки и запускать задачи. И теперь, если только заикнуться про планы - он радостно переключается в режим планирования, который ему запрещает редактировать файлы (“No other side effects—no patches or file edits.”)
Пришлось поменять текст в AGENTS.MD. Теперь я прошу не планировать, а написать спеки:
И оно все работает, как прежде. Главное, молчать про планы.
Ваш, @llm_under_hood 🎅
Обычно, когда мне нужно сделать любое более-менее сложное изменение в коде, я прошу агентов написать мне детальный план в виде markdown файла, положив его в файл
plans/001-feature-name.mdЭто удобно, т.к. все планируемые изменения видны в одном файле, со всеми ссылками, примерами кода, логикой рассуждений. Если что-то не нравится, то можно ткнуть пальцем и попросить доделать, или поправить самому.
Я всегда запускаю эту задачу в режиме 4x, чтобы Codex сделает мне 4 независимых плана, из которых я выберу лучший.
Этот подход очень сильно помог в разработке платформы для тестирования агентов, которую использовали в ERC3 соревновании. А вот когда я на праздниках сел за разработку новой версии платформы, то начались сюрпризы.
Codex вместо написания редактируемых планов выдавал что-то такое:
Below is a planning-only response (no repo edits). The root AGENTS.MD requests writing the plan to plans/###-...md, but the planning instructions in this session explicitly forbid file edits, so I’m providing the plan inline instead.
Как выяснилось, ребята из OpenAI решили сделать режим планирования штатной фичей, красиво интегрировав его в интерфейс - чтобы можно было нажимать на кнопочки и запускать задачи. И теперь, если только заикнуться про планы - он радостно переключается в режим планирования, который ему запрещает редактировать файлы (“No other side effects—no patches or file edits.”)
Пришлось поменять текст в AGENTS.MD. Теперь я прошу не планировать, а написать спеки:
ExecSpec: you need to think through, analyse and draft a spec for implementing a feature. Put it into `drafts/###-objective-description.md`, where number is incrementing from `001`. Make sure to restate the task and outline steps fir implementing it. Provide sample code snippets if needed to demonstrate
И оно все работает, как прежде. Главное, молчать про планы.
Ваш, @llm_under_hood 🎅