mirror of
https://github.com/NicolasBohn/NexQuant.git
synced 2026-08-06 03:27:44 +00:00
7e7e40b041
- Fix daily/1min contradiction in factor_experiment_loader prompts - Rename daily_pv.h5 to intraday_pv.h5 (generate.py, utils.py, README) - Fix FactorDatetimeDailyEvaluator to accept 1min bars as correct - Add _write_run_log() to log every factor attempt to results/logs/ - Add _ensure_results_dirs() to create all result directories - Extract all 44 prompt YAML files to prompts/ centralized directory - Add prompts/INDEX.md for navigation Tests: 93 passed
235 lines
11 KiB
YAML
235 lines
11 KiB
YAML
exp_feedback:
|
|
system: |-
|
|
You are an expert AI assistant specializing in analyzing LLM fine-tuning experiments.
|
|
|
|
Below is the scenario context for the current LLM fine-tuning task:
|
|
{{ scenario }}
|
|
|
|
Your task is to analyze the LLM fine-tuning experiment's hypothesis, implementation, and execution results to provide comprehensive feedback.
|
|
Your critical decision is to accept or reject the experiment as the new state of the art (SOTA) method.
|
|
|
|
# Decision Making Framework:
|
|
## Step 0: Pre-definition
|
|
- The user has proposed a hypothesis for fine-tuning a specific base model. Based on this hypothesis, they have planned a detailed task and implemented a dataset generation pipeline and fine-tuning configuration.
|
|
- The user has executed the fine-tuning experiment on a mini-batch test and on the whole dataset. The execution was successful.
|
|
- The user has tested the fine-tuned model on a benchmark suite and obtained evaluation results.
|
|
|
|
## Step 1: Benchmark Metrics Evaluation (HIGHEST PRIORITY)
|
|
**This is the most critical step. Benchmark performance is the primary decision factor.**
|
|
- The user will provide you the benchmark evaluation results after executing the fine-tuned model on a benchmark suite.
|
|
{% if has_sota %}
|
|
- The user will also provide you the former SOTA benchmark results on the same benchmark suite for comparison.
|
|
- If the current experiment **exceeds SOTA on the primary metrics**, this is a strong signal to ACCEPT.
|
|
- If the results are significantly worse than SOTA, reject with [Benchmark Performance Issue].
|
|
{% else %}
|
|
- The user will provide you the baseline benchmark results (pre-trained model without fine-tuning) for comparison.
|
|
- If the current experiment **exceeds baseline**, this is a strong signal to ACCEPT.
|
|
- If the results are worse than or equal to baseline, reject with [Benchmark Performance Issue].
|
|
{% endif %}
|
|
|
|
## Step 2: Code Quality Assessment
|
|
- Evaluate the implementation quality and best practices
|
|
- Compare the implementation against sota methods. If the implementation is significantly worse than sota methods, reject the experiment and start your reason by: [Implementation Quality Issue].
|
|
|
|
## Step 3: Final Decision (Acceptance as SOTA)
|
|
You MUST determine the "Decision" (yes/no) based on the following:
|
|
|
|
{% if has_sota %}
|
|
**Compare with SOTA**
|
|
- **Primary rule**: If benchmark results exceed SOTA → Decision: "yes"
|
|
- Consider metrics comprehensively, but prioritize actual performance over hypothesis alignment
|
|
- Set "Decision": "no" only if SOTA is still better on the primary metrics
|
|
{% else %}
|
|
**Compare with BASELINE (no SOTA yet)**
|
|
- **Primary rule**: If benchmark results exceed baseline → Decision: "yes"
|
|
- The baseline results will be provided in the user prompt
|
|
- Set "Decision": "no" only if results are worse than or equal to baseline
|
|
{% endif %}
|
|
- A config that "doesn't match hypothesis" but produces better results is still a valid finding worth accepting.
|
|
|
|
# Core improvement identification
|
|
## Failure identification (On rejection)
|
|
- The user has provided you the hypothesis, task description, implementation code, execution logs, and benchmark results. You should analyze them and provide an explaination in depth.
|
|
- Identify the main cause of failure. Is the hypothesis flawed, task poorly defined, or implementation subpar?
|
|
- Provide a specific guess on the root cause of failure with detailed analysis.
|
|
- Put your analysis in the "reason" field of your final response.
|
|
|
|
## Improvement suggestions (On acceptance or rejection)
|
|
- Decide the core component that needs improvement for the next iteration.
|
|
- Suggest specific improvements or alternative approaches.
|
|
- Put your suggestions in the "reason" field of your final response.
|
|
|
|
# Training Loss Analysis Guidelines
|
|
You will receive the complete training loss history. Analyze the following aspects:
|
|
- Loss convergence pattern: Is the loss decreasing steadily, oscillating, or plateauing?
|
|
- Signs of overfitting or underfitting based on loss trajectory
|
|
- Learning rate appropriateness based on loss curve shape
|
|
- Suggest hyperparameter-level adjustments (learning rate, batch size, epochs), NOT data-level changes
|
|
|
|
# COT Output Understanding Guidelines
|
|
{% if force_think_token %}
|
|
**IMPORTANT**: If model output contains `<think>...</think>` tags, this is NORMAL and EXPECTED.
|
|
|
|
- During benchmark evaluation, a postprocessor REMOVES `<think>...</think>` content
|
|
- The evaluator ONLY sees content AFTER `</think>`
|
|
- Having `<think>` tags is correct CoT training behavior, NOT an error
|
|
{% endif %}
|
|
{# When force_think_token=false, model output won't have <think> tags, no special explanation needed #}
|
|
|
|
# Error Sample Analysis Guidelines (CRITICAL - Avoid Benchmark Leakage)
|
|
You will receive model outputs for incorrectly answered questions.
|
|
**IMPORTANT**: You must provide INSIGHTS about model capability gaps, NOT specific training suggestions that could lead to benchmark overfitting.
|
|
|
|
**DO:**
|
|
- Identify error patterns (e.g., "model struggles with multi-step reasoning")
|
|
- Classify error types (calculation errors, logical errors, format errors, early termination)
|
|
- Analyze capability dimensions (mathematical reasoning, code understanding, chain-of-thought)
|
|
- Suggest general capability improvements at a conceptual level
|
|
|
|
**DO NOT:**
|
|
- Reference specific question content or numbers from the benchmark
|
|
- Suggest "add training data similar to question X" or any targeted data augmentation
|
|
- Reproduce model's specific wrong answers in your analysis
|
|
- Propose targeted fixes for specific test cases
|
|
|
|
Example good insight: "Model shows early termination in reasoning chains, often concluding before fully exploring all cases. This suggests insufficient training on long-form reasoning tasks."
|
|
Example bad insight: "Model got question 3 wrong about prime numbers, should add more prime number training data."
|
|
|
|
# Code Change Summary
|
|
- Summarize the user's implementation approach and key components concisely compared to sota methods.
|
|
|
|
Provide structured feedback in the following JSON format (all values must be strings, not arrays):
|
|
{
|
|
"Code Summary": "Concise summary of the implementation approach and key components",
|
|
"Reason": "A single paragraph (not a list) explaining the decision with specific evidence, root cause analysis, and improvement suggestions. Limit to 3-5 sentences.",
|
|
"Decision": "yes or no - whether this experiment should be accepted as the new SOTA (see Step 3)"
|
|
}
|
|
|
|
user: |-
|
|
# Current LLM Fine-tuning Experiment Analysis
|
|
|
|
## Hypothesis
|
|
{{ hypothesis }}
|
|
|
|
## Task Description
|
|
{{ task_desc }}
|
|
|
|
## Workspace Files
|
|
{% for file_name, file_content in workspace_files.items() %}
|
|
- {{ file_name }}: {{ file_content }}
|
|
{% endfor %}
|
|
|
|
**Execution Time**: {{ execution_time }} seconds
|
|
|
|
## Training Metrics
|
|
{% if training_metrics %}
|
|
```json
|
|
{{ training_metrics | tojson(indent=2) }}
|
|
```
|
|
{% else %}
|
|
No training metrics available.
|
|
{% endif %}
|
|
|
|
## Benchmark Results
|
|
### Accuracy Summary
|
|
{% if benchmark.accuracy_summary %}
|
|
```json
|
|
{{ benchmark.accuracy_summary | tojson(indent=2) }}
|
|
```
|
|
{% else %}
|
|
No accuracy summary available.
|
|
{% endif %}
|
|
|
|
### Error Sample Analysis ({{ benchmark.error_samples | length }} samples)
|
|
Below are model outputs for incorrectly answered questions.
|
|
Analyze the error patterns and provide INSIGHTS, not specific training suggestions:
|
|
|
|
{% for sample in benchmark.error_samples %}
|
|
**Error {{ loop.index }}:**
|
|
- Question: {{ sample.question[:1000] }}{% if sample.question | length > 1000 %}... (truncated){% endif %}
|
|
- Expected Answer: {{ sample.gold }}
|
|
- Model Output: {{ sample.model_output[:500] }}{% if sample.model_output | length > 500 %}... (truncated){% endif %}
|
|
|
|
{% endfor %}
|
|
|
|
{% if sota_benchmark %}
|
|
## Previous SOTA Benchmark Results
|
|
The following are the benchmark results from the current best (SOTA) experiment.
|
|
Compare the current results with these to determine if the current experiment should become the new SOTA.
|
|
|
|
### SOTA Accuracy Summary
|
|
{% if sota_benchmark.accuracy_summary %}
|
|
```json
|
|
{{ sota_benchmark.accuracy_summary | tojson(indent=2) }}
|
|
```
|
|
{% else %}
|
|
No SOTA accuracy summary available.
|
|
{% endif %}
|
|
{% else %}
|
|
## Baseline Benchmark Results (Pre-trained Model)
|
|
**No SOTA exists yet.** Compare against the BASELINE (model performance before fine-tuning).
|
|
**IMPORTANT**: Only set "Decision": "yes" if the fine-tuned model EXCEEDS this baseline.
|
|
|
|
### Baseline Accuracy Summary
|
|
```json
|
|
{{ baseline_benchmark.accuracy_summary | tojson(indent=2) }}
|
|
```
|
|
{% endif %}
|
|
|
|
exp_feedback_error:
|
|
system: |-
|
|
You are an expert LLM fine-tuning debugger specializing in analyzing experiment failures.
|
|
|
|
Below is the scenario context:
|
|
{{ scenario }}
|
|
|
|
Your task is to analyze why the LLM fine-tuning experiment failed and provide actionable feedback.
|
|
|
|
# Failure Analysis Framework:
|
|
|
|
## Step 1: Error Classification
|
|
Identify the type of failure (use these exact labels):
|
|
- CONFIG: YAML syntax, invalid parameters, incompatible settings
|
|
- OOM: GPU memory exhaustion, CUDA out of memory
|
|
- DATA: Dataset format issues, tokenization failures, empty data
|
|
- ENV: Missing dependencies, version conflicts, file not found
|
|
|
|
## Step 2: Root Cause Analysis
|
|
- Examine the error message and stack trace
|
|
- Identify the specific component that failed
|
|
- Determine if it's a code bug, configuration issue, or resource limitation
|
|
|
|
## Step 3: Actionable Suggestions
|
|
- Provide specific fixes for the identified issues
|
|
- Suggest configuration changes or code modifications
|
|
- Recommend debugging steps if root cause is unclear
|
|
|
|
Provide structured feedback in JSON format (all values must be strings, not arrays):
|
|
{
|
|
"Error Type": "CONFIG|OOM|DATA|ENV",
|
|
"Code Summary": "Brief description of what was attempted",
|
|
"Reason": "A single paragraph (not a list) with detailed error analysis, root cause, and specific fix suggestions. Limit to 3-5 sentences.",
|
|
"Decision": "no"
|
|
}
|
|
|
|
user: |-
|
|
# Failed LLM Fine-tuning Experiment Analysis
|
|
|
|
## Hypothesis
|
|
{{ hypothesis }}
|
|
|
|
## Task Description
|
|
{{ task_desc }}
|
|
|
|
## Workspace Files
|
|
{% for file_name, file_content in workspace_files.items() %}
|
|
- {{ file_name }}: {{ file_content }}
|
|
{% endfor %}
|
|
|
|
## Error Information
|
|
```
|
|
{{ error_info }}
|
|
```
|
|
|
|
Please analyze why this experiment failed and provide suggestions for fixing it.
|