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

3 lines
24 KiB
JavaScript
Raw Normal View History

import{E as Ve,a as qe}from"./el-form-item-BwXgphUQ.js";import{E as Ce}from"./el-popper-ByY_mp0F.js";import{E as de}from"./index-BeDLK02H.js";import{E as pe}from"./index-CsmH9aOV.js";import{E as $e,a as Ee,b as ze}from"./el-select-BtaHFwbP.js";import{E as Te,a as Pe,b as Ue}from"./el-radio-group-CKSeC6OM.js";import{E as Me}from"./el-divider-DpKZw6kL.js";import{E as Se}from"./el-input-number-CrBYGegL.js";import{d as me,D as ue,e as x,w as o,o as i,q as l,s as n,c as d,ad as q,n as j,aa as m,M as w,g as y,x as f,y as C,j as T,G as Ie,z as Fe,at as Ae,al as De,f as J,au as Re,av as Oe,aw as Ge,ax as Le,A as z,v as Ne,ay as Be}from"./index-qX-n478y.js";import"./el-tooltip-l0sNRNKZ.js";import"./el-scrollbar-BUMM2_CD.js";import"./el-tag-B-JGJj9z.js";import{P as je}from"./PageCard-DwzC15hm.js";import{E as Qe}from"./el-dialog-DkJ64Try.js";import{E as He}from"./el-empty-DxmIh1kI.js";import{E as Ke,a as We}from"./el-tab-pane-CbfnTJcA.js";import{_ as _e}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{c as Ze,e as Je,f as Xe,u as Ye,p as et}from"./fineTune-DRk-d8CQ.js";import{g as tt}from"./model-C-yfMU_m.js";import{g as lt}from"./dataset--5zvprN4.js";import"./castArray-Bn5hpKcW.js";import"./_baseClone-DGWZyacP.js";import"./index-Bv5P4D1b.js";import"./index-BBjNlxJ5.js";import"./raf-D_6iDDv9.js";import"./index-L-nYG2YU.js";import"./vnode-uhNuJ02f.js";import"./index-hE4aZesL.js";import"./scroll-Bw8Zs_VJ.js";import"./clamp-Cu8yiuNv.js";import"./toNumber-rF0S7Wk6.js";import"./_baseIteratee-CFLbixU9.js";import"./omit-D5jdppCn.js";import"./index-CXO4KiA4.js";import"./el-card-BsyGJwSB.js";import"./index-GQDpTbnB.js";import"./use-dialog--gqYRP5F.js";import"./index-0gws1BPv.js";const at={class:"model-dialog-body"},nt={class:"model-dialog-toolbar"},ot={class:"model-dialog-content"},st={class:"model-series-list"},it=["onClick"],ut={class:"model-version-list"},rt=["onClick"],dt={class:"model-version-main"},pt={class:"model-dialog-footer"},mt={class:"selected-model-summary"},_t={key:0,class:"selected-model-pill"},ct={class:"model-dialog-actions"},vt=me({__name:"ModelSelectDialog",props:{modelValue:{type:Boolean},models:{},currentModelId:{}},emits:["update:modelValue","confirm"],setup(a,{emit:S}){const k=a,P=S,b=C("official"),p=C(""),$=C(""),F=C("");function O(_){return _.replace(/-\d+(?:\.\d+)?B.*$/i,"").replace(/-\d+(?:\.\d+)?b.*$/i,"").replace(/-\d{4}.*$/,"")}const E=T(()=>{const _=F.value.trim().toLowerCase(),u=k.models.filter(c=>b.value==="official"?c.model_source!=="api":c.model_source==="api");return _?u.filter(c=>[c.name,c.description,c.path,c.online_model_name].filter(Boolean).some(A=>String(A).toLowerCase().includes(_))):u}),I=T(()=>{const _=new Map;return E.value.forEach(u=>{const c=O(u.name),A=_.get(c)||[];A.push(u),_.set(c,A)}),Array.from(_.entries()).map(([u,c])=>({name:u,count:c.length,models:c}))}),s=T(()=>{var _;return((_=I.value.find(u=>u.name===p.value))==null?void 0:_.models)||[]}),L=T(()=>k.models.find(_=>_.id===$.value));function Q(){var u;const _=((u=I.value[0])==null?void 0:u.name)||"";(!p.value||!I.value.some(c=>c.name===p.value))&&(p.value=_)}ue(()=>k.modelValue,_=>{if(_){const u=k.models.find(c=>c.id===k.currentModelId);b.value=(u==null?void 0:u.model_source)==="api"?"mine":"official",$.value=k.currentModelId,Q()}}),ue([b,F],()=>{Q()});function X(_){p.value=_}function Y(_){$.value=_.id}function H(){P("update:modelValue",!1)}function K(){$.value!==""&&$.value!==void 0&&$.value!==null&&P("confirm",$.value),P("update:modelValue",!1)}return(_,u)=>{const c=Ke,A=We,ee=de,D=He,N=pe,te=Qe;return i(),x(te,{"model-value":a.modelValue,class:"model-select-dialog",width:"860px",top:"10vh","show-close":!1,"append-to-body":"","onUpdate:modelValue":u[2]||(u[2]=v=>P("update:modelValue",v))},{header:o(()=>[l("div",{class:"model-dialog-header"},[u[4]||(u[4]=l("div",{class:"model-dialog-title"},[l("span",null,"选择模型"),l("em",null,"仅可选 1 个模型")],-1)),l("button",{class:"model-dialog-close",type:"button",onClick:H},[...u[3]||(u[3]=[l("i",{class:"fa fa-close"},null,-1)])])])]),footer:o(()=>[l("div",pt,[l("div",mt,[l("s
`)}function bt(a){return{...a,status:"pending",progress:0}}const ht={class:"fine-tune-create page-card-host has-fixed-footer"},wt={class:"gpu-list"},kt=["onClick"],xt={class:"gpu-card-top"},Vt={class:"gpu-title"},qt={class:"gpu-index"},Ct={class:"gpu-name"},$t={class:"gpu-usage"},Et={class:"gpu-usage-bar"},zt={class:"gpu-meta"},Tt={key:0,class:"gpu-empty"},Pt={class:"hyperparam-section"},Ut={class:"param-table-wrapper"},Mt={class:"param-table"},St={class:"param-col name"},It={class:"param-col config"},Ft={key:2,class:"param-hint"},At={class:"param-col desc"},Dt={class:"desc-text"},Rt={class:"param-footer"},Ot={class:"preflight-actions"},Gt={class:"command-preview-wrapper"},Lt={class:"command-preview"},Nt={class:"preflight-header"},Bt={key:0},jt={key:0,class:"preflight-section"},Qt={class:"command-preview remote"},Ht={key:1,class:"preflight-section"},Kt={key:2,class:"preflight-section"},Wt={key:3,class:"preflight-section"},Zt={class:"form-actions-wrapper"},Jt=me({__name:"FineTuneCreateView",setup(a){const S=Ne(),k=C(),P=C(!1),b=C(!1),p=C(null),$=C([]),F=C([]),O=C([]),E=C([]),I=C(!1),s=Fe(gt()),L={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"}]},Q=T(()=>s.train_method==="lora"),X=T(()=>$.value.find(r=>r.id===s.base_model)),Y=T(()=>{var r;return((r=X.value)==null?void 0:r.name)||""}),H=T(()=>yt(s,E.value)),K=T(()=>{var e,V,U,g;const r=(V=(e=p.value)==null?void 0:e.preview)==null?void 0:V.command;return Array.isArray(r)&&r.length?r.join(" "):((g=(U=p.value)==null?void 0:U.preview)==null?void 0:g.command_text)||""});function _(r){const e=E.value.indexOf(r);e===-1?E.value.push(r):E.value.splice(e,1)}function u(r){return`${Math.max(0,Math.min(r,100))}%`}function c(){I.value=!0}function A(r){var e;s.base_model=r,(e=k.value)==null||e.validateField("base_model")}function ee(){Object.assign(s,ce)}const D=C(!1),N=T(()=>{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:Be},{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 Q.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",o