首页 > 其他分享 >大模型相关问题

大模型相关问题

时间:2024-08-17 16:48:44浏览次数:8  
标签:编码 模型 矩阵 langchain 问题 theta 相关 向量

大模型问题汇总

  1. llama 2注意力机制,手写分组注意力机制

    • GQA分组注意力机制(为了加速模型训练和推理,MHA每个head都需要一个QKV矩阵,于是有了将K,V矩阵分组,几个head共用一个KV矩阵,Q矩阵不变)
    • MQA 则是所有的head共用KV矩阵
  2. langchain介绍,主要组件

    • langchain主要包含langchain,langchain-core,langchain-community,LangServe,LangSmith
      • langchain: 包含ModelIO,Retrieval,Agent,Chains,Memory,Callbacks

        • ModelIO主要是和LLM进行交互
        • Retrieval主要是和外部数据检索交互
        • Agent提供工具的代理能力
        • Chains提供调用序列抽象能力
        • Memory存储会话状态和记录
        • Callbacks回调监控、日志
      • Langchain-community: 提供第三方集成的功能,譬如文档载入、分割等

      • langchain-core: 包含langchain的基本抽象已经LCEL(Langchain Expression Language)

      • LangServe: 使用了FastAPI提供服务能力,有server和client端侧的能力

      • LangSmith: 提供测试、开发、监控的平台

    • 具体详细介绍http://shiyanjun.cn/archives/2613.html
  3. 位置编码,几种位置编码的异同

    • 绝对位置向量编码(1...N),扩展性差,很难外推,泛化性不好

    • 正余弦标准位置编码(偶数正弦,基数余弦编码)

    • \(PE_{pos,2i+1}=cos(\frac{pos}{10000^{{2i+1}/d_m}})\) ; \(PE_{pos,2i}=sin(\frac{pos}{10000^{{2i}/d_m}})\)

    • RoPE 旋转位置编码(QK进行乘法的时候,会将绝对位置转化成相对位置,可以理解是一种位置编码的转换)

      • \(<f_q(x_m,m),f_k(x_n,n)> = g(x_m,x_n,m-n)\) 详细介绍:https://blog.csdn.net/v_JULY_v/article/details/134085503
      • 具体实施步骤:
        • token编码向量后+pos编码向量,使用Q,K矩阵计算出\(q_m\),\(k_n\)向量,此时向量携带绝对位置
        • 然后对\(q_m\),\(k_n\)应用旋转矩阵,具体做法针对向量元素,每2个一组进行旋转操作,也就是乘以旋转矩阵\(\begin{bmatrix} cos(m\theta_0) & -sin(\theta_0) & \cdots & 0 \\ sin(m\theta_0) & cos(\theta_0) & \cdots & 0 \\ \vdots & \ddots & cos(m\theta_{d/2-1}) & -sin(\theta_{d/2-1}) \\ 0 & \cdots & sin(m\theta_{d/2-1}) & cos(\theta_{d/2-1}) \end{bmatrix}\) ,其中d对应的向量维度
        • RoPE有相应的局限,无法聚焦远处;attention score在随着distance很大时候会很小
    • ALiBi(Attention with Linear Biases) 不和标准transformer那样,在embedding层添加位置编码,而是QK^T结果后添加一个静态的不可学习的偏置项(说白了,就是数值固定)

      • Alt text
      • \(softmax(qiK^T+m⋅[−(i−1),…,−2,−1,0])\), \(m=\frac{-8}{n}\),其中n是head的索引
  4. RLHF具体流程,包含几种模型

    • 包含3个步骤,4个模型(actor,critic,SFT,reward)四个模型
  5. encoder-only,decoder-only,encoder-decoder代表模型

    • encoder-only bert以及bert变种模型
    • decoder-only llama2等一些大模型
    • encoder-decoder 模型有T5模型,GLM第一代模型
  6. p-turing,lora微调方法介绍,与传统finetune区别

    • p-turing 讲prompt进行参数隐式微调;一般会通过训练一些隐式的token(也有对应的emb参数),有些可能会通过MLP+LSTM训练拿到emb
    • lora则是通过外挂一个低秩的矩阵进行参数微调,一般在nn.linear线性矩阵层,attention矩阵参数
    • Qlora则是quant+lora
      • 一般量化针对比较稳定的参数,譬如nn.linear层参数;激活层参数有较大值,量化可能会影响精度
      • 量化可以降低显存占用,加快运算速度
      • quant: float -> int8 (先将矩阵参数float映射到int8;计算【forward,backward】的时候再反量化回去);所以量化的好坏取决于映射函数的压缩比以及反量化解码效率
      • 譬如int8量化策略:\(Q=round(\frac{real_val - zero_point}{scale} * 255) - 128\),这样将量化到区间[-127,127]之间
  7. 显存不够一般怎么解决

  8. 主流大模型的loss了解过吗?

  9. deepspeed介绍,使用情况

  10. 领域模型continue Pretrain数据选取?

  11. 领域模型训练后通用能力下降,怎么缓解幻觉

  12. 指令微调、如何选择、设定、优化不同的超参数

  13. 指令微调如何选择最佳指令策略,以及该指令对模型的效果影响

  14. llama,glm,bloom等大模型在数据处理,训练细节以及模型结构的优化点,包括但不限于注意力机制,归一化,嵌入层


