Hacker News Digest

Тег: #tensorflow

Постов: 4

Backpropagation is a leaky abstraction (2016) (karpathy.medium.com) 🔥 Горячее

Карпати утверждает, что понимание обратного распространения ошибки (backprop) критически важно, несмотря на автоматизацию в фреймворках вроде TensorFlow. Он называет backprop "утечкой абстракции" — опасно верить, что просто соединяя слои, можно "магически" обучить сеть. Студенты курса CS231n жаловались на ручную реализацию backprop в numpy, но Карпати настаивает: без понимания математики невозможно диагностировать проблемы обучения.

Яркий пример — сигмоидные функции. При плохой инициализации весов сигмоиды "насыщаются" (выходы близки к 0 или 1), делая локальный градиент z*(1-z) равным нулю. Это полностью останавливает обучение. Даже при нормальных условиях градиент сигмоиды не превышает 0.25 (при z=0.5), что означает его 4-кратное ослабление при каждом проходе. Для сетей с сигмоидами нижние слои учатся значительно медленнее верхних.

by swatson741 • 02 ноября 2025 г. в 05:20 • 321 points

ОригиналHN

#backpropagation#tensorflow#numpy#sigmoid#machine-learning#medium

Комментарии (131)

  • Обсуждение вращается вокруг статьи Карпати "Yes, you should understand backprop" и его тезиса о том, что понимание backprop важно, даже если вы никогда не будете писать его вручную.
  • Участники спора сомневаются в ценности этого подхода, указывая на то, что современные фреймворки и высокоуровневые абстракции делают знание деталей неактуальным.
  • Некоторые участники подчеркивают, что даже если вы не будете реализовывать backprop вручную, понимание принципов работы оптимизаторов и функций активации важно для отладки и проектирования моделей.
  • Обсуждение также затрагивает вопрос о том, насколько важно понимать детали, когда вы пользуетесь высокоуровневыми инструментами, и какие уровни абстракции считаются приемлемыми.
  • В конце концов, спор сводится к тому, что хотя фундаментальное понимание важно, но не стоит забывать, что большинство практических задач будут решаться с помощью высокоуровневых инструментов и фреймворков.

Correctness and composability bugs in the Julia ecosystem (2022) (yuri.is)

После многолетнего активного использования Julia для анализа данных и разработки пакетов автор перестал рекомендовать язык из-за серьёзных проблем с корректностью и композируемостью. В экосистеме Julia наблюдается высокая частота критических ошибок, которые проявляются даже в базовых операциях: например, функции sum! и prod! иногда молча возвращают неверные результаты, а выборка из распределений может давать смещённые или некорректные значения.

Особенно уязвимы комбинации пакетов или нестандартные типы данных — Euclidean Distance не работает с векторами Unitful, а макрос @distributed ломается при использовании OffsetArrays. Многие ошибки приводят к выходу за границы памяти или тихим неверным вычислениям, что ставит под сомнение надёжность любых сложных расчётов. Практический вывод: в проектах, где важна точность, Julia может представлять неприемлемый риск.

by cs702 • 30 сентября 2025 г. в 15:46 • 89 points

ОригиналHN

#julia#python#rust#go#pytorch#jax#tensorflow#tidyverse#r

Комментарии (36)

  • Участники обсуждают проблемы с корректностью и стабильностью экосистемы Julia, включая критические баги в базовых пакетах и проблемы совместимости.
  • Высказываются опасения, что эти проблемы делают язык неподходящим для проектов, где важна точность, несмотря на его элегантность и производительность.
  • В качестве альтернатив для научных вычислений упоминаются Python с библиотеками (PyTorch, Jax, TensorFlow), R (и tidyverse), а также Rust и Go.
  • Некоторые пользователи делятся негативным опытом из-за невыполненных обещаний (например, быстрая компиляция) и переходят на другие языки.
  • Обсуждается актуальность критики, поскольку некоторые примеры проблем датируются 2024 годом, несмотря на то, что исходный пост мог быть написан ранее.

