EExponQuay
Środowisko programowania z AI

Stabilna agregacja log-sum-exp

Agreguj najwyżej 1000 wartości logarytmicznych od minus 1e300 do 1e300 po odjęciu maksimum przed potęgowaniem.

● ● ●ExponQuay●
Sposoby pracy · Stabilna agregacja log-sum-exp ×
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))
✳Agreguj najwyżej 1000 wartości logarytmicznych od minus 1e300 do 1e300 po odjęciu maksimum przed potęgowaniem.
✓ ZmianySprawdź przed zastosowaniem ↗
Ilustracja środowiska
Sprawdź przed zastosowaniemPorównaj rzeczywiste zachowanie z oczekiwanym wynikiem. Jeśli sprawdzenie się nie powiedzie, wyjaśnij przyczynę przed kolejnymi zmianami.
ModeleDodaj endpoint zgodny z OpenAI lub Anthropic, podając bazowy URL i klucz API, jeśli jest wymagany. Sprawdź połączenie. Lokalny serwer modelu musi działać; zdalne narzędzia mogą przesyłać dane oddzielnie.
ProjektSprawdź pusty zbiór, powtarzające się duże i bardzo ujemne wartości, zwracając minus nieskończoność tylko dla pustego wejścia i odrzucając wartości logiczne, nieskończone lub poza zakresem.
Sposoby pracy

Stabilna agregacja log-sum-exp

Sposoby pracy ↗
Sposoby pracy
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))
Środowisko programowania z AI

Sprawdź zachowanie numeryczne, zanim zaufasz nowemu wynikowi

ExponQuay to klient programistyczny AI dla Windows dla twórców potrzebujących wyjaśnienia zmiany numerycznej w kontekście aplikacji. Wprowadź do rozmowy o projekcie kod, problematyczne wejście i oczekiwane zachowanie. Przydatna pierwsza prośba dotyczy oddzielenia przez podłączony model zamierzonej operacji matematycznej od ograniczeń obecnej implementacji.

Na przykład zadanie agregacji logarytmicznej może określać ograniczone wartości wejściowe, maksymalny rozmiar zbioru i wynik dla pustego wejścia. Poproś model o zbadanie metody z przesunięciem o maksimum przy zachowaniu tego kontraktu. Dołącz kod korzystający z odpowiedzi, szczególnie jeśli odróżnia pustą agregację od skończonego wyniku liczbowego. Rozmowa nadal dotyczy kodu Twojego projektu.

Przed przyjęciem propozycji uruchom we własnym środowisku przypadki z powtarzającymi się dużymi wartościami i wartościami bardzo ujemnymi. Sprawdź odrzucanie nieobsługiwanych typów i danych poza zakresem oraz zwykły wynik. Porównaj z odpowiednim odniesieniem dla precyzji potrzebnej aplikacji. Metoda mająca poprawiać stabilność nadal wymaga weryfikacji na rzeczywistym docelowym obciążeniu.

Wybierz punkt końcowy zgodny z OpenAI lub punkt końcowy Anthropic obsługiwany przez ExponQuay. Jeśli dostępne są tam modele AI bez filtrów, możesz wybrać jeden z wymaganymi danymi uwierzytelniającymi. Jego etykieta nie obiecuje precyzji matematycznej; ograniczenia modelu, limity kontekstu i obsługa narzędzi zależą od rzeczywistego punktu końcowego i konfiguracji modelu.

Przygotowanie przeglądu agregacji numerycznej

Co dołączyć do kłopotliwych danych numerycznych?

Podaj oczekiwany zakres lub wynik referencyjny, akceptowane typy danych i sposób traktowania specjalnych wyników przez kod wywołujący. Pozwala to omówić potrzeby aplikacji, zamiast jedynie zamieniać wyrażenie na matematycznie podobny wzór.

Czy puste wejście powinno zwracać zwykłą liczbę?

Stosuj określony przez siebie kontrakt. Przykład używa ujemnej nieskończoności dla pustej agregacji, co odbiorca musi rozumieć. Przed przyjęciem zmiany przejrzyj kod wywołujący i przetestuj pusty przypadek osobno od bardzo ujemnych, ale poprawnych danych.

Dlaczego testować powtarzające się duże wartości?

Sprawdzają przydatny przypadek graniczny metody agregacji omawianej w tym przykładzie projektu. Podaj oczekiwane zachowanie i porównaj implementację z odpowiednim odniesieniem. Nie wnioskuj o ogólnej dokładności numerycznej z pojedynczego zwykłego testu unikającego skrajności.

Czy model może wybrać akceptowalną tolerancję błędu?

Może wyjaśnić kompromisy, ale tolerancję określają wymagania aplikacji. Podaj to wymaganie i używane typy liczbowe. Uruchom propozycję na reprezentatywnych danych własnymi narzędziami i udokumentuj ograniczenia zaobserwowane podczas przeglądu.

Pobierz dla Windows ↗

ExponQuay · Zaktualizowano 2026-10-25