Below you will find pages that utilize the taxonomy term “hive”
mggg's 博客
GPT的架构 - 从0构建LLM (1)
GPT的架构 GPT模型是一种计算机程序,它可以理解和生成文字,就像我们人类会说话和写字一样。
模型的工作流程 输入文本: 首先,我们把要处理的文字(比如一句话或一段话)输入到模型中。
词嵌入层: 模型会把这些文字转换成一种计算机能理解的数字形式,这叫“词嵌入”。这就好像我们用字母拼出一个单词一样,计算机用数字来表示这些文字。
位置嵌入层: 模型还会考虑每个单词在句子中的位置,因为同样的单词在不同的位置可能有不同的意思。
多个转换器模块:
这些模块负责处理和理解输入的文字。每个模块都有几个重要部分: 注意力机制(Masked Multi-head Attention): 这部分就像我们阅读一篇文章时,会特别注意一些关键字一样。模型会关注输入文字中的重要部分。 前馈神经网络(Feed Forward): 这部分就像一个过滤器,会进一步处理信息,使其变得更有用。 规范化层(LayerNorm): 这部分会确保信息在处理过程中保持稳定,不会变得太乱。 丢弃层(Dropout): 这部分会随机丢弃一些信息,防止模型过于依赖某些特定的信息,使其更具通用性。 输出层: 最后,处理完所有信息后,模型会给出一个结果,比如生成下一段文字。
示例 假设我们输入一句话:“今天的天气真好。”
输入文本: “今天的天气真好。” 词嵌入层: 把这句话转换成数字。 位置嵌入层: 记录每个词在句子中的位置。 多个转换器模块: 模型会处理这句话,注意到“天气”和“好”是关键字,并对信息进行多次处理。 输出层: 最后模型可能会生成下一句话,比如“我们去公园玩吧。” 大模型评测 MMLU=Measuring Massive Multitask language Understanding,
以下是一个示例
input = ("1 + 1=?", "A. 2", "B. 3", "C. 4") model_answer = model(input) correct_answer = "C.4" score += model_answer == correct_answer total_score = score / num_examples * 100 %
mggg's 博客
Apache Hive实现自定义存储格式
Apache Hive实现自定义存储格式 背景 在某些业务场景中,下游处理系统需要直接处理数据文件。虽然Hive官方支持text, orc, parquet等格式,但为了应对更多样化的业务场景,学习如何开发自定义存储格式变得十分重要。Hive目前提供了ROW FORMAT SERDE机制来实现这一需求。
ROW FORMAT SERDE Hive的ROW FORMAT SERDE是一个关键的数据格式化概念,它定义了如何解析和映射存储在Hive表中的数据。SERDE代表序列化和反序列化,这涉及到数据在写入Hive表时和从Hive表读取时的转换过程。
快速开始 考虑一种业务场景,我们希望数据本身没有列分隔符,而是采用固定宽度的字段。在Hive中,设置列分隔符为空字符串是不被直接支持的。为了解决这个问题,接下来将实现一个自定义的SerDe。
首先从结果出发:
代码打包后的jar名称为 hive-fixed-serde-1.0-SNAPSHOT.jar
添加自定义serde jar包
add jar hdfs:///path/hive-fixed-serde-1.0-SNAPSHOT.jar 建表指定实现类org.apache.hadoop.hive.serde2.fixed.FixedLengthTextSerDe, 且每个字段定长分别为10, 5, 8 CREATE TABLE fixed_length_table ( column1 STRING, column2 STRING, column3 STRING ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.fixed.FixedLengthTextSerDe' WITH SERDEPROPERTIES ( "field.lengths"="10,5,8" ) STORED AS TEXTFILE; 当写入数据不满足定长时候, 向后补充空格, 写入 insert into fixed_length_table values ("1", "1", "1") 实际文件内容:
1 1 1 实现 FixedLengthTextSerDe 继承自org.apache.hadoop.hive.serde2.AbstractSerDe,需要实现以下方法:
initialize: 创建建表语句中field.lengths的配置。 getSerDeStats: 返回统计信息。 deserialize: 将文件内容里的数据转换为Hive的ROW。 serialize: 将Hive的ROW转换为实际写文件的内容。本次目的是将数据补位,按空格补充到规定要求的定长。 getSerializedClass: 仅针对text格式。 完整代码:
mggg's Blog
Implementing Custom Storage Formats in Apache Hive
Implementing Custom Storage Formats in Apache Hive Background In certain business scenarios, downstream processing systems need to handle data files directly. Although Hive officially supports formats like text, orc, parquet, etc., learning how to develop custom storage formats is crucial for addressing a more diverse range of business scenarios. Hive currently offers the ROW FORMAT SERDE mechanism for this purpose.
ROW FORMAT SERDE The ROW FORMAT SERDE in Hive is a key data formatting concept, defining how to parse and map data stored in Hive tables.