From 7e5675343513dc24c4b4a8377bc61b380064f537 Mon Sep 17 00:00:00 2001 From: Liuyang <2746366019@qq.com> Date: Tue, 25 Feb 2025 17:35:33 +0800 Subject: [PATCH] =?UTF-8?q?refactor(llm):=20=E9=87=8D=E6=9E=84=E5=BC=82?= =?UTF-8?q?=E6=AD=A5=E5=BE=AE=E8=B0=83=E4=BB=BB=E5=8A=A1=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 提取 getServerNameDO 方法,优化服务器信息查询逻辑 - 修改 stopFinetuning 方法,增加服务器信息校验 - 更新 FineTuningTaskHttpService 接口,明确停止微调任务的主机 --- .../async/AsyncFineTuningTaskService.java | 42 ++++++++++++++----- .../http/FineTuningTaskHttpService.java | 5 +-- 2 files changed, 34 insertions(+), 13 deletions(-) diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncFineTuningTaskService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncFineTuningTaskService.java index 3ae0cc52c..926a4f30f 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncFineTuningTaskService.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/async/AsyncFineTuningTaskService.java @@ -18,6 +18,7 @@ import cn.iocoder.yudao.module.llm.service.http.TrainHttpService; import cn.iocoder.yudao.module.llm.service.http.vo.AigcFineTuningCreateReqVO; import cn.iocoder.yudao.module.llm.service.http.vo.AigcFineTuningCreateRespVO; import lombok.extern.slf4j.Slf4j; +import org.jetbrains.annotations.Nullable; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Lazy; import org.springframework.scheduling.annotation.Async; @@ -65,18 +66,10 @@ public class AsyncFineTuningTaskService { try { log.info("开始创建微调任务,任务ID: {}", fineTuningTask.getId()); - // 查询 GPU 类型对应的服务器信息 - log.debug("正在查询 GPU 类型对应的服务器信息,GPU 类型: {}", fineTuningTask.getGpuType()); - ServerNameDO serverNameDO = serverNameMapper.selectById(fineTuningTask.getGpuType()); + ServerNameDO serverNameDO = getServerNameDO(fineTuningTask); if (serverNameDO == null) { - log.error("未找到 GPU 类型对应的服务器信息,任务将被取消。GPU 类型: {}", fineTuningTask.getGpuType()); - FineTuningTaskDO updateObj = new FineTuningTaskDO(); - updateObj.setId(fineTuningTask.getId()); - updateObj.setStatus(FinetuningTaskStatusEnum.CANCELLED.getStatus()); - fineTuningTaskMapper.updateById(updateObj); return; } - log.debug("服务器信息查询成功。服务器主机: {}", serverNameDO.getHost()); // 构建微调任务请求对象 log.debug("正在构建微调任务请求对象..."); @@ -150,6 +143,29 @@ public class AsyncFineTuningTaskService { } } + /** + * 获取微调任务服务器信息 + * + * @param fineTuningTask 微调任务 + * @return 微调任务服务器信息 + */ + @Nullable + private ServerNameDO getServerNameDO (FineTuningTaskDO fineTuningTask) { + // 查询 GPU 类型对应的服务器信息 + log.debug("正在查询 GPU 类型对应的服务器信息,GPU 类型: {}", fineTuningTask.getGpuType()); + ServerNameDO serverNameDO = serverNameMapper.selectById(fineTuningTask.getGpuType()); + if (serverNameDO == null) { + log.error("未找到 GPU 类型对应的服务器信息,任务将被取消。GPU 类型: {}", fineTuningTask.getGpuType()); + FineTuningTaskDO updateObj = new FineTuningTaskDO(); + updateObj.setId(fineTuningTask.getId()); + updateObj.setStatus(FinetuningTaskStatusEnum.CANCELLED.getStatus()); + fineTuningTaskMapper.updateById(updateObj); + return null; + } + log.debug("服务器信息查询成功。服务器主机: {}", serverNameDO.getHost()); + return serverNameDO; + } + private static AigcFineTuningCreateReqVO getAigcFineTuningCreateReqVO (FineTuningTaskDO fineTuningTask) { AigcFineTuningCreateReqVO req = new AigcFineTuningCreateReqVO(); req.setModel(fineTuningTask.getBaseModel()); @@ -203,8 +219,14 @@ public class AsyncFineTuningTaskService { public void stopFinetuning (FineTuningTaskDO fineTuningTaskDO) { log.info(" ===== 停止微调任务 ===== stopFinetuning"); try { + + ServerNameDO serverNameDO = getServerNameDO(fineTuningTaskDO); + if (serverNameDO == null) { + return; + } + log.info("开始调用HTTP服务停止微调任务,任务模型名称: {}", fineTuningTaskDO.getJobModelName()); - fineTuningTaskHttpService.stopFinetuning(fineTuningTaskDO); + fineTuningTaskHttpService.stopFinetuning(serverNameDO.getHost(), fineTuningTaskDO); log.info("HTTP服务调用成功,任务模型名称: {}", fineTuningTaskDO.getJobModelName()); } catch (Exception e) { log.error("调用HTTP服务停止微调任务时发生异常,任务模型名称: {}", fineTuningTaskDO.getJobModelName(), e); diff --git a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/FineTuningTaskHttpService.java b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/FineTuningTaskHttpService.java index 3d0f18ff9..72af2d12d 100644 --- a/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/FineTuningTaskHttpService.java +++ b/yudao-module-llm/yudao-module-llm-biz/src/main/java/cn/iocoder/yudao/module/llm/service/http/FineTuningTaskHttpService.java @@ -13,7 +13,6 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.HashMap; import java.util.Map; /** @@ -31,11 +30,11 @@ public class FineTuningTaskHttpService { * * @param fineTuningTaskDO 微调任务数据对象,包含任务的相关信息 */ - public void stopFinetuning(FineTuningTaskDO fineTuningTaskDO) { + public void stopFinetuning (String host, FineTuningTaskDO fineTuningTaskDO) { log.info(" ===== 停止微调任务 ===== stopFinetuning"); // 1. 获取停止微调任务的URL - String url = llmBackendProperties.getStopFinetuning(); + String url = host + llmBackendProperties.getStopFinetuning(); log.info("获取停止微调任务的URL: {}", url); // 2. 发送HTTP POST请求,停止微调任务