模型调优。模型服务,异步任务搭建

This commit is contained in:
ire 2024-12-31 18:49:27 +08:00
parent 163bdef8a4
commit b2da3069a5
6 changed files with 155 additions and 24 deletions

View File

@ -53,6 +53,22 @@ public class ModelServiceController {
return success(true);
}
@PutMapping("/active")
@Operation(summary = "开启模型服务")
@PreAuthorize("@ss.hasPermission('llm:model-service:update')")
public CommonResult<Boolean> activeModelService(@Valid @RequestBody ModelServiceSaveReqVO updateReqVO) {
modelServiceService.active(updateReqVO);
return success(true);
}
@PutMapping("/unactive")
@Operation(summary = "关闭模型服务")
@PreAuthorize("@ss.hasPermission('llm:model-service:update')")
public CommonResult<Boolean> unactiveModelService(@Valid @RequestBody ModelServiceSaveReqVO updateReqVO) {
modelServiceService.unactive(updateReqVO);
return success(true);
}
@GetMapping("/all")
@Operation(summary = "查询所有模型服务")
@PreAuthorize("@ss.hasPermission('llm:model-service:query')")

View File

@ -0,0 +1,50 @@
package cn.iocoder.yudao.module.llm.service.async;
import cn.iocoder.yudao.module.llm.dal.dataobject.finetuningtask.FineTuningTaskDO;
import cn.iocoder.yudao.module.llm.dal.mysql.finetuningtask.FineTuningTaskMapper;
import cn.iocoder.yudao.module.llm.service.http.TrainHttpService;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.HashMap;
@Service
public class AsyncFineTuningTaskService {
@Resource
private FineTuningTaskMapper fineTuningTaskMapper;
@Resource
private TrainHttpService trainHttpService;
//大模型平台创建调优任务
@Async
public void createTuning(FineTuningTaskDO fineTuningTask) {
try {
trainHttpService.finetuningCreate(new HashMap<>(),new String());
}catch(Exception e){
};
}
//调优任务部署
@Async
public void startFineTuningTask() {
try {
}catch(Exception e){
};
}
//调优任务停止
@Async
public void stopFineTuningTask() {
try {
}catch(Exception e){
};
}
}

View File

@ -0,0 +1,34 @@
package cn.iocoder.yudao.module.llm.service.async;
import cn.iocoder.yudao.module.llm.dal.mysql.finetuningtask.FineTuningTaskMapper;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class AsyncModelServiceService {
@Resource
private FineTuningTaskMapper fineTuningTaskMapper;
//模型服务开启
@Async
public void startModelService() {
try {
}catch(Exception e){
};
}
//调型服务关闭
@Async
public void stopModelService() {
try {
}catch(Exception e){
};
}
}

View File

