训练与分析独立终端 | AI生成和翻译

Home 2026.05

问题:在使用 Claude Code 配合像 lzwjava/zz 这样的项目进行机器学习模型训练时,最佳实践是否是在一个单独的终端中运行长时间任务(训练、分词),同时在另一个终端中使用 Claude Code 分析日志和代码以评估训练进度?

回答:

是的,您说得完全正确。这是推荐且实用的工作流程模式。以下是详细说明:


使用 Claude Code 进行 ML 训练的双终端工作流程

为什么不应在 Claude Code 内部运行训练任务

长时间运行的 ML 任务——训练、分词、数据集下载——可能需要数小时。直接在 Claude Code 会话中运行会带来以下问题:


终端 1 —— “工作”终端(不使用 Claude Code)

此终端用于处理繁重、长时间运行的进程。您可以直接在此运行:

# 分词数据集
python scripts/extract/extract_fineweb.py

# 运行训练(耗时数小时)
python train.py --config config.yaml 2>&1 | tee logs/train_log_openweb.txt

# 下载数据集
bash scripts/download/wget_fineweb_1.sh

关键规则:


终端 2 —— “Claude Code”终端(分析与代码查询)

此终端是 Claude Code 的运行环境。当训练在终端 1 中运行时,您可以在此通过 Claude Code 进行以下操作:

您在终端 2 中向 Claude Code 提出的示例提示:

@logs/train_log_openweb.txt 损失似乎在步骤 3000 后趋于平稳。为什么会出现这种情况?我应该如何调整学习率?
@scripts/analysis/evaluate.py 分析这个评估脚本——它在计算哪些指标?是否存在任何错误?

此工作流程的推荐增强措施

使用 tmux 来干净地管理两个终端:

tmux new-session -s training
# 面板 1:训练任务
# 面板 2:claude(Claude Code 会话)

Claude Code 团队建议保留一个专用的“分析”工作树,仅用于读取日志和运行查询——许多工程师会并行运行 3–5 个 Claude 会话,每个会话都在自己的 git 工作树中。

始终将训练输出记录到文件:

python train.py 2>&1 | tee logs/train_$(date +%Y%m%d_%H%M%S).txt

这样 Claude Code 就能读取完整的日志历史,而不仅仅是当前屏幕上的内容。

使用 Claude Code 的分析脚本(例如 lzwjava/zz 中的脚本):

该仓库已经包含了 scripts/analysis/calculate_duration.pyscripts/analysis/evaluate.py——这些正是适合在终端 2 中运行并由 Claude 解读结果的脚本。

一个好的实践是,始终让 Claude 将您希望观察的终端命令作为后台任务运行——这样在调试时能更好地查看日志。


总结表格

  终端 1(工作终端) 终端 2(Claude Code 终端)
用途 执行长时间任务 分析与迭代
运行内容 train.pytokenize.pydownload.sh claude CLI
持续时间 数小时 交互式
输出 日志文件 见解、代码修改
是否涉及 Claude?

这种分离确保您昂贵的 GPU/CPU 时间得到充分利用,同时让 Claude Code 作为您的智能分析师和代码助手在一旁协助——正如您所描述的那样。

参考资料:


Back Donate