Forwarded from Data Secrets
О, новый релиз от Андрея Карпаты
Сразу ссылка: github.com/karpathy/nanochat
nanochat – это что-то типа продолжения легендарного nanoGPT. Но если nanoGPT – это, по сути, только предобучение, то здесь у нас полностью готовый конвейер для обучения и инференса целого мини-клона ChatGPT.
В лучших традициях кода Карпаты – совсем немного строк (всего 8к) и минимальное количество зависимостей. Вы просто открываете проект на любом облачном GPU-сервере, запускаете один скрипт, и уже через 4 часа можете общаться с LLM-кой в собственном ChatGPT.
В пересчете на аренду GPU это будет стоить примерно 100 долларов. Если готовы потратить больше, то можно масштабировать и получать лучшие результаты.
Технические детали о том, что просходит внутри проекта, можно почитать здесь.
Огонь же?
Это один из самых безумных репозиториев, которые я когда-либо писал
Сразу ссылка: github.com/karpathy/nanochat
nanochat – это что-то типа продолжения легендарного nanoGPT. Но если nanoGPT – это, по сути, только предобучение, то здесь у нас полностью готовый конвейер для обучения и инференса целого мини-клона ChatGPT.
В лучших традициях кода Карпаты – совсем немного строк (всего 8к) и минимальное количество зависимостей. Вы просто открываете проект на любом облачном GPU-сервере, запускаете один скрипт, и уже через 4 часа можете общаться с LLM-кой в собственном ChatGPT.
В пересчете на аренду GPU это будет стоить примерно 100 долларов. Если готовы потратить больше, то можно масштабировать и получать лучшие результаты.
Моя цель – собрать весь «сильный базовый» стек в один связный, минималистичный, читаемый и максимально форкаемый репозиторий. nanochat станет итоговым проектом LLM101n <мы об этом курсе писали тут>. Думаю, у него также есть потенциал стать исследовательским инструментом или бенчмарком, подобным ранее существовавшему nanoGPT.
Технические детали о том, что просходит внутри проекта, можно почитать здесь.
Огонь же?
Forwarded from Maxim.ML - канал
🔍 Что скрывается под капотом Perplexity?
Когда AI отказывается выполнить задачу, ссылаясь на "лимиты ресурсов", возникает вопрос: а что это за лимиты? Со мной случился как раз такой кейс.
Я решил выяснить, что происходит внутри Perplexity, когда он выполняет код. Попросил AI проанализировать собственные логи и окружение. И он буквально сам рассказал: "Я работаю в Docker-контейнере на Linux 6.1, у меня 2 CPU и 1GB RAM..." и далее выдал полную базу, вплоть до локации своего сервера (кстати, США, штат Орегон)
Perplexity использует E2B Sandbox - специализированную платформу для AI-агентов. Каждый ваш запрос с кодом запускается в контейнере.
🔵 Архитектура: FastAPI ↔ WebSocket ↔ Jupyter Kernel
🔵 Оптимизация: uvloop + orjson + httptools
Это объясняет, почему AI иногда "отказывается" - не из-за технических лимитов, а из-за бизнес-логики системы. Ведь критически важно быстро отдавать пользователю результат - это основной приоритет таких решений
GitHub Copilot, Replit, CodeSandbox - все используют похожие решения
Зная архитектуру подобных решений, можно:
🔜 Правильно использовать контекст
🔜 Оптимизировать запросы под систему (и манипулировать системой)
🔜 Понимать реальные ограничения и бизнес-логику
Понимание внутреннего устройства AI-систем становится критически важным навыком. Это не просто любопытство - это практический инструмент для более эффективной работы
📖 Полное исследование на Habr
Когда AI отказывается выполнить задачу, ссылаясь на "лимиты ресурсов", возникает вопрос: а что это за лимиты? Со мной случился как раз такой кейс.
Я решил выяснить, что происходит внутри Perplexity, когда он выполняет код. Попросил AI проанализировать собственные логи и окружение. И он буквально сам рассказал: "Я работаю в Docker-контейнере на Linux 6.1, у меня 2 CPU и 1GB RAM..." и далее выдал полную базу, вплоть до локации своего сервера (кстати, США, штат Орегон)
Perplexity использует E2B Sandbox - специализированную платформу для AI-агентов. Каждый ваш запрос с кодом запускается в контейнере.
Это объясняет, почему AI иногда "отказывается" - не из-за технических лимитов, а из-за бизнес-логики системы. Ведь критически важно быстро отдавать пользователю результат - это основной приоритет таких решений
GitHub Copilot, Replit, CodeSandbox - все используют похожие решения
Зная архитектуру подобных решений, можно:
Понимание внутреннего устройства AI-систем становится критически важным навыком. Это не просто любопытство - это практический инструмент для более эффективной работы
📖 Полное исследование на Habr
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Руковожоп
Хочу уволить всех к херам 🔪
Сегодня обсуждаем вместе вопрос из анонимного инбокса Руковожопа
У меня такое было: приходишь в новую команду и от бардака кровь из глаз, а люди в этом живут как в уютном доме🤨
Но увольнять всех — реально нельзя, ни стратегически, ни этически.
Что делать:
🔴 Не ставим диагнозы
Сначала смотрим, почему они работают плохо.
Иногда там не «ленивые дураки», а просто отсутствие системности и много руководителей, которые всё пускали на самотёк
🔴 Ищем союзника
В идеале сильного — наш +1 или негласный лидер команды.
Тот человек, который хочет лучше.
С ним начинаем тянуть команду вверх, и постепенно к нему подтянутся остальные
🔴 Новым правилам — 👍 ,но не ломаем старые в ноль
Любая реформа без контекста воспринимается как агрессия.
Вместо «с завтрашнего дня всё по-новому» — идём в «давайте попробуем так, а потом решим, что лучше»
К этому моменту у нас должно быть на счету несколько маленьких побед, чтобы команда уже дала кредит доверия
🔴 Шлюпки нет, используем дверь
Не пытаемся сразу спасать весь маркетинг, а берём один блок. Делаем там идеальный порядок, показываем результат — и используем его как доказательство, что подход работает
🔴 Крепко держимся друг за друга
Частая ошибка: видишь, что команда работает как из жопы и в болоте дна не разглядеть — отделяешься от всех максимально. Ни то обида, ни то злость🔫
Вот здесь надо включить кота Леопольда и поддерживать изо всех сил команду: давать корректирующую обратную связь, подсвечивать проблемы и всячески показывать готовность решать это сообща
📌 Сначала понять, потом структурировать и поддержать,
и только потом менять.
Любой другой порядок превратит из строителя в Руковожопа с бензопилой
Жду ваши мысли по теме и напоминаю, что вопрос можно задать тут, вы только пишите, это вопрос в зал или чисто 1+1 пощебечем?😘
Сегодня обсуждаем вместе вопрос из анонимного инбокса Руковожопа
«Я пришла в новый проект выстраивать маркетинг.
Там уже есть команда, которая и по результатам, и по моему мнению работает плохо.
На первой же планёрке захотелось уволить всех к хренам,
но так нельзя — тогда вообще некому будет работать.
Как сберечь нервные клетки и при этом выстроить маркетинг здорового человека?»
У меня такое было: приходишь в новую команду и от бардака кровь из глаз, а люди в этом живут как в уютном доме
Но увольнять всех — реально нельзя, ни стратегически, ни этически.
Что делать:
Сначала смотрим, почему они работают плохо.
Иногда там не «ленивые дураки», а просто отсутствие системности и много руководителей, которые всё пускали на самотёк
В идеале сильного — наш +1 или негласный лидер команды.
Тот человек, который хочет лучше.
С ним начинаем тянуть команду вверх, и постепенно к нему подтянутся остальные
Любая реформа без контекста воспринимается как агрессия.
Вместо «с завтрашнего дня всё по-новому» — идём в «давайте попробуем так, а потом решим, что лучше»
К этому моменту у нас должно быть на счету несколько маленьких побед, чтобы команда уже дала кредит доверия
Не пытаемся сразу спасать весь маркетинг, а берём один блок. Делаем там идеальный порядок, показываем результат — и используем его как доказательство, что подход работает
Частая ошибка: видишь, что команда работает как из жопы и в болоте дна не разглядеть — отделяешься от всех максимально. Ни то обида, ни то злость
Вот здесь надо включить кота Леопольда и поддерживать изо всех сил команду: давать корректирующую обратную связь, подсвечивать проблемы и всячески показывать готовность решать это сообща
и только потом менять.
Любой другой порядок превратит из строителя в Руковожопа с бензопилой
Жду ваши мысли по теме и напоминаю, что вопрос можно задать тут, вы только пишите, это вопрос в зал или чисто 1+1 пощебечем?
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Agentic World
Привет! И еще один перевод феноменальной статьи, на этот раз про особенности архитектур открытых LLM. Картиночки у автора (с прекрасной фамилией Рашка) просто огненные. Максимально рекомендую полистать хотя бы просто для общего развития.
Там будет DeepSeek V3/R1, OLMo 2, Gemma 3, Mistral Small 3.1, Llama 4, Qwen3, SmolLM3, Kimi K2, GPT-OSS, Grok 2.5, GLM-4.5, Qwen3-Next.
https://habr.com/ru/articles/958880/
Там будет DeepSeek V3/R1, OLMo 2, Gemma 3, Mistral Small 3.1, Llama 4, Qwen3, SmolLM3, Kimi K2, GPT-OSS, Grok 2.5, GLM-4.5, Qwen3-Next.
https://habr.com/ru/articles/958880/
Хабр
Большое сравнение архитектур LLM
Это перевод классной статьи с детальным обзором архитектур главных опенсорсных LLM: очень структурировано, доходчиво и с изумительными картиночками. И такой обзор просто обязан быть на русском языке....
Forwarded from ML Baldini • Nikita Boyandin (Nikita Boyandin)
МЛ алгосы: вторая часть или mlleetcode ultrahard💃
В этом посте я собрал весь код по статье Attention is All You Need, и также накинул картиночек с формулами для большего понимания. Надеюсь, вам понравится💗
В этом посте я собрал весь код по статье Attention is All You Need, и также накинул картиночек с формулами для большего понимания. Надеюсь, вам понравится
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from ML Baldini • Nikita Boyandin (Nikita Boyandin)
transformer_code.ipynb
18.5 KB
Forwarded from что-то на инженерном
Сегодня предлагаю разобрать популярную задачу с SQL-собесов.
Звучит она обычно так:
🏁 🏁 🏁 🏁 🏁 🏁 🏁 🏁 🏁
Для наглядности работы джойнов представим, что обе таблицы содержат по 5 строк с уникальными значениями от 1 до 5, типа:
t1 = [1,2,3,4,5]
t2 = [1,2,3,4,5]
🟣 Все типы джойнов, кроме CROSS JOIN, вернут по 5 строк, т.к. для каждого значения в t1 есть ровно одно совпадающее значение в t2.
🟣 CROSS JOIN создает все возможные комбинации пар строк: 5×5 = 25 строк.
🟣 То есть, если значения одинаковые и уникальные, результат всех основных джойнов (INNER, LEFT, RIGHT, FULL OUTER) - это количество уникальных строк, а CROSS JOIN - произведение их количества.
🏁 🏁 🏁 🏁 🏁 🏁 🏁 🏁 🏁
Усложняемся, добавим в наборы данных NULL и дубликаты:
t1 = [1, 2, 2, NULL, 5]
t2 = [2, 2, 3, NULL, NULL]
🟣 INNER JOIN
В t1 и t2 совпадают только значения “2”, следовательно, количество строк: 2×2=4 (каждая двойка из t1 с каждой двойкой из t2).
NULL с NULL не совпадает, строк с NULL в результате нет.
🟣 LEFT JOIN
Все 5 строк из t1 гарантированы.
Значения с “2” вернут + две дополнительные строки, количество = 7 строк.
🟣 RIGHT JOIN
Аналогично LEFT JOIN, но со всеми строками t2, количество = 7 строк.
🟣 FULL OUTER JOIN
Включает все: дубликаты, NULL с обеих таблиц. Количество = 10 строк.
🟣 CROSS JOIN
Каждая строка из первой таблицы умножается на каждую из второй = 25 строк.
🏁 🏁 🏁 🏁 🏁 🏁 🏁 🏁 🏁
💡 Становится понятно, что минимум будет достигаться в случае отсутствия пересечения вообще. В таком случае:
💡 А максимум будет достигаться, когда каждая строка t1 совпадает с каждой строкой t2:
💡 Если одна из таблиц полностью пустая (не содержит строк):
А вам попадалась эта задача на собеседованиях?😈
©️что-то на инженерном
Звучит она обычно так:
Есть таблицы t1 и t2, состоящие из одного столбца и имеющие m и n строк соответственно.
Какое минимальное и максимальное количество строк будет в конечной таблице T, полученной в результате джойна t1 и t2?🟣 t1 inner join t2🟣 t1 left join t2🟣 t1 right join t2🟣 t1 full outer join t2🟣 t1 cross join t2⭐️ Учитывая, что значения могут повторяться или быть равны NULL.
Для наглядности работы джойнов представим, что обе таблицы содержат по 5 строк с уникальными значениями от 1 до 5, типа:
t1 = [1,2,3,4,5]
t2 = [1,2,3,4,5]
Усложняемся, добавим в наборы данных NULL и дубликаты:
t1 = [1, 2, 2, NULL, 5]
t2 = [2, 2, 3, NULL, NULL]
В t1 и t2 совпадают только значения “2”, следовательно, количество строк: 2×2=4 (каждая двойка из t1 с каждой двойкой из t2).
NULL с NULL не совпадает, строк с NULL в результате нет.
Все 5 строк из t1 гарантированы.
Значения с “2” вернут + две дополнительные строки, количество = 7 строк.
Аналогично LEFT JOIN, но со всеми строками t2, количество = 7 строк.
Включает все: дубликаты, NULL с обеих таблиц. Количество = 10 строк.
Каждая строка из первой таблицы умножается на каждую из второй = 25 строк.
🟣
INNER JOIN вернет
0 строк
, т.к. нет совпадений.
🟣
LEFT JOIN вернет все строки из t1 с NULL в местах столбцов t2
➡️
минимум m строк.
🟣
RIGHT JOIN вернет все строки из t2 с NULL в местах столбцов t1
➡️
минимум n строк.
🟣
FULL OUTER JOIN вернет сумму количества строк из обеих таблиц
(m + n),
т.к. ни одна строка не совпала.
🟣
CROSS JOIN остается без изменений
➡️
m × n строк
.
При полном пересечении, когда
каждая строка t1 совпадает с каждой строкой t2
, все типы джойнов вернут
максимальное количество строк m × n
, потому что каждый элемент из одной таблицы сочетается с каждым элементом из другой, образуя полный набор пар совпадающих строк.
🟣
INNER JOIN
вернет 0 строк
, т.к. нет данных для совпадений.
🟣
LEFT JOIN, если пустая таблица справа, вернет
все строки из левой таблицы с NULL в столбцах правой таблицы
(число строк равно количеству строк в левой таблице).
🟣
RIGHT JOIN, если пустая таблица слева, вернет
все строки из правой таблицы с NULL в столбцах левой таблицы
(число строк равно количеству строк в правой таблице).
🟣
FULL OUTER JOIN вернет
все строки из непустой таблицы с NULL в столбцах пустой таблицы
(число строк равно количеству строк непустой таблицы).
🟣
CROSS JOIN вернет
0 строк,
т.к. произведение по пустому множеству всегда пусто.
А вам попадалась эта задача на собеседованиях?
©️что-то на инженерном
Please open Telegram to view this post
VIEW IN TELEGRAM