Привет, я снова с проблемой: собрал Python-пакет, зависящий от нативных библиотек (C/C++), а на другой системе он отказывается работать? «glibc не той версии!» — кому-то знакомо?
Оказывается есть проект manylinux от PyPA (Python Packaging Authority) который создан именно для решения головоломки 🧩 с подбором относительно универсальных системных библиотек.
Проект предоставляет набор Docker-образов на основе старых, но широко распространённых версий glibc, других системных библиотек, компиляторов и средств для сборки. Пакет собранный внутри manylinux-контейнера, практически гарантированно будет работать на большинстве современных Linux-дистрибутивов.
Вот пример как создать рабочее окружение:
Теперь CPU версию Adept можно использовать в Google Collab, вот ссылка на небольшой пример: тренировки LeNet для распознавания MNIST.
#python #packaging #docker #linux #pypi
Оказывается есть проект manylinux от PyPA (Python Packaging Authority) который создан именно для решения головоломки 🧩 с подбором относительно универсальных системных библиотек.
Проект предоставляет набор Docker-образов на основе старых, но широко распространённых версий glibc, других системных библиотек, компиляторов и средств для сборки. Пакет собранный внутри manylinux-контейнера, практически гарантированно будет работать на большинстве современных Linux-дистрибутивов.
Вот пример как создать рабочее окружение:
docker pull quay.io/pypa/manylinux_2_34
docker run -v /development/gitverse/adept:/adept -it quay.io/pypa/manylinux_2_34 /bin/bash
...
python3.11 -m build
Теперь CPU версию Adept можно использовать в Google Collab, вот ссылка на небольшой пример: тренировки LeNet для распознавания MNIST.
#python #packaging #docker #linux #pypi
👍1
Привет, немного информации о проекте про разработку которого я рассказываю в этом канале:
Adept(Automatic Differentiation Engine for Tensor Processing) — это библиотека на Python и C++ для построения и обучения нейросетей, созданная с упором на кроссплатформенность, гибкость и образовательную ценность.
⚙️ Основные возможности:
• Динамические графы — как в PyTorch: отладка, условия, циклы «из коробки».
• Тензоры + Autograd — автоматическое дифференцирование и GPU-ускорение.
• Vulkan backend — работает на GPU от NVIDIA, AMD, Intel, Qualcomm и даже на мобильных устройствах.
• Единая семантика Python/C++ — легко переносить прототип в production.
🎯 Зачем это нужно?
В российской экосистеме почти нет open-source ML-платформ общего назначения, сравнимых с PyTorch или TensorFlow. Возможно это связано как с нехваткой специалистов, сочетающих глубокое понимание машинного обучения и системного программирования, так и доступностью зрелых альтернатив. Adept создан как экспериментальная площадка для накопления такого опыта — как исследовательского, так и образовательного.
🧠 Почему это полезно для обучения?
Проект охватывает все ключевые уровни ML-стека: от математических абстракций (тензоры, градиенты) до низкоуровневой работы с GPU. Это делает его подходящей основой для:
• Изучения архитектуры современных ML-фреймворков
• Курсовых, дипломных и исследовательских работ
• Практических заданий по deep learning, системному программированию и кроссплатформенной разработке
🔗 Код открыт — приглашаем студентов, преподавателей, энтузиастов и всех, кто хочет разобраться, как устроены ML-платформы изнутри.
#MachineLearning #OpenSource #Education #Vulkan #Python #Cpp #Adept #MLPlatform
Adept(Automatic Differentiation Engine for Tensor Processing) — это библиотека на Python и C++ для построения и обучения нейросетей, созданная с упором на кроссплатформенность, гибкость и образовательную ценность.
⚙️ Основные возможности:
• Динамические графы — как в PyTorch: отладка, условия, циклы «из коробки».
• Тензоры + Autograd — автоматическое дифференцирование и GPU-ускорение.
• Vulkan backend — работает на GPU от NVIDIA, AMD, Intel, Qualcomm и даже на мобильных устройствах.
• Единая семантика Python/C++ — легко переносить прототип в production.
🎯 Зачем это нужно?
В российской экосистеме почти нет open-source ML-платформ общего назначения, сравнимых с PyTorch или TensorFlow. Возможно это связано как с нехваткой специалистов, сочетающих глубокое понимание машинного обучения и системного программирования, так и доступностью зрелых альтернатив. Adept создан как экспериментальная площадка для накопления такого опыта — как исследовательского, так и образовательного.
🧠 Почему это полезно для обучения?
Проект охватывает все ключевые уровни ML-стека: от математических абстракций (тензоры, градиенты) до низкоуровневой работы с GPU. Это делает его подходящей основой для:
• Изучения архитектуры современных ML-фреймворков
• Курсовых, дипломных и исследовательских работ
• Практических заданий по deep learning, системному программированию и кроссплатформенной разработке
🔗 Код открыт — приглашаем студентов, преподавателей, энтузиастов и всех, кто хочет разобраться, как устроены ML-платформы изнутри.
#MachineLearning #OpenSource #Education #Vulkan #Python #Cpp #Adept #MLPlatform
👍7🔥2
Привет! Небольшая сводка изменений за последние 3 недели. Вышло 3 фичи, которые делают работу с библиотекой удобнее. Вот что теперь может сделать Python-разработчик:
🖥 Детекция GPU через Vulkan
Теперь можно программно узнать, какой GPU доступен на машине:
Зачем:
• Запускать инференс на GPU с автоматическим fallback на CPU
• Логировать модель видеокарты для телеметрии и дебага
• Строить device selection UI, как в других ML-фреймворках
🔍 Фильтрация параметров модели по имени
Два новых метода в классе Module:
Зачем:
• Selective fine-tuning — заморозить одни слои, разморозить другие
• Группы параметров в оптимизаторе — разный learning rate для весов и смещений
• Weight decay только для weight-тензоров — исключить bias и batch-norm running stats
• Быстрая инспекция модели — не нужно руками обходить все child-модули
⚡ Оптимизация autograd
Теперь при выключенном авто-дифференцировании (no_grad) не создаются лишние объекты для хранения градиентов. Это затронуло все основные слои: Linear, Conv2d, BatchNorm2d, MaxPool2d, AvgPool2d, активации и loss-функции.
Зачем:
• Меньше расход памяти — no-grad mode больше не аллоцирует ненужные autograd-ноды
• Быстрее инференс — нет накладных расходов на создание и удаление временных объектов
• Predictable performance — поведение no_grad ближе к «bare metal», как и ожидается
#gpu #autograd #changelog #python #inference #optimization
🖥 Детекция GPU через Vulkan
Теперь можно программно узнать, какой GPU доступен на машине:
import adept
if adept.vulkan.is_available():
print(f"GPU: {adept.vulkan.get_device_name(0)}")
model = model.gpu()
Зачем:
• Запускать инференс на GPU с автоматическим fallback на CPU
• Логировать модель видеокарты для телеметрии и дебага
• Строить device selection UI, как в других ML-фреймворках
🔍 Фильтрация параметров модели по имени
Два новых метода в классе Module:
# подстрока
for name, p in model.named_parameters("weight"):
...
# Регулярное выражение
for name, p in model.named_parameters_regex(".*layer[23].*bias"):
...
Зачем:
• Selective fine-tuning — заморозить одни слои, разморозить другие
• Группы параметров в оптимизаторе — разный learning rate для весов и смещений
• Weight decay только для weight-тензоров — исключить bias и batch-norm running stats
• Быстрая инспекция модели — не нужно руками обходить все child-модули
⚡ Оптимизация autograd
Теперь при выключенном авто-дифференцировании (no_grad) не создаются лишние объекты для хранения градиентов. Это затронуло все основные слои: Linear, Conv2d, BatchNorm2d, MaxPool2d, AvgPool2d, активации и loss-функции.
Зачем:
• Меньше расход памяти — no-grad mode больше не аллоцирует ненужные autograd-ноды
• Быстрее инференс — нет накладных расходов на создание и удаление временных объектов
• Predictable performance — поведение no_grad ближе к «bare metal», как и ожидается
#gpu #autograd #changelog #python #inference #optimization
🔥5👍1
Привет!
Извините что не по теме канала, но думаю кому-то может быть интересно.
Большинство демок ИИ-агентов — это либо обёртки над готовыми фреймворками (LangChain, CrewAI), либо простые демки с одним тулом. Я решил пойти другим путём: написать агента с нуля, на голом OpenAI API, без использования «агентных фреймворков».
Что получилось: агент, который сочиняет стихи на русском языке. Но суть не в стихах, а в архитектуре.
Проект состоит из модулей:
— цикл агента (до 1000 итераций «мысль → вызов тула → ответ») с потоковым взаимовоздействием
— регистратор инструментов с использованием OpenAI-совместимых JSON-схем
— менеджер контекста (контроль количества токенов и трёхстадийная компрессия)
— системный промпт с полным описанием алгоритма
Инструменты, которые агент использует:
- веб-поиск (с фильтрацией доменов)
- векторная память (ChromaDB + bge-m3, дедупликация по хешу)
- чтение/запись/поиск-замена в файлах (песочница в рабочей директории)
- расстановка ударений в русском тексте — для проверки стихотворного размера
- управление собственной «креативностью» меняя температуру при выводе
Что мне кажется самым важным — алгоритм действий агента описан прямо в системном промпте, это как привила и умения. То что он реализован не в коде, позволяет легко изменить агента для других задач. Агент читает много-фазную инструкцию и выполняет её, переключая креативность в зависимости от этапа: 0.4 для поиска → 1.0 для синтеза → 1.2 для генерации строк → 0.3 для валидации метра стихов.
При этом:
- каждая строфа проходит несколько попыток создания
- пользователь утверждает план на каждую строфу и полный вариант
- если агент «застрял» — он просит совета у пользователя
Используйте что бы разобраться как работают те же KiloCode, Claude Code на базовом уровне, или как основу для своих специализированных агентов.
Код: https://gitflic.ru/project/kolkir/lmagent
#agent #llm #AI #opensource #python
Извините что не по теме канала, но думаю кому-то может быть интересно.
Большинство демок ИИ-агентов — это либо обёртки над готовыми фреймворками (LangChain, CrewAI), либо простые демки с одним тулом. Я решил пойти другим путём: написать агента с нуля, на голом OpenAI API, без использования «агентных фреймворков».
Что получилось: агент, который сочиняет стихи на русском языке. Но суть не в стихах, а в архитектуре.
Проект состоит из модулей:
— цикл агента (до 1000 итераций «мысль → вызов тула → ответ») с потоковым взаимовоздействием
— регистратор инструментов с использованием OpenAI-совместимых JSON-схем
— менеджер контекста (контроль количества токенов и трёхстадийная компрессия)
— системный промпт с полным описанием алгоритма
Инструменты, которые агент использует:
- веб-поиск (с фильтрацией доменов)
- векторная память (ChromaDB + bge-m3, дедупликация по хешу)
- чтение/запись/поиск-замена в файлах (песочница в рабочей директории)
- расстановка ударений в русском тексте — для проверки стихотворного размера
- управление собственной «креативностью» меняя температуру при выводе
Что мне кажется самым важным — алгоритм действий агента описан прямо в системном промпте, это как привила и умения. То что он реализован не в коде, позволяет легко изменить агента для других задач. Агент читает много-фазную инструкцию и выполняет её, переключая креативность в зависимости от этапа: 0.4 для поиска → 1.0 для синтеза → 1.2 для генерации строк → 0.3 для валидации метра стихов.
При этом:
- каждая строфа проходит несколько попыток создания
- пользователь утверждает план на каждую строфу и полный вариант
- если агент «застрял» — он просит совета у пользователя
Используйте что бы разобраться как работают те же KiloCode, Claude Code на базовом уровне, или как основу для своих специализированных агентов.
Код: https://gitflic.ru/project/kolkir/lmagent
#agent #llm #AI #opensource #python
🔥5👌1