Статьи о программировании(Python, Django, Golang)
14 subscribers
145 photos
5 videos
1 file
159 links
Телеграм канал сайта https://gadjimuradov.ru/
Download Telegram
OpenAI анонсировала модель o3

Достижения в тестах

Рейтинг 2700+ на CodeForces

Модель достигла уровня топовых программистов, показав способность решать сложные алгоритмические задачи. CodeForces — это одна из самых известных платформ для соревнований по программированию, где подобный рейтинг позволяет войти в элиту мировых программистов.

Судя по бенчмаркам, эта модель может кодить на уровне сеньора.
OpenAI анонсировала модель o3

Достижения в тестах

Рейтинг 2700+ на CodeForces

Модель достигла уровня топовых программистов, показав способность решать сложные алгоритмические задачи. CodeForces — это одна из самых известных платформ для соревнований по программированию, где подобный рейтинг позволяет войти в элиту мировых программистов.

Судя по бенчмаркам, эта модель может кодить на уровне сеньора.

96,7% точности на математическом тесте AIME 2024

AIME (American Invitational Mathematics Examination) — это математическая олимпиада, известная своей сложностью. Данный результат близок к идеальному, что демонстрирует выдающиеся способности модели в решении задач высокого уровня.

87,7% на вопросах уровня PhD GPQA Diamond

Модель успешно отвечает на вопросы, требующие глубокой теоретической подготовки, эквивалентной докторантуре. Этот результат отражает сильную компетенцию в генерации точных и сложных ответов.

71,7% на SWE-bench (тестирование в области программной инженерии)
SWE-bench — это тестовый набор задач для оценки уровня профессиональных знаний в программной инженерии. Модель превосходит большинство участников с реальным опытом работы в индустрии, демонстрируя понимание архитектуры программного обеспечения, алгоритмов и структур данных.

25,2% на сверхсложном EpochAI Frontier Math (рост с 2%)

EpochAI Frontier Math — это тест для оценки ИИ на сложнейших задачах, выходящих за рамки стандартных математических навыков. Прогресс модели с 2% до 25,2% подчеркивает значительное улучшение в решении задач, которые традиционно считались трудными даже для ИИ.

Прорыв в логическом мышлении

87,5% на закрытой оценке ARC-AGI

ARC-AGI (Abstraction and Reasoning Corpus for AGI) — это один из самых строгих и закрытых тестов, предназначенных для оценки уровня абстрактного мышления и способности к рассуждениям. Высокий результат свидетельствует о том, что модель способна решать задачи с минимальными данными и без прямого обучения на них.

Улучшение производительности в 3 раза по сравнению с моделью o1

Новая архитектура и оптимизация позволили достичь тройного прироста производительности, делая модель более эффективной в решении разнообразных задач.

Подтвержденная эффективность на совершенно новых задачах


Модель продемонстрировала способность решать задачи, с которыми ранее не сталкивалась, что подтверждает её универсальность и отсутствие зависимости от заучивания ответов.

Без запоминания — чисто логические способности
Достижения основаны на способности к рассуждению, а не на запоминании данных. Это важное отличие от моделей, которые лишь "запоминают" шаблоны решений.

Технические достижения

Создана на основе масштабированного обучения с подкреплением (RL)
Использование RL позволило улучшить способность модели оптимизировать свои решения, адаптироваться к сложным сценариям и извлекать пользу из тренировок на сложных задачах.

Самая ресурсоемкая модель на этапе тестирования

Для достижения текущих результатов использовались масштабные вычислительные мощности, что позволило модели демонстрировать выдающиеся способности даже в самых сложных тестах.

Представлена эффективная версия o3-mini

Вместе с основной моделью представлена уменьшенная версия o3-mini. Она разработана для пользователей, которым требуется высокая производительность при меньших ресурсах.

Устанавливает новые стандарты по всем техническим метрикам

o3 превосходит предыдущие модели и конкурентов по всем основным показателям, устанавливая новые стандарты качества и производительности.

Влияние на индустрию

Открывает новую эру в масштабировании ИИ
Масштабирование вычислительных мощностей и архитектуры модели позволяет значительно расширить границы возможностей искусственного интеллекта.

Демонстрирует эффективность увеличения вычислительной мощности

