Tổng hợp log-sum-exp ổn định
Tổng hợp tối đa 1000 giá trị log từ âm 1e300 đến 1e300 bằng cách trừ cực đại trước khi lấy hàm mũ.
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))| Kiểm tra trước khi áp dụng | So sánh hành vi thực tế với kết quả mong đợi. Nếu kiểm tra thất bại, tìm nguyên nhân trước khi sửa tiếp. |
|---|---|
| Mô hình | Cấu hình endpoint tương thích OpenAI hoặc Anthropic bằng URL cơ sở và khóa API nếu cần. Kiểm tra kết nối. Máy chủ mô hình cục bộ phải đang chạy; công cụ từ xa có thể truyền dữ liệu riêng. |
| Dự án | Kiểm tra đầu vào rỗng, giá trị lớn lặp lại và rất âm, chỉ trả âm vô cực cho rỗng và từ chối Boolean, giá trị không hữu hạn hoặc ngoài miền. |
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))Rà soát hành vi tính toán trước khi tin kết quả mới
ExponQuay là ứng dụng khách lập trình AI trên Windows cho nhà phát triển cần giải thích thay đổi tính toán trong ngữ cảnh ứng dụng. Đưa mã nguồn, đầu vào có vấn đề và hành vi mong đợi vào cuộc trao đổi dự án. Yêu cầu đầu tiên hữu ích là nhờ mô hình kết nối tách phép toán dự kiến khỏi hạn chế cách triển khai hiện tại.
Chẳng hạn, tác vụ tổng hợp logarit có thể quy định giá trị đầu vào có giới hạn, kích thước tập hợp tối đa và kết quả khi đầu vào rỗng. Yêu cầu mô hình xem cách dịch theo giá trị lớn nhất mà giữ quy ước đó. Kèm nơi gọi sử dụng kết quả, nhất là nếu nó phân biệt tổng hợp rỗng với kết quả số hữu hạn. Cuộc trao đổi vẫn là về mã trong dự án của bạn.
Trước khi chấp nhận đề xuất, chạy trường hợp có giá trị lớn lặp lại và giá trị rất âm trong môi trường của bạn. Kiểm tra từ chối kiểu không hỗ trợ và đầu vào ngoài khoảng cùng kết quả thông thường. So sánh với tham chiếu phù hợp độ chính xác ứng dụng cần. Phương pháp nhằm cải thiện độ ổn định vẫn cần kiểm chứng trên khối lượng công việc nó thực sự phục vụ.
Chọn điểm cuối tương thích OpenAI hoặc Anthropic được ExponQuay hỗ trợ. Nếu có mô hình AI không lọc ở đó, bạn có thể chọn với thông tin xác thực cần thiết. Nhãn của nó không hứa độ chính xác toán học; hạn chế mô hình, giới hạn ngữ cảnh và hỗ trợ công cụ phụ thuộc điểm cuối thực tế và cấu hình mô hình.
Chuẩn bị rà soát tổng hợp số
Cần gì đi kèm đầu vào số có vấn đề?
Kèm khoảng mong đợi hoặc kết quả tham chiếu, kiểu đầu vào được chấp nhận và cách nơi gọi xử lý đầu ra đặc biệt. Những thông tin này giúp cuộc trao đổi đáp ứng nhu cầu ứng dụng thay vì chỉ thay biểu thức bằng công thức tương tự về toán học.
Đầu vào rỗng có nên trả số thông thường không?
Theo quy ước bạn chỉ định. Ví dụ dùng âm vô cực cho tổng hợp rỗng, điều nơi sử dụng phải hiểu. Rà soát nơi gọi đó và kiểm thử trường hợp rỗng riêng với đầu vào rất âm nhưng hợp lệ trước khi chấp nhận thay đổi đề xuất.
Vì sao kiểm thử giá trị lớn lặp lại?
Chúng kiểm tra một biên hữu ích cho cách tổng hợp trong ví dụ dự án này. Nêu hành vi mong đợi và so sánh triển khai với tham chiếu phù hợp. Đừng suy ra độ chính xác số tổng quát từ một trường hợp thông thường tránh giá trị cực trị.
Mô hình có thể chọn dung sai chấp nhận được không?
Nó có thể giải thích đánh đổi, nhưng yêu cầu ứng dụng quyết định dung sai. Cung cấp yêu cầu đó và kiểu số đang dùng. Chạy đề xuất thu được trên đầu vào tiêu biểu bằng công cụ của bạn và ghi lại giới hạn quan sát khi rà soát.
ExponQuay · Cập nhật 2026-10-25