안정적인 log-sum-exp 집계
음수 1e300부터 1e300까지 최대 1000개 로그 값에서 최댓값을 뺀 뒤 지수화해 집계합니다.
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과 필요한 API 키로 OpenAI 호환 또는 Anthropic 엔드포인트를 설정하고 연결을 테스트하세요. 로컬 모델 서버는 실행 중이어야 합니다. 원격 도구는 데이터를 별도로 전송할 수 있습니다. |
| 프로젝트 | 빈 입력, 반복되는 큰 값과 매우 음수인 값을 확인하고 빈 입력에만 음의 무한대를 반환하며 불리언, 비유한 값 또는 범위 밖 원소를 거부합니다. |
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용 AI 코딩 클라이언트입니다. 소스, 문제가 되는 입력, 예상 동작을 프로젝트 대화에 가져오세요. 유용한 첫 요청은 의도한 수학 연산과 현재 구현의 한계를 구분하도록 연결된 모델에 묻는 것입니다.
예를 들어 로그 집계 작업에서는 입력값 범위, 최대 컬렉션 크기, 빈 입력의 결과를 명시할 수 있습니다. 그 계약을 유지하면서 최댓값을 빼는 접근법을 검토하도록 모델에 요청하세요. 특히 빈 집계와 유한 수치 결과를 구분한다면 답을 사용하는 호출 코드를 포함하세요. 논의의 대상은 계속 자체 프로젝트의 코드입니다.
제안을 수용하기 전에 자체 환경에서 큰 값의 반복과 매우 작은 음수 사례를 실행하세요. 일반 결과뿐 아니라 지원하지 않는 형식과 범위 밖 입력의 거부도 확인하세요. 애플리케이션에 필요한 정밀도에 적합한 기준과 비교하세요. 안정성을 개선하려는 방법도 실제로 처리할 작업 부하에서 검증해야 합니다.
ExponQuay가 지원하는 OpenAI 호환 또는 Anthropic 엔드포인트를 선택하세요. 거기서 필터링 없는 AI 모델을 제공하면 필요한 인증 정보로 선택할 수 있습니다. 명칭이 수학적 정밀도를 보장하지는 않습니다. 모델 제한, 컨텍스트 한도, 도구 지원은 실제 엔드포인트와 모델 구성에 달려 있습니다.
수치 집계 검토 준비
문제가 있는 수치 입력과 함께 무엇을 제공해야 하나요?
예상 범위나 기준 결과, 허용 입력 형식, 호출 코드의 특수 출력 처리를 포함하세요. 그러면 단순히 표현식을 수학적으로 비슷한 공식으로 바꾸는 대신 애플리케이션 요구를 다룰 수 있습니다.
빈 입력은 일반 숫자를 반환해야 하나요?
명시한 계약을 따르세요. 예시는 빈 집계에 음의 무한대를 사용하므로 결과를 사용하는 코드가 이를 이해해야 합니다. 변경안을 수용하기 전에 그 호출 코드를 검토하고 빈 사례를 매우 작은 유효 음수 입력과 별도로 시험하세요.
반복된 큰 값을 왜 시험하나요?
이 프로젝트 예시에서 논의하는 집계 방법의 유용한 경계를 시험하기 때문입니다. 예상 동작을 명시하고 적합한 기준과 구현을 비교하세요. 극값을 피한 일반 테스트 하나만으로 전반적인 수치 정확성을 추론하지 마세요.
모델이 허용 오차를 선택할 수 있나요?
장단점은 설명할 수 있지만 허용 오차는 애플리케이션 요구 사항으로 결정합니다. 그 요구 사항과 사용하는 숫자 형식을 제공하세요. 자체 도구로 대표 입력에 제안을 실행하고 검토 중 관찰한 한계를 기록하세요.
ExponQuay · 업데이트 2026-10-25