前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >hive性能调优 读书笔记 - 问题排查、调优、数据处理模式

hive性能调优 读书笔记 - 问题排查、调优、数据处理模式

作者头像
Michael阿明
发布于 2023-03-12 05:39:31
发布于 2023-03-12 05:39:31
43100
代码可运行
举报
运行总次数:0
代码可运行

learn from 《Hive性能调优实战》

本文使用的 hive 版本 2.3.2

1. 调优思路

  • 分析定位性能瓶颈 优化存储、优化执行过程、优化作业调度
  • 性能监控和告警,开源工具 Grafana、Ambari等

2. 环境搭建

  • Cloudera Docker 搭建伪分布式环境 本人是 win 安装的 docker desktop,在 wsl 中操作
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
docker pull cloudera/quickstart:latest
docker run --hostname=quickstart.Cloudera --privileged=true -it -p 80:80 -p 8888:8888 -p 8088:8088 Cloudera/quickstart /usr/bin/Docker-quickstart
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hdfs dfsadmin -report

3. 查看执行计划

3.1 explain

  • explain sql
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
explain
select s_age, count(1) num from student_tb_orc
where s_age<30 and s_name like '%红%'
group by s_age
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
STAGE DEPENDENCIES:
  Stage-1 is a root stage
  Stage-0 depends on stages: Stage-1

STAGE PLANS:
  Stage: Stage-1
    Map Reduce  # 执行引擎
      Map Operator Tree: # map 操作
          TableScan
            alias: student_tb_orc  # 扫描的表
            Statistics: Num rows: 20000000 Data size: 30431200000 Basic stats: COMPLETE Column stats: NONE
            Filter Operator  # 过滤操作
              predicate: ((s_age < 30) and (s_name like '%???%')) (type: boolean)
              # 过滤时使用的谓词
              Statistics: Num rows: 3333333 Data size: 5071866159 Basic stats: COMPLETE Column stats: NONE
              # 处理的数据量,预估值
              Select Operator  # 在之前的结果集上列投影,筛选列
                expressions: s_age (type: bigint)  # 筛选的列
                outputColumnNames: _col0 # 输出的列名字
                Statistics: Num rows: 3333333 Data size: 5071866159 Basic stats: COMPLETE Column stats: NONE
                Group By Operator # 分组聚合
                  aggregations: count(1)  # 分组聚合使用的算法
                  keys: _col0 (type: bigint)  # 分组所在的列
                  mode: hash
                  outputColumnNames: _col0, _col1
                  Statistics: Num rows: 3333333 Data size: 5071866159 Basic stats: COMPLETE Column stats: NONE
                  Reduce Output Operator # 对之前结果聚合后的输出信息
                    key expressions: _col0 (type: bigint)  # 聚合后的 key, s_age
                    sort order: +  # 输出是否排序,+ 正序, - 倒序
                    Map-reduce partition columns: _col0 (type: bigint) # 分区列
                    Statistics: Num rows: 3333333 Data size: 5071866159 Basic stats: COMPLETE Column stats: NONE
                    value expressions: _col1 (type: bigint) # 聚合后的 value, count(1)
      Reduce Operator Tree:
        Group By Operator
          aggregations: count(VALUE._col0)
          keys: KEY._col0 (type: bigint)
          mode: mergepartial
          outputColumnNames: _col0, _col1
          Statistics: Num rows: 1666666 Data size: 2535932318 Basic stats: COMPLETE Column stats: NONE
          File Output Operator
            compressed: false  # 文件输出的结果是否进行压缩
            Statistics: Num rows: 1666666 Data size: 2535932318 Basic stats: COMPLETE Column stats: NONE
            table:  # 当前操作表的信息
                input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                # 输入、输出文件的类型
                output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
                serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe
                # serde 读取数据的序列化和反序列化的方式

  Stage: Stage-0
    Fetch Operator
      limit: -1
      Processor Tree:
        ListSink

上面描述的是计算引擎的执行逻辑