@ -1,29 +1,28 @@
package cn.iocoder.yudao.module.llm.service.finetuningtask;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.llm.controller.admin.finetuningtask.vo.FineTuningTaskPageReqVO;
import cn.iocoder.yudao.module.llm.controller.admin.finetuningtask.vo.FineTuningTaskRespVO;
import cn.iocoder.yudao.module.llm.controller.admin.finetuningtask.vo.FineTuningTaskSaveReqVO;
import cn.iocoder.yudao.module.llm.dal.dataobject.basemodel.BaseModelDO;
import cn.iocoder.yudao.module.llm.dal.dataobject.dataset.DatasetDO;
import cn.iocoder.yudao.module.llm.dal.dataobject.modelservice.ModelServiceDO;
import cn.iocoder.yudao.module.llm.dal.dataobject.finetuningtask.FineTuningTaskDO;
import cn.iocoder.yudao.module.llm.dal.mysql.basemodel.BaseModelMapper;
import cn.iocoder.yudao.module.llm.dal.mysql.dataset.DatasetMapper;
import cn.iocoder.yudao.module.llm.dal.mysql.finetuningtask.FineTuningTaskMapper;
import cn.iocoder.yudao.module.llm.service.async.AsyncFineTuningTaskService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import cn.iocoder.yudao.module.llm.controller.admin.finetuningtask.vo.*;
import cn.iocoder.yudao.module.llm.dal.dataobject.finetuningtask.FineTuningTaskDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.llm.dal.mysql.finetuningtask.FineTuningTaskMapper;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.llm.enums.ErrorCodeConstants.FINE_TUNING_TASK_NOT_EXISTS;
@ -43,12 +42,16 @@ public class FineTuningTaskServiceImpl implements FineTuningTaskService {
private BaseModelMapper baseModelMapper;
@Resource
private DatasetMapper datasetMapper;
@Resource
private AsyncFineTuningTaskService asyncFineTuningTaskService;
@Override
public Long createFineTuningTask(FineTuningTaskSaveReqVO createReqVO) {
// 插入
FineTuningTaskDO fineTuningTask = BeanUtils.toBean(createReqVO, FineTuningTaskDO.class);
fineTuningTaskMapper.insert(fineTuningTask);
//todo 调用模型服务创建调优任务
asyncFineTuningTaskService.createTuning(fineTuningTask);
// 返回
return fineTuningTask.getId();
}
@ -127,26 +130,25 @@ public class FineTuningTaskServiceImpl implements FineTuningTaskService {
return result;
}
/**
* 停止服务
* @param id
*/
@Override
public void stopFineTuningTask(Long id) {
fineTuningTaskMapper.stopStartTask(id,0);
}
@Override
public void startFineTuningTask(Long id) {
fineTuningTaskMapper.stopStartTask(id,1);
//todo 调用模型服务开启调优任务
asyncFineTuningTaskService.startFineTuningTask();
}
@Override
public PageResult<FineTuningTaskDO> getFineTuningTaskPage(FineTuningTaskPageReqVO pageReqVO) {
PageResult<FineTuningTaskDO> pageResult = fineTuningTaskMapper.selectPage(pageReqVO);
PageResult<FineTuningTaskRespVO> result = BeanUtils.toBean(pageResult, FineTuningTaskRespVO.class);
public void stopFineTuningTask(Long id) {
fineTuningTaskMapper.stopStartTask(id,0);
//todo 调用模型服务停止调优任务
asyncFineTuningTaskService.stopFineTuningTask();
}
@Override
public PageResult<FineTuningTaskDO> getFineTuningTaskPage(FineTuningTaskPageReqVO pageReqVO) {
return fineTuningTaskMapper.selectPage(pageReqVO);
}
}
}

View File

@ -57,4 +57,8 @@ public interface ModelServiceService {
* @return
*/
List<ModelServiceDO> getModelServiceList();
void active(ModelServiceSaveReqVO updateReqVO);
void unactive(ModelServiceSaveReqVO updateReqVO);
}

View File

@ -1,5 +1,6 @@
package cn.iocoder.yudao.module.llm.service.modelservice;
import cn.iocoder.yudao.module.llm.service.async.AsyncModelServiceService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@ -29,6 +30,9 @@ public class ModelServiceServiceImpl implements ModelServiceService {
@Resource
private ModelServiceMapper modelServiceMapper;
@Resource
private AsyncModelServiceService asyncModelServiceService;
@Override
public Long createModelService(ModelServiceSaveReqVO createReqVO) {
// 插入
@ -76,4 +80,25 @@ public class ModelServiceServiceImpl implements ModelServiceService {
return modelServiceMapper.selectList();
}
@Override
public void active(ModelServiceSaveReqVO updateReqVO) {
ModelServiceDO updateObj = BeanUtils.toBean(updateReqVO, ModelServiceDO.class);
updateObj.setStatus(1);
modelServiceMapper.updateById(updateObj);
//todo 开启模型服务
asyncModelServiceService.startModelService();
}
@Override
public void unactive(ModelServiceSaveReqVO updateReqVO) {
ModelServiceDO updateObj = BeanUtils.toBean(updateReqVO, ModelServiceDO.class);
updateObj.setStatus(0);
modelServiceMapper.updateById(updateObj);
//todo 关闭模型服务
asyncModelServiceService.stopModelService();
}
}