一文读懂什么是Byzer

news2025/2/13 21:32:13

目录

一、什么是Byzer?

二、Byzer特性

2.1 语法特性

2.2 数据的管理特性

2.3 支持自定义函数拓展Byzer语法

三、Byzer有哪些功能?

3.1 Byzer-Lang语言特性

3.1.1强大的数据处理能力

3.1.2内置机器学习算法

3.2 Byzer-Lang支持权限控制

3.3 Byzer-LLM拓展

3.4 Byzer-Python拓展

四、认识Byzer-LLM

4.1 Byzer-llm拓展的安装

4.2 Byzer-llm能够干什么?

4.2.1 帮助企业构建一个统一的数据中台

4.2.2 基于开源大模型或者大模型的SaaS服务搭建自己的大模型

4.2.3 助力大模型微调

一、什么是Byzer?

Byzer的前身是 MLSQL,MLSQL 的前身是 StreamingPro,2021年12月,MLSQL更名为Byzer。下图为Byzer的发展历程。

图1  byzer发展历程

Byzer不同时期的形态体现了不同的任务重心,StreamingPro最初的目的是简化Spark Streaming的开发,提升流数据处理的效率。MLSQL将spark由应用转变成服务,提供了RESTful API接口,之后内置了机器学习的能力,全面打通了从原始数据到机器学习算法部署的链路,加快机器学习算法快速落地。而Byzer不仅继承了MLsql的优点,还扩展了Byzer-python,向python的生态拥抱,拓展了Byzer-LLM向最近火爆的大模型拥抱。

Byzer官网号称是一门全新的语言,有自己的语法(简洁)、有自己的解释器、有自己的执行引擎,这门语言的底座基于Spark+Ray。

Byzer不仅是一门全新的语言,也可以看做是一个功能强大的框架,Byzer允许不同角色的研发人员在其生态体系中进行数据分析;进行机器学习、深度学习算法分布式训练、分布式部署等。总之,Byzer允许数据分析、产品研发、算法开发等人员共同使用它简化自己的工作,提升工作效率,更重要的是它可以在数据层面充分协调不同的部门,加快产品从研发到落地的效率。Byzer的功能很多,但本质上还是用一个统一的平台,管理统一的数据,使用统一的语法在上面各自进行业务开发,并将自己开发的产品API暴露。从而缩短产品从研发到部署的时间。

Byzer是一门全新的语言,不过它是一门面向大数据、AI、云原生的分布式语言,它内置了许多插件,可以帮助软件行业工程人员更好地在数据分析、机器学习、AI等领域落地实际的应用项目。这门语言诞生的初衷是从编程语言层面上进行革新,从根本上提高数据平台落地和 AI 工程化的效率,在统一的平台上实现过去要使用多语言、多平台、多组件才能实现的事情。

图2  byzer架构

二、Byzer特性

2.1 语法特性

一切用类似于sql的语句进行数据操作、数据处理、模型训练、模型部署成应用,并且所有的数据都以数据表的形式存储。

图 3 byzer-notebook界面

上图中在指定目录中加载自定义的图片数据集,保存的数据湖中,再次从数据湖中加载数据可以看到输出的是表结构,也就是说Byzer以表的形式管理任何数据。但这是表面上让人感觉数据似乎变成了表,但实际上byzer用hdfs管理文件,所有数据湖中的数据全部都以切片的形式保存到了Byzer主目录的data文件夹中。

2.2 数据的管理特性

在byzer,数据湖中的数据保存到了byzer的安装路径下,但是用户数据是按照租户隔离的,在notebook中的直观体现就是deleta数据湖中的数据大家都可以看见,都可以使用、修改。但是FileSystem中的数据是用户私有的,不同的用户登录进notebook中只能看到自己的数据而能不能查看其他人的数据,

实际上notebook中FileSystem中的数据存储在notebook安装路径中,所以这样看来notebook不仅是byzer官方推荐的代码编辑器,似乎还是一个数据管理平台。因为notebook做到了将数据按照租户隔离。

2.3 支持自定义函数拓展Byzer语法

目前,byzer中仅仅支持是十几个原生语法比如load,select等,其他的直接照搬spark sql语句拓展自己的语法功能,但是sql语句本来就功能有限,比如实现分支语句、循环语句等都是需要拓展的,byzer支持用户使用java、scala语言对其语法进行拓展。

