feat(llm): 增加模型调优名称字段并实现相关功能
- 在 BaseModelDO、BaseModelRespVO 中添加 theTuningName 字段 - 在 BaseModelTaskService 中实现获取模型调优名称的方法 - 在 FineTuningTaskService 中新增 selectName 方法 - 优化 BaseModelController 中的模型创建逻辑
This commit is contained in:
parent
d454971b8f
commit
5cff4c2c04
@ -1,7 +1,10 @@
|
||||
package cn.iocoder.yudao.module.llm.controller.admin.basemodel;
|
||||
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.finetuningtask.FineTuningTaskDO;
|
||||
import cn.iocoder.yudao.module.llm.service.basemodel.BaseModelTaskService;
|
||||
import cn.iocoder.yudao.module.llm.service.finetuningtask.FineTuningTaskService;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@ -41,6 +44,8 @@ public class BaseModelController {
|
||||
private BaseModelService baseModelService;
|
||||
@Resource
|
||||
private BaseModelTaskService baseModelTaskService;
|
||||
@Resource
|
||||
private FineTuningTaskService fineTuningTaskService;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建基座模型")
|
||||
|
@ -20,6 +20,9 @@ public class BaseModelRespVO {
|
||||
@ExcelProperty("基座模型名称")
|
||||
private String modelName;
|
||||
|
||||
@Schema(description = "模型调优名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
|
||||
private String theTuningName;
|
||||
|
||||
@Schema(description = "参数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "12388")
|
||||
@ExcelProperty("参数量")
|
||||
private Integer parameterCount;
|
||||
|
@ -52,6 +52,10 @@ public class BaseModelDO extends BaseDO {
|
||||
* 是否微调
|
||||
*/
|
||||
private Boolean isFinetuned;
|
||||
/**
|
||||
* 模型调优名称
|
||||
*/
|
||||
private String theTuningName;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
|
@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.llm.service.basemodel;
|
||||
import cn.iocoder.yudao.framework.common.util.http.HttpUtils;
|
||||
import cn.iocoder.yudao.module.llm.controller.admin.basemodel.vo.BaseModelSaveReqVO;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.basemodel.BaseModelDO;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.finetuningtask.FineTuningTaskDO;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.modelservice.ModelServiceDO;
|
||||
import cn.iocoder.yudao.module.llm.dal.dataobject.servername.ServerNameDO;
|
||||
import cn.iocoder.yudao.module.llm.dal.mysql.basemodel.BaseModelMapper;
|
||||
@ -13,6 +14,7 @@ import cn.iocoder.yudao.module.llm.handler.AigcCustomDateTimeDeserializer;
|
||||
import cn.iocoder.yudao.module.llm.service.basemodel.vo.AListOfPedestalModelsVO;
|
||||
import cn.iocoder.yudao.module.llm.service.basemodel.vo.ModelListRes;
|
||||
import cn.iocoder.yudao.module.llm.service.basemodel.vo.PedestalModelVO;
|
||||
import cn.iocoder.yudao.module.llm.service.finetuningtask.FineTuningTaskService;
|
||||
import cn.iocoder.yudao.module.llm.service.http.FineTuningTaskHttpService;
|
||||
import cn.iocoder.yudao.module.llm.service.http.TrainHttpService;
|
||||
import cn.iocoder.yudao.module.llm.service.http.vo.AigcModelDeploySaveReq;
|
||||
@ -21,6 +23,7 @@ import cn.iocoder.yudao.module.llm.service.http.vo.ModelDeployRespVO;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.esotericsoftware.minlog.Log;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
@ -34,6 +37,7 @@ import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
@ -63,6 +67,8 @@ public class BaseModelTaskService {
|
||||
@Value("${spring.profiles.active}")
|
||||
private String active;
|
||||
|
||||
@Resource
|
||||
private FineTuningTaskService fineTuningTaskService;
|
||||
// 减少维护 先注释掉
|
||||
@Scheduled(cron = "0 0/1 * * * ?")
|
||||
public void synchronous () throws JsonProcessingException {
|
||||
@ -239,15 +245,20 @@ public class BaseModelTaskService {
|
||||
.filter(remoteModelName -> !differentModelNames.contains(remoteModelName))
|
||||
.collect(Collectors.toList());
|
||||
if (uniqueRemoteModelNames.size() > 0) {
|
||||
List<BaseModelDO> baseModelDOList = new ArrayList<>();
|
||||
for (String remoteModelName : uniqueRemoteModelNames) {
|
||||
BaseModelDO baseModelDO = new BaseModelDO();
|
||||
baseModelDO.setModelName(remoteModelName);
|
||||
baseModelDO.setAigcModelName(remoteModelName);
|
||||
LambdaQueryWrapper<FineTuningTaskDO> eq = new LambdaQueryWrapper<FineTuningTaskDO>().eq(FineTuningTaskDO::getJobModelName, remoteModelName);
|
||||
FineTuningTaskDO fineTuningTaskDO = fineTuningTaskService.selectName(eq);
|
||||
baseModelDO.setTheTuningName(fineTuningTaskDO.getTaskName());
|
||||
// 模型类型
|
||||
// 微调状态
|
||||
baseModelDO.setIsFinetuned(replaceActiveGroups(remoteModelName, active));
|
||||
baseModelMapper.insert(baseModelDO);
|
||||
baseModelDOList.add(baseModelDO);
|
||||
}
|
||||
baseModelMapper.insert(baseModelDOList);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.error("更新基础模型状态时发生异常: {}", e.getMessage(), e);
|
||||
|
@ -5,6 +5,7 @@ import cn.iocoder.yudao.module.llm.controller.admin.finetuningtask.vo.FineTuning
|
||||
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.finetuningtask.FineTuningTaskDO;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
@ -103,4 +104,6 @@ public interface FineTuningTaskService {
|
||||
Map<Long, String> getModelTuningByDatasetId (Long datasetId);
|
||||
|
||||
String getFineTuningLog(Long id);
|
||||
|
||||
FineTuningTaskDO selectName(LambdaQueryWrapper<FineTuningTaskDO> eq);
|
||||
}
|
||||
|
@ -70,7 +70,7 @@ public class FineTuningTaskServiceImpl implements FineTuningTaskService {
|
||||
|
||||
@Override
|
||||
public Long createFineTuningTask (FineTuningTaskSaveReqVO createReqVO) {
|
||||
|
||||
|
||||
// 记录开始创建任务的日志
|
||||
log.info("开始创建微调任务,请求参数: {}", createReqVO);
|
||||
|
||||
@ -365,6 +365,15 @@ public class FineTuningTaskServiceImpl implements FineTuningTaskService {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public FineTuningTaskDO selectName(LambdaQueryWrapper<FineTuningTaskDO> eq) {
|
||||
List<FineTuningTaskDO> fineTuningTaskDOS = fineTuningTaskMapper.selectList(eq);
|
||||
if (fineTuningTaskDOS.size()>0) {
|
||||
return fineTuningTaskDOS.get(0);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
// @Override
|
||||
// public void stopFineTuningTask (Long id) {
|
||||
// FineTuningTaskDO fineTuningTaskDO = validateFineTuningTaskExists(id);
|
||||
|
Loading…
x
Reference in New Issue
Block a user