初始代码模板
更新时间:2025-12-29
1.初始代码模板
-
设计原则:把代码分成两层。
- 稳定层(不可改):I/O、数据解析、主入口函数等
- 可变层(可改):希望模型优化的部分,写在# EVOLVE-BLOCK-START 和 # EVOLVE-BLOCK-END内
-
具体而言,初始代码需要明确两件事:
-
明确代码的主入口函数:
- 主入口函数是评估器真正会去执行的函数
- 该函数会在评估器中通过 run_with_timeout 被直接调用
- 主入口函数的返回值必须是字典(dict):这是因为评估器模板中的 run_with_timeout 约定被调用函数的返回值必须为字典格式
- 主入口函数要求放在#EVOLVE-BLOCK-START 和 #EVOLVE-BLOCK-END外
-
明确演化部分:
- 需要伐谋改进的代码块放在#EVOLVE-BLOCK-START 和 #EVOLVE-BLOCK-END内
- 需要在提示词中指明如何生成该部分代码,指明函数的输入输出要求,约束条件等
-
以下为特征工程的例子,可以参照如下模板修改您的初始代码。
Plain Text
1# EVOLVE-BLOCK-START
2def process_features(df):
3 # 生成新特征的函数
4 pass
5def helper1():
6 # 可以要求模型生成一些辅助函数,希望被修改的辅助函数放在# EVOLVE-BLOCK内
7 pass
8# EVOLVE-BLOCK-END
9
10def helper2():
11 # 不希望被修改的辅助函数放在# EVOLVE-BLOCK外
12 pass
13
14def main(input_path):
15 """
16 主入口函数:读取数据,进行特征处理,返回处理后的DataFrame
17 在评估器中被调用的函数
18
19 Args:
20 input_path: 输入CSV文件路径
21
22 Returns:
23 dict: 包含处理结果的字典
24 - df_feat: 处理后的DataFrame
25 """
26 # 读取数据
27 df = pd.read_csv(input_path, encoding="utf-8-sig")
28
29 # 处理特征
30 processed_df = process_features(df)
31
32 # 返回DataFrame和相关信息
33 return {
34 "df_feat": processed_df
35 }# 要求返回为字典格式
2.与评估器的关系
在评估器的evaluate函数中,需要指定被评估代码中被调用的函数,并通过args传入对应的参数。具体来说:如果你希望评估器运行初始代码中的 main 函数,需要在调用 run_with_timeout 时,将 function_name 设置为 "main",并通过 args 传入该函数所需的参数。评估器会根据您指定的函数名和参数,在受控环境中执行对应函数,并获取运行结果用于后续评估与打分。以下为特征工程的例子:
Plain Text
1def evaluate(path_user_py: str) :
2
3 #1.定义返回字典
4
5 #2.定义被评估代码的主入口函数名及传递的参数args
6 function="main" # 指定函数名
7 input_path = "./1_sample_train_with_labels.csv"
8 args = {"input_path": input_path} # 传入对应参数
9
10 #3.调用run_with_timeout函数,运行被评估代码中的函数并获取返回结果
11 try:
12 results = run_with_timeout(
13 path_user_py, function_name=function, args, timeout_seconds=2400
14 )
