Устойчивое агрегирование log-sum-exp
ExponQuay — ИИ-клиент Windows для изучения логарифмического агрегирования в исходных файлах. Обсудите числовой контракт с совместимой моделью, проверьте предложенное смещение на максимум и испытайте крайние значения перед применением изменений.
from math import exp, fsum, log, inf
def log_sum_exp(values):
if type(values) not in (list, tuple) or len(values) > 1000:
raise ValueError("values.container")
values = tuple(values)
if len(values) > 1000 or any(
type(v) not in (int, float) or not -1e300 <= v <= 1e300 for v in values
):
raise ValueError("values.range")
if not values:
return -inf
peak = max(values)
return peak + log(fsum(exp(v - peak) for v in values))| Проверьте перед применением | Сравните фактическое поведение с ожидаемым. Если проверка не проходит, разберитесь в причине перед следующими изменениями. |
|---|---|
| Подключение | Базовый URL, учётные данные и доступный сервер. |
| Проект | Проверьте пустой ввод, повторяющиеся большие и очень отрицательные значения, возвращая минус бесконечность только для пустого ввода и отклоняя логические, неконечные или выходящие за диапазон элементы. |
from math import exp, fsum, log, inf
def log_sum_exp(values):
if type(values) not in (list, tuple) or len(values) > 1000:
raise ValueError("values.container")
values = tuple(values)
if len(values) > 1000 or any(
type(v) not in (int, float) or not -1e300 <= v <= 1e300 for v in values
):
raise ValueError("values.range")
if not values:
return -inf
peak = max(values)
return peak + log(fsum(exp(v - peak) for v in values))Проверьте численное поведение, прежде чем доверять новому результату
ExponQuay — клиент программирования с ИИ для Windows для разработчиков, которым нужно объяснение численного изменения в контексте приложения. Добавьте исходник, проблемный ввод и ожидаемое поведение в обсуждение проекта. Полезный первый запрос — попросить подключённую модель отделить задуманную математическую операцию от ограничений текущей реализации.
Например, задача логарифмического агрегирования может задавать ограниченные значения, максимальный размер коллекции и результат для пустого ввода. Попросите модель изучить подход со сдвигом на максимум, сохранив эти условия. Добавьте вызывающий код, использующий ответ, особенно если он отличает пустой агрегат от конечного численного результата. Обсуждение остаётся о коде вашего проекта.
До принятия предложения запустите случаи с повторяющимися большими и очень отрицательными значениями в своей среде. Проверьте отклонение неподдерживаемых типов и значений вне диапазона наряду с обычным результатом. Сравните с подходящим эталоном для требуемой приложению точности. Метод, призванный улучшить устойчивость, всё равно требует проверки на реальной будущей нагрузке.
Выберите поддерживаемую ExponQuay конечную точку, совместимую с OpenAI, или Anthropic. Если там доступны модели ИИ без фильтров, можно выбрать одну с необходимыми учётными данными. Её название не обещает математической точности; ограничения модели, пределы контекста и поддержка инструментов зависят от реальной конечной точки и конфигурации модели.
Подготовка проверки численного агрегирования
Что приложить к проблемному численному вводу?
Укажите ожидаемый диапазон или эталонный результат, допустимые типы ввода и обработку особых результатов вызывающим кодом. Эти сведения позволяют обсуждать потребности приложения, а не просто заменять выражение математически похожей формулой.
Должен ли пустой ввод возвращать обычное число?
Следуйте заданным условиям. Пример использует отрицательную бесконечность для пустого агрегата, и потребитель должен это понимать. Проверьте вызывающий код и отдельно протестируйте пустой случай, отличая его от очень отрицательных допустимых значений, до принятия изменения.
Зачем проверять повторяющиеся большие значения?
Они проверяют полезную границу подхода к агрегированию из примера проекта. Задайте ожидаемое поведение и сравните реализацию с подходящим эталоном. Не судите об общей численной точности по одному обычному примеру без экстремальных значений.
Может ли модель выбрать допустимую погрешность?
Она может объяснить компромиссы, но допуск определяют требования приложения. Предоставьте это требование и используемые численные типы. Запустите предложение на характерных данных своими инструментами и задокументируйте выявленные при проверке ограничения.
ExponQuay · Обновлено 2026-10-25