Files
test-repo/docs/.vitepress/theme/components/appendix/ai-history/AiEvolutionDemo.vue
T

308 lines
7.5 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="ai-evolution-demo">
<div class="header">
<div class="title">AI 进化规则 学习 生成</div>
<div class="subtitle">
点击切换阶段不自动推进避免点一下就连续发生很多事的误解
</div>
</div>
<div class="tabs" role="tablist" aria-label="AI Evolution Stages">
<button
v-for="(stage, index) in stages"
:key="stage.key"
class="tab"
:class="{ active: currentStage === index }"
role="tab"
:aria-selected="currentStage === index"
@click="currentStage = index"
>
<div class="tab-year">{{ stage.year }}</div>
<div class="tab-label">{{ stage.label }}</div>
</button>
</div>
<div class="stage">
<div class="stage-head">
<div class="stage-title">{{ stages[currentStage].title }}</div>
<div class="stage-desc">{{ stages[currentStage].desc }}</div>
</div>
<div class="grid">
<div class="card">
<div class="card-title">核心思想</div>
<ul class="list">
<li v-for="(item, i) in stages[currentStage].core" :key="i">
{{ item }}
</li>
</ul>
</div>
<div class="card">
<div class="card-title">代表应用</div>
<div class="pill-row">
<span
v-for="(tag, i) in stages[currentStage].examples"
:key="i"
class="pill"
>{{ tag }}</span
>
</div>
<div class="note">{{ stages[currentStage].appDesc }}</div>
</div>
<div class="card full">
<div class="card-title">优势 / 局限</div>
<div class="two-col">
<div class="col">
<div class="col-title">优势</div>
<ul class="list">
<li v-for="(item, i) in stages[currentStage].pros" :key="i">
{{ item }}
</li>
</ul>
</div>
<div class="col">
<div class="col-title">局限</div>
<ul class="list">
<li v-for="(item, i) in stages[currentStage].cons" :key="i">
{{ item }}
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script setup>
import { ref } from 'vue'
const currentStage = ref(0)
const stages = [
{
key: 'symbolic',
year: '1950s1980s',
label: '符号主义',
title: '规则与逻辑推理(专家系统)',
desc: '相信“智能 = 规则 + 推理”。把专家经验写成 If/Then 规则与知识库。',
core: [
'知识用“符号/规则”表达:If 条件 Then 结论',
'推理引擎按规则匹配、触发、推导',
'可解释:能指出用了哪条规则'
],
pros: ['可解释性强', '在边界明确的垂直领域有效'],
cons: [
'规则写不完(组合爆炸)',
'脆弱:世界稍变就失效',
'难处理不确定性与常识'
],
examples: ['专家系统', 'MYCIN', '逻辑推理'],
appDesc:
'适合“规则明确”的任务(如部分诊断流程、合规校验),但遇到现实世界的灰度与噪声会迅速失效。'
},
{
key: 'dl',
year: '2010s',
label: '深度学习',
title: '从数据中学习(连接主义)',
desc: '相信“智能 = 表示学习 + 统计优化”。用神经网络从大量数据里自动学特征与决策边界。',
core: [
'用参数(权重)表示知识;通过优化让参数拟合数据',
'特征提取从“手写规则”变成“自动学习”',
'数据、算力、算法(GPU + 大数据 + 网络结构)共同推动'
],
pros: ['强大的模式识别能力', '同一范式覆盖多任务(视觉/语音/推荐等)'],
cons: ['数据需求大', '可解释性较弱', '对分布外/对抗样本敏感'],
examples: ['AlexNet', 'ImageNet', 'AlphaGo'],
appDesc:
'擅长“感知类”任务(图像、语音、推荐);但对“为何这么判”解释不够直观,且对数据分布较敏感。'
},
{
key: 'genai',
year: '2020s+',
label: '生成式 AI',
title: '从“分类”到“生成”(大模型)',
desc: '用 Transformer 建模上下文关系,学习“下一 token”分布,从而能生成文本/代码/图像等新内容。',
core: [
'统一接口:给提示词(prompt)→ 生成输出',
'能力来源:规模化预训练 + 指令微调/对齐',
'把很多任务“变成一个生成问题”'
],
pros: ['通用性强(多任务)', '交互友好(自然语言接口)'],
cons: [
'可能幻觉',
'安全与权限边界复杂',
'需要系统化评测与约束(格式/工具/检索)'
],
examples: ['ChatGPT', 'GPT-4', 'Midjourney'],
appDesc:
'更像“通用助手”:能写、能改、能解释、能生成;但要通过提示词、上下文与工具链把它约束到可验收、可控。'
}
]
</script>
<style scoped>
.ai-evolution-demo {
border: 1px solid var(--vp-c-divider);
background: var(--vp-c-bg-soft);
border-radius: 8px;
padding: 1.5rem;
margin: 1rem 0;
color: var(--vp-c-text-1);
}
.header {
margin-bottom: 1rem;
}
.title {
font-weight: 800;
color: var(--vp-c-text-1);
}
.subtitle {
margin-top: 0.25rem;
color: var(--vp-c-text-2);
font-size: 0.9rem;
}
.tabs {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 0.5rem;
margin: 0.75rem 0 1rem;
}
.tab {
text-align: left;
border: 1px solid var(--vp-c-divider);
background: var(--vp-c-bg);
color: var(--vp-c-text-1);
border-radius: 8px;
padding: 0.6rem 0.75rem;
cursor: pointer;
transition:
border-color 0.2s ease,
box-shadow 0.2s ease;
}
.tab:hover {
border-color: rgba(var(--vp-c-brand-rgb), 0.55);
}
.tab.active {
border-color: var(--vp-c-brand);
box-shadow: 0 0 0 3px rgba(var(--vp-c-brand-rgb), 0.12);
}
.tab-year {
font-size: 0.75rem;
color: var(--vp-c-text-2);
font-family: var(--vp-font-family-mono);
}
.tab-label {
margin-top: 0.15rem;
font-weight: 800;
}
.stage-head {
margin-bottom: 0.75rem;
}
.stage-title {
font-weight: 900;
color: var(--vp-c-text-1);
}
.stage-desc {
margin-top: 0.25rem;
color: var(--vp-c-text-2);
font-size: 0.95rem;
line-height: 1.6;
}
.grid {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 0.75rem;
}
@media (max-width: 720px) {
.tabs {
grid-template-columns: 1fr;
}
.grid {
grid-template-columns: 1fr;
}
}
.card {
border: 1px solid var(--vp-c-divider);
background: var(--vp-c-bg);
border-radius: 8px;
padding: 1rem;
}
.card.full {
grid-column: 1 / -1;
}
.card-title {
font-weight: 900;
color: var(--vp-c-text-1);
margin-bottom: 0.5rem;
}
.list {
margin: 0;
padding-left: 1.15rem;
color: var(--vp-c-text-1);
}
.pill-row {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
margin-bottom: 0.5rem;
}
.pill {
border: 1px solid var(--vp-c-divider);
background: var(--vp-c-bg-alt);
color: var(--vp-c-text-2);
padding: 0.2rem 0.6rem;
border-radius: 999px;
font-size: 0.8rem;
font-weight: 700;
}
.note {
color: var(--vp-c-text-2);
line-height: 1.6;
}
.two-col {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 0.75rem;
}
@media (max-width: 720px) {
.two-col {
grid-template-columns: 1fr;
}
}
.col-title {
font-weight: 900;
color: var(--vp-c-text-1);
margin-bottom: 0.35rem;
}
</style>