三、Byzer有哪些功能?

Byzer除了Byzer-Lang核心语法之外,还有许多拓展,比如Byzer-LLM、Byzer-Python、Byzer-Notebook等。下面以这三个拓展为例,看一看Byzer有哪些特性。

3.1 Byzer-Lang语言特性

Byzer官方对Byzer-Lang的解释是:Byzer 是一门结合了声明式编程和命令式编程的混合编程语言,其低代码且类 SQL 的编程逻辑配合内置算法及插件的加持,能帮助数据工作者们高效打通数据链路,完成数据的清洗转换,并快速地进行机器学习相关的训练及预测。

Byzer 希望能够提供一套语言、一个引擎,就能覆盖整个数据链路,同时可以提供各种算法、模型训练等开箱即用的能力。

但是我在简单体验了Byzer之后,特别引起我关注的还是以下两大功能:

3.1.1强大的数据处理能力

Byzer-Lang号称Everything is a table,在 Byzer-Lang 中所有的文件都可以被抽象成表的概念。多样的数据源例如:数据库,数据仓库,数据湖甚至是 Rest API 都可以被 Byzer-lang 抽象成二维表的方式读入并进行后续的分析处理。Byzer官网号称,Byzer-lang几乎可以加载市面上主流的数据源和数据格式:

(1)数据源:JDBC协议的数据库,多种云上对象存储,HDFS等

(2)数据格式:例如text,image,csv, json, xml等文件格式

3.1.2内置机器学习算法

Byzer 提供了一些内置的、开箱即用的机器学习算法,其中包括:自动机器学习(AutoML)、K 均值聚类算法(KMeans)、朴素贝叶斯法(NaiveBayes)、交替最小二乘法(ALS)、随机森林(RandomForest)、线性回归(LinearRegression)、逻辑回归(LogisticRegression)、隐含狄利克雷分布(LDA)等。Byzer不仅内置了这些机器学习算法,而且还内置了诸如特征平滑、归一化等特征工程算子。在Byzer上面不需要书写机器学习的数据处理、模型训练等代码,不需要像python中导入第三方包,只需要一行简单的声明即可使用。数据处理部分仅需load、run几个命令即可完成,模型训练也仅需train命令,算法部署上线只需一个插件并结合一个register命令即可以可api访问的形式部署。

3.2 Byzer-Lang支持权限控制

Byzer-Lang可以通过插件的方式控制权限,在Byzer-notebook中体现为FileSystem中展现的数据是按租户隔离的,而DetltaLake的库表则是所有用户都可以看到和使用的。具体来说,以不同的账号登录进Byzer-notebook,看到的FileSystem中的数据是不同的,因为FileSystem中的数据是属于用户私有的,而看到的DetltaLake是相同的。这一点不同于python的jupyter。

Byzer-Lang还支持从编码层面支持自定义用户权限,只需要将自定义的权限控制类实现streaming.dsl.auth.TableAuth类,然后打包放在byzer-lang下的lib文件夹中即可。

3.3 Byzer-LLM拓展

Byzer-LLM是Byzer语言的一个拓展,Byzer官方对Byzer-LLM的定义是:Byzer-LLM 让用户可以端到端的完成业务数据获取,处理,finetune大模型,多场景部署大模型等全流程。该扩展的目标也是为了让企业更好的将业务数据注入到私有大模型(开源或者商业),并且可对外提供多场景部署形态,诸如 ETL, 流式计算,API 服务等。Byzer-LLM 目前支持两类大模型:(1)私有大模型。用户需要自己下载模型权重,在启动模型时指定路径。(2)SaaS大模型。 用户需要提供token。

3.4 Byzer-Python拓展

Byzer通过 Byzer-python 扩展(内置)来支持Python语言。因此,只需要在notebook中声明python环境的地址既可以在notebook中书写python代码。通过 Byzer-python,用户不仅仅可以进行使用 Python 进行 ETL 处理,比如可以将一个 Byzer 表转化成一个分布式DataFrame on Dask 来操作,它还支持各种机器学习框架,比Tensorflow,Sklearn,PyTorch。

四、认识Byzer-LLM

Byzer-LLM是Byzer的一个拓展,这个拓展最早出现于byzer 2.36版本,也就是去年12月份出现的,这个拓展就是为了让byzer拥抱现在火热的大模型。Byzer官方对Byzer-llm的定义是:让用户可以端到端的完成业务数据获取,处理,finetune大模型,多场景部署大模型等全流程。 该扩展的目标也是为了让企业更好的将业务数据注入到私有大模型(开源或者商业)。

