Безумцы реализовали MicroGPT от Andrej Karpathy полностью на ПЛИС-логике.
Без графического процессора.
Без PyTorch.
Без циклов инференса на центральном процессоре.
Только трансформер, «зашитый» в железо, генерирующий 50 000+ токенов в секунду.
Модель небольшая, но идея не в этом: инференс не обязан существовать только в программной среде.
Целью было не сделать максимально большую модель.
Целью было представить весь путь инференса трансформера в виде, читаемом для железа: память, счётчики, состояния конечных автоматов, аккумуляторы, таблицы поиска и многотактные арифметические блоки.
Базовая схема использует фиксированную арифметику Q4.12 и веса, хранящиеся в ПЗУ.
Большая часть модели сводится к одной повторяющейся операции: матрично-векторному умножению. Поэтому был реализован переиспользуемый 16-канальный потоковый блок матрично-векторных вычислений и затем он временно мультиплексируется на Q/K/V, MLP и выходной слой языковой модели.
Самым интересным оказался механизм внимания.
В Python это одно аккуратное уравнение.
В RTL это превращается в расписание: генерация Q/K/V, проход по скалярным произведениям, отслеживание максимума, приближённое вычисление экспоненты, накопление, деление, смешивание V, затем обратная проекция.
https://github.com/Luthiraa/TALOS-V2
👉 @PythonPortal
Без графического процессора.
Без PyTorch.
Без циклов инференса на центральном процессоре.
Только трансформер, «зашитый» в железо, генерирующий 50 000+ токенов в секунду.
Модель небольшая, но идея не в этом: инференс не обязан существовать только в программной среде.
Целью было не сделать максимально большую модель.
Целью было представить весь путь инференса трансформера в виде, читаемом для железа: память, счётчики, состояния конечных автоматов, аккумуляторы, таблицы поиска и многотактные арифметические блоки.
Базовая схема использует фиксированную арифметику Q4.12 и веса, хранящиеся в ПЗУ.
Большая часть модели сводится к одной повторяющейся операции: матрично-векторному умножению. Поэтому был реализован переиспользуемый 16-канальный потоковый блок матрично-векторных вычислений и затем он временно мультиплексируется на Q/K/V, MLP и выходной слой языковой модели.
Самым интересным оказался механизм внимания.
В Python это одно аккуратное уравнение.
В RTL это превращается в расписание: генерация Q/K/V, проход по скалярным произведениям, отслеживание максимума, приближённое вычисление экспоненты, накопление, деление, смешивание V, затем обратная проекция.
https://github.com/Luthiraa/TALOS-V2
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤3🔥2
Есть число с плавающей точкой в Python и нужно вывести его как процент — используй формат
👉 @PythonPortal
% в f-строкеx = .023
print(f'{x:.2%}') # 2.30%
x = .02375
print(f'{x:.2%}') # 2.38% -- округляется!
x = 1.02375
print(f'{x:.2%}') # 102.38%
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤7
Count number of Faces using Python – OpenCV.pdf
355.8 KB
Как с помощью Python и OpenCV считать лица на видео / фото
🟢 Подключаемся к камере.
🟢 Используем библиотеку dlib для обнаружения лиц.
🟢 Рисуем рамки вокруг лиц и выводим их количество.
🟢 Останавливаем программу по нажатию "q".
Пример кода тоже есть.
👉 @PythonPortal
Пример кода тоже есть.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11👍5
Please open Telegram to view this post
VIEW IN TELEGRAM
😁63❤5👍2
Смотри топовые научные статьи по ИИ, машинному обучению, робототехнике, квантовой физике и другим направлениям на kurate.org.
Сотни препринтов с arXiv ежедневно ранжируются по научному импакту через парные сравнения, где судьями выступают модели — Claude, GPT и Gemini.
👉 @PythonPortal
Сотни препринтов с arXiv ежедневно ранжируются по научному импакту через парные сравнения, где судьями выступают модели — Claude, GPT и Gemini.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Бывшие сотрудники Google опубликовали карту всех внутренних инструментов Google и их open-source аналогов.
15 200 звёзд. 1 100 форков. 99 контрибьюторов.
→ Borg = Kubernetes
→ Spanner = CockroachDB
→ Colossus = HDFS
→ Dremel = DuckDB / Presto
→ Chubby = Zookeeper
→ Stubby = gRPC
→ Zanzibar = SpiceDB
→ Blaze = Bazel
→ MapReduce = Spark
всё, чем инженеры Google пользуются каждый день.
у всего этого есть open-source аналоги.
ничто из этого не требует работы в Google.
https://github.com/jhuangtw/xg2xg
👉 @PythonPortal
15 200 звёзд. 1 100 форков. 99 контрибьюторов.
→ Borg = Kubernetes
→ Spanner = CockroachDB
→ Colossus = HDFS
→ Dremel = DuckDB / Presto
→ Chubby = Zookeeper
→ Stubby = gRPC
→ Zanzibar = SpiceDB
→ Blaze = Bazel
→ MapReduce = Spark
всё, чем инженеры Google пользуются каждый день.
у всего этого есть open-source аналоги.
ничто из этого не требует работы в Google.
https://github.com/jhuangtw/xg2xg
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14👍3
ПРО-СОВЕТ
Используешь локальные большие языковые модели? Дай им веб-стек.
Моя конфигурация:
- SearXNG: поиск и отбор источников-кандидатов
- Firecrawl: извлечение и обход по известным адресам
- Camofox: резерв через браузер, когда джаваскрипт или интерактив мешают
Поиск → Извлечение → Взаимодействие
Попроси своего агента настроить это и подключить к локальным моделям
> увидишь, как они резко становятся полезнее
Пожалуйста🐌
👉 @PythonPortal
Используешь локальные большие языковые модели? Дай им веб-стек.
Моя конфигурация:
- SearXNG: поиск и отбор источников-кандидатов
- Firecrawl: извлечение и обход по известным адресам
- Camofox: резерв через браузер, когда джаваскрипт или интерактив мешают
Поиск → Извлечение → Взаимодействие
Попроси своего агента настроить это и подключить к локальным моделям
> увидишь, как они резко становятся полезнее
Пожалуйста
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9
Братья! Google обновил Код-Вики.
Google фактически убрал одно из самых неприятных узких мест разработки — чтение чужого кода '
Новый Код-Вики автоматически подключается к любому репозиторию на ГитХабе и превращает его в постоянно актуальную, структурированную и интерактивную вики.
Три ключевые функции:
- автоматически сканирует репозиторий; документация обновляется в реальном времени при любых изменениях кода — больше не нужно переживать за устаревшие описания
- чат на базе Джемини работает по всей вики как по единой базе знаний, отвечает на вопросы и даёт ссылки с переходом прямо на конкретные строки кода
- автоматически строит архитектурные диаграммы, диаграммы классов и последовательностей; одним кликом можно перейти от объяснения к исходному коду
Новички быстрее входят в проект с первого дня, старые кодовые базы без сопровождения становятся понятными, и это работает как для больших, так и для маленьких репозиториев.
Google прямо говорит: «Чтение существующего кода — один из самых дорогих и проблемных этапов разработки».
Теперь этот этап фактически пытаются убрать как класс.
Публичные репозитории доступны для предварительного просмотра: http://codewiki.google
👉 @PythonPortal
Google фактически убрал одно из самых неприятных узких мест разработки — чтение чужого кода '
Новый Код-Вики автоматически подключается к любому репозиторию на ГитХабе и превращает его в постоянно актуальную, структурированную и интерактивную вики.
Три ключевые функции:
- автоматически сканирует репозиторий; документация обновляется в реальном времени при любых изменениях кода — больше не нужно переживать за устаревшие описания
- чат на базе Джемини работает по всей вики как по единой базе знаний, отвечает на вопросы и даёт ссылки с переходом прямо на конкретные строки кода
- автоматически строит архитектурные диаграммы, диаграммы классов и последовательностей; одним кликом можно перейти от объяснения к исходному коду
Новички быстрее входят в проект с первого дня, старые кодовые базы без сопровождения становятся понятными, и это работает как для больших, так и для маленьких репозиториев.
Google прямо говорит: «Чтение существующего кода — один из самых дорогих и проблемных этапов разработки».
Теперь этот этап фактически пытаются убрать как класс.
Публичные репозитории доступны для предварительного просмотра: http://codewiki.google
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9🔥7👍5
Выпустили аналог Claude Code от DeepSeek.
Открытый исходный код, написан на Rust.
✓ использует API-ключ или локальные модели
✓ МСР, навыки, инструменты, память и т.д.
$ npm install -g deepseek-tui
→ https://github.com/Hmbown/DeepSeek-TUI
👉 @PythonPortal
Открытый исходный код, написан на Rust.
✓ использует API-ключ или локальные модели
✓ МСР, навыки, инструменты, память и т.д.
$ npm install -g deepseek-tui
→ https://github.com/Hmbown/DeepSeek-TUI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15❤6
В плейлисте 26 лекций по глубокому обучению
Один из лучших бесплатных материалов в открытом доступе.
Можно пройти путь от базового уровня до уверенного понимания примерно за 5 часов.
👉 @PythonPortal
Один из лучших бесплатных материалов в открытом доступе.
Можно пройти путь от базового уровня до уверенного понимания примерно за 5 часов.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤21👍6
Python: простые вещи, которые улучшают код
Если писать так:
это может работать, но ломается на наследниках
Правильнее использовать
Такой вариант сработает и для
Итог:
👉 @PythonPortal
Если писать так:
if type(x) == str:
print("Это строка")
это может работать, но ломается на наследниках
str.Правильнее использовать
isinstance(). Он учитывает наследование и лучше согласуется с полиморфизмом.if isinstance(x, str):
print("Это строка")
Такой вариант сработает и для
str, и для его подклассов.Итог:
type(x) == str годится только для простых случаев, но хрупкий. isinstance(x, str) — более устойчивый и корректный вариант почти всегда.Please open Telegram to view this post
VIEW IN TELEGRAM
❤18👍4😁2🤣1
Наконец-то кто-то пропатчил Chromium на уровне исходников!
Не JS-инъекции, не твики флагов, а полноценная модификация отпечатков прямо в C++ исходниках с последующей сборкой бинарника.
Результат?
Cloudflare Turnstile: всё пройдено
reCAPTCHA v3: score 0.9 (уровень человека)
FingerprintJS / BrowserScan: всё зелёное
Пройдено 30/30 детект-сайтов
Drop-in замена для Playwright / Puppeteer — меняете импорт в 3 строки кода и получаете моментальный unban!
или
Больше никакого страха перед anti-bot защитой, братья!
👉 @PythonPortal
Не JS-инъекции, не твики флагов, а полноценная модификация отпечатков прямо в C++ исходниках с последующей сборкой бинарника.
Результат?
Cloudflare Turnstile: всё пройдено
reCAPTCHA v3: score 0.9 (уровень человека)
FingerprintJS / BrowserScan: всё зелёное
Пройдено 30/30 детект-сайтов
Drop-in замена для Playwright / Puppeteer — меняете импорт в 3 строки кода и получаете моментальный unban!
pip install cloakbrowserили
npm install cloakbrowserБольше никакого страха перед anti-bot защитой, братья!
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝17🔥6❤2
Напоминание: в Python 3.14 завезли несколько действительно сильных обновлений 🐍
Если ещё не обновлялись, вот что появилось:
- Free-threaded Python теперь официально поддерживается — без GIL;
- deferred evaluation аннотаций — forward references теперь работают нормально из коробки;
- template string literals (t-strings) для более безопасной обработки строк;
- встроенный модуль сжатия Zstandard;
- подсветка синтаксиса прямо в REPL;
- multiple interpreters в стандартной библиотеке.
Кроме этого, tail-call interpreter даёт прирост производительности без изменений в коде:
- примерно 3–5% на Linux;
- около 7–8% на ARM Mac.
👉 @PythonPortal
Если ещё не обновлялись, вот что появилось:
- Free-threaded Python теперь официально поддерживается — без GIL;
- deferred evaluation аннотаций — forward references теперь работают нормально из коробки;
- template string literals (t-strings) для более безопасной обработки строк;
- встроенный модуль сжатия Zstandard;
- подсветка синтаксиса прямо в REPL;
- multiple interpreters в стандартной библиотеке.
Кроме этого, tail-call interpreter даёт прирост производительности без изменений в коде:
- примерно 3–5% на Linux;
- около 7–8% на ARM Mac.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1
Это, вероятно, самый честный разбор production-архитектуры AI-систем, который сейчас есть в интернете.
9-слойная AI production architecture:
👉 @PythonPortal
9-слойная AI production architecture:
services/ — RAG-пайплайн, семантический кеш, память, query rewriter, роутер. Не один файл. Пять.agents/ — document grader, decomposer, adaptive router. Самокоррекция заложена в архитектуру.prompts/ — версионируемые, типизированные, зарегистрированные. Никакого хардкода.security/ — input, content и output-фильтрация. Три уровня защиты, а не один.evaluation/ — golden dataset, офлайн-eval, онлайн-мониторинг. Большинство этот слой полностью пропускает и деплоит вслепую.observability/ — трассировка по каждому этапу, привязка фидбека к трейсам, стоимость каждого запроса..claude/ — контекст агента, чтобы AI-кодинг-ассистент понимал кодовую базу до того, как начнёт менять файлы.Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Класс UserList из модуля collections в Python используется для создания пользовательских объектов, работающих как список, но с кастомным поведением. Он выступает базовым классом, от которого можно наследоваться, если нужно реализовать собственные структуры данных со специализированными методами и логикой.
Допустим, вы хотите создать список с кастомным методом append(), разрешив добавлять только чётные числа. Код ниже показывает, как это можно реализовать через UserList.
В этом примере метод append() переопределён так, чтобы разрешать добавление только чётных чисел. Если передать нечётное число, выводится сообщение о том, что нечётные значения запрещены. Метод sort() также переопределён и всегда сортирует список в обратном порядке.
Когда экземпляр obj вызывается с аргументом 3, который является нечётным числом, выводится сообщение
"Non-even numbers not allowed", а сам список остаётся без изменений.Please open Telegram to view this post
VIEW IN TELEGRAM
❤18👍2