package cn.iocoder.yudao.module.llm.dal.dataobject.training;

import lombok.*;
import java.util.*;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;

/**
 * 训练 DO
 *
 * @author 华大大模型
 */
@TableName("llm_training")
@KeySequence("llm_training_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class TrainingDO extends BaseDO {

    /**
     * 自增ID
     */
    @TableId
    private Integer id;
    /**
     * 基座模型名称
     */
    private String modelName;
    /**
     * 介绍
     */
    private String description;
    /**
     * 训练轮次
     */
    private Integer trainingEpochs;
    /**
     * 启用Lora
     */
    private Boolean useLora;
    /**
     * 训练批次
     */
    private Integer trainingBatchSize;
    /**
     * 评估批次
     */
    private Integer evaluationBatchSize;
    /**
     * 梯度累加步数
     */
    private Integer gradientAccumulationSteps;
    /**
     * 使用GPU数量
     */
    private Integer gpuCount;
    /**
     * 学习率
     */
    private BigDecimal learningRate;
    /**
     * 最大长度
     */
    private Integer maxLength;
    /**
     * 记录创建时间
     */
    private LocalDateTime createdAt;
    /**
     * 记录更新时间
     */
    private LocalDateTime updatedAt;

}