图4 byzer-llm模型能力

4.1 Byzer-llm拓展的安装

Byzer-llm是基于byzer-lang,因此需要首先安装好byzer-lang,其次需要安装Ray。Ray 是一个专门执行人工智能框架的分布式执行引擎,让开发者仅需添加数行代码就能轻松转为适合于计算机集群运行的(或单个多核心计算机的)高性能分布式应用而不需要用户关心那些调度、数据传输和硬件错误等问题。Ray 与 TensorFlow、PyTorch 和 MXNet 等深度学习框架互相兼容。怎么安装ray呢?很简单,只需要在conda环境下执行pip install就行了,不过需要注意的是,byzerllm目前仅支持ray=2.5版本的。安装好Ray之后,可以在命令行启动 ray start --head 之后会在本地8275端口进入ray集群的控制面板,在面板上可以看到集群的信息,包含节点存活状态、日志、内存CPU占用情况等。之后需要下载byzer-llm.jar包放到byzer安装目录的plugin目录下。特别需要注意的是需要在安装有ray的conda环境中运行byzer-llm,后续需要其他pip 包,也要安装在这个conda环境中。

4.2 Byzer-llm能够干什么?

4.2.1 帮助企业构建一个统一的数据中台

数据中台是数据分析师,算法工程师,研发人员,产品部门,运营甚至老板日常工作的集中式的控制台,数据中台不干涉其他部门 API 定义的情况下,提供全司视角的(也包括外部 API)的 API 服务视图。随着大数据、人工智能、云计算等技术的迅速发展,云基础设施、基础软件、算法模型等都逐渐完善和成熟,业界对数据平台的效率诉求是越来越高,低效的跨平台数据运转逐渐成为工程师落地数据平台和完成 AI 工程化的痛点。但是,无论是从更换基础设施入手,还是换上更易用的框架,又或是招聘更优秀的研发人才,都无法做到大幅度的效率提升。Byzer官方相信只有在编程语言层面进行革新,才能从根本上提高数据平台落地和 AI 工程化的效率。Byzer 作为一门低代码的开源编程语言,可以在语言层面将数据处理链路、AI 工程中的复杂操作以及权限管控进行抽象,同时降低编程语言的学习成本和上手成本,从而帮助企业真正将效率提升上来。

4.2.2 基于开源大模型或者大模型的SaaS服务搭建自己的大模型

Byzer也可以助力深度学习领域,让每家公司都可以将自己的业务数据注入进商业或者开源大模型,完成私有化大模型应用。

比如,现在要基于开源模型微调出一个属于自己的图片分类模型,首先可以将自己的数据集上传到数据湖中,数据湖支持将数据分布式存储。由于数据湖中的数据是公共的,因此这份数据集可以统一管理起来,比如公司有自己的数据采集标注人员、有模型开发人员,这两类人员可以通过数据湖的数据管理功能而使数据能够及时、准确地在不同工作人员之间流通。

不仅是数据管理,Byzer还支持仅需简单配置即可实现多机多卡模型训练,能够帮助工程师充分调动训练大模型所需的算力。模型训练完毕之后,还支持一键部署,极大加快一款产品的开发流程。因为使用Byzer,可以使用它自有的语法(类SQL语言)连接任何业务库,获取数据,加工数据,并且注入到大模型内进行fintune,然后一键部署成函数封装成API供其他人调用。 并且Byzer 也对有很好的Python支持,完全可以在Byzer平台上使用Python语言进行算法开发,但是也可以使用Byzer的语法在只懂SQL的基础上完成上述工作。比如模型和数据都可以统一保存成表,方便管理,避免到处手动拷贝数据,模型等等。

它还支持从单机到分布式部署,支持GPU调度,可以根据用户需求随时进行算力和存储的扩展。

4.2.3 助力大模型微调

可以从数据处理、模型训练、算法部署层面助力大模型微调,或者助力企业将自己的数据、知识、业务注入进大模型从而构建自己的私有大模型。

以官网给出的百川大模型为例。看一下微调流程。

