2026-07-16 18:05:03 +08:00

153 lines
9.4 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="train-page">
<div class="grid-bg min-h-screen">
<main>
<div class="page-shell">
<section class="hero-section">
<div class="hero-content">
<div class="hero-eyebrow animate-fade-in-up">
<svg class="icon-svg--xs" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z" />
</svg>
全新 AI 开发体验
</div>
<h1 class="hero-title animate-fade-in-up animate-delay-100">
<span class="gradient-text">训推平台</span><br>
<span class="hero-title__sub">AI模型全流程开发</span>
</h1>
<p class="hero-description animate-fade-in-up animate-delay-200">
一站式云端AI开发平台通过对话即可快速构建智能体工作流网页与移动应用依托强大的云端基础设施实现开箱即用的环境和一键部署服务
</p>
</div>
<div class="hero-blur hero-blur--blue floating"></div>
<div class="hero-blur hero-blur--indigo hero-blur--indigo-delay floating"></div>
</section>
<section id="features" class="page-section page-section--soft">
<div class="section-inner section-inner--wide">
<div class="section-heading">
<h2>全链路AI开发能力</h2>
<p>覆盖从数据处理到模型部署的全流程一站式解决AI开发需求</p>
</div>
<div class="feature-grid">
<div v-for="feature in features" :key="feature.title" class="feature-card card-hover">
<div class="feature-card__decor" :class="feature.decorClass"></div>
<div class="feature-card__body">
<div class="feature-icon" :class="feature.iconClass">
<svg class="icon-svg" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" :d="feature.iconPath" />
</svg>
</div>
<h3>{{ feature.title }}</h3>
<p>{{ feature.desc }}</p>
<div class="tag-list">
<span v-for="tag in feature.tags" :key="tag" class="feature-tag">{{ tag }}</span>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="page-section">
<div class="section-inner">
<div class="section-heading">
<h2>一站式开发流程</h2>
<p>从想法到产品上线全流程无缝衔接</p>
</div>
<div class="workflow-list">
<div v-for="(step, index) in workflowSteps" :key="step.title" class="workflow-step" :class="{ 'step-line': index < workflowSteps.length - 1 }">
<div class="step-num" :class="step.done ? 'step-num--done' : step.iconClass">
<svg v-if="step.done" class="icon-svg--sm" fill="currentColor" viewBox="0 0 20 20">
<path fill-rule="evenodd" d="M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z" clip-rule="evenodd" />
</svg>
<span v-else>{{ index + 1 }}</span>
</div>
<div class="workflow-step__card" :class="{ 'workflow-step__card--final': step.done }">
<h3 class="workflow-step__title">{{ step.title }}</h3>
<p class="workflow-step__desc">{{ step.desc }}</p>
<div v-if="!step.done" class="workflow-step__meta">
<span class="workflow-step__meta-label">预计时间</span>
<span class="workflow-step__meta-value">{{ step.time }}</span>
</div>
<div v-else class="workflow-step__status">
<svg class="icon-svg--xs" fill="currentColor" viewBox="0 0 20 20">
<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd" />
</svg>
已上线运营
</div>
</div>
</div>
</div>
</div>
</section>
<section class="page-section page-section--soft">
<div class="section-inner section-inner--wide">
<div class="stats-grid">
<div v-for="stat in stats" :key="stat.label" class="stat-card card-hover">
<div class="stat-card__value gradient-text">{{ stat.value }}</div>
<div class="stat-card__label">{{ stat.label }}</div>
</div>
</div>
</div>
</section>
</div>
</main>
</div>
</div>
</template>
<script>
export default {
name: 'TrainPlatform',
data() {
return {
features: [
{ title: '数据处理', desc: '支持数据清洗、标注、增强、数据集格式转换,提供海量数据集预处理能力,让数据准备更高效', tags: ['数据清洗', '智能标注', '数据增强'], iconClass: 'icon-gradient-blue', decorClass: 'decor-gradient-blue', iconPath: 'M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4' },
{ title: '预训练', desc: '支持7B-200B参数规模的Dense/MoE模型分布式预训练、支持断点续训、支持训练可观测性。', tags: ['DeepSpeed', '多卡训练', '分布式'], iconClass: 'icon-gradient-indigo', decorClass: 'decor-gradient-indigo', iconPath: 'M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z' },
{ title: '后训练', desc: '支持模型微调、强化学习等后训练操作,低成本高效适配业务场景。', tags: ['LoRA', 'QLoRA', 'Prefix Tuning'], iconClass: 'icon-gradient-purple', decorClass: 'decor-gradient-purple', iconPath: 'M11 4a2 2 0 114 0v1a1 1 0 001 1h3a1 1 0 011 1v3a1 1 0 01-1 1h-1a2 2 0 100 4h1a1 1 0 011 1v3a1 1 0 01-1 1h-3a1 1 0 01-1-1v-1a2 2 0 10-4 0v1a1 1 0 01-1 1H7a1 1 0 01-1-1v-3a1 1 0 00-1-1H4a2 2 0 110-4h1a1 1 0 001-1V7a1 1 0 011-1h3a1 1 0 001-1V4z' },
{ title: '量化压缩', desc: '支持FP8、INT8、FP4量化压缩技术高效推理服务。', tags: ['INT4', 'INT8', 'GPTQ'], iconClass: 'icon-gradient-cyan', decorClass: 'decor-gradient-cyan', iconPath: 'M7 21h10a2 2 0 002-2V9.414a1 1 0 00-.293-.707l-5.414-5.414A1 1 0 0012.586 3H7a2 2 0 00-2 2v14a2 2 0 002 2z' },
{ title: '推理部署', desc: '一键部署高性能分布式推理服务、支持PD分离、推测解码、KV缓存等先进推理优化技术', tags: ['vLLM', 'TGI', 'SGLang'], iconClass: 'icon-gradient-green', decorClass: 'decor-gradient-green', iconPath: 'M5 12h14M5 12a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v4a2 2 0 01-2 2M5 12a2 2 0 00-2 2v4a2 2 0 002 2h14a2 2 0 002-2v-4a2 2 0 00-2-2m-2-4h.01M17 16h.01' },
{ title: '智能体开发', desc: '可视化工作流编排、多智能体交互、丰富的工具集成、深度匹配业务应用', tags: ['工作流', '工具集成', '记忆能力'], iconClass: 'icon-gradient-amber', decorClass: 'decor-gradient-amber', iconPath: 'M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z' }
],
workflowSteps: [
{ title: '数据准备', desc: '上传原始数据,使用平台提供的清洗、标注、增强工具进行处理', time: '10-30分钟', iconClass: 'icon-gradient-blue' },
{ title: '模型训练/微调', desc: '选择基础模型和训练策略,一键启动训练任务,实时监控进度', time: '1-24小时', iconClass: 'icon-gradient-indigo' },
{ title: '量化优化', desc: '对训练好的模型进行量化压缩,降低部署成本,提升推理速度', time: '30分钟-2小时', iconClass: 'icon-gradient-purple' },
{ title: '一键部署', desc: '选择推理引擎和配置参数自动完成服务部署获取API接口', time: '5-15分钟', iconClass: 'icon-gradient-cyan' },
{ title: '服务上线', desc: '服务自动弹性扩缩容,实时监控指标,一站式运维管理', done: true }
],
stats: [
{ value: '1.2TB', label: '日处理数据量' },
{ value: '99.8%', label: '服务可用性' },
{ value: '2.3x', label: '推理加速' },
{ value: '75%', label: '存储节省' }
]
}
},
methods: {
handleStart() {
this.$message.info('开始使用训推平台')
},
handleVisit() {
this.$message.info('访问平台')
},
handleLearnMore() {
this.$message.info('了解更多')
}
}
}
</script>
<style scoped>
.train-page {
padding-top: 0;
}
@import './train.css';
</style>