Gemma 3 270M re-implemented in pure PyTorch for local tinkering (github.com) 🔥 Горячее

  • Назначение: ноутбук 12_gemma3.ipynb показывает, как загрузить и запустить модель Gemma-3 (1B/4B/12B/27B) с помощью Hugging Face Transformers и KerasNLP без обучения.
  • Установка: pip install transformers keras-nlp (Keras 3 + JAX/TF/PyTorch).
  • Код:
    • Авторизация через huggingface-cli login и keras_nlp.models.GemmaCausalLM.from_preset("gemma3_1b_en").
    • Генерация текста: model.generate("AI is", max_length=50).
  • Особенности Gemma-3: поддержка 140 языков, контекст до 128k токенов, инструмент-вызовы, улучшенные математика и код.
  • Внимание: модели весят 1–27 ГБ; требуется GPU/CPU с 8–48 ГБ ОЗУ.

by ModelForge • 20 августа 2025 г. в 14:01 • 399 points

ОригиналHN

#pytorch#huggingface#transformers#keras#gemma-3#jax#tensorflow#machine-learning#deep-learning#natural-language-processing

Комментарии (55)

  • Автор модели canyon289 представил Gemma 270M, ответил на вопросы и поделился туториалами.
  • Пользователи спрашивали: как перейти от классического ML к DL, где взять гайд по тонкой настройке для NER, какие бывают применения мелких моделей и нужен ли для них дополнительный трейнинг.
  • Обсуждали скорость работы на Mac CPU vs A100 GPU, качество эмбеддингов и возможность до-обучения.
  • canyon289 подтвердил, что модель полезна не только для учёбы, но и для продакшена: локальная классификация, суммаризация, тегирование, быстрый дев-цикл.

Who Invented Backpropagation? (people.idsia.ch)

Кто изобрел обратное распространение ошибки (backpropagation)

Современный backpropagation (BP) впервые опубликовал в 1970 г. финский магистрант Сеппо Линнайнмаа [BP1][R7]; 2020 г. отмечали 50-летие метода. Предшественник — работа Келли 1960 г. [BPA].

BP — это обратный режим автоматического дифференцирования: стоимость вычисления градиента примерно равна стоимости прямого прохода. Линнайнмаа дал алгоритм для произвольных разреженных сетей и привёл код на FORTRAN; все современные фреймворки (TensorFlow и др.) опираются на его метод.

В 1960-е уже применяли цепное правило Лейбница для градиентного спуска в многослойных системах (Келли, Брайсон, Дрейфус и др.), но без учёта эффективности для разреженных сетей.

Первое применение BP к обучению весов нейросетей — Дрейфус 1973 г.; первое NN-специфическое описание — Вербос 1982 г. [BP2] (в диссертации 1974 г. его ещё нет).

Уже в 1967 г. Амари с учеником Сайто обучал пятислойный перцептрон SGD, получая внутренние представления; это было глубокое обучение задолго до 1980-х. Параллельно Ивахненко строил глубокие сети GMDH (с 1965 г.).

К 1985 г. вычисления подешевели в 1000 раз; Румелхарт и др. показали, что BP формирует полезные скрытые представления.

by nothrowaways • 18 августа 2025 г. в 15:50 • 161 points

ОригиналHN

#backpropagation#fortran#tensorflow#neural-networks#automatic-differentiation#gradient-descent#deep-learning#machine-learning

Комментарии (86)

  • Суть спора: кто «изобрёл» backpropagation — Хинтон/Румелхарт (1980-е) или она была раньше в теории управления и автоматическом дифференцировании (1960-е, Kelley, Amari и др.).
  • Большинство участников считают, что это лишь эффективное применение цепного правила, которое переоткрывалось множество раз.
  • Юрген Шмидхубер подаётся как главный «скептик», обвиняющий академическое сообщество в игнорировании более ранних работ.
  • Некоторые подчеркивают, что решающим стало не само «изобретение», а переход к GPU и масштабируемым фреймворкам в 2010-х.