Files
YG_FT/frontend/dist/assets/FineTuneCreateView-BAt5G_vH.js

3 lines
22 KiB
JavaScript
Raw Normal View History

import{E as ve,a as fe}from"./el-form-item-DFlzM9g_.js";import{E as ge}from"./el-popper-DwsDzc1A.js";import{E as ne}from"./index-Bl2Fsjov.js";import{E as se}from"./index-COtHB4lx.js";import{E as be,a as ye,b as he}from"./el-select-CHKMfjyJ.js";import{E as xe,a as ke,b as we}from"./el-radio-group-BiLi-iPp.js";import{E as Ve}from"./el-divider-DozUv7u3.js";import{E as qe}from"./el-input-number-mWm5mZ4P.js";import{d as ie,D as oe,e as y,w as n,o as u,q as l,s as o,c as _,ad as q,n as H,aa as f,M as w,g as $,x as v,y as V,j as M,G as $e,z as Ee,at as ze,al as Te,f as Q,au as Ce,av as Me,aw as Ue,ax as Se,A as F,v as Pe,ay as Ie}from"./index-DS73WiJW.js";import"./el-tooltip-l0sNRNKZ.js";import"./el-scrollbar-DErsaip4.js";/* empty css */import{P as Fe}from"./PageCard-CXygDeSp.js";import{E as De}from"./el-dialog-BjL10OpB.js";import{E as Oe}from"./el-empty-CAiCwXUS.js";import{E as Re,a as Ae}from"./el-tab-pane-CzojjDdh.js";import{_ as ue}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{c as Ne,e as Ge,f as Le,u as Be}from"./fineTune-yxVaL19G.js";import{g as je}from"./model-BADKeN37.js";import{g as Qe}from"./dataset-DL0YrzrD.js";import"./castArray-PcoOufI5.js";import"./_baseClone--zSegXWR.js";import"./index-CP7PpuwU.js";import"./index-oP6kINt_.js";import"./raf-G_xTfKfR.js";import"./index-Cz3aNuv2.js";import"./vnode-HiBZolW-.js";import"./index-D-GNa2lp.js";import"./index-DvecKFrV.js";import"./scroll-qUQMUB2J.js";import"./clamp-Cyl0wpX2.js";import"./toNumber-B0hxpsP6.js";import"./_baseIteratee-BtAnsxgT.js";import"./omit-BHigcQFy.js";import"./index-CAsu3xTW.js";import"./el-card-DPafZG_Z.js";import"./index-TDTe-u1-.js";import"./use-dialog-CStKyxge.js";import"./index-CdYGcoRT.js";const He={class:"model-dialog-body"},Ke={class:"model-dialog-toolbar"},We={class:"model-dialog-content"},Ze={class:"model-series-list"},Je=["onClick"],Xe={class:"model-version-list"},Ye=["onClick"],et={class:"model-version-main"},tt={class:"model-dialog-footer"},at={class:"selected-model-summary"},lt={key:0,class:"selected-model-pill"},ot={class:"model-dialog-actions"},nt=ie({__name:"ModelSelectDialog",props:{modelValue:{type:Boolean},models:{},currentModelId:{}},emits:["update:modelValue","confirm"],setup(a,{emit:U}){const x=a,E=U,g=V("official"),z=V(""),h=V(""),k=V("");function D(p){return p.replace(/-\d+(?:\.\d+)?B.*$/i,"").replace(/-\d+(?:\.\d+)?b.*$/i,"").replace(/-\d{4}.*$/,"")}const s=M(()=>{const p=k.value.trim().toLowerCase(),i=x.models.filter(d=>g.value==="official"?d.model_source!=="api":d.model_source==="api");return p?i.filter(d=>[d.name,d.description,d.path,d.online_model_name].filter(Boolean).some(S=>String(S).toLowerCase().includes(p))):i}),I=M(()=>{const p=new Map;return s.value.forEach(i=>{const d=D(i.name),S=p.get(d)||[];S.push(i),p.set(d,S)}),Array.from(p.entries()).map(([i,d])=>({name:i,count:d.length,models:d}))}),N=M(()=>{var p;return((p=I.value.find(i=>i.name===z.value))==null?void 0:p.models)||[]}),O=M(()=>x.models.find(p=>p.id===h.value));function G(){var i;const p=((i=I.value[0])==null?void 0:i.name)||"";(!z.value||!I.value.some(d=>d.name===z.value))&&(z.value=p)}oe(()=>x.modelValue,p=>{if(p){const i=x.models.find(d=>d.id===x.currentModelId);g.value=(i==null?void 0:i.model_source)==="api"?"mine":"official",h.value=x.currentModelId,G()}}),oe([g,k],()=>{G()});function K(p){z.value=p}function W(p){h.value=p.id}function L(){E("update:modelValue",!1)}function Z(){h.value!==""&&h.value!==void 0&&h.value!==null&&E("confirm",h.value),E("update:modelValue",!1)}return(p,i)=>{const d=Re,S=Ae,J=ne,R=Oe,A=se,X=De;return u(),y(X,{"model-value":a.modelValue,class:"model-select-dialog",width:"860px",top:"10vh","show-close":!1,"append-to-body":"","onUpdate:modelValue":i[2]||(i[2]=m=>E("update:modelValue",m))},{header:n(()=>[l("div",{class:"model-dialog-header"},[i[4]||(i[4]=l("div",{class:"model-dialog-title"},[l("span",null,"选择模型"),l("em",null,"仅可选 1 个模型")],-1)),l("button",{class:"model-dialog-close",type:"button",onClick:L},[...i[3]||(i[3]=[l("i",{class:"fa fa-close"},null,-1)])])])]),footer:n(()=>[l("div",tt,
`)}function rt(a){return{...a,status:"pending",progress:0}}const pt={class:"fine-tune-create page-card-host has-fixed-footer"},mt={class:"gpu-list"},_t=["onClick"],ct={class:"gpu-card-top"},vt={class:"gpu-title"},ft={class:"gpu-index"},gt={class:"gpu-name"},bt={class:"gpu-usage"},yt={class:"gpu-usage-bar"},ht={class:"gpu-meta"},xt={key:0,class:"gpu-empty"},kt={class:"hyperparam-section"},wt={class:"param-table-wrapper"},Vt={class:"param-table"},qt={class:"param-col name"},$t={class:"param-col config"},Et={key:2,class:"param-hint"},zt={class:"param-col desc"},Tt={class:"desc-text"},Ct={class:"param-footer"},Mt={class:"command-preview-wrapper"},Ut={class:"command-preview"},St={class:"form-actions-wrapper"},Pt=ie({__name:"FineTuneCreateView",setup(a){const U=Pe(),x=V(),E=V(!1),g=V([]),z=V([]),h=V([]),k=V([]),D=V(!1),s=Ee(it()),I={name:[{required:!0,message:"请输入任务名称",trigger:"blur"},{pattern:/^[a-zA-Z0-9_]+$/,message:"仅支持字母、数字、下划线",trigger:"blur"},{max:50,message:"不超过 50 字符",trigger:"blur"}],base_model:[{required:!0,message:"请选择模型",trigger:"change"}],template:[{required:!0,message:"请选择训练模板",trigger:"change"}],train_dataset_id:[{required:!0,message:"请选择训练数据集",trigger:"change"}]},N=M(()=>s.train_method==="lora"),O=M(()=>g.value.find(r=>r.id===s.base_model)),G=M(()=>{var r;return((r=O.value)==null?void 0:r.name)||""}),K=M(()=>dt(s,k.value));function W(r){const e=k.value.indexOf(r);e===-1?k.value.push(r):k.value.splice(e,1)}function L(r){return`${Math.max(0,Math.min(r,100))}%`}function Z(){D.value=!0}function p(r){var e;s.base_model=r,(e=x.value)==null||e.validateField("base_model")}function i(){Object.assign(s,de)}const d=V(!1),S=M(()=>{const r=[{key:"batch_size",name:"batch_size",desc:"批次大小,代表模型训练过程中,模型更新一次参数所需要的数据样本数。",hint:"[1, 64], step:1",type:"number",min:1,max:64,step:1},{key:"learning_rate",name:"learning_rate",desc:"学习率,代表每次更新数据的增量参数权重比例。",hint:"[0.000001, 1]",type:"number",min:1e-6,max:1,step:1e-5,precision:6},{key:"n_epochs",name:"n_epochs",desc:"循环次数,代表模型训练过程中模型学习数据集的次数,可理解为看几遍数据,一般建议的范围是 1-3 遍即可,可依据需求进行调整",hint:"[1, 100], step:1",type:"number",min:1,max:100,step:1},{key:"save_steps",name:"save_steps",desc:"保存步数,训练阶段模型保存的间隔步长。",hint:"[10, 10000]",type:"number",min:10,max:1e4,step:1},{key:"lr_scheduler_type",name:"lr_scheduler_type",desc:"学习率调整策略,选择不同的学习率策略。",hint:"",type:"select",options:Ie},{key:"max_length",name:"max_length",desc:"序列长度,单个训练数据样本的最大长度。",hint:"[64, 4096]",type:"number",min:64,max:4096,step:1},{key:"warmup_ratio",name:"warmup_ratio",desc:"学习率预热比例,学习率预热阶段占总训练步数的比例。",hint:"[0, 1]",type:"number",min:0,max:1,step:.01,precision:2},{key:"weight_decay",name:"weight_decay",desc:"权重衰减,用于在优化过程中对模型参数施加惩罚,防止过拟合。",hint:"[0, 1]",type:"number",min:0,max:1,step:.01,precision:2}];return N.value&&r.push({key:"lora_alpha",name:"lora_alpha",desc:"LoRA 缩放系数。",hint:"16/32/64/128",type:"select",options:[{label:"16",value:16},{label:"32",value:32},{label:"64",value:64},{label:"128",value:128}]},{key:"lora_rank",name:"lora_rank",desc:"LoRA 秩大小,控制低秩矩阵的维度。",hint:"8/16/32/64",type:"select",options:[{label:"8",value:8},{label:"16",value:16},{label:"32",value:32},{label:"64",value:64}]},{key:"lora_dropout",name:"lora_dropout",desc:"LoRA 层的 dropout 比例。",hint:"[0, 1]",type:"number",min:0,max:1,step:.05,precision:2}),r}),J=M(()=>d.value?S.value:S.value.slice(0,3));function R(r){const e=s[r];return typeof e=="boolean"?Number(e):e}function A(r,e){e!==void 0&&Reflect.set(s,r,e)}async function X(){try{g.value=await je()||[]}catch{g.value=[]}}async function m(){try{z.v