File size: 6,234 Bytes
ed2eb44
 
 
 
 
06d4ee9
ed2eb44
 
 
 
 
 
9bc8e05
ed2eb44
 
 
a10c4ff
ed2eb44
a10c4ff
ed2eb44
a10c4ff
ed2eb44
a10c4ff
ed2eb44
a10c4ff
ed2eb44
a10c4ff
 
ed2eb44
a10c4ff
ed2eb44
a10c4ff
ed2eb44
a10c4ff
ed2eb44
a10c4ff
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ed2eb44
 
 
 
 
 
 
a10c4ff
ed2eb44
 
 
 
06d4ee9
 
ed2eb44
 
 
 
 
 
 
06d4ee9
 
 
ed2eb44
 
 
 
 
 
 
 
 
 
 
 
 
06d4ee9
 
ed2eb44
 
 
 
 
 
 
 
 
06d4ee9
 
ed2eb44
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
"""
Task description components for the leaderboard application.
"""
import streamlit as st
from src.utils.config import tasks_info
from src.utils.task_mapping import get_display_name, get_original_name

def render_task_descriptions():
    """
    Render the benchmark details section
    """
    # Display the MLRC-BENCH image
    st.image("Assests/MLRC_Bench_overview.png", use_column_width=True)
    
    # Display the MLRC-BENCH information
    st.markdown("""
   ## MLRC-BENCH: Can Language Agents Solve ML Research Challenges?

Recent advances in large language models (LLMs) have motivated a critical question in the machine learning community: can AI agents not only propose novel research ideas but also translate them into effective implementations? **MLRC-BENCH** is introduced as a new benchmark to investigate this question by rigorously evaluating the capacity of LLM-based research agents to address contemporary ML competition tasks.

---

### Benchmark Overview

MLRC-BENCH seeks to assess AI-driven research workflows in two primary dimensions:

- **Idea Proposal**: Generating plausible and potentially innovative methods for addressing current ML research problems.  
- **Code Implementation**: Translating these ideas into executable solutions that measurably improve performance over a baseline.

This design contrasts with prior benchmarks that emphasize either (1) full end-to-end paper generation assessed by subjective human or LLM reviews, or (2) isolated code-generation tasks that focus on engineering challenges. By dividing the problem into idea proposal and implementation, MLRC-BENCH provides a clearer measure of how well agents can form and operationalize research insights.

---

### Evaluation Criteria

For each agent on a given task, MLRC-BENCH measures performance relative to a **baseline** method and a **top human** benchmark. We report two primary metrics, each taken from the maximum result across all experimental runs for a task-model pair:

- **Relative Improvement to Human**  
  How effectively the agent closes the gap between the baseline and the best human solution.

- **Absolute Improvement to Baseline**  
  How much better the agent performs compared to the baseline, expressed as a percentage gain.
---

### Significance

MLRC-BENCH emphasizes rigorous and reproducible evaluations, focusing on tasks drawn from recent machine learning conferences and workshops to ensure that tested methods are both **meaningful** and **nontrivial**. This dynamic approach allows the benchmark to grow as new competition tasks arise, enabling continuous monitoring of progress in agent-driven research. Through its emphasis on objective success criteria, MLRC-BENCH fosters the development of AI agents that more effectively balance conceptual innovation with practical impact.

---

### Future Directions

While current results suggest that LLM-based research agents still fall short of human capabilities in creativity and code implementation, MLRC-BENCH provides a **scalable mechanism** to track and accelerate progress. As AI methods advance—and potentially branch into high-stakes domains such as healthcare and climate modeling—this benchmark could serve as a critical resource for aligning agent innovation with **reliability** and **safety**.

    """)
    
    st.markdown("""
    <div class="card">
        <div class="card-title"><span class="card-title-icon">🔍</span> Tasks in the Benchmark</div>
        <p style="margin-bottom: 20px;">
            Click on any task to learn more.
        </p>
    </div>
    """, unsafe_allow_html=True)

    # Task links mapping - using original task names
    original_task_links = {
        "Backdoor Trigger Recovery": "https://www.llmagentsafetycomp24.com/tracks/#backdoor_model",
        "Machine Unlearning": "https://unlearning-challenge.github.io/",
        "Perception Temporal Action Loc": "https://ptchallenge-workshop.github.io",
        "Product Recommendation": "https://www.aicrowd.com/challenges/amazon-kdd-cup-23-multilingual-recommendation-challenge",
        "Meta Learning": "https://metalearning.chalearn.org/",
        "Llm Merging": "https://llm-merging.github.io"
    }
    
    # Update links mapping to use display names as keys
    task_links = {get_display_name(task): link for task, link in original_task_links.items()}

    # Create two columns
    col1, col2 = st.columns(2)
    
    # Split tasks between the two columns with better styling
    task_items = list(tasks_info.items())
    mid_point = len(task_items) // 2
    
    with col1:
        for task, description in task_items[:mid_point]:
            link = task_links.get(task, "#")
            st.markdown(f"""
            <a href="{link}" target="_blank" style="text-decoration: none; color: inherit;">
                <div class="task-card" style="cursor: pointer; transition: transform 0.2s, box-shadow 0.2s; padding: 12px; margin-bottom: 15px; height: auto;" onmouseover="this.style.transform='translateY(-5px)'; this.style.boxShadow='0 8px 15px rgba(0, 0, 0, 0.2)';" onmouseout="this.style.transform='translateY(0)'; this.style.boxShadow='0 4px 6px rgba(0, 0, 0, 0.15)';">
                    <div class="task-title" style="text-align: center;">{task} <span style="font-size: 14px; opacity: 0.7;">🔗</span></div>
                </div>
            </a>
            """, unsafe_allow_html=True)
    
    with col2:
        for task, description in task_items[mid_point:]:
            link = task_links.get(task, "#")
            st.markdown(f"""
            <a href="{link}" target="_blank" style="text-decoration: none; color: inherit;">
                <div class="task-card" style="cursor: pointer; transition: transform 0.2s, box-shadow 0.2s; padding: 12px; margin-bottom: 15px; height: auto;" onmouseover="this.style.transform='translateY(-5px)'; this.style.boxShadow='0 8px 15px rgba(0, 0, 0, 0.2)';" onmouseout="this.style.transform='translateY(0)'; this.style.boxShadow='0 4px 6px rgba(0, 0, 0, 0.15)';">
                    <div class="task-title" style="text-align: center;">{task} <span style="font-size: 14px; opacity: 0.7;">🔗</span></div>
                </div>
            </a>
            """, unsafe_allow_html=True)