Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
65 commits
Select commit Hold shift + click to select a range
bac05b5
feat(finworld): Added AgentScope learning protocol and OpenJudge eval…
TaoShuchang Jan 16, 2026
ba41164
Merge remote-tracking branch 'origin/main' into dev/shuchang
TaoShuchang Jan 16, 2026
c7ca8c7
Precommit fix (#4)
binary-husky Jan 16, 2026
7f2b017
fix test bench import
binary-husky Jan 16, 2026
9dd3c42
refactor(finworld): Replace agent protocol and unify configuration up…
TaoShuchang Jan 17, 2026
757f8a1
feat(finworld): Added FinWorld training environment configuration scr…
TaoShuchang Jan 18, 2026
079e4bd
refactor(utils): Remove unused extract and compute functions `extract…
TaoShuchang Jan 18, 2026
bcce8f0
refactor(finworld): Replace the old model with OpenJudge, update eval…
TaoShuchang Jan 18, 2026
4662d63
feat(task_reader): Support data reading of type jsonl_with_env_service
TaoShuchang Jan 19, 2026
de81c1d
feat(core): add finworld task reader support to framework
TaoShuchang Jan 19, 2026
248acc4
feat(finworld): implement specialized data reader and openjudge-based…
TaoShuchang Jan 19, 2026
9d651fd
refactor(finworld): optimize configuration templates and prompt engin…
TaoShuchang Jan 19, 2026
7475ecc
chore(finworld): update launch scripts and add variant experiment scr…
TaoShuchang Jan 19, 2026
b95d491
Merge remote-tracking branch 'origin/main' into dev/shuchang
TaoShuchang Jan 19, 2026
f20ab91
feat(finworld): Added support for multi-machine, multi-GPU training s…
TaoShuchang Jan 19, 2026
ea87d4b
chore(git): ignore finworld/yaml/*
TaoShuchang Jan 20, 2026
3082bca
fix(metrics): Fix and enhance the compatibility and debugging output …
TaoShuchang Jan 20, 2026
ef44b63
fix(metrics): Remove debug prints and synchronize reward statistics
TaoShuchang Jan 20, 2026
0889483
chore: "Stop tracking existing yaml files in tutorial directory"
TaoShuchang Jan 20, 2026
db7114c
fix(task_runner): Synchronize reward_stats to log_metrics
TaoShuchang Jan 20, 2026
5a25550
refactor(script): Refactored the finworld training script, integratin…
TaoShuchang Jan 20, 2026
623b7d9
Refactor(deep_finance): Replace and remove finworld-related implement…
TaoShuchang Jan 20, 2026
0aaab86
refactor(deepfinance): Rename and unify DeepFinance module and config…
TaoShuchang Jan 20, 2026
04f4959
refactor(tutorial): Optimize dynamic generation logic for configurati…
TaoShuchang Jan 20, 2026
d0ff68b
fix(deep_finance): argparse: with-deepfinance
TaoShuchang Jan 20, 2026
1c356d7
Merge remote-tracking branch 'origin/main' into dev/shuchang
TaoShuchang Jan 20, 2026
37dcbcc
fix(tutorial): Fixed issues with multi-machine training environment v…
TaoShuchang Jan 20, 2026
529ae7e
fix(env): Corrected the assignment logic for reward and info when ret…
TaoShuchang Jan 20, 2026
f4eb231
chore(config): Update example_deep_finance configuration and clean up…
TaoShuchang Jan 20, 2026
1e07515
Refactor(metric): Optimize tool metric calculation and data saving logic
TaoShuchang Jan 20, 2026
08ba184
fix(metric_helper): fix tool cache metric
TaoShuchang Jan 20, 2026
3d55692
fix little bug
TaoShuchang Jan 21, 2026
a478827
fix(utils): Suppress httpx AsyncClient.aclose() exception warnings
TaoShuchang Jan 21, 2026
88be3e4
comments to english
binary-husky Jan 21, 2026
fb41962
feat: 支持服务名称前缀功能
TaoShuchang Jan 21, 2026
a1f909b
fix: 改进 MultiAgent 消息内容解析逻辑
TaoShuchang Jan 21, 2026
8d2e5d7
fix: 优化 DeepFinance 判断逻辑和配置
TaoShuchang Jan 21, 2026
3c85960
chore(deps): bump agentscope from 1.0.7 to 1.0.8
TaoShuchang Jan 22, 2026
9b541c5
fix(metric_helper): correct trajectory save path and add tool call me…
TaoShuchang Jan 22, 2026
06fda5f
Merge remote-tracking branch 'origin/main' into dev/shuchang
TaoShuchang Jan 22, 2026
63cc682
Merge branch 'main' into dev/shuchang
binary-husky Jan 23, 2026
c9b87ac
revise message parsing
binary-husky Jan 23, 2026
3bd4c7d
fix(metric_helper): update openjudge graders list in reward metric he…
TaoShuchang Jan 25, 2026
8a18d40
feat(deep_finance): replace OpenJudge graders with PresentationQualit…
TaoShuchang Jan 26, 2026
835bdd8
feat(grounding): implement grounding grader for citation compliance e…
TaoShuchang Jan 26, 2026
11ed325
fix(deep_finance_judge): add debug logging for OpenJudge evaluation p…
TaoShuchang Jan 26, 2026
a500e90
feat(deep_finance): enhance reward metadata and zero score debugging
TaoShuchang Jan 27, 2026
d9cbdc0
feat(presentation_quality): upgrade grading to 1/3/5 scoring system w…
TaoShuchang Jan 27, 2026
4538f5a
chore(config): update experiment suffix, prefix and reward weights in…
TaoShuchang Jan 27, 2026
6f0c420
Merge remote-tracking branch 'origin/main' into dev/shuchang_newjudge
TaoShuchang Jan 27, 2026
818a4f7
fix(deep_finance): update environment variables and training launch o…
TaoShuchang Jan 27, 2026
1bb7f60
chore(config): parameterize deep finance training configuration
TaoShuchang Jan 27, 2026
460318f
chore(config): update experiment suffix, prefix, and weight parameters
TaoShuchang Jan 27, 2026
57a3a54
fix(example_deep_finance): update dynamic config file generation path
TaoShuchang Jan 27, 2026
beaa540
refactor(judge): remove deprecated presentation quality script
TaoShuchang Jan 27, 2026
13d7d82
chore(config): add LFS patterns and Env Service URL configuration
TaoShuchang Jan 28, 2026
eb6e2af
feat(deep_finance): 新增引用审计、CGCV 和可追溯性评分功能
TaoShuchang Feb 3, 2026
4722a79
chore(deepfinance): 增加 EBTU 证据优先可追溯性审计支持
TaoShuchang Feb 11, 2026
55d0ad1
blog
TaoShuchang Feb 13, 2026
68e25ae
Merge remote-tracking branch 'origin/main' into dev/shuchang_newjudge
TaoShuchang Feb 13, 2026
3fb724a
Merge remote-tracking branch 'origin/main' into dev/shuchang_newjudge
TaoShuchang Feb 15, 2026
6b9eb50
"fix: resolve remaining merge conflicts"
TaoShuchang Feb 15, 2026
efa7fac
`refactor(graders)`: Renames the `aevaluate` method to the internally…
TaoShuchang Feb 24, 2026
9e73442
Merge remote-tracking branch 'origin/main' into dev/shuchang_newjudge
TaoShuchang Feb 24, 2026
f785b22
Refactor (docs): Refactoring the Financial Deep Research Agent Traini…
TaoShuchang Feb 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 38 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
*.7z filter=lfs diff=lfs merge=lfs -text
*.arrow filter=lfs diff=lfs merge=lfs -text
*.bin filter=lfs diff=lfs merge=lfs -text
*.bin.* filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.ftz filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.h5 filter=lfs diff=lfs merge=lfs -text
*.joblib filter=lfs diff=lfs merge=lfs -text
*.lfs.* filter=lfs diff=lfs merge=lfs -text
*.model filter=lfs diff=lfs merge=lfs -text
*.msgpack filter=lfs diff=lfs merge=lfs -text
*.onnx filter=lfs diff=lfs merge=lfs -text
*.ot filter=lfs diff=lfs merge=lfs -text
*.parquet filter=lfs diff=lfs merge=lfs -text
*.pb filter=lfs diff=lfs merge=lfs -text
*.pt filter=lfs diff=lfs merge=lfs -text
*.pth filter=lfs diff=lfs merge=lfs -text
*.rar filter=lfs diff=lfs merge=lfs -text
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
*.tar.* filter=lfs diff=lfs merge=lfs -text
*.tflite filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.wasm filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zstandard filter=lfs diff=lfs merge=lfs -text
*tfevents* filter=lfs diff=lfs merge=lfs -text
# Audio files - uncompressed
*.pcm filter=lfs diff=lfs merge=lfs -text
*.sam filter=lfs diff=lfs merge=lfs -text
*.raw filter=lfs diff=lfs merge=lfs -text
# Audio files - compressed
*.aac filter=lfs diff=lfs merge=lfs -text
*.flac filter=lfs diff=lfs merge=lfs -text
*.mp3 filter=lfs diff=lfs merge=lfs -text
*.ogg filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,8 @@ tutorial/example_deep_finance/scripts/*
flash_attn-2.8.*.whl
tutorial/example_deep_finance/prepare_data/*
tutorial/example_deep_finance/judge/analytical_sufficiency/*
tutorial/example_deep_finance/output_report/*
dataset_gsm8k/*

.dockerignore
benchmark_datasets
Expand Down
5 changes: 4 additions & 1 deletion ajet/utils/metric_helper/reward_metric_helper.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,10 @@ def compute_reward_metrics(reward_stats_list: List[Dict[str, Any]], prefix: str
openjudge_graders = [
"presentation_quality",
"grounding",
"planning"
"planning",
"audit",
"traceability",
"cgcv"
]

for grader_name in openjudge_graders:
Expand Down
359 changes: 358 additions & 1 deletion tutorial/example_deep_finance/deep_finance.md

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions tutorial/example_deep_finance/deep_finance.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@


# 创建信号量,允许同时12个线程运行
sem = threading.Semaphore(30)
sem = threading.Semaphore(60)

class ExampleDeepResearchProtocol(Workflow):

Expand Down Expand Up @@ -125,9 +125,9 @@ async def execute(
if info:
if 'tool_stats' in info:
latest_tool_stats = info['tool_stats']
if latest_tool_stats.get('total_calls', 0) > 0:
logger.info(f"步骤 {step + 1} 工具统计: 调用={latest_tool_stats.get('total_calls', 0)}, "
f"成功率={latest_tool_stats.get('success_rate', 0):.1f}%")
# if latest_tool_stats.get('total_calls', 0) > 0:
# logger.info(f"步骤 {step + 1} 工具统计: 调用={latest_tool_stats.get('total_calls', 0)}, "
# f"成功率={latest_tool_stats.get('success_rate', 0):.1f}%")
Comment on lines +128 to +130
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This logging statement for tool statistics has been commented out. While this reduces log verbosity, it's generally better to control logging output through configuration or log levels rather than commenting out code. This allows for easily re-enabling detailed logs for debugging without code changes.

For example, you could use a logger with a configurable level, like logger.debug(...), or wrap the log statement in a conditional check based on a configuration flag.

Suggested change
# if latest_tool_stats.get('total_calls', 0) > 0:
# logger.info(f"步骤 {step + 1} 工具统计: 调用={latest_tool_stats.get('total_calls', 0)}, "
# f"成功率={latest_tool_stats.get('success_rate', 0):.1f}%")
if self.config.get('enable_step_logging', False) and latest_tool_stats.get('total_calls', 0) > 0:
logger.info(f"步骤 {step + 1} 工具统计: 调用={latest_tool_stats.get('total_calls', 0)}, "
f"成功率={latest_tool_stats.get('success_rate', 0):.1f}%")

if 'reward_stats' in info:
latest_reward_stats = info['reward_stats']
# 累加工具调用时间
Expand Down
14 changes: 13 additions & 1 deletion tutorial/example_deep_finance/deep_finance.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,20 @@ JUDGE_CONCURRENCY=10
RM_WEIGHT=0.5
PRESENTATION_QUALITY_WEIGHT=0.25
GROUNDING_WEIGHT=0.25
CGCV_WEIGHT=0.0 # 不使用 CGCV,设为 0
AUDIT_WEIGHT=0.0 # 不使用 Audit,设为 0
TRACEABILITY_WEIGHT=0.0 # 不使用 Traceability,设为 0
EBTU_WEIGHT=0.0 # 不使用 EBTU,设为 0

# 训练参数配置
NUM_REPEAT=4 # group size,每个query rollout NUM_REPEAT次
TRAIN_BATCH_SIZE=32 # 训练batchsize
NUM_STEPS=6 # 每个样本step轮数
DEEPFINANCE_TOOL_RESULT_MAX_CHARS=10000

# Env Service URL 配置
ENV_SERVICE_URL="http://127.0.0.1:8080" # 环境服务地址

# 主目录(需要更改)
export AJET_ROOT="/mnt/data_cpfs/taoshuchang.tsc/deepresearch/AgentJet_new"

Expand Down Expand Up @@ -57,6 +64,10 @@ sed -e "s|{{SUFFIX}}|${SUFFIX}|g" \
-e "s|{{RM_WEIGHT}}|${RM_WEIGHT}|g" \
-e "s|{{PRESENTATION_QUALITY_WEIGHT}}|${PRESENTATION_QUALITY_WEIGHT}|g" \
-e "s|{{GROUNDING_WEIGHT}}|${GROUNDING_WEIGHT}|g" \
-e "s|{{CGCV_WEIGHT}}|${CGCV_WEIGHT}|g" \
-e "s|{{AUDIT_WEIGHT}}|${AUDIT_WEIGHT}|g" \
-e "s|{{TRACEABILITY_WEIGHT}}|${TRACEABILITY_WEIGHT}|g" \
-e "s|{{EBTU_WEIGHT}}|${EBTU_WEIGHT}|g" \
-e "s|{{OPENJUDGE_LLM}}|${OPENJUDGE_LLM}|g" \
-e "s|{{RM_LLM}}|${RM_LLM}|g" \
-e "s|{{JUDGE_CONCURRENCY}}|${JUDGE_CONCURRENCY}|g" \
Expand All @@ -68,10 +79,11 @@ sed -e "s|{{SUFFIX}}|${SUFFIX}|g" \
-e "s|{{TRAIN_REF_ANS_PATH}}|${TRAIN_REF_ANS_PATH}|g" \
-e "s|{{VAL_REF_ANS_PATH}}|${VAL_REF_ANS_PATH}|g" \
-e "s|{{CKPT_SAVE_PATH}}|${CKPT_SAVE_PATH}|g" \
-e "s|{{ENV_SERVICE_URL}}|${ENV_SERVICE_URL}|g" \
${AJET_ROOT}/${CONFIG_TEMPLATE} > ${CONFIG_FILE}

echo "配置文件已生成: ${CONFIG_FILE}"
echo "参数确认: RM=${RM_WEIGHT}, PresentationQuality=${PRESENTATION_QUALITY_WEIGHT}, Grounding=${GROUNDING_WEIGHT}, OpenJudge=${OPENJUDGE_LLM}, RM_LLM=${RM_LLM}"
echo "参数确认: RM=${RM_WEIGHT}, PresentationQuality=${PRESENTATION_QUALITY_WEIGHT}, Grounding=${GROUNDING_WEIGHT}, CGCV=${CGCV_WEIGHT}, Audit=${AUDIT_WEIGHT}, Traceability=${TRACEABILITY_WEIGHT}, EBTU=${EBTU_WEIGHT}, OpenJudge=${OPENJUDGE_LLM}, RM_LLM=${RM_LLM}"

#===============================================================================
# 3. 环境配置
Expand Down
2 changes: 1 addition & 1 deletion tutorial/example_deep_finance/deep_finance.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ ajet:
max_env_worker: 64 # 增加环境并行数
max_num_seqs: 64 # 增加VLLM并发序列数
max_response_length_in_one_turn: 8000
max_model_len: 50000
max_model_len: 40960
agent_madness_reward: 0.0
compute_madness_checklist: None
multi_turn:
Expand Down
28 changes: 26 additions & 2 deletions tutorial/example_deep_finance/deep_finance_judge.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

from openjudge.models.openai_chat_model import OpenAIChatModel
from openjudge.runner.grading_runner import GraderConfig, GradingRunner
from tutorial.example_deep_finance.judge import PresentationQualityGrader, GroundingGrader
from tutorial.example_deep_finance.judge import PresentationQualityGrader, GroundingGrader, CGCVGrader, AuditGrader, TraceabilityRewardGrader, EBTUTraceabilityGrader



Expand Down Expand Up @@ -103,7 +103,11 @@ def _setup_weights(self):
self.w = {
"rm": getattr(cfg, "rm_weight", 1.0) if cfg else 1.0, # RM Gallery 权重
"presentation_quality": getattr(cfg, "presentation_quality_weight", 0.25) if cfg else 0.25,
"grounding": getattr(cfg, "grounding_weight", 0.25) if cfg else 0.25,
"grounding": getattr(cfg, "grounding_weight", 0.0) if cfg else 0.0, # 引用规范性评估
"cgcv": getattr(cfg, "cgcv_weight", 0.25) if cfg else 0.25, # Citation-Grounded Claim Verification
"audit": getattr(cfg, "audit_weight", 0.0) if cfg else 0.0, # Audit Grader: audit reward 引用逻辑审计
"traceability": getattr(cfg, "traceability_weight", 0.0) if cfg else 0.0, # 可追溯性/可核验性审计 (TVR)
"ebtu": getattr(cfg, "ebtu_weight", 0.0) if cfg else 0.0, # Audit Grader: audit reward EBTU证据优先可追溯性审计
}

# 归一化(注意:action_loop 是惩罚项,不参与归一化;rm 需要参与归一化)
Expand Down Expand Up @@ -256,6 +260,26 @@ def extract_report_content(data: Dict) -> str:
grader=GroundingGrader(model=model),
mapper=lambda data: {"traj": data},
),
# CGCV: Citation-Grounded Claim Verification - 引用锤定的断言验证
"cgcv": GraderConfig(
grader=CGCVGrader(model=model),
mapper=lambda data: {"traj": data},
),
# Audit: 引用逻辑审计 - 验证引用是否严格符合逻辑蕴含原则
"audit": GraderConfig(
grader=AuditGrader(model=model),
mapper=lambda data: {"traj": data},
),
# Traceability: 可追溯性/可核验性审计 - 验证报告断言是否有证据锚点支撑
"traceability": GraderConfig(
grader=TraceabilityRewardGrader(model=model),
mapper=lambda data: {"traj": data},
),
# Audit Grader: audit reward EBTU证据优先可追溯性审计 - Evidence-Backed Trace Units
"ebtu": GraderConfig(
grader=EBTUTraceabilityGrader(model=model),
mapper=lambda data: {"traj": data},
),
}

def compute_reward(self, workflow_task: WorkflowTask, workflow_output: WorkflowOutput) -> Tuple[float, bool]:
Expand Down
32 changes: 27 additions & 5 deletions tutorial/example_deep_finance/deep_finance_single.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,17 +15,30 @@ JUDGE_CONCURRENCY=10
RM_WEIGHT=0.5
PRESENTATION_QUALITY_WEIGHT=0.25
GROUNDING_WEIGHT=0.25
CGCV_WEIGHT=0.0 # 不使用 CGCV,设为 0
AUDIT_WEIGHT=0.0 # 不使用 Audit,设为 0
TRACEABILITY_WEIGHT=0.0 # 不使用 Traceability,设为 0
EBTU_WEIGHT=0.0 # 不使用 EBTU,设为 0

# 训练参数配置
NUM_REPEAT=4 # group size,每个query rollout NUM_REPEAT次
TRAIN_BATCH_SIZE=32 # 训练batchsize
NUM_STEPS=6 # 每个样本step轮数
DEEPFINANCE_TOOL_RESULT_MAX_CHARS=10000

# Env Service URL 配置
ENV_SERVICE_URL="http://127.0.0.1:8080" # 环境服务地址

# 主目录(需要更改)
export AJET_ROOT="/mnt/data_cpfs/taoshuchang.tsc/deepresearch/AgentJet_new"

NNODES=${WORLD_SIZE}
# 单机调试配置(默认值)
NNODES=${WORLD_SIZE:-1}
GPUS_PER_NODE=8
CURRENT_TIME=$(date "+%Y%m%d_%H%M%S")
LOG_DIR="${AJET_ROOT}/logs/${PREFIX}"
TRAIN_LOG="${LOG_DIR}/train_${SUFFIX}_${CURRENT_TIME}.log"
mkdir -p ${LOG_DIR}

# 涉密的配置(API_KEY以及模型、数据位置)从.env读取
cd ${AJET_ROOT}
Expand All @@ -42,6 +55,9 @@ else
echo -e "\033[31m警告: 找不到 .env 文件: $ENV_FILE\033[0m"
fi

export MODEL_PATH="/mnt/data_cpfs/taoshuchang.tsc/models/Qwen3-8B"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The MODEL_PATH is hardcoded in this script. This can override the value set in the .env file, which is sourced earlier. This reduces the script's flexibility and might lead to confusion if a developer expects the .env file to be the single source of truth for this path.

It would be more robust to rely on the .env file for this path. Simply removing this line and ensuring MODEL_PATH is defined in .env would be the cleanest approach.



#===============================================================================
# 2. 动态生成配置文件 (从yaml template生成yaml)
#===============================================================================
Expand All @@ -57,6 +73,10 @@ sed -e "s|{{SUFFIX}}|${SUFFIX}|g" \
-e "s|{{RM_WEIGHT}}|${RM_WEIGHT}|g" \
-e "s|{{PRESENTATION_QUALITY_WEIGHT}}|${PRESENTATION_QUALITY_WEIGHT}|g" \
-e "s|{{GROUNDING_WEIGHT}}|${GROUNDING_WEIGHT}|g" \
-e "s|{{CGCV_WEIGHT}}|${CGCV_WEIGHT}|g" \
-e "s|{{AUDIT_WEIGHT}}|${AUDIT_WEIGHT}|g" \
-e "s|{{TRACEABILITY_WEIGHT}}|${TRACEABILITY_WEIGHT}|g" \
-e "s|{{EBTU_WEIGHT}}|${EBTU_WEIGHT}|g" \
-e "s|{{OPENJUDGE_LLM}}|${OPENJUDGE_LLM}|g" \
-e "s|{{RM_LLM}}|${RM_LLM}|g" \
-e "s|{{JUDGE_CONCURRENCY}}|${JUDGE_CONCURRENCY}|g" \
Expand All @@ -68,10 +88,11 @@ sed -e "s|{{SUFFIX}}|${SUFFIX}|g" \
-e "s|{{TRAIN_REF_ANS_PATH}}|${TRAIN_REF_ANS_PATH}|g" \
-e "s|{{VAL_REF_ANS_PATH}}|${VAL_REF_ANS_PATH}|g" \
-e "s|{{CKPT_SAVE_PATH}}|${CKPT_SAVE_PATH}|g" \
-e "s|{{ENV_SERVICE_URL}}|${ENV_SERVICE_URL}|g" \
${AJET_ROOT}/${CONFIG_TEMPLATE} > ${CONFIG_FILE}

echo "配置文件已生成: ${CONFIG_FILE}"
echo "参数确认: RM=${RM_WEIGHT}, PresentationQuality=${PRESENTATION_QUALITY_WEIGHT}, Grounding=${GROUNDING_WEIGHT}, OpenJudge=${OPENJUDGE_LLM}, RM_LLM=${RM_LLM}"
echo "参数确认: RM=${RM_WEIGHT}, PresentationQuality=${PRESENTATION_QUALITY_WEIGHT}, Grounding=${GROUNDING_WEIGHT}, CGCV=${CGCV_WEIGHT}, Audit=${AUDIT_WEIGHT}, Traceability=${TRACEABILITY_WEIGHT}, EBTU=${EBTU_WEIGHT}, OpenJudge=${OPENJUDGE_LLM}, RM_LLM=${RM_LLM}"


#===============================================================================
Expand Down Expand Up @@ -115,15 +136,16 @@ export RAY_CLUSTER_MODE="multi_node"
#===============================================================================
# 6. 主流程
#===============================================================================
log "节点数: ${NNODES}, 每节点GPU数: ${GPUS_PER_NODE}"
mkdir -p ${LOG_DIR}
mkdir -p $(dirname ${CONFIG_FILE})
log "单机调试模式: NNODES=${NNODES}, GPUS_PER_NODE=${GPUS_PER_NODE}"

#===============================================================================
# 6.1 Master 节点启动流程
#===============================================================================
# 启动训练任务(最核心)
# 请注意只有单节点需要--with-ray 多节点应该删除
python ajet/launcher.py \
--conf ${CONFIG_FILE} \
--with-deepfinance \
--with-ray \
--backbone="debug" \
2>&1 | tee ${TRAIN_LOG}
6 changes: 5 additions & 1 deletion tutorial/example_deep_finance/judge/__init__.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
# 使得可以通过 from judge import PresentationQualityGrader 直接引用
from .grounding.grader import GroundingGrader
from .presentation_quality.grader import PresentationQualityGrader
from .cgcv.grader import CGCVGrader
from .audit.grader import AuditGrader
from .traceability.grader import TraceabilityRewardGrader
from .ebtu.grader import EBTUTraceabilityGrader
# from .research_depth.grader import ResearchDepthGrader
# from .research_breadth.grader import ResearchBreadthGrader

# 以后添加了其他 grader 也可以加在这里
# from .grounding.grader import GroundingGrader
# from .research_breadth.grader import ResearchBreadthGrader
# __all__ = ["PresentationQualityGrader", "GroundingGrader", "ResearchDepthGrader", "ResearchBreadthGrader"]
__all__ = ["PresentationQualityGrader", "GroundingGrader"]
__all__ = ["PresentationQualityGrader", "GroundingGrader", "CGCVGrader", "AuditGrader", "TraceabilityRewardGrader", "EBTUTraceabilityGrader"]
4 changes: 4 additions & 0 deletions tutorial/example_deep_finance/judge/audit/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
"""Grounding Grader - 引用逻辑审计"""
from .grader import AuditGrader

__all__ = ["AuditGrader"]
Loading
Loading