首先,值得注意的是,截止到2023年7月,Byzer官方测试过的可微调的大模型有三个:chatglm2、baichuan、falcon。而且截止到2023年7月,Byzer-LLM 大模型微调支持两种QA格式的数据。

图5 QA格式

一个是 Alpaca 格式

图 6 Alpaca数据格式

另一种是MOSS格式

图 7  MOSS数据格式

第一步:加载数据和模型

 第二步:配置模型微调参数

 训练好之后保存即可。

上面的训练案例仅仅指定了最大输入长度,其实在微调过程中还有很多参数可以指定

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/863887.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Unity100个实用小技巧】如何保存MP3音乐到本地(wav格式)

☀️博客主页:CSDN博客主页💨本文由 萌萌的小木屋 原创,首发于 CSDN💢🔥学习专栏推荐:面试汇总❗️游戏框架专栏推荐:游戏实用框架专栏⛅️点赞 👍 收藏 ⭐留言 📝&#…

css实现文字首行缩进的效果

<div class"content"><p>站在徐汇滨江西岸智塔45楼&#xff0c;波光粼粼的黄浦江一览无余。近处&#xff0c;是由龙华机场储油罐改造而来的油罐艺术中心和阿里巴巴上海总部办公处。远处&#xff0c;历史悠久的龙华塔挺拔秀丽&#xff0c;总投资逾600亿元…

伺服系统::编码器

一、主要分类 二、组成与原理 光电编码器 磁编码器&#xff1a;N-->磁感元件&#xff08;0&#xff09;&#xff1b;S-->磁感元件&#xff08;1&#xff09;》脉冲 增量编码器的分辨率、倍频与细分技术 (99 封私信 / 81 条消息) 编码器有什么分类&#xff1f; - 知乎 (z…

CH343 USB转串口芯片资料下载(合集)

1、产品手册 CH343DS1.PDF - 南京沁恒微电子股份有限公司CH343技术手册&#xff0c;USB转单串口芯片&#xff0c;支持最高6M波特率&#xff0c;串口信号支持1.8~5V&#xff0c;内置晶振。CH343使用系统集成的CDC驱动或厂商驱动。厂商驱动支持完整串口功能和更高波特率。https:…

Linux系统编程之信号(上)

一、信号概念 信号就是软件中断。每当程序收到一个信号&#xff0c;都需要按指定的方法去处理。以下是UNIX系统的信号表。 其中core表示产生一个复制了该进程内存映像的core文件&#xff0c;它保存了程序现场&#xff0c;可以使用gdb来调试。 二、signal() signal()函数用于改…

23款奔驰C260升级原厂香氛负离子系统,清香宜人,久闻不腻

奔驰原厂香氛合理性可通过车内空气调节组件营造芳香四溢的怡人氛围。通过更换手套箱内香氛喷雾发生器所用的香水瓶&#xff0c;可轻松选择其他香氛。香氛的浓度和持续时间可调。淡雅的香氛缓缓喷出&#xff0c;并且在关闭后能够立刻散去。车内气味不会永久改变&#xff0c;香氛…

高压放大器如何正常使用的呢

高压放大器是一种用于将低电压信号转换成高电压信号的电子设备。它广泛应用于通信、雷达、医疗设备等领域。正确使用高压放大器对于保证设备的正常运行和延长使用寿命至关重要。下面安泰将介绍高压放大器的使用方法和注意事项&#xff0c;帮助您更好地了解如何正确使用高压放大…

proteus仿真uart串口实验

串口通信在单片机开发中是一种很常见的通信方式&#xff0c;一般所说的串口是对应rs232标准&#xff0c;对应有gnd,vcc,rx,tx四根数据线。其中rx,tx分别是接收、发送端口&#xff0c;而在实际接线中&#xff0c;我们需要注意&#xff0c;rx接另一端tx,tx接另一端的rx。在51单片…

buildroot使用介绍

buildroot是Linux平台上一个构建嵌入式Linux系统的框架。整个Buildroot是由Makefile脚本和Kconfig配置文件构成的。你可以和编译Linux内核一样&#xff0c;通过buildroot配置&#xff0c;menuconfig修改&#xff0c;编译出一个完整的可以直接烧写到机器上运行的Linux系统软件(包…

恒盛策略:创业板交易规则?

