Комментарии 12
В вашей модели мира исчезли сложение, вычитание и ещё много других страшных функций.
Это генерация Deepseek. Он "реально" всё ускорил: выкинул нормализацию, оставил однотактные деления (как умножение на 1/значение), умножения и сумирования, которые могут выполняться на десятибитной системе счисления от 0 до A, подсчитал сколько энергии тратится на деления в дробях и сделал вывод о революционной производительности на малых числах :)
Все расчеты это нейрогаллюцинация - запись ночного кошмара математика, который забыл базу :)
В принципе, я сним согласился поскольку мгновенная (за такт) генерация представлений величины: числитель/знаменатель может использоваться где нибудь, например в каких нибудь операционных усилителях :)
А умножение/деление параллельное без переносов (a1 + a2 + a3 + a4 + a5 + a6 +a7 + a8 + a9 + aA) * (b1 + b2 + b3 + b4 + b5 + b6 +b7 + b8 + b9 + bA) - Полиномиальное умножение в десятичной системе (а*1000+b*100+c*10+d) *(e1000+f*100+g*10+h) = (a*e)<<6+(a*f+b*e)<<5+(a*g+b*f+c*e)<<4+(a*h+b*g+c*f+d*e)<<3+(b*h+c*g+d*f)<<2+(c*h+d*g)<<1+(d*h)
(a*e) - максимум 100 (A*A=A<<1=A0 - запись конечно непривычная, зато на одну цифру меньше чем в арабском),
в каких физических устройствах может использоваться величина из трёх параметров целое*числитель/знаменатель?
В физических устройствах величина в форме целое × числитель / знаменатель часто используется для задания или хранения рациональных чисел (дробей) с фиксированной структурой, особенно когда точность дробей важна, а использование плавающей запятой нежелательно из-за ошибок округления, требований к скорости или совместимости.
Вот типичные примеры устройств и систем, где такая форма хранения чисел применяется:
1. Синтезаторы частоты и ФАПЧ (PLL)
2. Цифровые сигнальные процессоры (DSP) и аудиокодеки
3. Счётчики и таймеры в микроконтроллерах
4. Графические процессоры и скалеры изображения
5. Аппаратные ускорители для работы с рациональной арифметикой
6. Системы управления шаговыми двигателями и ЧПУ
7. GPS-приёмники и системы навигации
8. Измерительные приборы и калибровочные коэффициенты
Как сопроцессор для калькуляторов сойдёт.
Во всех Ваших примерах нет многократной арифметики, которая вызовет экспоненциальный рост расходов на память и вычисления. А ML вполне себе живёт на fixed size floats: в сырых данных шума больше точности float, да и он сглаживается при усреднении.
огласен, чего нет того нет - это модель, которая предположительно с точки зренияя ИИ, при внедрении может увеличить производительность и снизить энергопотребление.
IEEE 754 (основание 2): Нормализация: сдвиг мантиссы влево/вправо на N бит Аппаратно: barrel shifter, O(log n) сложности Наша система (основание 10): Нормализация: деление/умножение на 10 Требует: 1. Определить, сколько раз делится на 10 2. Выполнить деление (сложная операция!)
Если нужно реальное деление - таблично
Как то так:
def find_second_multiplier(p, abcd):
"""p = [p0, p1, p2, p3, p4, p5, p6] - коэффициенты произведения (что делится)
abcd = [a, b, c, d] - известный множитель (на что делиться)
Возвращает [e, f, g, h] или None если нет решения"""
a, b, c, d = abcd
p0, p1, p2, p3, p4, p5, p6 = p
if a == 0:
return None # Нельзя решить этим методом
# Шаг 1: e
if p6 % a != 0:
return None
e = p6 // a
# Шаг 2: f
temp = p5 - b * e
if temp % a != 0:
return None
f = temp // a
# Шаг 3: g
temp = p4 - b * f - c * e
if temp % a != 0:
return None
g = temp // a
# Шаг 4: h
temp = p3 - b * g - c * f - d * e
if temp % a != 0:
return None
h = temp // a
# Проверка
if (b*h + c*g + d*f != p2 or
c*h + d*g != p1 or
d*h != p0):
return None
return [e, f, g, h]
def find_first_multiplier(p, efgh):
"""Аналогично для известного второго множителя"""
e, f, g, h = efgh
p0, p1, p2, p3, p4, p5, p6 = p
if h == 0:
return None
# Обратный порядок
if p0 % h != 0:
return None
d = p0 // h
temp = p1 - d * g
if temp % h != 0:
return None
c = temp // h
temp = p2 - c * g - d * f
if temp % h != 0:
return None
b = temp // h
temp = p3 - b * g - c * f - d * e
if temp % h != 0:
return None
a = temp // h
# Проверка
if (a*g + b*f + c*e != p4 or
a*f + b*e != p5 or
a*e != p6):
return None
return [a, b, c, d]Линейное уравнение
3. Корректировать экспоненту Пример: 12345 × 67890 = 838,102,050 Нужно: 838102050 → 8.38102050 × 10⁸ Деление на 10⁸!
А в отсутствии нормализации,
X = Mₓ × 10ᴺˣ Y = Mᵧ × 10ᴺʸ X × Y = (Mₓ × Mᵧ) × 10⁽ᴺˣ⁺ᴺʸ⁾ Просто: 1. M_result = Mₓ × Mᵧ (целочисленное умножение) 2. N_result = Nₓ + Nᵧ (сложение экспонент) 3. Результат: M_result × 10ᴺʳᵉˢᵘˡᵗ НЕТ НОРМАЛИЗАЦИИ! Результат остаётся в том же формате.
Сравнение с IEEE 754 FPU
Ключевое отличие:
Операция I EEE 754 Double Наша система (без норм.)
Умножение 1. Мант × мант
2. + экспоненты
3. Нормализация
4. Округление
1. Мант × мант
2. + экспоненты
Тактов 3-5 2
Энергия 73 fJ 1.9 fJ (в 38 раз меньше!)
Точность Всегда нормализована Может быть "ненормализованной"
8. Преимущества отказа от нормализации
Скорость: В 3.5 раза быстрее
Энергия: В 2.4 раза эффективнее
Простота: Нет сложных делителей/нормализаторов
Точность: Нет потерь от округления при нормализации
Цифры тут конечно (ИИ), но в целом понятно отложенная нормализация выполняется при сложении, вычитании.
Откройте анонимный чат с тем же ДикПиком, скормите ему эту статью и комментарии, но с таким промтом:
Чатег, укажи фатальные провалы этой модели, можно матом
Как вариант поразмышлять, соглашусь, что для внедрения это не нужно, а вот чтобы занять какой нибудь работой процент итишников чтобы на выходе получить непредсказуемый результат? Тут же главное идея. ИИ придумал, что вычисления в рациональных числах лучше по каким то там размышления. И чтобы это подтвердить или опровергнуть - начинается какаято деятельность (вполне возможно непродуктивная, как и генерация биткоинов, которая потребляет электрическую энергию). Соответственно выделяются и осваиваются финансы, комуто выплачивают за работу, комуто просто выплачивают. Побочным продуктом реализации этого ноухау: перестраиваемая апаратная логика под вычесления необходимой точности, увеличение ёмкости хранильщ данных, использование логики для вычисление по указателю в памяти, чтоб не гонять гигантские числа в умножитель, ну и куча различных других усовершенствований, которые смогут найти применение в обычных бинарных вычислениях фиксированной точности и разрядности. И как закономерный результат - наукоёмкость выпускаемой продукции становится сличшком сложной для понимания. А поддержание производственных мощностей требует прорву энергии. Поэтому прогрессирует еще и энергетика, генерирующие технологии.
Соответственно выделяются и осваиваются финансы
То есть, бизнес будет в гарантированном убытке. Корпоратив с блэкджеком и шалуньями обойдётся на порядки дешевле и даст больше пользы. :)
Ваша статья и комментарии - это яркий психологический кейс, не технический.
ИИ верить нельзя, всегда нужна перепроверка, потому как ответственность за применение советов от ИИ в реальной жизни всегда лежит на человеке, а у чатика - лапки.
Так а как решать проблему роста знаменателя при каждой операции? Там очень быстро нужна будет длинная арифметика, а это и лишние вычисления, и динамическое выделение памяти при каждой операции, и нелокальность с т.з. кэша.
Вся схема в рациональных числах до переполнения знаменателя работает на десяток операций, может быть. Неужто вы всерьёз думаете, что комитет ieee 754 придумывал стандарт с нуля, и другие варианты к тому моменту не были опробованы?
Во-первых, это уже очень старая идея - рациональная арифметика. Никакой революции тут нет. В том же питоне есть модуль fractions. Ее применяют только в очень узких задачах, потому что главная проблема тут - переполнение. Там, где вам нужна абсолютная точность но пофигу на производительность. Какая-нибудь математика с комбинаторикой тут только и остается.
При считая всего в целых числах они очень быстро вылезают за границы 32 или даже 64 бит. Особенно, если у вас есть сложение и вычитание, которые ваш нейрослоп просто пропустил.
Вы, работая в питоне, об этом даже не задумываетесь, там-то длинная арифметика реализована из коробки, но при этом идет потеря производительности на порядки. Особенно, если у вас есть сложение и вычитание.
Для ИИ эта идея вообще не подходит никак. Длинная арифметика медленна, да и запизать вот эти рациональные значения во всякие гауссовские функции активации просто невозможно. Там же нерациональные значения получаются в ответе. А без нелинейных функций активации любая нейросеть становится тривиальным линейным оператором и не может практически ничего.
В процессоры общего назначения это не встроят никогда, потому что длинную арифметику делать стандартной операцией - это бред. Слишком высокого уровня этот алгоритм.
Графики у вас тоже сгаллюционированны ИИшечкой? Хотя оно может быть даже быстрее но только если у вас там "делиться" 15 чисел до 10. Это очень тривиальный случай вообще никакого отношения к практике не имеющий.

Революция в ИИ-вычислениях: Детерминированная рациональная арифметика с отложенным делением