Проверка уникальности работает через
Postgres не может доказать равенство двух
Простой пример, где это ломается, — составной ключ:
В итоге можно получить две активные записи membership для одного и того же пользователя, потому что ограничение уникальности вообще не срабатывает.
Начиная с Postgres 15, уникальные ограничения и индексы могут считать
Второй
Но это также запретит две строки с одинаковым значением
Частичный уникальный индекс
Если уникальность нужно обеспечить только для активных строк, используйте partial unique index:
👉 @PythonPortal
=, а NULL = NULL не даёт true. По умолчанию NULL не считается уникальным значением.Postgres не может доказать равенство двух
NULL, поэтому пропускает обе строки.Простой пример, где это ломается, — составной ключ:
-- UNIQUE (user_id, org_id, deleted_at)
INSERT INTO memberships VALUES (1, 10, NULL);
INSERT INTO memberships VALUES (1, 10, NULL);
-- обе строки будут вставлены
В итоге можно получить две активные записи membership для одного и того же пользователя, потому что ограничение уникальности вообще не срабатывает.
NULLS NOT DISTINCTНачиная с Postgres 15, уникальные ограничения и индексы могут считать
NULL равными:UNIQUE NULLS NOT DISTINCT (user_id, org_id, deleted_at)
Второй
INSERT уже завершится ошибкой.Но это также запретит две строки с одинаковым значением
deleted_at, а не только две активные строки.Частичный уникальный индекс
Если уникальность нужно обеспечить только для активных строк, используйте partial unique index:
CREATE UNIQUE INDEX ON memberships (user_id, org_id)
WHERE deleted_at IS NULL;
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍6❤1
Media is too big
VIEW IN TELEGRAM
GPT-6 Astra дали роботизированную руку, кисть и камеру, а затем попросили нарисовать мост Золотые Ворота в реальном мире.
Модель сама разобралась, как управлять роботом, и с каждой новой попыткой рисовала всё лучше.
Самое впечатляющее здесь даже не картина. Astra училась на собственных попытках и улучшала результат уже в физическом мире.
👉 @PythonPortal
Модель сама разобралась, как управлять роботом, и с каждой новой попыткой рисовала всё лучше.
Самое впечатляющее здесь даже не картина. Astra училась на собственных попытках и улучшала результат уже в физическом мире.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤29🤯3🔥2
«Understanding Linear Algebra» — бесплатный учебник, который связывает теоретические основы линейной алгебры с практическими применениями и информатикой.
Он охватывает широкий круг тем: системы уравнений, векторы и матрицы, линейные комбинации, матричные преобразования, базисы и системы координат, определители, подпространства, собственные значения и собственные векторы, динамические системы, цепи Маркова, ортогональность, метод наименьших квадратов, сингулярное разложение и многое другое.
Очень полезный материал для тех, кто изучает линейную алгебру. Стоит сохранить как справочник.
https://scholarworks.gvsu.edu/cgi/viewcontent.cgi?article=1026&context=books
👉 @PythonPortal
Он охватывает широкий круг тем: системы уравнений, векторы и матрицы, линейные комбинации, матричные преобразования, базисы и системы координат, определители, подпространства, собственные значения и собственные векторы, динамические системы, цепи Маркова, ортогональность, метод наименьших квадратов, сингулярное разложение и многое другое.
Очень полезный материал для тех, кто изучает линейную алгебру. Стоит сохранить как справочник.
https://scholarworks.gvsu.edu/cgi/viewcontent.cgi?article=1026&context=books
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤8
Профессор кафедры машиностроения Вашингтонского университета Стив Брантон выложил на YouTube полный курс по теории управления для магистрантов и аспирантов. Бесплатно.
Курс называется Control Bootcamp.
Линейные системы, устойчивость и собственные значения, управляемость и наблюдаемость, размещение полюсов, фильтр Калмана, LQR / LQG, робастное управление, MPC — всё разбирается последовательно и с примерами в Matlab.
Брантон — Boeing Professor of AI & Data-Driven Engineering в Вашингтонском университете. Он получил степень бакалавра по математике в Caltech с дополнительной специализацией по управлению и динамическим системам, а затем докторскую степень по механической и аэрокосмической инженерии в Princeton.
Плейлист: https://youtube.com/playlist?list=PLMrJAkhIeNNR20Mz-VpzgfQs5zrYi085m
👉 @PythonPortal
Курс называется Control Bootcamp.
Линейные системы, устойчивость и собственные значения, управляемость и наблюдаемость, размещение полюсов, фильтр Калмана, LQR / LQG, робастное управление, MPC — всё разбирается последовательно и с примерами в Matlab.
Брантон — Boeing Professor of AI & Data-Driven Engineering в Вашингтонском университете. Он получил степень бакалавра по математике в Caltech с дополнительной специализацией по управлению и динамическим системам, а затем докторскую степень по механической и аэрокосмической инженерии в Princeton.
Плейлист: https://youtube.com/playlist?list=PLMrJAkhIeNNR20Mz-VpzgfQs5zrYi085m
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8🔥3
Репозиторий содержит Jupyter-ноутбуки к книге O’Reilly «Transformers: The Definitive Guide».
Внутри — код для задач компьютерного зрения, временных рядов, обработки аудио и обучения с подкреплением.
https://github.com/Nicolepcx/transformers-the-definitive-guide
👉 @PythonPortal
Внутри — код для задач компьютерного зрения, временных рядов, обработки аудио и обучения с подкреплением.
https://github.com/Nicolepcx/transformers-the-definitive-guide
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10
Python-библиотека для получения цен и расписания рейсов из Google Flights.
https://github.com/AWeirdDev/flights
👉 @PythonPortal
https://github.com/AWeirdDev/flights
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
Hugging Face завершила серию Training Agents — шесть практических воркшопов про оценку и обучение ИИ-агентов.
За полгода команда разобрала весь путь: от бенчмарков и SFT на трассах агентов до дистилляции, GRPO и обучения внутри реальных сред.
В финальной части они собрали среду на OpenEnv, подключили её к TRL и обучили реального агента для программирования OpenCode через Harbor в песочницах Hugging Face.
Все шесть записей уже доступны бесплатно, весь код открыт. Серия набрала более 300 тысяч просмотров.
Плейлист:
https://youtube.com/playlist?list=PLo2EIpI_JMQvQZm-kVlz4wY1vWF0LBcf5
👉 @PythonPortal
За полгода команда разобрала весь путь: от бенчмарков и SFT на трассах агентов до дистилляции, GRPO и обучения внутри реальных сред.
В финальной части они собрали среду на OpenEnv, подключили её к TRL и обучили реального агента для программирования OpenCode через Harbor в песочницах Hugging Face.
Все шесть записей уже доступны бесплатно, весь код открыт. Серия набрала более 300 тысяч просмотров.
Плейлист:
https://youtube.com/playlist?list=PLo2EIpI_JMQvQZm-kVlz4wY1vWF0LBcf5
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Если полностью разберётесь в этой статье, то будете понимать инференс лучше 90% людей.
И это, кстати, всего лишь первый материал в репозитории AI Performance Engineering.
Страшно представить, сколько знаний в остальных.
https://github.com/wafer-ai/gpu-perf-engineering-resources
👉 @PythonPortal
И это, кстати, всего лишь первый материал в репозитории AI Performance Engineering.
Страшно представить, сколько знаний в остальных.
https://github.com/wafer-ai/gpu-perf-engineering-resources
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6
Разработчик, который до этого ни разу не проектировал печатные платы, взял Claude Fable 5 и на пару часов оставил его самостоятельно работать в KiCad. 🔍
Затем он заказал пять плат за €130, даже не проверив проект самостоятельно. И они заработали.
В основе платы — микроконтроллер RP2350, небольшой дисплей на электронных чернилах, четыре кнопки и несколько дополнительных выводов. Он подключил первую плату к ноутбуку, и тот сразу её распознал.
Проблемы нашлись только с двумя компонентами: SPI-флеш-памятью и транзистором в схеме управления дисплеем. Причём обнаружилось это уже при отправке файлов производителю. После нескольких раундов правок всё исправили.
Раньше он уже пытался сделать тот же проект с помощью более старых моделей, но тогда компоненты оказывались неправильно ориентированы, а нормальной разводки платы практически не было.
Он пишет, что результатом доволен, хотя особого чувства, что он сам чего-то добился, у него нет. И при этом он всё равно хочет нормально научиться проектировать печатные платы самостоятельно.
👉 @PythonPortal
Затем он заказал пять плат за €130, даже не проверив проект самостоятельно. И они заработали.
В основе платы — микроконтроллер RP2350, небольшой дисплей на электронных чернилах, четыре кнопки и несколько дополнительных выводов. Он подключил первую плату к ноутбуку, и тот сразу её распознал.
Проблемы нашлись только с двумя компонентами: SPI-флеш-памятью и транзистором в схеме управления дисплеем. Причём обнаружилось это уже при отправке файлов производителю. После нескольких раундов правок всё исправили.
Раньше он уже пытался сделать тот же проект с помощью более старых моделей, но тогда компоненты оказывались неправильно ориентированы, а нормальной разводки платы практически не было.
Он пишет, что результатом доволен, хотя особого чувства, что он сам чего-то добился, у него нет. И при этом он всё равно хочет нормально научиться проектировать печатные платы самостоятельно.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10❤6🤝3🤯1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥18❤3
This media is not supported in your browser
VIEW IN TELEGRAM
Как большая языковая модель работает на аппаратном уровне?
Если вы привыкли к программированию вокруг CPU, большая языковая модель может казаться чем-то почти магическим. Всё потому, что в ней сочетаются глубокая нейронная сеть, архитектура Transformer и GPU — процессор с огромным параллелизмом, на котором она работает. Кроме того, хотя большую языковую модель можно описать несколькими сотнями строк Python, под ними скрываются крупные и сложные слои программного обеспечения, которые одному человеку трудно понять целиком.
Автор проекта решил разобраться в этом вопросе и с нуля реализовал Qwen3-0.6B — от Transformer до симулятора набора инструкций — с помощью Claude Code в качестве проекта на выходные.
Он реализовал саму модель, набор инструкций GPU, компилятор и симулятор GPU, чтобы каждый слой системы был достаточно небольшим и его можно было понять целиком.
Сейчас он также работает над RTL-описанием GPU, чтобы запустить систему на FPGA, а в будущем, возможно, даже изготовить настоящий чип — просто ради интереса.
Что интересно, пользоваться проектом можно примерно как Claude или Codex, но он работает на CPU, поэтому его можно полностью отлаживать и трассировать.
Если вам было трудно связать между собой большие языковые модели и GPU, на которых они работают, репозиторий здесь:
https://github.com/penberg/titania
👉 @PythonPortal
Если вы привыкли к программированию вокруг CPU, большая языковая модель может казаться чем-то почти магическим. Всё потому, что в ней сочетаются глубокая нейронная сеть, архитектура Transformer и GPU — процессор с огромным параллелизмом, на котором она работает. Кроме того, хотя большую языковую модель можно описать несколькими сотнями строк Python, под ними скрываются крупные и сложные слои программного обеспечения, которые одному человеку трудно понять целиком.
Автор проекта решил разобраться в этом вопросе и с нуля реализовал Qwen3-0.6B — от Transformer до симулятора набора инструкций — с помощью Claude Code в качестве проекта на выходные.
Он реализовал саму модель, набор инструкций GPU, компилятор и симулятор GPU, чтобы каждый слой системы был достаточно небольшим и его можно было понять целиком.
Сейчас он также работает над RTL-описанием GPU, чтобы запустить систему на FPGA, а в будущем, возможно, даже изготовить настоящий чип — просто ради интереса.
Что интересно, пользоваться проектом можно примерно как Claude или Codex, но он работает на CPU, поэтому его можно полностью отлаживать и трассировать.
Если вам было трудно связать между собой большие языковые модели и GPU, на которых они работают, репозиторий здесь:
https://github.com/penberg/titania
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1