refactor(llm): 重构异步微调任务服务
- 提取 getServerNameDO 方法,优化服务器信息查询逻辑 - 修改 stopFinetuning 方法,增加服务器信息校验 - 更新 FineTuningTaskHttpService 接口,明确停止微调任务的主机
This commit is contained in:
parent
3d70b004ab
commit
7e56753435
@ -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);
|
||||
|
@ -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请求,停止微调任务
|
||||
|
Loading…
x
Reference in New Issue
Block a user