Результаты подтверждают, что вложения в вычислительные ресурсы и усовершенствование архитектуры модели оправданы и ведут к реальному прогрессу в ИИ.

Ожидается снижение цен на токены

Внедрение новых технологий и оптимизации может привести к удешевлению обработки запросов, что сделает доступ к ИИ более демократичным.
🆚⚡️ Python FastAPI vs Go: Кто быстрее?

Выбираете между Python FastAPI и Go (Golang) для разработки веб-приложений? Это видео разбирает их производительность и помогает определиться с выбором технологии. Вот ключевые моменты теста! 👇

Что тестировали?
1️⃣ Базовый тест производительности: простые запросы и ответы.
2️⃣ Работа с базой данных Postgres: проверка скорости взаимодействия.
3️⃣ Кэширование через Memcache: нагрузка в сложных сценариях.

🏁Результаты
Go
🔥 Отличная производительность при высоких нагрузках.
💪 Минимальные задержки при работе с базой данных и кэшированием.
Подходит для приложений, где критичны скорость и масштабируемость.

FastAPI (Python)
⚡️ Удобство разработки и читабельность кода.
💻 Богатая экосистема Python-библиотек.
🚀 Хорошо справляется с умеренными нагрузками, но уступает Go в пиковых ситуациях.

Что выбрать?
Выбирайте Go, если нужна высокая производительность и низкие задержки. Это идеальный выбор для микросервисов и высоконагруженных систем.
FastAPI подойдёт, если вы цените скорость разработки и интеграцию с библиотеками Python. Отличный выбор для прототипов и приложений средней нагрузки.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Go vs Python: Раунд 2

На этот раз в центре внимания видео — облачные технологии: Kubernetes, OpenTelemetry, Prometheus, Postgres и S3. Оба языка протестированы в условиях микросервисной архитектуры.

Go:
⚡️ Молниеносный отклик и минимальная нагрузка на ресурсы.
💪 Устойчивость под нагрузкой.

Python:
🚀 Быстрый старт и удобство разработки.
🐢 Уступает Go в скорости при высоких нагрузках.

📊 Итог:
Go побеждает на длинных дистанциях, Python выигрывает на коротких. Выбор за вами! 👊
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Python/ django
🖥 Огромный сборник гайдов по Python с примерами кода поможет вам начать изучение языка с самого начала и отточить навыки на тысячах задач!

В этом сборнике вы найдете:
- Примеры автоматизации различных процессов с использованием Python.
- Инструкции по интеграции с множеством популярных приложений, таких как Telegram и YouTube.
- Руководства по созданию чат-ботов, которые возьмут на себя рутинную работу.
- Методы визуализации данных.
- Работа с графикой, изображениями и видео.
- Основы машинного обучения и создание своих первых нейронных сетей.

Это лучший ресурс для новичков в IT-сфере, который станет вашим надежным помощником на пути к освоению программирования.

📌 Ссылка

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Как узнать размер генератора в Python?

В Python часто возникает задача определить размер генератора без необходимости извлечения всех его значений. Это полезно, если вы работаете с большими потоками данных и хотите избежать избыточного расхода памяти.

Пример с len()
Некоторые итераторы, такие как range, поддерживают вызов len():


len(range(10000)) # 10000


Однако генераторы не имеют длины, и попытка вызвать len() вызовет ошибку:


gen = (x ** 2 for x in range(10000))
len(gen) # TypeError: object of type 'generator' has no len()


Стандартное решение: преобразование в список
Один из способов получить размер генератора — это преобразовать его в список:


gen = (x ** 2 for x in range(10000))
print(len(list(gen))) # 10000


Этот подход работает, но имеет серьёзный недостаток: он требует загрузить все значения генератора в память. Если генератор очень большой, это может привести к нехватке памяти.

Более эффективный подход: подсчёт с помощью sum
Чтобы избежать лишнего расхода памяти, можно подсчитать количество элементов в генераторе с использованием sum():


gen = (x ** 2 for x in range(10000))
print(sum(1 for _ in gen)) # 10000


Этот метод обходит генератор "лениво", не создавая дополнительных списков, что делает его идеальным для работы с большими потоками данных.

