Аналитика Telegram-канала
Подписчики
140
Охват за 24 ч
32
ER за 24 ч
22,86%
Публикаций
7

Динамика подписчиков

7 дней 30 дней 6 месяцев Больше
22 окт25 окт28 окт
Показаны последние 7 дней Больше истории →

Охваты публикаций

07.1014.1015.1020.1021.1028.10
8
Средний охват
22
Лучший результат
Показаны 6 публикаций — последние в канале Больше статистики →

Упоминания

6
Упоминаний
3
Из них репостов
2
Каналов
Все упоминания

Последние посты

3 из 7 2 из 7
В основную ветку добавлена новая функциональность и API - Удалён класс Variable теперь Tensor сам является autograd-узлом. - Удалён метод .data() - используйте Tensor напрямую и detach() для значений без графа. - requires_grad задаётся явно через requires_grad_(). - Активации/лоссы переехали в adept::nn::functional. - Добавлены графовый режим и tracing. 1. Variable → Tensor Было: Variable forward(Variable x) { return relu(l1(x)); } Variable x(batch[0].to(dev), false); auto loss = cross_entropy_with_logits(net(x), Variable(y.to(dev), false)); auto v = loss.data().cpu().at<float32_t>({0,0}); Стало: using namespace adept::nn::functional; Tensor forward(Tensor x) { return relu(l1(x)); } Tensor x = batch[0].to(dev); auto loss = cross_entropy_with_logits(net(x), y.to(dev)); auto v = loss.detach().cpu().at<float32_t>({0,0}); 2. requires_grad и .data() // было Variable v(x); v.requires_grad(false); Tensor raw = v.data(); // стало Tensor t = x; t.requires_grad_(); // включить t.requires_grad_(false); // выключить Tensor raw = t.detach(); // без узла графа Обычный Tensor по умолчанию без градиента. Свои параметры помечайте requires_grad_(). Cлои и оптимизаторы делают это сами. Для изменения данных на месте: weight_.copy_from(new_weight). 3. Заголовочные файлы и namespace // было #include <adept/autograd/autograd.hpp> #include <adept/nn/activations.hpp> #include <adept/nn/cross_entropy.hpp> using namespace adept; // стало #include <adept/graph/autograd.hpp> #include <adept/nn/functional.hpp> using namespace adept::nn::functional; relu, cross_entropy_with_logits, MSE, bce_loss и т.п. больше не лежат в adept::; используйте adept::nn::functional::.... 4. Свои операции Backward-правила теперь capture-free и читают состояние из OpContext: detail::OpContext ctx("my_op"); ctx.add_input("input", input); ctx.set_forward([](const std::vector<Tensor>& in, detail::OpContext&) { return std::vector<Tensor>{my_op_fwd(in[0].detach())}; }); ctx.set_backward([](const Tensor& g, const detail::OpContext& c) { if (c.input("input").requires_grad()) detail::add_grad(c.input("input"), my_op_bwd(g)); }); return detail::make_op(result, std::move(ctx)); Для нескольких выходов используется detail::make_multi_op. 5.Tracing (трассировка графа) По умолчанию в Adept используется Eager режим: записывается только gradient tape (операции с `requires_grad`). В новом режиме `Compiled` записываются все операции. #include <adept/graph/traced_graph.hpp> auto traced = trace_module(model, [&](const std::vector<Tensor>& in) { return std::vector<Tensor>{model(in[0])}; }, {example_input}, TraceOptions{.input_names = {"x"}}); Tensor out = traced.forward({runtime_input})[0]; Режим графа: GraphModeGuard(graph_mode_t::Compiled). Также TraceOptions включают оптимизации: constant folding, CSE, алгебраические упрощения, DCE и анализ fusion-кандидатов. Ограничения Tracing - трассировка только для inference: TracedGraph умеет только forward, backprop через него не идёт; - фиксируется сигнатура входов: количество, shape, dtype и device должны совпадать; - трассируемая функция выполняется один раз на example inputs, поэтому чтение значений на хосте запрещено; Ветвления должны зависеть от структуры графа, а не от значений тензоров; - record_gradients=false по умолчанию — трассированный граф не хранит градиенты. 6. Python Python API также обновлен в соответствии с изменениями. #BreakingChanges #API #Tracing #Graph
ещё
22 0 28 окт, 11:34
Несколько дней потратил на то чтобы навайбкодить понижение из StableHLO диалекта в SPIR-V с использованием LLVM MLIR. В целом это получилось и я смог запускать скомпилированные шейдеры в среде Adept. Но производительность таких шейдеров существенно ниже написанных вручную. Например для поэлементных операций проблема в том как правильно сформировать размеры сетки и блоков. А для GEMM нужно реализовать тайлинг. И существующего компиляторного прохода для таких вещей как я понял нет, есть только вариант применения специального вида трансформации для которого надо самому писать скрипты. А проходы которые преобразуют циклы в параллельные циклы сейчас не поддерживают тайлинг и блоки. В общем задача оказалась существенно сложнее. - Пока буду переносить в мастер ветку код для полноценного представления вычислительного графа и слияние Tensor и Variable в одну сущность. - Потом есть идея отказаться от преобразования гарфа в StableHLO и сразу генерировать linalg диалект для MLIR. - И ограничится пока только поэлементными операциями над тензорами что бы проверить можно ли получить аффективный fusing операций в одном шейдере с помощью компилятора. #IR #SPIR-V #MLIR #LLVM #Tensor
ещё
1 0 21 окт, 11:27
Фото
Анонс: Осенний Scientific Open Source Meetup этого года - в октябре! С радостью приглашаем всех на наш очередной Scientific Open Source Meetup, который пройдет 29 октября 2026 года с 17:30 до 21:30 в Санкт-Петербурге в уютном лофте на Газовой, 10ж. Это отличная возможность встретиться, обсудить актуальные темы и поделиться опытом в мире открытого программного обеспечения! В программе: Десять агентов, один файл: где исследовательские среды хранят состояние // Сергей Геворкян, менеджер продукта Cloud Ru Что происходит с хранилищем, когда десятки агентов одновременно записывают ход исследований? Разбор кода OpenResearch, OpenScience и OpenHuman с замерами при росте числа агентов. Петля должна быть разорвана // Олег Чирухин, GitVerse Как заставить агента работать днями и неделями с первого промпта, почти без участия человека? Автор представит свой опенсорсный инструмент и приёмы для автономной разработки. Китайский опенсорсный ИИ-агент openJiuwen // OpenScaler openEuler → OpenScaler или туда и обратно // Дмитрий Варенов, Технический лидер сообщества openEuler/OpenScaler От локализованного форка OpenScaler к прямому развитию openEuler в России и СНГ. Расскажем о планах и мероприятиях, а также о том, как внести вклад в проект и попасть на стажировку. PAUK: инструмент для картографирования экосистем открытого кода // Андрей Гетманов, аспирант ИТМО Как связать исследователей, статьи и репозитории в единый граф? PAUK помогает находить научные группы по темам исследований и выяснять, чьи разработки переиспользуют коллеги. Опенсорс, агенты и студенты — опыт ФТИИ ИТМО // Юлия Борисова, к.т.н., руководитель учебно-научной лаборатории АИСТ, ИТМО Есть ли работа для начинающего программиста-исследователя в эпоху агентов? Поговорим о том, как студентам войти в профессию и какие навыки нужны для разработки и исследований в области ИИ. UniversalToolchain // Михаил Резаков, ФКН ВШЭ Презентация проекта - победителя конкурса студенческих опенсорс-проектов ФКН ВШЭ. Мероприятие проходит при поддержке Gitverse, Cloud.Ru и OpenScaler. Дата: 29 октября 2026 года Время: 17:30 до 21:30 Место: Лофт на Газовой, 10ж, СПб.  Участие бесплатное, но количество очных мест ограничено! Трансляция - будет. Ссылка на регистрацию - https://openmeetup.ru/ Ждем вас на митапе!
ещё
1 0 20 окт, 15:54
Больше постов

Продолжить анализ этого канала

  • История роста подписчиков
  • Просмотры и охваты публикаций
  • Кто упоминает канал и кого упоминает он
  • Похожие каналы и подбор для рекламы
Открыть аналитику
Демо до 14 дней