创业板是指中国证监会于2009年11月创立的一种股票商场&#xff0c;是为了鼓励和支撑中小企业发展所建立的。相比于主板&#xff0c;创业板的公司一般融资规模较小&#xff0c;危险较高&#xff0c;但也具有高成长性和出资价值。而创业板买卖规则&#xff0c;则是指这个商场内的…

智谷星图赵俊:让人才和区块链产业“双向奔赴”丨对话MVP

区块链产业需要什么样的人才&#xff1f;赵俊很有发言权。 赵俊是北京智谷星图科技有限公司的技术总监&#xff0c;也是FISCO BCOS官方认证讲师。他2017年接触区块链&#xff0c;随后选择人才培育领域深耕。“为区块链行业引进更多人才这件事很有价值&#xff0c;跟我的职业理…

数据结构初阶--二叉树的链式结构

目录 一.二叉树链式结构的概念 二.二叉树链式结构的功能实现 2.1.链式二叉树的定义 2.2.链式二叉树的构建 2.3.链式二叉树的遍历 2.3.1.先序遍历 2.3.2.中序遍历 2.3.3.后序遍历 2.3.4.层序遍历 2.4.链式二叉树的求二叉树的结点数量 法一&#xff1a;计数法 法二&a…

[保研/考研机试] KY135 又一版 A+B 浙江大学复试上机题 C++实现

题目链接&#xff1a; KY135 又一版 AB https://www.nowcoder.com/share/jump/437195121691736185698 描述 输入两个不超过整型定义的非负10进制整数A和B(<231-1)&#xff0c;输出AB的m (1 < m <10)进制数。 输入描述&#xff1a; 输入格式&#xff1a;测试输入包…

鸿蒙开发学习笔记1——真机运行hello world

问题背景 学习任何语言和框架的第一步&#xff0c;永远都是跑通熟悉的“hello world”&#xff0c;本文将介绍鸿蒙开发如何跑通“hello world”。 问题分析 一、构建第一个ArkTS应用&#xff08;fa模型&#xff09; 说明&#xff1a;请使用DevEco Studio V3.0.0.601 Beta1及…

安装Tomac服务器——安装步骤以及易出现问题的解决方法

文章目录 前言 一、下载Tomcat及解压 1、选择下载版本&#xff08;本文选择tomcat 8版本为例&#xff09; 2、解压安装包 二、配置环境 1、在电脑搜索栏里面搜索环境变量即可 2、点击高级系统设置->环境变量->新建系统变量 1) 新建系统变量&#xff0c;变量名为…

c#在设计时调试自定义 Windows 窗体控件

private string demoStringValue null; [Browsable(true)] public string DemoString {get{return this.demoStringValue;}set{demoStringValue value;} } 参考链接 在设计时调试自定义控件 - Windows Forms .NET Framework | Microsoft Learnhttps://learn.microsoft.com/z…

PACS系统选型及组成

PACS系统软件选型 目前PACS系统的软件架构选型上看&#xff0c;主要有C/S和B/S两种形式。 C/S架构&#xff0c;即Client /Server&#xff08;客户机/服务器&#xff09;架构&#xff0c;将运算任务合理分配到客户机端和服务器端&#xff0c;降低了整个系统的通信开销&#xf…

数据结构刷题训练:队列实现栈

目录 前言 1. 题目&#xff1a;使用队列实现栈 2. 思路 3. 分析 3.1 创建栈 3.2入栈 3.3 出栈 3.4 栈顶数据 3.5 判空和 “ 栈 ” 的销毁 4. 题解 总结 前言 我们已经学习了栈和队列&#xff0c;也都实现了它们各自的底层接口&#xff0c;那么接下我们就要开始栈和队列的专项刷…

在SPSS中实现数据转置

在使用SPSS开展数据分析的过程中&#xff0c;有时候不可避免需要对数据进行转置处理。 例如Kendall协同系数检验和组内相关系数&#xff08;ICC&#xff09;检验这两种方法都可以检验定量数据的一致性程度&#xff0c;但是这两种方法对数据的要求不同。 组内相关系数&#xf…

ArcGIS Pro 基础安装与配置介绍

ArcGIS Pro ArcGIS Pro作为ESRI面向新时代的GIS产品&#xff0c;它在原有的ArcGIS平台上继承了传统桌面软件&#xff08;ArcMap&#xff09;的强大的数据管理、制图、空间分析等能力&#xff0c;还具有其独有的特色功能&#xff0c;例如二三维融合、大数据、矢量切片制作及发布…