如果想看 spark 引擎的执行计划

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
set hive.execution.engine=spark;
explain
select s_age, count(1)
from student_tb_txt
group by s_age;

3.2 explain extended

更具体的信息

  • 抽象语法树, hive 3.0 以后用 explain ast

3.3 explain dependency

sql需要的数据来源

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hive> explain dependency
    > select s_age, count(1) num from student_tb_orc
    > where s_age < 30 and s_name like '%red%' group by s_age;
OK
{"input_tables":[{"tablename":"default@student_tb_orc","tabletype":"MANAGED_TABLE"}],"input_partitions":[]}
# 库 @ 表, 表类型:内部表,分区
Time taken: 2.01 seconds, Fetched: 1 row(s)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hive> explain dependency
    > select s_age, count(1) num from student_orc_partition
    > where s_age < 30 and s_name like '%red%' group by s_age;
OK
{"input_tables":[{"tablename":"default@student_orc_partition","tabletype":"MANAGED_TABLE"}],"input_partitions":
[{"partitionName":"default@student_orc_partition@s_age=20"},
{"partitionName":"default@student_orc_partition@s_age=21"},
{"partitionName":"default@student_orc_partition@s_age=22"},
{"partitionName":"default@student_orc_partition@s_age=23"},
{"partitionName":"default@student_orc_partition@s_age=24"},
{"partitionName":"default@student_orc_partition@s_age=25"},
{"partitionName":"default@student_orc_partition@s_age=26"}]
# # 库 @ 表 @ 分区列的值}
Time taken: 0.396 seconds, Fetched: 1 row(s)

使用场景:

  • 排除分区数据异常
  • 弄清楚数据输入
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
explain dependency
select a.s_no from student_orc_partition a 
left join student_orc_partition_1 b
on a.s_no=b.s_no 
and a.s_age=b.s_age 
and a.s_age>=22 
and a.s_age<=23;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{"input_tables":[{"tablename":"default@student_orc_partition","tabletype":"MANAGED_TABLE"},
{"tablename":"default@student_orc_partition_1","tabletype":"MANAGED_TABLE"}],"input_partitions":
[{"partitionName":"default@student_orc_partition@s_age=20"},
{"partitionName":"default@student_orc_partition@s_age=21"},
{"partitionName":"default@student_orc_partition@s_age=22"},
{"partitionName":"default@student_orc_partition@s_age=23"},
{"partitionName":"default@student_orc_partition@s_age=24"},
{"partitionName":"default@student_orc_partition@s_age=25"},
{"partitionName":"default@student_orc_partition@s_age=26"},
{"partitionName":"default@student_orc_partition_1@s_age=20"},
{"partitionName":"default@student_orc_partition_1@s_age=21"},
{"partitionName":"default@student_orc_partition_1@s_age=22"},
{"partitionName":"default@student_orc_partition_1@s_age=23"},
{"partitionName":"default@student_orc_partition_1@s_age=24"},
{"partitionName":"default@student_orc_partition_1@s_age=25"},
{"partitionName":"default@student_orc_partition_1@s_age=26"},
{"partitionName":"default@student_orc_partition_1@s_age=27"}]}

a 左连接 b,过滤条件是针对左表 a,完全没有起到作用,所有分区都要扫描

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
explain dependency
select a.s_no from student_orc_partition a 
left join student_orc_partition_1 b
on a.s_no=b.s_no 
and a.s_age=b.s_age 
and b.s_age>=22 
and b.s_age<=23;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{"input_tables":[{"tablename":"default@student_orc_partition","tabletype":"MANAGED_TABLE"},
{"tablename":"default@student_orc_partition_1","tabletype":"MANAGED_TABLE"}],"input_partitions":
[{"partitionName":"default@student_orc_partition@s_age=20"},
{"partitionName":"default@student_orc_partition@s_age=21"},
{"partitionName":"default@student_orc_partition@s_age=22"},
{"partitionName":"default@student_orc_partition@s_age=23"},
{"partitionName":"default@student_orc_partition@s_age=24"},
{"partitionName":"default@student_orc_partition@s_age=25"},
{"partitionName":"default@student_orc_partition@s_age=26"},
{"partitionName":"default@student_orc_partition_1@s_age=22"},
{"partitionName":"default@student_orc_partition_1@s_age=23"}]}

a 左连接 b,过滤条件是针对右表 b,b表只扫描了指定分区,a 表需要全表扫描

建议: 尽早过滤掉不需要的数据和列

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
explain dependency
select a.s_no
from (select s_no, s_age
      from student_orc_partition
      where s_age >= 22
        and s_age <= 23) a
left join student_orc_partition_1 b
on a.s_no = b.s_no and a.s_age = b.s_age;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{"input_tables":[{"tablename":"default@student_orc_partition_1","tabletype":"MANAGED_TABLE"},
{"tablename":"default@student_orc_partition","tabletype":"MANAGED_TABLE"}],"input_partitions":
[{"partitionName":"default@student_orc_partition@s_age=22"},
{"partitionName":"default@student_orc_partition@s_age=23"},
{"partitionName":"default@student_orc_partition_1@s_age=22"},
{"partitionName":"default@student_orc_partition_1@s_age=23"}]}

两个表都只扫描了 2个分区的数据

3.4 explain authorization

查询权限相关的信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
explain authorization
select variance(s_score) from student_tb_orc;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
INPUTS: 
  default@student_tb_orc # 输入库@表
OUTPUTS:  # 输出数据的路径
  file:/tmp/root/3cb0f818-35ba-44a0-9fb4-f71e4ce56b4d/hive_2023-03-11_06-00-29_288_4051189352612619596-1/-mr-10001
CURRENT_USER: # 当前用户
  root
OPERATION: # 数据操作是查询
  QUERY

3.5 explain vectorization

hive 2.3 以后可用,向量化执行,提高数据处理性能

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
set hive.vectorized.execution.enabled=true;
explain vectorization only
select count(1) from student_tb_orc;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
PLAN VECTORIZATION:
  enabled: true
  enabledConditionsMet: [hive.vectorized.execution.enabled IS true]

STAGE DEPENDENCIES:
  Stage-0 is a root stage

STAGE PLANS:
  Stage: Stage-0
    Fetch Operator

如果改为 false

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
PLAN VECTORIZATION:
  enabled: false
  enabledConditionsNotMet: [hive.vectorized.execution.enabled IS false]

还有其他命令 explain vectorization operatorexplain vectorization expression

4. sql执行计划解读

  • select from where 这类sql,没有reduce阶段
  • select func(col) from where func(col), select operation from where operation 带函数、操作符的sql,跟上面一样也没有 reduce 阶段
  • 带聚合函数的sql
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
set hive.map.aggr=true;
explain select s_age, avg(s_score) from student_tb_orc
where s_age < 20
group by s_age;

分别设置 hive.map.aggr 开启、不开启 查看日志

开启的话,在 map 阶段就有 reduce 操作

  • join sql
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
explain
select a.s_no from student_tb_orc a inner join student_orc_partition b
on a.s_no=b.s_no;
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
STAGE DEPENDENCIES:
  Stage-1 is a root stage
  Stage-0 depends on stages: Stage-1

STAGE PLANS:
  Stage: Stage-1
    Map Reduce
      Map Operator Tree:
          TableScan
            alias: a
            Statistics: Num rows: 20000000 Data size: 30431200000 Basic stats: COMPLETE Column stats: NONE
            Filter Operator
              predicate: s_no is not null (type: boolean)
              Statistics: Num rows: 20000000 Data size: 30431200000 Basic stats: COMPLETE Column stats: NONE
              Select Operator
                expressions: s_no (type: string)
                outputColumnNames: _col0
                Statistics: Num rows: 20000000 Data size: 30431200000 Basic stats: COMPLETE Column stats: NONE
                Reduce Output Operator
                  key expressions: _col0 (type: string)
                  sort order: +
                  Map-reduce partition columns: _col0 (type: string)
                  Statistics: Num rows: 20000000 Data size: 30431200000 Basic stats: COMPLETE Column stats: NONE
          TableScan
            alias: b
            Statistics: Num rows: 20000000 Data size: 30274000639 Basic stats: COMPLETE Column stats: NONE
            Filter Operator
              predicate: s_no is not null (type: boolean)
              Statistics: Num rows: 20000000 Data size: 30274000639 Basic stats: COMPLETE Column stats: NONE
              Select Operator
                expressions: s_no (type: string)
                outputColumnNames: _col0
                Statistics: Num rows: 20000000 Data size: 30274000639 Basic stats: COMPLETE Column stats: NONE
                Reduce Output Operator
                  key expressions: _col0 (type: string)
                  sort order: +
                  Map-reduce partition columns: _col0 (type: string)
                  Statistics: Num rows: 20000000 Data size: 30274000639 Basic stats: COMPLETE Column stats: NONE
      Reduce Operator Tree:
        Join Operator  # 连接操作
          condition map:
               Inner Join 0 to 1 
               # 0 表示map阶段输出的a数据集
               # 1 是b输出的数据集
          keys:
            0 _col0 (type: string)
            1 _col0 (type: string)
          outputColumnNames: _col0
          Statistics: Num rows: 22000000 Data size: 33474320725 Basic stats: COMPLETE Column stats: NONE
          File Output Operator
            compressed: false
            Statistics: Num rows: 22000000 Data size: 33474320725 Basic stats: COMPLETE Column stats: NONE
            table:
                input format: org.apache.hadoop.mapred.SequenceFileInputFormat
                output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat
                serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe

  Stage: Stage-0
    Fetch Operator
      limit: -1
      Processor Tree:
        ListSink
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select a.s_no from student_tb_orc a 
left semi join student_orc_partition b
on a.s_no=b.s_no;

select a.s_no from student_tb_orc a where a.s_no 
in (select s_no from student_orc_partition)

以上两个 sql 的效果是等效的,执行计划一致

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select a.s_no from student_tb_orc a where a.s_age in (21,22,23)
# in 里面的条件少,可以减少 map 和 shuffle 的数量
select a.s_no from student_tb_orc a where a.s_age in (21,21,22,23)

5. 数据处理模式

5.1 过滤模式

  • where 过滤,发生在 map 阶段,可以减少后序数据跨机器传输
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select count(s_age) from (
	select s_age, count(1) num
	from student_tb_seq
	group by s_age
) a
where s_age <30 and num>20

执行时间 268s

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
select count(s_age) from (
	select s_age, count(1) num
	from student_tb_seq
	where s_age<30
	group by s_age
		having count(1)>20
) a

执行时间 223s

  • having 过滤,在聚合后
  • distinct 过滤,用于过滤重复数据,发生在 reduce 阶段
  • 表过滤,一次读取,多次使用
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
explain
insert into table student_stat partition(tp)
select s_age,max(s_birth) stat,'max' tp
from student_tb_seq
group by s_age
union all
select s_age,min(s_birth) stat, 'min' tp
from student_tb_seq
group by s_age;

以上sql需要读取两次原始表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
explain
from student_tb_seq
insert into table student_stat partition(tp)
select s_age,min(s_birth) stat,'max' stat
group by s_age
insert into table  student_stat partition(tp)
select s_age,max(s_birth) stat,'min' stat
group by s_age;

from ... select 形式,只读取了表一次

  • 分区过滤,其实是在 map的上一个阶段(输入阶段进行路径过滤)
  • 分桶过滤,对文件的过滤
  • 列过滤,orc 、parquet 格式的数据,可以直接读取字段,不需要取出整行,再按分隔符切割后选取字段

5.2 聚合模式

  • distinct 模式,开启了 hive.map.aggr=true 时,使用 distinct 子句时,在 map 阶段就会开始局部的聚合,减少流转到下游的数据量
  • 计数聚合模式 –count(col),值为 null 的不会被计数,需要读取具体的数据 –count(*),count(1),不需要读取具体数据,是读取每行数据的偏移量
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
explain
Select count(s_score) from student_tb_orc;

5.3 可计算中间结果的聚合

数据可以局部归并汇总,减少数据流转量 例如,求 sum,max, min

5.4 不可计算中间结果的聚合

将多行数据聚合到一行当中,如 collect_list(),collect_set()

5.5 连接模式

  • repartition 连接,发生在 shufflereduce 阶段,map 任务读取 AB两个表的数据,按连接条件发往相同的 reduce,在 reduce 中计算合并的结果
  • map join 先读取小表A,构建其 hash 表,在读取B表,与之前的哈希表进行数据匹配

5.6 优化器

基于规则的RBO、基于成本的CBO(hive 0.14以后用的)

  • CBO下, 多表连接,自动优化连接顺序
  • 识别相同的连接谓词,根据情况避免高昂的表连接操作
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-03-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
《BERT基础教程:Transformer大模型实战》读书笔记
BERT,Bidirectional Encoder Representations from Transformers,多Transformer的双向编码器表示法。
johnny666
2024/09/26
3640
​浅析多模态大模型的前世今生
前段时间 ChatGPT 进行了一轮重大更新:多模态上线,能说话,会看图!微软发了一篇长达 166 页的 GPT-4V 测评论文,一时间又带起了一阵多模态的热议,随后像是 LLaVA-1.5、CogVLM、MiniGPT-5 等研究工作紧随其后,到处刷屏。大模型的多模态能力到底是怎么来的?今天来分享一下多模态相关的一些工作和个人的理解。
腾讯技术工程官方号
2023/11/01
3.6K0
​浅析多模态大模型的前世今生
大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍
预训练属于迁移学习的范畴。现有的神经网络在进行训练时,一般基于反向传播(Back Propagation,BP)算法,先对网络中的参数进行随机初始化,再利用随机梯度下降(Stochastic Gradient Descent,SGD)等优化算法不断优化模型参数。而预训练的思想是,模型参数不再是随机初始化的,而是通过一些任务进行预先训练,得到一套模型参数,然后用这套参数对模型进行初始化,再进行训练。
汀丶人工智能
2023/07/17
6.3K0
大语言模型的预训练[1]:基本概念原理、神经网络的语言模型、Transformer模型原理详解、Bert模型原理介绍
一文读懂 Transformer 神经网络模型
自从最新的大型语言模型(LLaM)的发布,例如 OpenAI 的 GPT 系列、开源模型 Bloom 以及谷歌发布的 LaMDA 等,Transformer 模型已经展现出了其巨大的潜力,并成为深度学习领域的前沿架构楷模。
Luga Lee
2023/09/22
41.1K1
一文读懂 Transformer 神经网络模型
AAAI 2024 | 利用通道模态冗余实现端到端 RGB-D 图像压缩
RGB-D 图像是一种重要的 3D 数据格式。它已被广泛用于 3D 场景重建、突出目标检测、机器人与自主导航、医学影像与健康监测、环境监测等领域。与 RGB 图像不同,深度图像包含有关从视点到场景对象表面的距离的信息,该视点提供了 3D 场景之间的深度信息。因此,RGB-D联合分析方法在计算机视觉任务中很受欢迎。然而,这些方法使用额外的模态,这将带来多余的存储和传输成本。因此,设计一个高效的RGB-D图像压缩方法是一项重要且具有挑战性的工作。
用户1324186
2024/03/26
6330
AAAI 2024 | 利用通道模态冗余实现端到端 RGB-D 图像压缩
学界 | 超越 BERT 和 GPT,微软亚洲研究院开源新模型 MASS!
AI 科技评论按:自 2018 年以来,预训练无疑是自然语言处理(NLP)领域中最热门的研究课题之一。通过利用 BERT、GPT 和 XLNet 等通用语言模型,该领域的研究者们在自然语言理解方面已经取得了许多重大的突破。然而,对于序列到序列的自然语言生成任务,这些主流的预训练方法并没有带来显著的改进,对此,微软亚洲研究院提出了一个全新的通用预训练方法——MASS,在该任务中可以得到比 BERT 和 GPT 更好的效果。
AI科技评论
2019/07/05
7250
学界 | 超越 BERT 和 GPT,微软亚洲研究院开源新模型 MASS!
TeaForN:让Teacher Forcing更有"远见"一些
本文介绍Google新提出的一种名为"TeaForN"的缓解Exposure Bias现象的方案,来自论文《TeaForN: Teacher-Forcing with N-grams》,它通过嵌套迭代的方式,让模型能提前预估到后N个token(而不仅仅是当前要预测的token),其处理思路上颇有可圈可点之处,值得我们学习
mathor
2021/07/08
9730
BiomedGPT:一个用于多种生物医学任务的通用视觉-语言基础模型
生信菜鸟团
2024/12/05
4610
BiomedGPT:一个用于多种生物医学任务的通用视觉-语言基础模型
Transformers回顾 :从BERT到GPT4
人工智能已成为近年来最受关注的话题之一,由于神经网络的发展,曾经被认为纯粹是科幻小说中的服务现在正在成为现实。从对话代理到媒体内容生成,人工智能正在改变我们与技术互动的方式。特别是机器学习 (ML) 模型在自然语言处理 (NLP) 领域取得了重大进展。一个关键的突破是引入了“自注意力”和用于序列处理的Transformers架构,这使得之前主导该领域的几个关键问题得以解决。
deephub
2023/08/28
4070
Transformers回顾 :从BERT到GPT4
Long-Context下LLM模型架构全面介绍
随着ChatGPT的快速发展,基于Transformer的大型语言模型(LLM)为人工通用智能(AGI)铺平了一条革命性的道路,并已应用于知识库、人机界面和动态代理等不同领域。然而,存在一个普遍的限制:当前许多LLM受资源限制,主要是在较短的文本上进行预训练,使它们对现实世界中常见的较长的上下文提示不太有效。本文对基于Transformer的LLM模型架构的进展进行了全面的介绍。
zenRRan
2023/11/29
2.1K0
Long-Context下LLM模型架构全面介绍
【论文笔记】Multi-Domain Dialogue State Tracking based on State Graph
​ 现有的方法通常将以前的对话状态与对话历史连接作为编码器的输入。它们依赖于编码器的自我注意机制来连接其中的 token。然而,编码器可能会注意到虚假的联系,从而导致错误的推断。
yhlin
2023/02/27
1.3K0
【论文笔记】Multi-Domain Dialogue State Tracking based on State Graph
多模态大模型篇
在CV方向上,一般我们输入的都是图片,无论这个图片多大,都会resize到一个统一的尺寸。最终经过CNN的提取,变成一个特征向量,那么这个特征向量的维度是一样的。再经过softmax变成一个分类(Class)的概率
算法之名
2023/10/16
9680
多模态大模型篇
FlowSeq、mBART、BERT-fused、mRASP、mRASP2...你都掌握了吗?一文总结机器翻译必备经典模型(三)
机器之心专栏 本专栏由机器之心SOTA!模型资源站出品,每周日于机器之心公众号持续更新。 本专栏将逐一盘点自然语言处理、计算机视觉等领域下的常见任务,并对在这些任务上取得过 SOTA 的经典模型逐一详解。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。 本文将分 3 期进行连载,共介绍 18 个在机器翻译任务上曾取得 SOTA 的经典模型。 第 1 期:RNNsearch、Multi-task、attention-model
机器之心
2023/03/29
1K0
FlowSeq、mBART、BERT-fused、mRASP、mRASP2...你都掌握了吗?一文总结机器翻译必备经典模型(三)
【论文笔记】Jointly Optimizing State Operation Prediction and Value Generation for Dialogue State Tracking
​ 现有的方法利用 BERT 编码器和基于拷贝的 RNN 解码器,其中编码器预测状态操作,并由解码器生成新的插槽值。然而,在这种堆叠的编码器 - 解码器结构中,操作预测目标 只影响 BERT 编码器,而值生成目标 主要 影响 RNN 解码器。此外,在框架中,编码器是预先训练的,而解码器则没有预先训练。
yhlin
2023/02/27
8590
【论文笔记】Jointly Optimizing State Operation Prediction and Value Generation for Dialogue State Tracking
大模型的模型压缩与有效推理综述
本文对大型语言模型的压缩和效率推理进行了综述。大型语言模型基于Transformer架构,具有强大的性能,但也带来了巨大的内存和计算成本。本文从算法角度对大型语言模型的压缩和效率推理方法进行了分类,包括量化、剪枝、知识蒸馏、紧凑架构设计和动态网络。大型语言模型有两个显著特点:
算法进阶
2024/07/10
6260
大模型的模型压缩与有效推理综述
Transformers 4.37 中文文档(十二)
🤗 Transformers 是一个预训练的最先进模型库,用于自然语言处理(NLP)、计算机视觉以及音频和语音处理任务。这个库不仅包含了 Transformer 模型,还有像现代卷积网络这样的非 Transformer 模型,用于计算机视觉任务。如果你看一下今天最流行的消费产品,比如智能手机、应用和电视,很可能背后都有某种深度学习技术。想要从智能手机拍摄的照片中移除背景物体?这就是一个全景分割任务的例子(如果你还不知道这是什么,不用担心,我们将在接下来的部分中描述!)。
ApacheCN_飞龙
2024/06/26
5900
Transformers 4.37 中文文档(十二)
最强NLP预训练模型!谷歌BERT横扫11项NLP任务记录
作者:Jacob Devlin、Ming-Wei Chang、Kenton Lee、Kristina Toutanova
机器之心
2018/10/22
1.3K0
最强NLP预训练模型!谷歌BERT横扫11项NLP任务记录
语言计算:序列标注前沿技术研究
大家知道,序列标注、文本分类、句对关系判断和生成式任务并称自然语言处理四大基础技术支柱。序列标注作为最基础的语言计算任务已在命名实体识别、词性标注、分词以及属性抽取等场景中得到了广泛的应用。这里顺便提一下,我们在属性抽取方面沉淀了诸多宝贵的经验,限于文章篇幅,本文将侧重序列标注理论的阐述,业务应用将在后续文章中体现。
腾讯云AI
2019/07/19
12K0
LLM主要类别架构
💫LLM分类一般分为三种:自编码模型(encoder)、自回归模型(decoder)和序列到序列模型(encoder-decoder)。
@小森
2024/06/04
4910
GPT、BERT、XLM、GPT-2、BART…你都掌握了吗?一文总结文本生成必备经典模型(二)
 机器之心专栏 本专栏由机器之心SOTA!模型资源站出品,每周日于机器之心公众号持续更新。 本专栏将逐一盘点自然语言处理、计算机视觉等领域下的常见任务,并对在这些任务上取得过 SOTA 的经典模型逐一详解。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。 本文将分 2 期进行连载,共介绍 10 个在文本生成任务上曾取得 SOTA 的经典模型。 第 1 期:Seq2Seq(RNN)、Seq2Seq(LSTM)、Seq2Seq+
机器之心
2023/03/29
1.1K0
GPT、BERT、XLM、GPT-2、BART…你都掌握了吗?一文总结文本生成必备经典模型(二)
推荐阅读
相关推荐
《BERT基础教程:Transformer大模型实战》读书笔记
更多 >
LV.0
这个人很懒,什么都没有留下~
目录
  • learn from 《Hive性能调优实战》
  • 1. 调优思路
  • 2. 环境搭建
  • 3. 查看执行计划
    • 3.1 explain
    • 3.2 explain extended
    • 3.3 explain dependency
    • 3.4 explain authorization
    • 3.5 explain vectorization
  • 4. sql执行计划解读
  • 5. 数据处理模式
    • 5.1 过滤模式
    • 5.2 聚合模式
    • 5.3 可计算中间结果的聚合
    • 5.4 不可计算中间结果的聚合
    • 5.5 连接模式
    • 5.6 优化器
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档