feat: enabling associating experiment results to a benchmark instance when number of instance properties exceeds experiment properties
Maintainer thường phản hồi trong vòng 1 ngày
@christian-pinto đang làm issue này rồi.
Từ ngày 29/9/2026.
Đánh giá
Issue này chưa được đánh giá.
Mô tả
What is the problem
In the current implementation if a benchmark problem (logical benchmark) defines more instance properties than experiments need for executing a benchmark instance of that problem, the experiment results cannot be associated to the correct benchmark instance. Example
num_assets: 10
num_periods: 10
budget: 4
scenario: s00
risk_aversion: "1e-4"
market_data:
artifacts_location: market_data
models:
artifacts_location: models
For this problem instance experiments only need to take one of the "models" to run. However all the keys are needed for matching.
The reason is that it is
- we define a unique "key" for each benchmark problem instance that is based on its {property-id:value} pairs
- we use the experiment binding to form a similar key from each run of the experiment
- we can then find all experiments which have same key as an instance
However this only works if the experiments have input properties that map to every instance property. If they don't one property is left out, the key is incomplete and matching fails.
Note: we can't set a static value for those properties in the experiment binding. This is because the binding describes how to create the key for all problem instances. Any static value for a property set their will only match instances with that exact value for the property - all others will never be matched.
Proposed solution
In many problems there is a split between descriptive instance properties and the instance formulation. The former are some properties that give information about the characteristics of the problem w.r.t the problem definition e.g. number of graph nodes, number of graph edges. The later are actual files defining a formulation of a problem from which the other properties can be read e.g. a json graph.
One solution is to allow defining which instance properties are descriptive (related to the problem class) and which contain the formulation (required for running a benchmark). Then the key can be created just on the formulation properties. i.e. we define the keys use for "routing".
descriptive_properties:
num_assets: 10
num_periods: 10
budget: 4
scenario: s00
risk_aversion: "1e-4"
market_data:
artifacts_location: market_data
routing_properties
models:
artifacts_location: models
Some issues:
- in certain situations, like above, this would reduce the key to a single file, which then has to be unique.
- we have to pre-decide what is descriptive - perhaps some descriptive properties could be taken as inputs.
Additional solutions considered
The underlying problem is how to map experiment runs to problem instances.
- Benchmark submission specify the target problem instance by id (instead of keys)
In this way it's known what the instance is for filtering and association purposes. We still need a binding but then only needed to show the correct values for the problem instance fields for each instance. If a value is not present in the binding it takes the instance default. We don't need to use keys
- Bind to benchmark instances not to benchmark problems
Instead of binding experiments to logical benchmarks they bind to problem instances.
- This binding can be at same level as logical benchmark -> one binding per instance - we can keep key approach as we are able to make it directly.
- This binding can be in each submission.
So we have to choose between 1 binding per problem class -> 1 binding per problem instance -> 1 binding per submission
Additional Context
In all cases we need a binding file. A question is if this should be used to create a key for identifying runs for an instance OR we use directly an identifier.
The need for "descriptive properties" is one cause of this issue -> previously we understood all the logical benchmark properties would be inputs. Now it's not clear cut.
- Ngôn ngữ chính
- Python
- Star
- 3
- Fork
- 7
- Merge trung bình
- 15 giờ 34 phút
- Pull request đã merge (30 ngày)
- 18
Chuẩn bị môi trường
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của IBM/algorithm-nexus
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
IBM/algorithm-nexus#159 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
feat: allow specifying multiple values for properties in an instanceCó thể đã có người làm @christian-pinto đã nhận 1 ngày trước. Đang mởenhancement
IBM/algorithm-nexus#277 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
docs: improve readmeĐang mở
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 68/100
IBM/algorithm-nexus#276 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 45/100
IBM/algorithm-nexus#254 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Test bmfm-targets with vllm >= 0.29.0Có thể đã có người làm @sivanravidos đã nhận 18 ngày trước. Đang mở
IBM/algorithm-nexus#240 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của IBM/algorithm-nexus
Issue tương tự
-
customer-reported
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Azure/azure-cli#34150 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
community-request
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 95/100
NVIDIA-NeMo/Curator#2464 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
weblate-discover crashes with an unhandled FileNotFoundError when the directory does not existĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
WeblateOrg/translation-finder#1099 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
trezor/trezor-firmware#7997 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 88/100
Maintainer thường phản hồi trong vòng 1 ngày