MOE(混合专家模型)笔记整理
-
共享专家(Shared Experts)
- 每个输入 token 无需路由选择,直接激活所有共享专家。
- 专注学习和捕捉通用知识。
-
路由专家(Routed Experts)
- 每个输入 token 通过路由机制,根据特征动态选择特定数量的专家激活。
- 专注学习特定领域或任务的专门知识。
-
Top-Kr 机制
-
路由器(Router)在 N r N_r Nr 个路由专家中,依据每个 token 的得分(gating score)挑选分数最高的 K r K_r Kr 个专家。
-
图示流程:输入 I n p u t H i d d e n Input Hidden InputHidden u t u_t ut经 Router 处理,通过 Top-Kr 选择路由专家,同时结合共享专家(Nₛ个),最终输出$ {Output Hidden} $ h t ′ h'_t ht′,实现通用与专门知识的融合。
-
核心特性
-
Sparse(稀疏):输入的 token 仅路由至少量专家,提升效率与针对性。
-
Diverse(多样化):每个专家专注独特领域,避免同质化,发挥专长。
-
合理分配:避免 token 过度集中于同一专家,确保负载均衡与模型泛化。
-
-
损失函数
-
公式: l o s s = α ⋅ N ⋅ ∑ i = 1 N f i ⋅ P i loss = \alpha \cdot N \cdot \sum_{i=1}^{N} f_i \cdot P_i loss=α⋅N⋅∑i=1Nfi⋅Pi
-
说明:
- N:专家数量。
- α \alpha α:超参数,平衡辅助损失与 token 预测损失。
- f i f_i fi:分配至专家 i 的 token 比例。
- P i {P_i} Pi:token 分配至专家 i 的概率。
-
目标:促使 token 均匀分配至各专家,当 f i f_i fi 与 P i P_i Pi均等时,实现路由分配均衡,优化模型训练与专家利用效率。
-
图示延续 MOE 结构,包含共享专家、路由专家、Router 及 Top- K r K_r Kr 机制,结合上述特性与损失函数,实现稀疏激活、多样化专长及均衡分配的混合专家模型。
MLA(多头潜在注意力)笔记整理
- 核心机制
- 推理应用:MLA 主要在推理阶段使用,通过矩阵操作优化计算。
- 压缩与还原
- 利用下采样矩阵 W D K V W^{DKV} WDKV 压缩输入 h t \mathbf{h}_t ht,得到中间表示 c t K V \mathbf{c}_t^{KV} ctKV。
- 再通过上采样矩阵 W U K W^{UK} WUK 和 W U V W^{UV} WUV 还原出 k t C \mathbf{k}_t^{C} ktC(键)和 v t C \mathbf{v}_t^{C} vtC(值),公式如下:KaTeX parse error: {align*} can be used only in display mode.
- 缓存优化:大幅降低 KV Cache 占用空间,将 “缓存长序列” 变为 “缓存短序列”,“缓存两个(键值对)” 简化为 “缓存一个”,提升推理效率。
- 流程步骤
- 1 输入:输入隐藏层 Input Hidden h t \text{Input Hidden } \mathbf{h}_t Input Hidden ht。
- 2 压缩:对 c t K V \mathbf{c}_t^{KV} ctKV进行压缩处理。
- 3 还原:生成 k t , i C \mathbf{k}_{t,i}^{C} kt,iC和 v t , i C \mathbf{v}_{t,i}^{C} vt,iC,结合位置编码(RoPE)与多头注意力(Multi - Head Attention),输出 Output Hidden u t \text{Output Hidden } \mathbf{u}_t Output Hidden ut。
MLA 通过巧妙的矩阵变换与缓存优化,在推理阶段实现高效的注意力计算,降低存储开销,提升模型推理性能。
KV Cache 笔记整理
在自回归生成任务(如对话生成、文本生成等)的推理过程中,若每生成一个新 token 都从头计算整个序列的 K 和 V,效率会非常低。为解决此问题,引入了 KV Cache(键值缓存),其核心内容如下:
-
缓存机制:
在第一次计算后,将所有 token 对应的 K(键)和 V(值)存储在缓存中,通过 “用空间换时间” 的方式优化计算。 -
高效更新:
生成新 token 时,仅需计算该 token 的 Q(查询)、K 和 V,然后将新计算的 K 和 V 追加到缓存中。当前 token 的 Q 与缓存中的所有 K 进行点积运算,并利用缓存中的 V 计算注意力输出。 -
优势:
避免了重复计算前面 token 的 K 和 V,大幅提高了推理速度与效率,在长序列生成任务中效果尤为显著。
通过 KV Cache,模型在自回归生成过程中能够更高效地利用历史计算结果,减少冗余操作,提升整体推理性能。
将重复使用的Q、K、V进行缓存,提高速度
Deepseek R1 模型训练流程
阶段 1 - 从 DeepSeek - V3 到 DeepSeek - R1 - Zero
阶段概述
通过强化学习(Group Relative Policy Optimization, GRPO)优化模型,使 R1 - Zero 基于大量题目和答案进行自我训练(自主作答、错则重练)。GRPO 为 DeepSeek 内部开发的强化学习方法。
目标
在模型初步基础上,利用强化学习优化模型输出的准确性和格式。
奖励机制
- 准确性奖励(Accuracy Rewards):模型输出信息与事实越接近,获得奖励越高。
- 格式奖励(Format Rewards):输出格式(如段落结构、代码规范等)符合要求时,可获更高奖励。
阶段 2 - 从 R1 - Zero 到 DeepSeek - R1
目标
通过 SFT(有监督微调),增强模型的 一致性(Consistency) 和 复杂推理能力。
奖励机制
- 一致性奖励(Consistency Rewards):确保模型在多轮对话或复杂推理过程中保持逻辑一致。
- 基于规则的验证(Rule - based Verification):可能引入针对数学、代码等技术性内容的规则验证,确保输出的技术性内容准确无误。
SFT 数据类型整理
1. SFT (Code start) data
利用冷启动阶段的高质量人类数据,供 Zero 模型学习。数据提供解题思路与过程,类似书中的例题,帮助模型理解问题解决的逻辑框架。
2. SFT (CoT) data
- 规模:60 万样本。
- 特点:不仅提供问题与答案,还包含详细推理步骤,如同带有解题过程的习题,助力模型学习复杂推理逻辑。
- 示例
- 问题:小明有 3 个苹果,他又买了 5 个苹果。小明现在有多少个苹果?
- 传统数据格式
- 输入:小明有 3 个苹果,他又买了 5 个苹果。小明现在有多少个苹果?
- 输出:8 个苹果。
- CoT 数据格式
- 输入:小明有 3 个苹果,他又买了 5 个苹果。小明现在有多少个苹果?
- 推理步骤:首先,小明原本有 3 个苹果。然后,他又买了 5 个苹果。3 加上 5 等于 8。
- 输出:8 个苹果。
3. SFT (knowledge) data
- 规模:20 万样本。
- 特点:通过知识型数据增强模型在广泛领域的知识覆盖,避免模型出现 “偏科” 现象,确保知识的全面性与均衡性。
阶段 3 - 模型蒸馏
- 目的:将 R1、Llama3 和 Qwen2.5 等模型的能力,通过模型蒸馏的方式 “传授” 给更小的模型,如同 “老师” 向 “学生” 传递知识。
- 小模型优势:更小的模型具备更高的效率,能够在硬件资源不足的设备上运行,兼顾性能与资源适应性
Deepseek-R1 模型能力对比
横坐标名称 | 含义说明 |
---|---|
AIME 2024 (Pass@1) | 基于 2024 年美国数学邀请赛(AIME)的测试集,Pass@1表示一次尝试通过的概率,衡量模型在数学竞赛题中的解答能力。 |
Codeforces (Percentile) | 基于 Codeforces 平台的编程竞赛测试,Percentile表示百分位数,反映模型在编程任务中的相对表现水平。 |
GPQA Diamond (Pass@1) | 某专业问题回答(GPQA)的 Diamond 测试集,Pass@1指一次尝试通过的概率,评估模型在专业问题上的回答能力。 |
MATH - 500 (Pass@1) | 数学相关测试集(可能含 500 道题目),Pass@1表示一次尝试通过的概率,用于考察模型的数学解题能力。 |
MMLU (Pass@1) | MMLU(多任务语言理解基准)测试集,Pass@1指一次尝试通过的概率,衡量模型在多领域知识理解任务中的表现。 |
SWE - bench Verified (Resolved) | 软件工程师基准测试(SWE - bench)的已验证部分,Resolved表示问题解决率,评估模型在实际编码任务中的解决能力。 |
模型表现概览
- AIME 2024 (Pass@1):DeepSeek - R1(79.8%)、OpenAI - o1 - 1217(79.2%)表现突出,DeepSeek - V3 最低(39.2%)。
- Codeforces (Percentile):OpenAI - o1 - 1217(96.6%)略领先,DeepSeek - R1(96.3%)紧随其后。
- GPQA Diamond (Pass@1):OpenAI - o1 - 1217(75.7%)最优,DeepSeek - V3(59.1%)较低。
- MATH - 500 (Pass@1):DeepSeek - R1(97.3%)表现最佳,领先于 OpenAI - o1 - 1217(96.4%)。
- MMLU (Pass@1):OpenAI - o1 - 1217(91.8%)略高于 DeepSeek - R1(90.8%)。
- SWE - bench Verified (Resolved):DeepSeek - R1(49.2%)和 OpenAI - o1 - 1217(48.9%)接近,DeepSeek - R1 - 32B 最低(36.8%)。
该图通过不同测试集对比了 DeepSeek - R1、OpenAI - o1 - 1217、DeepSeek - R1 - 32B、OpenAI - o1 - mini、DeepSeek - V3 等模型在数学、编程、多任务理解等领域的性能表现,直观展现了各模型在不同任务中的优势与劣势。
DeepSeek R1 提示词工程:5W1H 方法应用笔记
5W1H 框架解析
- What(是什么)
- 明确任务内容:如 “帮我生成大模型应用开发的学习计划”,清晰定义需求。
- Who(谁)
- 界定用户身份:“我是一个刚刚接触大模型的,有基本的编程能力”,让模型了解用户基础。
- When(何时)
- 设定时间框架:“我希望通过 3 个月的时间完成学习”,提供时间维度的约束。
- Where(在哪里)
- 指明资源渠道:“我想更多利用在线的资源,网站和书籍帮助我”,明确学习场景与工具。
- Why(为什么)
- 阐明目标动机:“我希望能够完成公司交给我的大模型开发项目”,让模型理解需求的背后意图。
- How(如何)
- 描述执行方式:“学习过程希望理论结合实践,最终以项目为目标”,提供实现路径的指引。
通过 5W1H 方法,可系统化地向 DeepSeek R1 模型输入清晰、具体的指令,提升交互效果与任务完成质量,确保模型输出符合预期的学习计划或解决方案。
DeepSeek 提示词模板:概率预测与链式推理模型对比
维度 | 概率预测(快速反应模型,如 ChatGPT 4o) | 链式推理(慢速思考模型,如 OpenAI o1) |
---|---|---|
性能表现 | 响应速度快,算力成本低。 | 慢速思考,算力成本高。 |
运算原理 | 基于概率预测,通过大量数据训练快速预测可能答案。 | 基于链式思维(Chain - of - Thought),逐步推理问题的每个步骤来得到答案。 |
决策能力 | 依赖预设算法和规则进行决策。 | 能够自主分析情况,实时做出决策。 |
创造力 | 限于模式识别和优化,缺乏真正的创新能力。 | 能够生成新的创意和解决方案,具备创新能力。 |
人机互动能力 | 按照预设脚本响应,较难理解人类情感和意图。 | 更自然地与人互动,理解复杂情感和意图。 |
问题解决能力 | 擅长解决结构化和定义明确的问题。 | 能够处理多维度和非结构化问题,提供创造性的解决方案。 |
伦理问题 | 作为受控工具,几乎没有伦理问题。 | 引发自主性和控制问题的伦理讨论。 |
总结:CoT 链式思维将大模型分为 “概率预测(快速反应)” 和 “链式推理(慢速思考)” 两类。前者适合快速反馈、处理即时任务;后者通过推理解决复杂问题。了解差异有助于根据任务需求选择合适模型,实现最佳效果。
DeepSeek 提示词模板
模板名称 | 核心要素 | 分类标签 | 适配模型 | 原因分析 |
---|---|---|---|---|
APE | ACTION(行动)、PURPOSE(目的)、EXPECTATION(期望) | 目标导向型 | DeepSeek R1 | R1 适合简洁明确的任务型指令,对 “目标 - 行动 - 结果” 的线性逻辑处理效率更高。 |
BROKE | BACKGROUND(背景)、ROLE(角色)、OBJECTIVES(目标)、KEY RESULT(关键结果)、EVOLVE(改进) | 结构化任务分解型 | DeepSeek V3 | V3 擅长处理复杂结构化输入,对背景、角色、数据输入和多步骤任务有更强的理解能力。 |
COAST | CONTEXT(背景)、OBJECTIVE(目标)、ACTION(行动)、SCENARIO(场景)、TASK(任务) | 场景驱动型 | DeepSeek V3 | V3 的场景建模能力优于 R1,能够处理更多场景信息和示例,适合结合场景上下文的任务。 |
TAG | TASK(任务)、ACTION(行动)、GOAL(目标) | 简洁任务型 | DeepSeek R1 | R1 对简洁明确的任务型指令处理高效,线性逻辑(目标 - 行动 - 结果)处理能力强。 |
RISE | ROLE(角色)、INPUT(输入)、STEPS(步骤)、EXPECTATION(期望) | 数据驱动型 | DeepSeek V3 | RISE 模板强调根据数据进行多步骤的任务推理,V3 更适合处理此类复杂任务。 |
TRACE | TASK(任务)、REQUEST(请求)、ACTION(行动)、CONTEXT(上下文)、EXAMPLE(示例) | 示例引导型 | DeepSeek V3 | 需要结合场景上下文和具体示例,V3 的场景建模能力优于 R1,能处理更多场景信息和示例。 |
1. APE 模板核心
- ACTION(行动):明确具体任务动作。
- PURPOSE(目的):阐述任务的目标意图。
- EXPECTATION(期望):设定任务的具体要求与预期效果。
案例对比分析
坏例子
- 提示词内容:“制定健身计划,帮助家庭成员提高健康水平,能在短时间内看到效果,适合所有人。”
- 问题:目标模糊,缺乏具体时间、年龄范围、运动种类等细节,难以清晰衡量效果。
好例子
- 提示词内容
- ACTION(行动):制定家庭健身计划。
- PURPOSE(目的):用碎片时间增强全家体质。
- EXPECTATION(期望):包含 3 种无需器械的运动(适合 5 岁儿童到 60 岁老人);每日总耗时 ≤40 分钟(可分早晚两次完成);附带运动效果自测表(如深蹲次数周增长目标)。
- 优势:明确行动、目的及期望,具备可操作性与可衡量性,便于执行与效果评估。
总结
- APE 模板通过细化行动、目的、期望,避免指令模糊,使模型输出更符合需求,提升任务执行与评估的清晰度。
2. BROKE 模板核心
- BACKGROUND(背景):提供任务相关的具体情境信息。
- ROLE(角色):明确模型在任务中扮演的角色。
- OBJECTIVES(目标):定义任务的具体目标。
- KEY RESULT(关键结果):设定可衡量的任务成果指标。
- EVOLVE(改进):规划任务执行中的优化方向。
案例对比分析
坏例子
- 提示词内容:“请帮我为一个家庭制定健身计划,目标是让每个家庭成员都保持健康,并且能坚持。”
- 问题:未提供具体背景、角色、目标和关键结果,目标模糊,执行标准与评估方式难以设定。
好例子
- 提示词内容
- BACKGROUND(背景):双职工家庭,工作日仅有早晨 30 分钟和晚间 1 小时空闲,需兼顾 5 岁儿童体能训练与 60 岁老人关节养护。
- ROLE(角色):担任家庭健康管理师。
- OBJECTIVES(目标):设计全家适用的碎片化健身方案。
- KEY RESULT(关键结果):每周总运动时长 ≥150 分钟;儿童运动趣味度评分 ≥4 星(5 分制);老人关节不适感降低 30%。
- EVOLVE(改进):增加亲子互动游戏环节;引入运动成就徽章系统;使用运动手环数据自动调整计划。
- 优势:详细界定背景、角色、目标及关键结果,明确实施与跟踪进展的方式,便于后续评估与改进。
总结
BROKE 模板通过细化背景、角色、目标、关键结果及改进方向,使指令更清晰具体,提升模型输出的针对性与可操作性,确保任务执行与评估有明确依据。
3. COAST 模板核心
- CONTEXT(背景,上下文):提供任务相关的具体环境信息。
- OBJECTIVE(目的):明确任务的总体目标。
- ACTION(行动):定义为实现目标需采取的行动。
- SCENARIO(场景):设定任务执行的具体场景与时间。
- TASK(任务):细化具体执行任务内容。
案例对比分析
坏例子
- 提示词内容:“为家庭成员设计一个锻炼方案,保持身体健康,要求简洁有效。”
- 问题:目标模糊,缺乏场景、时间、空间等细节信息,无法指导如何执行锻炼计划。
好例子
- 提示词内容
- CONTEXT(背景,上下文):三代同住的老小区住户,客厅面积 15㎡,有楼梯间可利用。
- OBJECTIVE(目的):实现全年龄段家庭成员体质提升。
- ACTION(行动):开发家庭微空间锻炼体系。
- SCENARIO(场景):早晨 7:00 - 7:30,晚间 20:00 - 20:40。
- TASK(任务):设计 3 套交替使用的 “楼梯 + 客厅” 训练组合;制作运动强度分级表(儿童 / 成人 / 老人版);录制家庭跟练短视频脚本(含安全提示字幕)。
- 优势:提供具体背景(如居住环境、空间大小)、明确目的(全年龄段体质提升)、清晰行动(开发微空间锻炼体系)、设定场景(早晚具体时间)及细化任务(设计训练组合、制作分级表、录制脚本),使计划具有可操作性。
总结
COAST 模板通过细化背景、目的、行动、场景及任务,让指令更具体,帮助模型理解复杂场景需求,输出贴合实际、可执行的方案,避免因信息模糊导致的执行困难。
4. TAG 模板核心
- TASK(任务):明确具体要完成的任务内容。
- ACTION(行动):规划实现任务的具体行动步骤。
- GOAL(目标):设定可量化、可衡量的任务目标。
案例对比分析
坏例子
- 提示词内容:“帮助家庭成员做锻炼,确保身体健康。”
- 问题:任务模糊,无具体执行细节,目标不清晰且缺乏量化指标,难以操作与评估。
好例子
- 提示词内容:
- TASK(任务):创建三代同堂家庭运动计划。
- ACTION(行动):筛选适合各年龄段的无器械动作;制定每周运动主题(如平衡周、柔韧周);设计运动数据追踪表。
- GOAL(目标):三个月内,儿童跳绳每分钟增加 20 次;成人平板支撑时长突破 2 分钟;老人坐姿体前屈进步 5cm。
- 优势:任务明确(创建运动计划),行动步骤具体(筛选动作、设计追踪表等),目标量化(跳绳次数、支撑时长等),便于执行与效果评估。
总结
TAG 模板通过清晰界定任务、行动及量化目标,避免指令笼统,使模型输出更具针对性与可衡量性,提升任务执行效率与评估准确性。
5. RISE 模板核心要素
- ROLE(角色):明确模型在任务中扮演的角色。
- INPUT(输入):提供任务相关的具体数据或信息。
- STEPS(步骤):规划实现任务的具体行动步骤。
- EXPECTATION(期望):设定可衡量的任务目标或预期成果。
案例对比分析
坏例子
- 提示词内容:“制定一项家庭健康计划,帮助所有成员保持健康。”
- 问题:未明确角色、输入、步骤和期望,缺乏具体行动步骤与可衡量的目标,难以操作与跟踪。
好例子
- 提示词内容:
- ROLE(角色):健身游戏化设计师。
- INPUT(输入):家庭成员数据(儿童 5 岁 / 喜欢恐龙;父母 35 岁 / 久坐办公;老人 60 岁 / 膝关节退化)。
- STEPS(步骤):将动作改编为情景游戏(如 “恐龙救援深蹲”);设计家庭运动积分兑换规则;建立安全防护机制。
- EXPECTATION(期望):每日自动生成运动挑战任务;每月产出全家体质分析报告;运动意外风险发生率 ≤0.5%。
- 优势:角色清晰(健身游戏化设计师),输入具体(家庭成员年龄与健康状况),步骤明确(情景游戏设计等),期望可衡量(运动挑战、分析报告、风险率),提升了计划的操作性与可跟踪性。
总结
RISE 模板通过细化角色、输入、步骤及期望,避免指令模糊,使模型能精准理解复杂需求,输出具有明确执行路径与可衡量目标的方案,增强任务的实际操作性与效果跟踪性。
6. TRACE 模板核心要素
- TASK(任务):明确要完成的任务内容。
- REQUEST(请求):提出任务的特定要求或期望。
- ACTION(行动):规划实现任务的具体行动步骤。
- CONTEXT(上下文):提供任务相关的背景或环境信息。
- EXAMPLE(示例):给出具体的执行示例,增强可操作性。
案例对比分析
坏例子
- 提示词内容:“制定一个家庭运动计划,确保锻炼有趣又有效。”
- 问题:任务目标模糊,缺乏具体执行细节和示例,难以明确如何让锻炼有趣且有效。
好例子
- 提示词内容:
- TASK(任务):制定家庭运动计划。
- REQUEST(请求):兼顾趣味性与科学性。
- ACTION(行动):将传统训练转化为亲子游戏;结合家居物品开发锻炼道具;设立每周 “运动奥斯卡” 颁奖仪式。
- CONTEXT(上下文):家庭成员时间碎片化,需利用客厅 / 走廊空间。
- EXAMPLE(示例):如将仰卧起坐改为 “快递员送货” 游戏,儿童在家长起身时放置玩具 “货物”,老人计数并颁发 “最佳配送员” 奖章。
- 优势:明确任务、请求及行动步骤,提供具体示例(如 “快递员送货” 游戏),结合家庭时间与空间特点,增强实际操作性,使计划更清晰易懂。
总结
TRACE 模板通过细化任务、请求、行动、上下文及示例,避免指令模糊,让模型理解复杂需求,输出兼具趣味性与科学性的方案,提升任务执行的可操作性与效果。
多轮对话与上下文拼接
Deepseek大模型本身没有记功能忆,服务没有状态
图中展示了 DeepSeek 模型在多轮对话中上下文拼接的过程,具体如下:
- 第一轮对话:
- 输入 问题①,模型生成 思维链①(内部推理过程),最终输出 回答①。
- 第二轮对话:
- 拼接第一轮的 问题① 和 回答①,在此基础上提出 问题②;模型生成 思维链②,输出 回答②。
- 第三轮对话:
- 拼接前两轮的 问题①、回答①、问题②、回答②,再提出 问题③;模型生成 思维链③,输出 回答③。
通过这种方式,每轮对话都保留并利用之前的上下文信息(问题与回答),使模型在多轮交互中能基于历史信息进行更连贯、准确的回应,实现上下文感知的智能对话。
安装Deepseek开发环境搭建:VS Code+Conda
Conda 概述
Conda 是一个开源的环境管理工具,用于创建、管理和切换独立的软件环境,尤其适用于 Python 项目,解决不同项目依赖冲突的问题。
Conda 核心特点
- 环境独立存在
每个环境都是一个独立的空间,拥有自己的软件包、库和依赖项,与其他环境隔离。 - 环境互不影响
不同环境之间的软件包版本、Python 版本等互不干扰。例如,一个环境使用 Python 3.8,另一个环境可使用 Python 3.9,两者共存且不冲突。 - 组件库版本灵活
每个环境可安装特定版本的库或工具。如环境 1 安装TensorFlow 2.4
,环境 2 安装TensorFlow 2.10
,满足不同项目对库版本的差异化需求。 - 多环境工作支持
程序员可根据项目需求快速切换环境,在不同环境中高效开展工作,无需担心依赖冲突。
通过这些特性,Conda 极大地提升了开发的灵活性和效率,尤其适合需要管理复杂依赖的项目。
Conda 常用命令整理笔记
功能 | 命令 | 说明 |
---|---|---|
查看环境列表 | conda info -e | 列出所有已创建的 Conda 环境。 |
创建环境 | conda create -n test python=3.8 | -n test :指定环境名为 test ;python=3.8 :指定 Python 版本为 3.8。 |
激活环境 | conda activate test | 进入名为 test 的环境,激活后可在该环境下安装、运行特定版本的库。 |
取消激活 | conda deactivate | 退出当前激活的环境,返回基础环境。 |
安装组件包 | pip3 install langchain | 在当前激活环境中,使用 pip 安装 langchain 库(也可通过 conda install 安装 Conda 包)。 |
删除环境 | conda remove --name test --all --force | --name test :指定要删除的环境名;--all :删除环境及其所有内容;--force :强制删除,忽略警告。 |
应用中调用 DeepSeek 操作笔记
1. 创建 Conda 环境
使用 conda
创建名为 deepseek
的环境,指定 Python 版本为 3.10:
conda create -n deepseek python=3.11
-n
:用于指定环境名称。
2. 激活环境
通过 activate
命令进入创建的 deepseek
环境:
conda activate deepseek
3. 安装依赖库
DeepSeek API 调用基于 OpenAI SDK,需安装以下库:
openai
:OpenAI SDK,提供基础接口支持。langchain
相关:包括langchain
(集成框架)、langchain_community
(社区组件)、langchain - deepseek
(DeepSeek 专用集成)。rich
:方便查看打印结果,美化输出。
安装命令:
pip install langchain langchain_community openai langchain-deepseek rich
通过以上步骤,可搭建好调用 DeepSeek 的开发环境,为后续 API 调用与应用开发做好准备。
Deepseek集成ChatBox应用
在线访问chatbox
http://web.chatboxai.app/
本地访问chatbox
https://chatboxai.app/zh 下载chatbox的客户端
Deepseek应用集成:本地应用Deepseek模型
核心组件:Ollama
一、Ollama 服务
- 用户接口:连接至推理模型与管理模型。
- 功能模块:
- 推理模型与管理模型。
- 下载 / 加载模型,适配硬件。
二、Ollama 模型库
包含多种模型,如:
- Meta Llama3
- Qwen2.5
- deepseek R1
- MISTRAL AI_
DeepSeek 应用集成:Ollama+ChatBox 集成本地部署的 DeepSeek
- 标题:DeepSeek 应用集成:Ollama+ChatBox 集成,本地部署 DeepSeek。
- 设置界面内容:
- 标签:包含 “模型”“显示”“对话”“其他” 标签,当前选中 “模型”。
- 模型提供方:选择 “OLLAMA API”。
- API 域名:设置为
http://127.0.0.1:11434
,右侧有 “重置” 按钮。 - 提示信息:提醒 “请确保远程 Ollama 服务能够远程连接。更多详情请参考此教程”。
DeepSeek 应用集成 - SiliconFlow
架构分层
1. Application Layer(应用层)
- 包含 AI Applications。
2. AI Infra Stack(AI 基础设施栈,涵盖训练、微调、部署)
- Cloud Services:
- SiliconCloud。
- SiliconCloud(IaaS/PaaS/MaaS)。
- 工具与平台:
- High - Performance Inference Suite:SiliconSuite。
- OneDiff:基于文本的图像 / 视频生成。
- SiliconLLM:大语言模型推理(LLM Inference)。
- One - Stop AI Application Development Platform:SiliconBrain。
- LLM Training:大模型训练平台(Large Model Training Platform)。
- MLOps:AI 开发平台(AI Development Platform)。
3. Compute Layer(计算层)
- 支持 NVIDIA/AMD/Intel/HUAWEI Ascend 等计算硬件。
DeepSeek 应用集成 - 打造个人本地知识库
-
说明:通过 Cherry Studio 集成 R1 模型创建知识库,解决知识及提问外泄担忧,采用 DeepSeek R1 模型本地部署 + 本地知识库 + 本地问答模式。
-
流程图步骤:
- 上传文档:用户将文档上传。
- 存储数据:数据存储至 Vector Store(向量存储)。
- 询问问题:用户提出问题。
- 向量搜索:系统在 Vector Store 中进行向量搜索。
- 提供相关数据:Vector Store 输出相关数据作为上下文。
- 形成上下文和问题:整合上下文与用户问题。
- 生成答案:基于文档生成答案。
- 获得答案:用户获取可靠答案。
Deepseek应用集成:网页实时翻译体验
完成相关配置
DeepSeek 应用集成 - DeepSeek 集成 Open - WebUI
- 背景:有同学提问如何在 Open - WebUI 中使用硅基流动的 Key 调用 DeepSeek - R1 模型。(硅基流动函数集)
- 聊天记录:提问者咨询操作方法,回复者表示未用过需研究,后续回复已搞定,将录视频讲解。
- 相关链接:
- Open - webui 官网:https://github.com/open-webui/open-webui。
- 硅基流动官网:https://siliconflow.cn/zh-cn/。
- 硅基流动在 Open - webui 中的函数调用:https://openwebui.com/f/zgccrui/deepseek_r1。
DeepSeek 应用集成 - 结合 Kimi - PPT 助手一键生成演示报告
-
用户需求:创建《智能枕头》产品全国销售年度计划,按月份细分,内容需用于 PPT 展示,以便老板和团队获取充分信息。(TAG提示模版)
Deepseek:能否生成对应的PPT内容,结构化的内容
KimiPPT助手:接受这个结构化的内容
-
工具链接:kimi PPT 助手 - https://kimi.moonshot.cn/kimipius-square。
-
其他集成方向:
- DeepSeek 应用集成 - Cursor 协助 Coding。
- DeepSeek 应用集成 - 创建 AI Agent。
通过DeepSeek的输出能力+其他工具的生成能力,利用接口去调用更多的工具赋能DeepSeek。
DeepSeek 应用集成 - Cursor 开发生日祝福应用
- 工具及链接:
- Cursor:https://www.cursor.com/cn
- 微信开发者工具:https://developers.weixin.qq.com/miniprogram/dev/devtools/stable.html
DeepSeek 应用集成 - 创建生日祝福智能体并提供 API 服务(Cursor+Coze智能体)
- 操作步骤:
- 登录 coze 平台:https://www.coze.cn/
- 创建智能体。
- 发布智能体。
- 获取智能体 API 地址和访问的 token。
- 补充内容:DeepSeek 应用集成 - Cursor+Coze 智能体实现前后端开发。
令牌:pat_RFdZAAaqx58XxSbSpp9rJShscNKcCCmN8Wph1TQKGssD72spNNtnXgO4ppOTWgl4
DeepSeek 应用集成 - 意图识别
- 第一张图内容
- 流程展示:用户提出售前或售后问题,大模型介入,分别从 “售前知识库”“售后知识库” 获取信息,汇总后返回用户。
- 关键步骤:
- 识别用户意图(如何识别);
- 分别调用对应知识库;
- 汇总知识库信息;
- 返回结果给用户。
- 第二张图内容(比喻解释)
- 模型通过学习不同 “标签” 特征判断用户需求类型,类似孩子根据商店标签确定购买目标。
- 举例:在客服系统中,深度学习模型依据 “买”“产品”“问题” 等关键词和特征,将用户问题分为 “售前” 或 “售后” 类别。
- 向量与相似度判断:
- 模型将文字转换为 “向量” 并映射到空间中,通过计算 “距离” 判断相似度。例如,“我要棒棒糖” 和 “我想吃水果糖” 因向量距离接近,意图一致,可归为 “零食” 类别。在售前售后场景中,提示词与分类的 “距离” 近,相似度就高。
- 意图组件与提示词:
- 售前咨询:咨询产品规格、性能、功能等方面的问题。
- 售后问题:涉及产品使用(如如何设置 / 开启 ×××)、产品故障(如 ××× 配置不生效、错误码 ××××、报错等)的问题。
- 流程:用户提出问题,大模型结合 “售前知识库”“售后知识库” 信息,经汇总后返回结果,过程涉及分类、语义向量空间及迁移学习,可能由售前 / 售后工程师参与完善。
DeepSeek 应用集成 - AGI、智能体及平台架构笔记
一、AGI 与智能体发展路径
- AI 发展阶段:
- 解决单一任务:生成文字、图片、语音、视频等。
- 解决复杂任务:如投资金融、设计建筑、创作诗歌。
- AGI(通用人工智能):愿景为像人类一样思考与行动,处理复杂任务,适应多样环境。
- AI Agent(智能体):自主感知环境、决策并行动的系统。
- 智能体概念与组成:
- 概念:涉及状态(State)、动作(Action)、奖励(Reward)与环境的交互。
- 组成:LLM(大语言模型)、短期 + 长期记忆、工具(代码、搜索引擎、API 等)、规划(反思、自我批评、思维链等)。
二、平台架构
- 应用模式:
- 单 Agent(LLM 模式)、单 Agent(工作流模式)、多 Agents。
- Agent 编排:包含工作流组件、图像流组件、触发器组件、知识库组件、记忆组件、对话体验组件、提示词组件等,通过组件接口整合。
- 基础组件:
- 人设与回复:提示词组件、约束与限制组件、提示词优化组件。
- 工作流节点:模型组件、插件、代码块、选择器、循环组件、意图识别、文本处理、消息 / 问答。
- 知识库:文本、表格、照片等组件。
- 对话体验:开场白、用户问题、快捷指令等组件。
- 数据存储:
- 知识库存储:支持文件(txt、pdf、docx)、关系型数据、内存存储。
- 数据采集:自动采集与手动采集。
- 三方接口:集成飞书、Notion、微信、抖音、掘金等外部应用。
DeepSeek 应用集成 - 知识库 + 工作流 + 智能体实现售前售后系统
- 实现步骤:
- 创建智能体:构建智能体以完成售前售后工程师的工作。
- 整理上传文档:将售前和售后相关文档整理并上传,作为知识库资源。
- 设计工作流:创建工作流,集成意图识别、知识库加载及汇总等操作。
- 测试智能体:对构建好的智能体进行工作测试,确保系统正常运行。
DeepSeek 应用集成 - 协同 MerMaid 实现流程图设计
- 工具链接:https://www.mermaidchart.com/,该工具可用于实现流程图设计,通过代码生成图表,便于在项目中嵌入流程图,辅助展示流程逻辑。
DeepSeek 应用集成 - 协同 Napkin 完成图表制作
- 提示词:生成 DeepSeek 发展的历史阶段,希望将其放入 napkin 中生成时间轴图。
- 工具链接:https://www.napkin.ai/,用于完成图表制作,可生成时间轴图等可视化内容。
DeepSeek 应用集成 - 动画生成(Deepseek生成提示词+可灵AI)
[可灵 AI - 新一代 AI 创意生产力平台]https://klingai.com/cn/
- 生成图片
- 生成视频
DeepSeek 应用集成 - 虚拟分身完成口播视频
- DeepSeek 生成口播文案。
- 训练个人声音
- 零样本 TTS:输入 5 秒声音样本,即可体验即时文本到语音的转换。
- 少量样本 TTS:仅需 1 分钟训练数据对模型微调,提升语音相似度与真实感。
- 跨语言支持:支持使用与训练数据集不同的语言进行推理,涵盖英语、日语、韩语、粤语和中文。
- WebUI 工具:集成语音伴奏分离、自动训练集分割、中文 ASR(自动语音识别)和文本标注功能,辅助初学者创建训练数据集及 GPT/SoVITS 模型。
GPT-SoVITS-webUI地址:https://github.com/RVC-Boss/GPT-SoVITS
- 工具链接:Windows 懒人包(夸克)。
- 操作步骤:
- 准备音频文件:确保音频文件为 -9 分贝,避免声音过大导致失真。
- 放置音频文件:将导出的音频文件放入
uvr5_opt
文件夹(路径:/GPT_Sovit根目录/output/uvr5_opt
)。UVR5 用于音频后处理(如人声与伴奏分离、去除混响),假设此处音频已完成分离,为最终训练声音。 - 启动懒人包:启动 GPT - Sovit 懒人包。
- 开启语音切割:复制
uvr5_opt
文件夹地址到 “语音切分工具”,点击 “开启语音切割”。 - 选择 ASR 模型:选择 “达摩 ASR(中文)”,ASR 用于将语音转化为文字。
- 执行离线批量 ASR:点击 “开启” 离线批量 ASR。
- 跳过打标:跳过 “文本 - 音频;特征(人声、背景音) - 音频;情感 - 音频” 的打标步骤。
- 进入 GPT - Sovit - TTS 标签页:在 “实验模型名” 中输入本次训练模型的名字,将文本转化为语音。
- 开启 Sovit 训练:完成后进入下一步(文本生成语音)。
- 开启 GPT 训练:等待完成,该步骤用于理解和生成 NLP,规范语义和语法。
显存与 batch_size、切片长度关系
显存 | batch_size | 切片长度 |
---|---|---|
6g | 1 | 10s |
8g | 2 | 10s |
16g | 8 | 10s |
22g | 12 | 10s |
24g | 14 | 10s |
32g | 18 | 10s |
40g | 24 | 10s |
80g | 48 | 10s |
-
模型推理:选取此前训练完成的模型,启动模型推理功能。
-
语音生成:挑选音频文件作为示例,输入文本内容,开始生成语音。
DeepSeek 应用集成 - 虚拟分身 - 对口型与声音合成笔记
LatentSync 框架
- 定义:LatentSync 是基于音频条件的潜在扩散模型框架,用于解决口型同步问题。它通过音频直接驱动口型同步生成,无需中间动作表示,与传统基于像素空间扩散或两阶段生成的方法不同,采用潜在空间扩散模型直接建模复杂的音频 - 视觉关系。
- 关键点:
- 音频条件的潜在扩散模型:通过潜在空间进行音频 - 视觉同步建模。
- 时间一致性增强:提出 Temporal REPresentation Alignment(TREPA)改善时序一致性,同时保持口型同步准确性。TREPA 使用大规模自监督视频模型提取的时间表示,对齐生成帧与真实帧。
- 无中间动作表示:直接从音频生成口型同步视频帧,避免复杂动作建模。
- 相关链接:
输入数据说明
- Masked frames:被遮挡的输入帧,通常是视频中部分帧,包含不完整图像(如缺少嘴部区域)。
- Reference frames:参考帧,包含完整嘴部动作,提供口型同步标准。
- Melspectrogram:音频输入转换后的 Mel 频谱图,是音频的时间频率表示形式,用于提取音频特征。
模型架构与过程
- 推理过程:通过 VAE Encoder 处理 Masked frames 和 Reference frames,结合 Whisper Encoder 处理的音频嵌入(Audio embeddings),经去噪等操作生成预测噪声,再通过 VAE Decoder 得到估计帧。
- 训练过程:利用 SyncNet loss 确保音频与视觉同步,通过 TREPA 和 LPIPS 对齐估计帧与真实帧(Ground truth frames),提升模型准确性和时间一致性。
DeepSeek 应用集成 - 穿越历史复活李白
- 内容概述:通过 DeepSeek 应用集成,将李白的图片逐步转化为真人图片,并制作成视频,最终实现让变成真人的李白在视频最后朝用户微笑。具体流程为:李白图片 → 真人图片(从原始图片转化为真人形象) → 视频制作(包含真人李白微笑的镜头)。
1. 准备李白图片
2. Deepseek生成提示词
3. 访问即梦生成图片
4. 通过Vidu生成视频
5. 剪影合并视频
DeepSeek 应用集成 - 结合飞书通过 Excel 打造创意工坊
- 目的:帮助高校生生成学生活动的创意方案。
- 需求:学生活动需多个方案,经组织讨论后选择其一实施,传统方式需大量工作量。
- 工具链接:飞书下载链接 - https://www.feishu.cn/download 。
DeepSeek 应用集成 Manim 生成教学动画
-
提示词:作为高校计算机系教师,希望通过 Manim 生成动画讲解堆栈概念,请求生成相应 Manim 代码。
-
实现思路:提示词 → DeepSeek 生成 Manim 的 Python 代码 → 在 Colab 中执行代码 → 下载视频文件。
-
Manim 简介:
- 全称 Mathematical Animation Engine,是用于创建数学动画的 Python 库,由 3Blue1Brown(Grant Sanderson)开发,适用于制作科普视频、可视化数学概念、教学视频及动态图形。
-
Manim 主要特点:
- 基于 Python 代码精确控制动画细节,无需手动拖拽。
- 支持 LaTeX 公式渲染、几何图形、向量变换等数学可视化内容。
- 使用 FFmpeg 生成高质量 MP4 视频,支持 OpenGL 加速。
- 开源且可扩展,允许编写自定义动画组件或通过插件扩展功能。
- 适合教师、学生、研究人员制作教学视频或演示动画。
-
Manim 基本用法示例
python
from manim import * class HelloManim(Scene): def construct(self): text = Text("Hello, Manim!") self.play(Write(text)) self.wait(2)
-
Manim 安装:https://docs.manim.community/en/stable/installation/uv.html。
DeepSeek 应用集成生成 SVG 矢量图
- 标题:DeepSeek 应用集成 生成 SVG 矢量图。
- 提示词:帮我生成小朋友看书的 svg 文件,方便转化成 png 文件。
- 实现步骤:提示词 → DeepSeek 生成 SVG → 使用 ConvertIO 在线工具 转换为 PNG。
- SVG 简介:
- 可扩展矢量图形(SVG)是一种流行的矢量文件格式,支持动画。
- SVG 主要特点:
- 基于 XML,可搜索、索引、编写脚本或压缩,能用文本编辑器或矢量设计工具(如 Adobe Illustrator、Inkscape、CorelDRAW)创建编辑。
- 可扩展,调整大小不损失质量,支持任意分辨率打印。
- 可用 JavaScript 制作动画,实现简单(如悬停变色标志)或复杂动画(如信息图)。
DeepSeek 协同 LangChain 进行应用开发
- 说明:大模型存在能力局限,需协同开发优化。
- 流程图解析:
- 训练数据:包含书籍、新闻、论文、百科、社交媒体等,通过无监督学习输入至基座模型。
- 模型优化流程:
- 基座模型经有监督学习 - 微调生成SFT 模型。
- 用户提问至 SFT 模型,其回答经奖励模型评分后,反馈至最终模型。
- 微调模型路径:
- 用户提问至微调模型,其回答生成多个答案,由人工标注答案优先级后,反馈回微调模型优化。
- 高质量对话:人类撰写的高质量对话输入至基座模型,辅助模型训练。
该流程体现了通过多阶段学习、人工反馈及协同开发,提升模型应用能力的过程。