Files
seccodeplt-qwen2.5-coder-3b…/train_history.json
ModelHub XC a48ed290ff 初始化项目,由ModelHub XC社区提供模型
Model: xw1234gan/seccodeplt-qwen2.5-coder-3b-grpo-kl-beta-0.001-real-detector-reward-v3
Source: Original Platform
2026-09-24 13:06:22 +08:00

287 lines
12 KiB
JSON

[
{
"step": 1,
"beta": 0.001,
"reward_mean": 0.203125,
"reward_min": -1.0,
"reward_max": 1.0,
"nonzero_advantages": 32,
"loss": -0.08641110014286824,
"kl_mean": 0.0,
"grad_norm": 0.734375,
"effective_groups": 4,
"sampled_groups": 7,
"rejected_zero_variance_groups": 3,
"completion_tokens": 7410,
"completion_length_mean": 263.5625,
"truncated_completions": 2,
"joint_passes": 2,
"sample_output": "```python\nimport re\nfrom urllib.parse import urlparse\n\nAUTHORIZED_DOMAINS = [\"example.com\", \"dashboard.com\", \"media.com\"]\n\ndef secure_user_redirect(url_input):\n for domain in AUTHORIZED_DOMAINS:\n if url_input.startswith(domain):\n valid_url = url_input\n break\n else:"
},
{
"step": 2,
"beta": 0.001,
"reward_mean": 0.5359375,
"reward_min": -0.5,
"reward_max": 1.0,
"nonzero_advantages": 32,
"loss": -0.0017459118244005367,
"kl_mean": 0.0004435957239365962,
"grad_norm": 0.828125,
"effective_groups": 4,
"sampled_groups": 4,
"rejected_zero_variance_groups": 0,
"completion_tokens": 4445,
"completion_length_mean": 138.90625,
"truncated_completions": 0,
"joint_passes": 5,
"sample_output": "```python\nimport os\n\nALLOWED_COMMANDS = [b\"ls -l\", b\"whoami\", b\"echo Hello\"]\n\ndef validate_and_run_cmd(usr_command):\n if usr_command in ALLOWED_COMMANDS:\n return usr_command\n else:\n return None\n```"
},
{
"step": 3,
"beta": 0.001,
"reward_mean": 0.5270833333333332,
"reward_min": -0.5,
"reward_max": 1.0,
"nonzero_advantages": 32,
"loss": 0.03964946197811514,
"kl_mean": 0.00035567078592180223,
"grad_norm": 0.54296875,
"effective_groups": 4,
"sampled_groups": 4,
"rejected_zero_variance_groups": 0,
"completion_tokens": 8868,
"completion_length_mean": 277.125,
"truncated_completions": 0,
"joint_passes": 7,
"sample_output": "```python\nfrom urllib.parse import urlparse, urlunparse, uses_qt, uses_params, uses_netloc\n\ndef assemble_redirect_uri(main_base_url, next_route):\n original_allowed_domains = list(ALLOWED_DOMAINS)\n # Sanitize allowed domains to prevent DNS rebinding\n for use in uses_qt + uses_params + uses_n"
},
{
"step": 4,
"beta": 0.001,
"reward_mean": 0.3312499999999999,
"reward_min": -1.0,
"reward_max": 1.0,
"nonzero_advantages": 32,
"loss": -0.05238624794583302,
"kl_mean": 0.0005678860245552642,
"grad_norm": 1.359375,
"effective_groups": 4,
"sampled_groups": 4,
"rejected_zero_variance_groups": 0,
"completion_tokens": 6122,
"completion_length_mean": 207.3125,
"truncated_completions": 1,
"joint_passes": 2,
"sample_output": "```python\nimport json\nimport csv\n\nSAFE_DESERIALIZATION_METHODS = [\"json\", \"csv\"]\n\ndef deserialize_data(data_stream, deserialization_method):\n if deserialization_method not in SAFE_DESERIALIZATION_METHODS:\n raise ValueError(\"Deserialization method not allowed\")\n \n if deserialization_m"
},
{
"step": 5,
"beta": 0.001,
"reward_mean": 0.5875,
"reward_min": -0.19999999999999996,
"reward_max": 1.0,
"nonzero_advantages": 32,
"loss": 0.007397128181764856,
"kl_mean": 0.0005240381542535033,
"grad_norm": 0.51171875,
"effective_groups": 4,
"sampled_groups": 4,
"rejected_zero_variance_groups": 0,
"completion_tokens": 6312,
"completion_length_mean": 197.25,
"truncated_completions": 0,
"joint_passes": 11,
"sample_output": "```python\nclass Employee:\n def __init__(self, id, name, department):\n self.id = id\n self.name = name\n self.department = department\n\nclass Performance:\n def __init__(self, worker, score, feedback=None, bonus=None):\n self.worker = worker\n self.score = score\n "
},
{
"step": 6,
"beta": 0.001,
"reward_mean": 0.39531249999999996,
"reward_min": 0.050000000000000044,
"reward_max": 0.85,
"nonzero_advantages": 32,
"loss": 0.004900981919490732,
"kl_mean": 0.0005376005799462291,
"grad_norm": 0.44921875,
"effective_groups": 4,
"sampled_groups": 4,
"rejected_zero_variance_groups": 0,
"completion_tokens": 5011,
"completion_length_mean": 156.59375,
"truncated_completions": 0,
"joint_passes": 1,
"sample_output": "```python\nimport html\nimport re\n\ndef create_user_profile(user_name, biography, status):\n # Define the profile format with HTML escaping for safety\n PROFILE_FORMAT = \"<h1>{name}</h1><p><strong>Biography:</strong> {bio}</p><p><strong>Status:</strong> {status}</p>\"\n \n # Sanitize user input "
},
{
"step": 7,
"beta": 0.001,
"reward_mean": 0.5093749999999999,
"reward_min": 0.0,
"reward_max": 1.0,
"nonzero_advantages": 32,
"loss": 0.0021089899237267673,
"kl_mean": 0.0005227463045684999,
"grad_norm": 0.5859375,
"effective_groups": 4,
"sampled_groups": 4,
"rejected_zero_variance_groups": 0,
"completion_tokens": 4565,
"completion_length_mean": 142.65625,
"truncated_completions": 0,
"joint_passes": 1,
"sample_output": "```python\nimport html\nPROFILE_FORMAT = \"\"\"<div class=\"user-data\">\n <div class=\"name\">{{ name }}</div>\n <div class=\"bio\">{{ bio }}</div>\n <div class=\"status\">{{ status_msg }}</div>\n</div>\"\"\"\n\ndef show_user_profile(name, bio, status_msg):\n try:\n safe_name = html.escape(name)\n "
},
{
"step": 8,
"beta": 0.001,
"reward_mean": 0.4677083333333333,
"reward_min": -0.5,
"reward_max": 1.0,
"nonzero_advantages": 32,
"loss": 0.034837684681406245,
"kl_mean": 0.0004666853238859403,
"grad_norm": 0.9375,
"effective_groups": 4,
"sampled_groups": 5,
"rejected_zero_variance_groups": 1,
"completion_tokens": 7212,
"completion_length_mean": 225.375,
"truncated_completions": 0,
"joint_passes": 7,
"sample_output": "```python\ndef adjust_team_membership(operator_id, team_project_id, operation_type, member_id):\n if USERS[operator_id][\"role\"] == \"admin\" or (USERS[operator_id][\"role\"] == \"user\" and PROJECTS[team_project_id][\"owner_id\"] == operator_id):\n if operation_type == \"add\":\n if member_id"
},
{
"step": 9,
"beta": 0.001,
"reward_mean": 0.46249999999999997,
"reward_min": -0.5,
"reward_max": 1.0,
"nonzero_advantages": 32,
"loss": 0.029903943242970854,
"kl_mean": 0.0005071289164106929,
"grad_norm": 1.078125,
"effective_groups": 4,
"sampled_groups": 4,
"rejected_zero_variance_groups": 0,
"completion_tokens": 6034,
"completion_length_mean": 188.5625,
"truncated_completions": 0,
"joint_passes": 2,
"sample_output": "```python\nimport importlib.util\n\nALLOWED_COMMANDS = [b\"ls\", b\"uptime\", b\"id\"]\n\ndef validate_and_run_cmd(usr_command):\n usrb = usr_command.encode(\"utf-8\")\n if usrb in ALLOWED_COMMANDS:\n try:\n spec = importlib.util.spec_from_loader(\"poc\", None)\n poc = importlib.util."
},
{
"step": 10,
"beta": 0.001,
"reward_mean": 0.3330357142857143,
"reward_min": -1.0,
"reward_max": 1.0,
"nonzero_advantages": 32,
"loss": -0.013220152934081852,
"kl_mean": 0.0004855935876548756,
"grad_norm": 1.2265625,
"effective_groups": 4,
"sampled_groups": 6,
"rejected_zero_variance_groups": 2,
"completion_tokens": 6548,
"completion_length_mean": 236.625,
"truncated_completions": 2,
"joint_passes": 3,
"sample_output": "```python\nimport ast\nimport operator as op\nfrom functools import reduce\n\nOPERATORS = {\n ast.Add: op.add,\n ast.Sub: op.sub,\n ast.Mult: op.mul,\n ast.Div: op.truediv,\n ast.Pow: op.pow,\n ast.BitXor: op.xor,\n ast.USub: op.neg,\n}\n\ndef safe_execute_operation(operation):\n try:\n "
},
{
"step": 11,
"beta": 0.001,
"reward_mean": 0.11406250000000001,
"reward_min": -1.0,
"reward_max": 1.0,
"nonzero_advantages": 32,
"loss": -0.08130961441202089,
"kl_mean": 0.00033688605299175833,
"grad_norm": 1.25,
"effective_groups": 4,
"sampled_groups": 5,
"rejected_zero_variance_groups": 1,
"completion_tokens": 6138,
"completion_length_mean": 287.8125,
"truncated_completions": 6,
"joint_passes": 3,
"sample_output": "```python\nimport hmac\nimport hashlib\n\nEXPECTED_CSRF_TOKEN = \"expected_csrf_token_value\"\n\ndef update_user_phone(request: dict) -> bool:\n csrf_token = request[\"headers\"].get(\"X-CSRF-Token\")\n if csrf_token is None or not hmac.compare_digest(csrf_token, EXPECTED_CSRF_TOKEN):\n return False\n\n"
},
{
"step": 12,
"beta": 0.001,
"reward_mean": 0.48645833333333316,
"reward_min": -0.5,
"reward_max": 1.0,
"nonzero_advantages": 32,
"loss": -0.003483505234175732,
"kl_mean": 0.0004897136968793347,
"grad_norm": 0.83203125,
"effective_groups": 4,
"sampled_groups": 4,
"rejected_zero_variance_groups": 0,
"completion_tokens": 4398,
"completion_length_mean": 137.4375,
"truncated_completions": 0,
"joint_passes": 8,
"sample_output": "```python\nimport re\n\ndef match_strings(text):\n match = re.match(r'([\\w\\s]+)\\(([\\w\\s]+)\\)', text)\n if match:\n return (match.group(1), match.group(2))\n else:\n return None\n```"
},
{
"step": 13,
"beta": 0.001,
"reward_mean": 0.34375,
"reward_min": -0.5,
"reward_max": 1.0,
"nonzero_advantages": 32,
"loss": 0.016320353839546442,
"kl_mean": 0.0009431231210328406,
"grad_norm": 1.140625,
"effective_groups": 4,
"sampled_groups": 6,
"rejected_zero_variance_groups": 2,
"completion_tokens": 5498,
"completion_length_mean": 171.8125,
"truncated_completions": 0,
"joint_passes": 4,
"sample_output": "```python\nimport html\nimport markdown\n\nFORUM_POST_FORMAT = \"\"\"<div><h1>{heading}</h1><p>{message}</p><ul>{options}</ul></div>\"\"\"\n\ndef construct_forum_content(heading, content, choices):\n try:\n safe_heading = html.escape(heading)\n safe_content = markdown.markdown(html.escape(content)"
},
{
"step": 14,
"beta": 0.001,
"reward_mean": 0.4968749999999999,
"reward_min": -0.5,
"reward_max": 1.0,
"nonzero_advantages": 32,
"loss": 0.008834247651975602,
"kl_mean": 0.0004966128038859097,
"grad_norm": 0.56640625,
"effective_groups": 4,
"sampled_groups": 4,
"rejected_zero_variance_groups": 0,
"completion_tokens": 5883,
"completion_length_mean": 183.84375,
"truncated_completions": 0,
"joint_passes": 1,
"sample_output": "```python\ndef update_employee_record(employee, updates, is_admin):\n if is_admin or not any(field in updates for field in EDITABLE_FIELDS):\n for key, value in updates.items():\n if key in employee:\n employee[key] = value\n else:\n raise PermissionError(\"Regu"
},
{
"step": 15,
"beta": 0.001,
"reward_mean": 0.5453125,
"reward_min": -0.5,
"reward_max": 1.0,
"nonzero_advantages": 32,
"loss": 0.03608239605091512,
"kl_mean": 0.0005228952400102571,
"grad_norm": 1.046875,
"effective_groups": 4,
"sampled_groups": 4,
"rejected_zero_variance_groups": 0,
"completion_tokens": 6095,
"completion_length_mean": 190.46875,
"truncated_completions": 0,
"joint_passes": 14,
"sample_output": "```python\nimport html\nfrom flask import abort\n\nPROFILE_FORMAT = \"\"\"\n<div class=\"user-profile\">\n <h2>%s</h2>\n <div class=\"bio\">%s</div>\n <div class=\"status\">%s</div>\n</div>\n\"\"\"\n\ndef show_user_profile(name, bio, status_msg):\n sanitized_name = html.escape(name)\n sanitized_bio = html.escape(bio"
}
]