航天器
航天器
  LLM
    transformer特点
      注意力机制
        句子中的每个词，赋予3种标签： 查询（query）， 键（key）值（value）
          query：我要找什么信息
          key 我能提供什么信息（索引、特征）
          value：我实际提供什么信息
          当”阅读“一个句子时，每个词都发出查询幸好，寻找和其查询相匹配的键，如果找到了，值的信息则被认为关注的，如果匹配度很高，则说明找到了值得关注的内容
            不仅找值，还会检查词与词之间的关系
            注意力机制不需要排队等候，一次看完整个句子
              在transformer之前，处理语言任务（翻译、写作）的主流方法是RNN（循环神经网络）
                逐字逐句：太慢了
                句子变长：记性不好（很难记住长距离关系）
        Transformer会根据 query和key来计算分数，分数越高，则更加关注这个词
        位置编码
          用于跟踪每个词在句子中的位置，确保不会混淆词序
      自注意力机制
        计算公式
          Attention(Q, K, V) = softmax(Q x K转置 / 根号d) x V
            Q x K转置：计算每个字和其他所有字的相关性（向量的点积）
            除以 根号d：缩放一下，防止数值太大
            softmax：把相关性转成改了（0-1之间，加起来等于1）把分数转为概率
            乘V：根据概率将所有的字的信息加权求和
        计算步骤
          第一步：计算注意力权重
          第二步：加权求和
        与RNN的区别
          并行、更快
            RNN计算下一个值，需要前一个值传递
            transformer计算每个字的新向量，不需要等其他字先算完，并行计算Q，K，V，并行进行矩阵计算
          并行同时计算的话，万一结果顺序错了，含义会发生改变
            位置编码
              把字转成向量之前，给每个位置加上独特编码，告诉模型这是第几个字
        self-attention能捕捉长距离依赖？
        multi-head attention
          多头注意力，将每个字从多个角度去关注（多维）
            语法关系
            指代关系
            情感关系
            ......
    in-context learning
      模型怎么从few-shot example里学习，和微调的区别是什么？
    token 与 上下文窗口
      context window的限制对agent设计的影响，为什么长上下文不是万能的
    温度、top-p等采样参数
      什么场景调高temperature，什么场景要确定性输出
        temperature
          Ai每生成一个词，会预测下一个词
            temperature低：几乎总是选择最可能的token
            temperature高：从概率分布中随机选择，更有创意
            像热力学的温度的概念，越高越活跃，越分散，越低越冷静，越集中
          开放性问题调高temperature，文案，命名
          任务需要准确度时，稳定格时，降低temperature
    prompt engineering基础
      System prompt / User prompt的职责划分，指令冲突怎么处理
  RAG
    文档解析
    分块（chunking）
      chunking策略
        固定长度切分vs语义切分(按段落/标题)。固定长度实现简单但容易切断语义，语义切分效果好但对文档结构有要求。overlap怎么设?overlap太小丢上下文，太大冗余多影响检索精度
    向量化 embedding
      embedding模型选型:OpenAl的text-embedding-3系列 vs 开源的BGE/M3E。中文场景下BGE表现不差，且可以本地部署。向量维度和检索速度的trade-off
    存储
      向量数据库:FAISS适合本地小规模原型，生产环境用Milvus/Qdrant/Weaviate，各自的索引方式(HNSW/IVF)和适用规模要有印象
    检索
    重排（rerank）
      Rerank:向量检索召回的top-k结果精度不够，用cross-encoder做rerank能显著提升，代价是延迟增加。常见方案:CohereRerank、BGE-Reranker
    生成
    rag常见失效场景
      RAG的常见失效场景:query和文档表述差异大(语义鸿沟)、文档里的答案分散在多个chunk(multi-hop问题)、检索到了但生成时被忽略
  Agent核心范式
    设计模式
      ReAct（Reasoning + acting）
        目前最主流的agent范式
          模型交替输出Thought(推理)和Action(调用工具)，观察结果后继续推理。核心是让模型的推理过程可观测、可调试
            优点
              动态适应性极强，可以根据实时环境观察，灵活调整其行动计划
              提高决策的可解释性，方便调试
            缺点
              每次工具调用都需要LLM推理
                慢
                token消耗高
              规划近视导致只关注局部最优解，而无法找到全局最优
            场景
              在知识密集型问答
              模拟游戏环境或者网页浏览
              agent coding工具
      Plan & Execute （计划与执行）
        静态的，预先确定的
          牺牲实时适应性，换来更高的执行效率和更低的运营成本
            优点
              减少LLM调用次数
              强制LLM在任务开始时就全局思考，有助于避免ReAct可能出现的局部最优解
            缺点
              鲁棒性较差，Agent无法处理突发情况和错误
              串行执行，效率还可以提升
            场景
              流程相对固定，但是步骤多，需要调用多种工具的复杂任务
        REWOOO（Reasoning without Observation）
          生成的每一步添加了变量，其中的变量代表前一步骤的输出，可以直接在后续步骤中直接引用
            优点
              一次性规划整个链路，减少llm
            缺点
              和Plan & Execute一致
            场景
              适合多步骤问答任务，后一步需要前一步的值
      LLM Compiler
        让Planner生成一个任务的有向无环图（DAG）
          任务图定义了所有的任务，所需工具，参数以及任务之间的依赖关系
          比ReWOO的串行执行，将串行提升到了并行
          场景
            多源数据整合
            电商比价
    自我反思
      Basic Reflection 基础反思
        显式要求LLM输出后，进行”反思“”批判“，并指导下一轮的生成或者行动
          来源
            内在知识
            外部反馈：编译错误，单元测试结果
      Reflexion 强化反思
      LATS
    Function Calling / Tool Use
      让模型输出结构化的工具调用请求，后端执行后把结果塞回上下文。工具定义要写清楚参数schema和描述，描述越精准模型越少调错
    Planning
      复杂任务的任务拆解。常见方法有Chain-of-ThoughtTree-of-Thought，以及用专门的planner模型生成子任务列表
    Memory的几种形式
      In-context memory
      External memory
      Episodicmemory
    Multi-agent协作
      什么时候用单agent，什么时候拆成多agent?
      拆分的边界怎么划?
      常见的 orchestrator-worker 模式
      agent之间的通信协议
  工程落地
    幻觉缓解
      输出格式约束(JSONschema)
      让模型引用原文再作答
      添加self-consistency校验
      对关键字段做规则校验
    工具调用失败的处理
      重试机制怎么设计
      错误信息怎么反馈给模型让它自我纠正
      无限循环怎么break
    延迟优化
      并行工具调用(能并发的不要串行)
      流式输出(streaming)改善用户体验
      缓存高频的embedding计算
    Agent评估
      怎么衡量一个agent的好坏?
        trajectory-level评估(每步决策是否合理)vsend-to-end评估(最终结果是否正确)。
        常见benchmark:GAIA、AgentBench,自建eval集怎么设计
      可观测性
        生产环境怎么debugagent行为?
        LangSmith、LangFuse这类tracing工具的使用，日志里要记什么
      agent如何做离线评测
      让一个线上A/B
      如何自动生成测试集