feat(llm): 增加微调任务日志功能

- 在 FineTuningTaskDO 中添加 mergeLogPath 字段,用于存储数据处理日志路径
- 修改 AsyncFineTuningTaskService,增加对 mergeLogPath 的处理
- 更新 FineTuningTaskController 和 FineTuningTaskService 接口,将日志返回类型改为 Map<String, String>
- 实现 FineTuningTaskServiceImpl 中的 getFineTuningLog 方法,支持获取训练日志和数据处理日志
This commit is contained in:
sunxiqing 2025-08-20 16:59:23 +08:00
parent bf05fbda28
commit b762f11ebe
5 changed files with 30 additions and 10 deletions

View File

@ -123,8 +123,8 @@ public class FineTuningTaskController {
@Operation(summary = "获得模型微调日志")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
// @PreAuthorize("@ss.hasPermission('llm:fine-tuning:query')")
public CommonResult<String> getFineTuningLog(@RequestParam("id") Long id) {
String fineTuning = fineTuningTaskService.getFineTuningLog(id);
public CommonResult<Map<String, String>> getFineTuningLog(@RequestParam("id") Long id) {
Map<String, String> fineTuning = fineTuningTaskService.getFineTuningLog(id);
return success(fineTuning);
}

View File

@ -156,6 +156,8 @@ public class FineTuningTaskDO extends BaseDO {
private Long jobModelListId;
// 日志文件地址
private String trainLog;
// 数据处理日志
private String mergeLogPath;
//检查点文件地址
private String checkPointFilePath;

View File

@ -133,6 +133,7 @@ public class AsyncFineTuningTaskService {
updateObj.setStatus(FinetuningTaskStatusEnum.WAITING.getStatus());
updateObj.setJobModelName(resp.getFineTunedModel());
updateObj.setTrainLog(resp.getTrainLog());
updateObj.setMergeLogPath(resp.getMergeLogPath());
log.info("微调任务创建成功。任务ID: {}, 任务模型名称: {} , 任务状态: {}", fineTuningTask.getId(), resp.getFineTunedModel(), FinetuningTaskStatusEnum.WAITING.getStatus());
} else {
updateObj.setStatus(FinetuningTaskStatusEnum.FAILED.getStatus());

View File

@ -103,7 +103,7 @@ public interface FineTuningTaskService {
*/
Map<Long, String> getModelTuningByDatasetId (Long datasetId);
String getFineTuningLog(Long id);
Map<String, String> getFineTuningLog(Long id);
FineTuningTaskDO selectName(LambdaQueryWrapper<FineTuningTaskDO> eq);
}

View File

@ -32,6 +32,7 @@ import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
@ -262,7 +263,12 @@ public class FineTuningTaskServiceImpl implements FineTuningTaskService {
// 2. 修改微调任务状态为等待中
log.info("开始修改微调任务状态为等待中任务ID: {}", id);
fineTuningTaskMapper.stopStartTask(id, FinetuningTaskStatusEnum.WAITING.getStatus());
FineTuningTaskDO taskDO = new FineTuningTaskDO();
taskDO.setId(id);
taskDO.setStatus(FinetuningTaskStatusEnum.WAITING.getStatus());
taskDO.setCreateTime(LocalDateTime.now());
fineTuningTaskMapper.updateById(taskDO);
// fineTuningTaskMapper.stopStartTask(id, FinetuningTaskStatusEnum.WAITING.getStatus());
log.info("微调任务状态修改成功任务ID: {}", id);
// 3. 异步调用模型服务停止微调任务
@ -361,19 +367,30 @@ public class FineTuningTaskServiceImpl implements FineTuningTaskService {
}
@Override
public String getFineTuningLog (Long id) {
public Map<String, String> getFineTuningLog (Long id) {
FineTuningTaskDO fineTuningTaskDO = fineTuningTaskMapper.selectById(id);
Map<String, String> result = new HashMap<>();
if (fineTuningTaskDO != null && StringUtils.isNotBlank(fineTuningTaskDO.getTrainLog())) {
String query = "?log_path="+fineTuningTaskDO.getTrainLog();
Map<String, String> map = new HashMap<>();
map.put("log_path", fineTuningTaskDO.getTrainDuration());
// Map<String, String> map = new HashMap<>();
// map.put("log_path", fineTuningTaskDO.getTrainDuration());
ServerNameDO serverNameDO = serverNameMapper.selectById(fineTuningTaskDO.getGpuType());
if (serverNameDO == null){
return "";
result.put("trainLog", "");
}
return trainHttpService.getTrainLog(serverNameDO.getHost(),query);
String trainLog = trainHttpService.getTrainLog(serverNameDO.getHost(), query);
result.put("trainLog", trainLog);
}
return null;
if (fineTuningTaskDO != null && StringUtils.isNotBlank(fineTuningTaskDO.getMergeLogPath())){
String path = "?log_path=" + fineTuningTaskDO.getMergeLogPath();
ServerNameDO serverNameDO = serverNameMapper.selectById(fineTuningTaskDO.getGpuType());
if (serverNameDO == null){
result.put("mergeLogPath", "");
}
String mergeLogPath = trainHttpService.getTrainLog(serverNameDO.getHost(), path);
result.put("mergeLogPath", mergeLogPath);
}
return result;
}
@Override