Резюме
- Используйте len() только для итераторов, поддерживающих его (например, `range`).
- Для генераторов избегайте преобразования в список, если важна экономия памяти.
- Используйте sum(1 for _ in gen) для эффективного подсчёта элементов генератора.

👉 @BookPython
Forwarded from Python/ django
👩‍💻 slowapi — это библиотека для Python, предназначенная для ограничения количества запросов (rate-limiting) в веб-приложениях, разработанных на основе FastAPI! Она использует библиотеку limits для реализации функциональности ограничения запросов.

🔍 Особенности slowapi включают возможность настройки лимитов на основе различных критериев (например, IP-адреса, уникального идентификатора пользователя или других параметров). Она поддерживает конфигурацию различных стратегий ограничения, включая фиксированные временные окна и токен-ведро.

🌟 slowapi позволяет легко интегрировать обработку превышения лимита запросов с возвратом соответствующих HTTP-ответов, таких как 429 (Too Many Requests).

🔐 Лицензия: MIT

🖥 Github

@pythonl
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Golang
👣 Эта статья обсуждает проблему N+1 запросов — частую причину снижения производительности в веб-приложениях!

🌟 Автор объясняет, как стандартный подход ленивой загрузки ассоциированных данных может привести к множественным запросам к базе данных, что становится проблемой в сложных моделях с многочисленными связями.

🌟 Для решения этой проблемы предлагается двухфазный подход: сначала загружаются все необходимые данные за минимальное количество запросов (batch loading), затем данные отображаются с использованием подготовленных объектов. Статья иллюстрирует, как этот метод применяется в Go, и подчеркивает его преимущества, такие как снижение количества запросов и улучшение производительности.

🔗 Ссылка: *клик*

@golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Денис Аникин
Техлид, Райффайзенбанк

Я ускорил всё, кроме себя

В своём докладе мне хочется дать слушателям самый полный и понятный список лучших решений для всего в бэкендах. Это будет небольшая энциклопедия лучших решений, многие из которых я и коллеги как следует «притёрли» в продакшене. Фреймворки, библиотеки, сервера, даже немного десктоп софта, сравнения — будет всё, а на что-то мы и вовсе посмотрим с неожиданных сторон.

https://www.youtube.com/watch?v=nVUwGn2Ky40
Forwarded from Библиотека программиста | программирование, кодинг, разработка
🎇 2025 в жизни программиста

➡️Впервые за всю историю количество строк кода, написанных человечеством, достигнет триллиона (по оценкам GitHub).

— Это наш общий след в цифровой эпохе.

➡️ ИИ-системы начали писать больше кода, чем люди.

— Возможно, 2025 станет годом, когда искусственный интеллект впервые решит баг, который люди не могут исправить десятилетиями.

➡️ 2025-й — год открытого кода. Всё больше крупных компаний выпускают свои продукты в open-source.

— Готовьтесь к большому числу коллабов и открытий.

💬 Чего вы ждёте от 2025 года?
Please open Telegram to view this post
VIEW IN TELEGRAM
Пагинация — это стандартная задача, с которой ежедневно сталкиваются тысячи разработчиков. Если вы используете реляционную базу данных, то можно задать смещение через LIMIT, например:


SELECT *
FROM table
LIMIT 1001, 100;


Этот запрос действительно вернет 100 записей, с 1001-й по 1100-ю. Но проблема в том, что для базы данных это так же сложно, как и выборка всех первых 1001 записей. Чем дальше запрашиваемая страница, тем медленнее будет выполняться запрос.

Более оптимальным решением является использование фильтрации через WHERE, где клиент передает идентификатор последней записи текущей страницы ($last_seen_id в примере):


SELECT *
FROM table
WHERE id > $last_seen_id
ORDER BY id ASC
LIMIT 100;


Этот подход позволяет избежать сканирования всех предыдущих строк, что значительно ускоряет работу с большими объемами данных.

Если хотите разобраться подробнее, рекомендую почитать отличную статью на эту тему!

👉 @BookPython
🐍🛣 Как изучать Python в 2025 году: дорожная карта

Детальный план обучения Python с нуля — разбираем каждый шаг на пути к профессиональной разработке в нашей статье:

🔗 Ссылка

Начните свой путь в IT вместе с нашим курсом по пайтон:
🔵 Основы программирования на Python
Please open Telegram to view this post
VIEW IN TELEGRAM