相关文章:
强化学习:https://blog.csdn.net/v_JULY_v/article/details/128965854

标签:编码,模型,矩阵,langchain,问题,theta,相关,向量
From: https://www.cnblogs.com/adam86546853/p/18364609

相关文章

  • zblog该数据库里已存在相关的表和数据,请更改表前缀或是更换清空数据库再安装
    问题原因:其实这个提示已经说的很清楚了。意思就是之前你应该安装过zblog程序,所以你的数据库里面已经存在了zblog数据表。再次安装的时候因为表名是一样的所以会冲突,就会出现这个提示。解决办法:第一种:填写数据库信息的时候修改下表前缀,如下图:该数据库里已存在相关的表和数据,请......
  • IHttpClientFactory 解决端口耗尽问题及衍生底层原理
    1.IHttpClientFactory解决端口耗尽问题问题描述:如果不使用IHttpClientFactory,而是为每个请求创建新的HttpClient实例,可能会导致端口耗尽问题。原因:每次创建新的HttpClient实例都会导致新的HttpClientHandler和底层Socket连接的创建,且这些连接在短时间内无法被回......
  • 【WOA-CNN-LSTM】基于鲸鱼算法优化深度学习预测模型的超参数研究(Matlab代码实现)
     ......
  • RabbitMQ-记录一个问题及解决
    我在配置文件中写入了rabbitmq:host:127.0.0.1port:5672username:guestpassport:guestvirtualhost:/switchFlag:truepool_size:10然后希望实现一个监听器,所以加上了注解形式@RabbitListener(queues=CommonConstants.QUERE_NAME_NOTIFY),由于我工作......
  • @clickhouse/client-web部署后出现ClickHose query error:crypto.randomUUID is not a
    crypto.randomUUID报错我这里是因为使用使用@clickhouse/client-web组件,在服务器部署后在浏览器访问界面导致的crypto.randomUUIDisnotafunction报错如果你用http://localhost:端口,在服务器浏览器上访问这个部署的页面,发现不会报错,这是因为,你使用localhost访问......
  • 解决麒麟 V10 SP1 升级 Python 后 Yum 不可用问题
    目录一、前提概要二、解决办法1、卸载原有的python2、安装Python3.7.9rpm3、安装一系列 yum相关rpm4、rpm包下载一、前提概要    在部署gaussDB的时候,安装代理时要求python版本满足3.7.9,但已安装的麒麟V10内集成的python版本是3.7.4,且安......
  • Java后端面试题(mq相关)(day9)
    目录为什么用MQ?异步、削峰、解耦1.异步处理2.解耦3.削峰填谷Exchange类型什么是死信队列?如何保证消息的可靠性?RabbitMQ中如何解决消息堆积问题?RabbitMQ中如何保证消息有序性?如何防止消息重复消费?(如何保证消息幂等性)为什么用MQ?异步、削峰、解耦MQ(Message......
  • 在亚马逊云科技上部署开源大模型并利用RAG和LangChain开发生成式AI应用
    项目简介:小李哥将继续每天介绍一个基于亚马逊云科技AWS云计算平台的全球前沿AI技术解决方案,帮助大家快速了解国际上最热门的云计算平台亚马逊云科技AWSAI最佳实践,并应用到自己的日常工作里。本次介绍的是如何在亚马逊云科技上利用SageMaker机器学习服务部署开源大模型,使用La......
  • VSCode中解决python模块导入问题
    原因环境变量中不包含当前路径解决方法解决方法有很多种,包括在环境变量文件夹添加pth文件,在导入模块前使用动态添加当前模块的路径到环境变量中。这里介绍一种比较优雅的方案,修改VSCode配置文件在设置中选择“工作区”,搜索terminal.integrated.env在settings.json中编辑......
  • 贪心-多机调度问题
    多机调度问题分析问题描述在多机调度问题中,我们有n个独立的作业和m个相同的机器。每个作业i需要处理时间ti。我们的目标是找到一个调度方案,使得所有作业尽可能快地完成。贪心策略最长处理时间优先:优先分配处理时间最长的作业到最先可用的机器上。情况分类A:n......