今天的学习任务是:了解机器学习、神经网络与深度学习的概念,区分他们是包含还是交叉关系,通过对资料的阅读,我总结关系如下:
深度学习是基于复杂的神经网络来实现,属于机器学习的一部分。
所以我们只需要了解机器学习,后续自然而然的就可以去了解深度学习和神经网络了。
所以什么是机器学习呢?利用机器学习制作的一款产品有哪些阶段呢。
1. 机器学习的 6 个阶段
简单来说分为:数据准备/训练/评估/优化/部署验证/维护迭代 6 个阶段。
以下是 DeepSeek (仅作为生成式自然语言处理模型)的实现路径,按照 数据准备、训练、评估、优化、部署验证、维护迭代 六个阶段详细展开:
2. DeepSeek 阶段拆解
1. 数据准备
目标:构建高质量、多领域的文本语料库。
-
数据采集:
- 来源:网页爬虫(Common Crawl)、开源数据集(Wikipedia、书籍)、垂直领域文本(科技论文、法律文档)。
- 多语言支持:中/英混合语料,按比例平衡。
-
数据清洗:
- 去重:基于哈希或语义相似度(如SimHash)。
- 去噪:过滤广告、乱码、低质量文本(如短于50字符)。
- 敏感信息处理:正则表达式匹配隐私信息(如邮箱、电话)并脱敏。
-
预处理:
- 分词:中文使用Jieba/BERT-wwm,英文按空格分割。
- 格式统一:文本标准化(全角转半角、繁体转简体)。
- 标注(可选):对部分数据标注意图标签(如问答对、情感极性)。
输出:
-
清洗后的文本文件(JSON/CSV格式)。
-
分词后的Token序列及元数据(领域、语言、长度分布)。
2. 训练
目标:基于海量数据预训练生成式模型,并通过微调适配下游任务。
-
模型架构选择:
- 核心:Transformer-Decoder架构(类似GPT-3)。
- 参数规模:千亿级参数,使用张量并行+流水线并行。
-
预训练:
- 任务:自监督学习(Next Token Prediction)。
- 硬件:GPU集群(如NVIDIA A100,跨多节点分布式训练)。
- 优化器:AdamW,学习率预热(Warmup)与衰减策略。
-
微调:
- 任务适配:使用领域数据(如医疗、金融)进行指令微调(Instruction Tuning)。
- 技术:LoRA(低秩适配)高效微调,减少显存占用。
输出:
-
预训练模型权重(Checkpoint)。
-
微调后的任务专用模型(如客服对话模型)。
3. 评估
目标:量化模型生成能力,确保符合业务需求。
-
自动化指标:
- 生成质量:Perplexity(困惑度)、BLEU(双语翻译评估)、Rouge-L(文本摘要相似度)。
- 多样性:Distinct-n(统计生成文本的n-gram多样性)。
-
人工评估:
- 标注团队评分:流畅性(1-5分)、相关性(是否切题)、事实准确性。
- 对抗测试:构造边缘案例(如歧义问题、长上下文依赖)。
-
任务专项评估:
- 代码生成:单元测试通过率(如HumanEval基准)。
- 对话系统:多轮对话连贯性评分。
输出:
-
评估报告(含指标对比与人工评分)。
-
问题案例集(需优化的生成失败样本)。
4. 优化
目标:提升模型性能、效率及安全性。
-
模型调优:
- 超参数搜索:学习率、Batch Size、Dropout率(使用Optuna/Bayesian优化)。
- 架构改进:增加稀疏注意力(Sparse Attention)处理长文本。
-
效率优化:
- 模型压缩:知识蒸馏(从大模型训练小模型)、量化(FP16/INT8)。
- 推理加速:使用NVIDIA TensorRT部署,优化KV缓存。
-
安全对齐:
- 内容过滤:集成敏感词表+神经网络分类器拦截有害生成。
- 价值观对齐:基于RLHF(人类反馈强化学习)优化生成偏好。
输出:
-
优化后的轻量级模型(如DeepSeek-Lite)。
-
安全过滤模块(API拦截规则+分类模型)。
5. 部署验证
目标:将模型稳定部署至生产环境,验证实际效果。
-
工程化封装:
- 模型格式转换:PyTorch→ONNX/TensorRT。
- API开发:RESTful接口(FastAPI框架),支持流式响应(Streaming)。
-
云原生部署:
- 容器化:Docker镜像,Kubernetes集群弹性扩缩容。
- 负载均衡:根据QPS动态分配计算资源(如AWS Lambda+API Gateway)。
-
验证测试:
- 压力测试:模拟高并发请求(如1万QPS),监控响应延迟与稳定性。
- A/B测试:对比新旧模型在真实用户中的满意度(如点击率、留存率)。
输出:
-
生产环境可用的模型服务(API端点)。
-
性能监控面板(Prometheus+Grafana)。
6. 维护迭代
目标:持续监控模型表现,应对数据漂移与用户需求变化。
-
在线监控:
- 日志分析:记录用户查询与生成结果,检测高频失败模式。
- 数据漂移检测:统计输入文本分布变化(如KL散度对比)。
-
定期更新:
- 增量训练:每周用新数据微调模型(如用户反馈的高价值样本)。
- 版本管理:蓝绿部署(Blue-Green Deployment)无缝切换模型版本。
-
用户反馈闭环:
- 用户评分系统:允许用户对生成结果打分(👍/👎)。
- 主动迭代:根据反馈优化高频问题(如法律条款生成增强)。
输出:
-
模型版本更新记录(如v2.1→v2.2)。
-
用户反馈分析报告与优化计划。
核心工具与技术栈
阶段 | 关键技术/工具 |
---|---|
数据准备 | Scrapy(爬虫)、Spark(分布式清洗)、HuggingFace Datasets(数据管理) |
训练 | PyTorch、DeepSpeed(分布式训练)、Megatron-LM(大规模模型并行) |
评估 | HuggingFace Evaluate(指标计算)、Label Studio(人工标注平台) |
优化 | ONNX Runtime(模型压缩)、NVIDIA Triton(推理优化) |
部署验证 | Kubernetes、Docker、FastAPI、Locust(压力测试工具) |
维护迭代 | ELK Stack(日志分析)、MLflow(模型版本管理)、Prometheus(监控) |
3. 总结
可以看到一个成功的大模型(即使只是语言大模型,不包含视觉等),是由庞大的子任务组成的,很难不靠团队,而靠一个人来完成。但是就单项子任务而言,在座的各位也不是没有可能可以胜任。
这只是将当下最火的大模型按6个阶段来拆分,需要完成的任务。如果你换成 AlphaGo ,里面又会用到很多其他的机器学习架构、模型和算法。
而学习是一个循序渐进的过程,即使当下大模型是最火的,我们依然可以去了解一下传统的分类,聚类,回归任务,到底有哪些实际的应用,或许对我们整体学习机器学习会有好处。
今天的学习任务完成了,本意只是想了解一下机器学习、神经网络、深度学习的概念。不要和别人谈论的时候贻笑大方。
希望这个内容也可以帮助大家更好的了解机器学习,对神经网络和深度学习也不要着急,不要焦虑,学到一定阶段,自然而然就可以碰到了。