2023 年最佳开源软件

news2024/11/15 9:10:39

InfoWorld 公布了 2023 年最佳开源软件榜单,旨在表彰年度领先的软件开发、数据管理、分析、人工智能和机器学习开源工具。

上榜的 25 个软件涵盖编程语言、运行时、应用程序框架、数据库、分析引擎、机器学习库、大型语言模型 (LLM)、用于部署 LLM 的工具等领域

Apache Hudi
在构建开放式数据湖或湖仓一体时,许多行业都需要一个更可发展和可变化的平台。以出版商、广告商和媒体买家的广告平台为例,仅有快速分析是不够的。InfoWorld 认为,Apache Hudi 不仅提供了快速的数据格式、表格和 SQL,还使它们能够进行低延迟的实时分析。它与 Apache Spark、Apache Flink 以及 Presto、StarRocks 和 Amazon Athena 等工具集成。简而言之,如果你想在数据湖上进行实时分析,Hudi 是一个非常不错的选择。

Apache Iceberg
“HDFS 和 Hive 太慢了”。Apache Iceberg 不仅能与 Hive 协同工作,还能直接与 Apache Spark 和 Apache Flink 以及 ClickHouse、Dremio 和 StarRocks 等其他系统协同工作。Iceberg 可为所有这些系统提供高性能的表格式,同时支持完整的模式演进、数据压缩和版本回滚。Iceberg 是许多现代开放数据湖的关键组成部分。

Apache Superset
多年来,Apache Superset 一直是数据可视化领域的佼佼者。对于想要大规模部署自助服务、面向客户或面向用户的分析工具的人来说,Superset 几乎是唯一的选择。Superset 几乎可以为任何分析场景提供可视化功能,包括从饼状图到复杂的地理空间图表。它适用于大多数 SQL 数据库,并提供 drag-and-drop builder  和 SQL IDE。如果你要对数据进行可视化,Superset 值得一试。

Bun
Bun 是采用 Zig 语言编写的高性能 “全家桶” JavaScript 运行时,官方称其为 "all-in-one JavaScript runtime"。Bun 提供了打包、转译、安装和运行 JavaScript & TypeScript 项目的功能,内置原生打包器 (native bundler)、转译器、task runner、npm 客户端,以及 fetch、WebSocket等 Web API。

InfoWorld 评价称,当你以为 JavaScript 已经进入可预见的 routine 时,Bun 出现了。这个 “轻佻” 的名字掩盖了它严肃的目标:将服务器端 JS-- 运行时、捆绑程序、包管理器 -- 所需的一切都集成到一个工具中。让它成为 Node.js 和 NPM 的直接替代品,但速度要快得多。这个简单的主张似乎让 Bun 成为了自 Node 颠覆 applecart 以来最具颠覆性的 JavaScript 工具。

Bun 的速度部分归功于 Zig,其余则归功于创始人 Jared Sumner 对性能的执着追求。除了性能之外,将所有工具集成在一个软件包中,也让 Bun 成为 Node 和 Deno 的有力替代品。

Claude 2
Anthropic 的 Claude 2 在单个提示中最多可接受 100K tokens(约 7 万字),并可生成多达数千个 tokens 的故事。Claude 可以编辑、改写、总结、分类、提取结构化数据、根据内容进行问答等。它在英语方面的训练最多,但在其他一系列常用语言方面也表现出色。Claude 还掌握了大量常用编程语言的知识。

Claude 从一开始就被训练成 helpful、honest 以及 harmless 的机器人,并经过广泛的重新训练,变得更加无害,更难产生攻击性或危险的输出。它不会根据你的数据进行训练,也不会在互联网上查询答案。

CockroachDB
CockroachDB 是一种分布式 SQL 数据库,可实现强一致性 ACID 事务,通过实现数据库读写的水平扩展性,解决了高性能、事务繁重型应用程序的关键扩展性问题。CockroachDB 还支持多区域和多云部署,以减少延迟并遵守数据法规。部署实例包括 Netflix 的数据平台,该平台拥有 100 多个 CockroachDB 生产集群,支持媒体应用和设备管理。主要客户包括 Hard Rock Sportsbook、摩根大通、桑坦德银行和 DoorDash。

CPython
在 Python 3.11 和 Python 3.12 这两个版本中,Python 核心开发团队对 Python 解释器的参考实现 CPython 进行了一系列变革性升级。其结果是,Python 运行时性能对所有人来说都实现了大幅提升,而不仅限于那些选择使用新库或 cutting-edge 语法的少数人。

InfoWorld 认为,全局解释器锁(Global Interpreter Lock)是阻碍 Python 真正实现多线程并行的一个长期障碍。

DuckDB
DuckDB 是一种分析数据库,它秉承了 SQLite 等小型但功能强大的项目的精神。DuckDB 提供所有熟悉的 RDBMS 功能 --SQL 查询、ACID 事务、二级索引 -- 但增加了分析功能,如大型数据集的连接和聚合。它还可以摄取和直接查询常见的大数据格式,如 Parquet。

HTMX 和 Hyperscript 
HTMX 采用了大众所熟悉和喜爱的 HTML,并通过增强功能对其进行了扩展,使编写现代网络应用程序变得更加容易。HTMX 消除了用于连接网络前端和后端的大量模板 JavaScript。相反,它使用直观的 HTML 属性来执行任务,如发出 AJAX 请求和用数据填充元素。

同类项目 Hyperscript 引入了类似于 HyperCard 的语法,简化了许多 JavaScript 任务,包括异步操作和 DOM 操作。总之,HTMX 和 Hyperscript 为当前的反应式框架趋势提供了一个大胆的替代方案。

Istio
Istio 是一个服务网格,可为基于容器的微服务简化网络和通信,提供流量路由、监控、日志记录和可观测性,同时通过加密、身份验证和授权功能增强安全性。

Istio 将通信及其安全功能与应用程序和基础架构分离开来,从而实现了更安全、更一致的配置。该架构由部署在 Kubernetes 集群中的控制平面和用于控制通信策略的数据平面组成。2023 年,Istio 从 CNCF 孵化项目中毕业,在云原生社区中获得包括谷歌、IBM、红帽、Solo.io 等公司在内的支持和贡献。

Kata Containers
Kata Containers 结合了容器的速度和虚拟机的隔离性,是一种安全的容器运行时,使用了英特尔 Clear Containers 和 Hyper.sh runV。Kata Containers 可与 Kubernetes 和 Docker 协同工作,同时支持多种硬件架构,包括 x86_64、AMD64、Arm、IBM p 系列和 IBM z 系列。

获得了谷歌云、微软、AWS、阿里云、思科、戴尔、英特尔、红帽、SUSE 和 Ubuntu 等企业的赞助。

LangChain
LangChain 是一个模块化框架,可简化由语言模型驱动的应用程序的开发。LangChain 使语言模型能够连接到数据源并与其环境交互。LangChain 组件是模块化抽象和抽象实现的集合。

LangChain off-the-shelf chains 是组件的结构化组合,用于完成特定的高级任务。你可以使用组件定制现有的链,也可以构建新的链。LangChain 目前有三个版本: 一个是 Python 版本,一个是 TypeScript/JavaScript 版本,还有一个是 Go 版本。截至目前,已有大约 160 个 LangChain 集成。

Language Model Evaluation Harness
当一个新的大语言模型(LLM)发布时,通常都会被进行评估,将该模型与 ChatGPT 在某个基准上进行比较,很多公司可能会使用 lm-eval-harness 来生成评估分数。lm-eval-harness 由分布式人工智能研究所 EleutherAI 创建,包含 200 多个基准,而且很容易扩展。该工具甚至被用来发现现有基准中的不足,以及为 Hugging Face 的开放式 LLM 排行榜提供支持。

Llama 2
Llama 2 是 Meta AI 的下一代大型语言模型,与 Llama 1 相比,其训练数据量增加了 40%(来自公开来源的 2 万亿个 tokens),上下文长度增加了一倍(4096)。

Llama 2 是一个使用优化的 Transformer 架构的 auto-regressive 语言模型。调整后的版本使用了监督微调(SFT)和人类反馈强化学习(RLHF),以符合人类对有用性和安全性的偏好。Code Llama 是通过在代码特定数据集上对 Llama 2 进行微调而训练出来的,它可以根据代码或自然语言提示生成代码和有关代码的自然语言。

Ollama
Ollama 是一款命令行工具,可在 macOS 和 Linux 上本地运行 Llama 2、Code Llama 和其他模型,并计划支持 Windows。Ollama 目前支持近二十多个语言模型系列,每个模型系列都有许多可用的 "tags"。Tags 是模型的变体,这些模型使用不同的微调方法以不同的规模进行训练,并以不同的级别进行量化,以便在本地良好运行。量化级别越高,模型越精确,但运行速度越慢,所需的内存也越大。

Polars
Pandas 能做到的 Polars 不一定能做到,但它能做到的事情都能以极快的速度完成 -- 比 Pandas 快 10 倍,使用的内存只有 Pandas 的一半。来自 PySpark 的开发人员会觉得 Polars API 比 Pandas 中的更易上手。如果你正在处理大量数据,Polars 会让你的工作速度更快。

PostgreSQL
PostgreSQL 已经有 35 年的历史,有 700 多位贡献者参与其中,在关系数据库管理系统中估计占有 16.4% 的市场份额。最近的一项调查显示,在 9 万名开发人员中,45% 的人首选 PostgreSQL。

9 月份发布的 PostgreSQL 16 提升了聚合和选择不同查询的性能,增加了查询并行性,带来了新的 I/O 监控功能,并增加了更细粒度的安全访问控制。同样在 2023 年,Amazon Aurora PostgreSQL 增加了 pgvector,以支持生成式 AI 嵌入,谷歌云也为 AlloyDB PostgreSQL 发布了类似的功能。

QLoRA
QLoRA 是华盛顿大学提出的一种有效的微调方法,可以减少内存使用量,足以在单个 48GB GPU 上微调 65B 参数模型,同时保留完整的 16 位微调任务性能。QLoRA 通过冻结的 4 位量化预训练语言模型将梯度反向传播到低阶适配器 (LoRA)。

使用 QLoRA 意味着你可以在台式机上微调 30B 以上的庞大参数模型,与在多个 GPU 上进行全面调整相比,精度损失很小。事实上,QLoRA 有时甚至做得更好。InfoWorld 评价称,“低位推理和训练意味着更多的人可以使用 LLM-- 这不正是开源的意义所在吗?”

RAPIDS
RAPIDS 是用于常见数据科学和分析任务的 GPU 加速库的集合。每个库处理特定的任务,例如用于数据帧处理的 cuDF、用于图形分析的 cuGraph 和用于机器学习的 cuML 。

其他库涵盖图像处理、信号处理和空间分析,而集成则将 RAPIDS 引入 Apache Spark、SQL 和其他工作负载。如果现有的库都不符合要求,RAPIDS 还包括 RAFT,这是用于构建自己的解决方案的 GPU-accelerated primitives 的集合。RRAPIDS 还可与 Dask 携手跨多个节点进行扩展,并与 Slurm 一起在高性能计算环境中运行。

Spark NLP
Spark NLP 是一个自然语言处理库,可在 Apache Spark 上运行,支持 Python、Scala 和 Java。该库可帮助开发人员和数据科学家尝试使用大型语言模型,包括来自 Google、Meta、OpenAI 等的 Transformer 模型。

Spark NLP 的模型中心有 2 万多个模型和管道可供下载,用于语言翻译、命名实体识别、文本分类、问题解答、情感分析和其他用例。2023 年,Spark NLP 发布了许多 LLM 集成、新的图像到文本注释器、对所有主要公共云存储系统的支持以及对 ONNX(开放神经网络交换)的支持。

StarRocks
分析技术已经发生了变化。如今的公司经常要向数百万并发用户实时提供复杂的数据,即使是 PB 级的查询也必须在数秒内完成。StarRocks 是一个查询引擎,它结合了 native code(C++)、高效的基于成本的优化器、使用 SIMD 指令集的矢量处理、缓存和物化视图,可高效处理大规模连接。

StarRocks 甚至能在直接查询数据湖和湖仓一体(包括 Apache Hudi 和 Apache Iceberg)时提供接近原生的性能。InfoWorld 认为,无论你是在追求实时分析、提供面向客户的分析服务,还是只是想在不移动数据的情况下查询数据湖,StarRocks 都值得一试。

TensorFlow.js
TensorFlow.js 将谷歌 TensorFlow 机器学习框架的强大功能打包到 JavaScript 软件包中,以最低的学习成本为 JavaScript 开发人员带来非凡的功能。你可以在浏览器、带有 WebGL 加速功能的纯 JavaScript 栈或服务器上的 tfjs-node 库中运行 TensorFlow.js。Node 库为你提供了相同的 JavaScript API,但运行于 C 二进制程序之上,可最大限度地提高速度和 CPU/GPU 使用率。

“就对机器学习感兴趣的 JS 开发人员而言,TensorFlow.js 显然是是一个不错的选择。它为 JS 生态系统做出了值得欢迎的贡献,让广大开发者更容易接触到人工智能。”

vLLM
由于急于在生产中部署大语言模型,导致出现了大量专注于尽可能快地进行推理的框架。vLLM 是最有前途的框架之一,它支持 Hugging Face 模型、兼容 OpenAI 的 API 和 PagedAttention 算法。

目前,它是在生产中为 LLM 提供服务的不二之选,并且 FlashAttention 2 支持等新功能也在快速添加中。

Weaviate
生成式 AI 的蓬勃发展激发了对新型数据库的需求,这种数据库可以支持海量复杂的非结构化数据。向量数据库应运而生。

Weaviate 在部署模式、生态系统集成和数据隐私方面为开发人员提供了大量灵活性。Weaviate 将关键词搜索与向量搜索相结合,可快速、可扩展地发现多模态数据(文本、图像、音频、视频)。它还有用于检索增强生成(RAG)的开箱即用模块,可为聊天机器人和其他生成式 AI 应用程序提供特定领域的数据,使其更加有用。

Zig
InfoWorld 称,Zig 可能是当今所有的开源项目中最重要的一个。

Zig 致力于创建一种具有程序级内存控制功能的通用编程语言,其性能优于 C 语言,同时提供更强大、更不易出错的语法。其目标是取代 C 语言,成为编程生态系统中的基准语言。由于 C 语言无处不在(即系统和设备中最常见的组件),Zig 的成功可能意味着性能和稳定性的广泛提升

 

参考:https://www.infoworld.com/article/3709196/the-best-open-source-software-of-2023.html

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

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

相关文章

提升技能,挑战自我——一站式在线题库小程序

在这个信息爆炸的时代,我们总是在寻找一种方式,让自己在众多的知识海洋中快速提升技能,挑战自我。今天,我要向大家推荐一款全新的在线题库小程序KD蝌蚪阿坤,它将帮助你实现这个目标。 KD蝌蚪阿坤是一款全面的在线题库…

长城首款MPV上市,能否迎来「高山」时刻?

作者 | Amy 编辑 | 德新 去年下半年起,自主品牌接二连三抢占高端MPV市场,腾势D9、岚图梦想家、极氪009以及传祺E9等车型接连亮相。 国泰君安证券研究报告显示,新能源MPV 2021年、2022年年销量分别为4.4万和9.2万辆,今年上半年销…

Tp框架如何使用事务和锁,还有查询缓存

1.事务 在ThinkPHP框架中,可以使用think\db\Transaction类来实现事务。 use think\Db; use think\db\Transaction;// 开始事务 Db::startTrans();try {// 执行数据库操作Db::table(user)->where(id, 1)->update([name > John]);// 提交事务Db::commit(); }…

5、计算电机速度【51单片机控制步进电机-TB6600系列】

摘要:本节介绍用定时器定时的方式,精准控制脉冲时间,从而控制步进电机速度。 一、计算过程 电机每一步的角速度等于走这一步所花费的时间,走一步角度等于步距角,走一步的时间等于一个脉冲的时间: TB6600及…

Java中ThreadLocal对象的使用

目录 1、Threadlocal简介 2、ThreadLocal的主要方法: 2.1 initialValue():初始化ThreadLocal变量的值 2.2 set():为当前线程设置ThreadLocal变量的值 2.3 get():获取当前线程中ThreadLocal变量的值 2.4 remove()&#xff1a…

精简版STC单片机串口程序(只有初始化和sendbyte)

摘要:本文分享两个函数构成的STC单片机串口发送程序,代码占用空间极小。不想调用stdio.h和printf但是还想用串口发送简单的调试信息?那就试试它吧! 直接上代码 ,核心函数只有2个,如下所示 void UartInit(v…

newstar week3 pwn

newstar week3 pwn 巩固知识,如有错误记得纠正,感谢师傅们的评阅 puts or system? Arch: amd64-64-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: No PIE (0x400000)int __cdecl main(int argc, const…

springboot-scanBasePackages包扫描

目录 原因: 方式一: 方式二: 原因: 由于对rocketMq进行了一次封装,mq模块里面引用了RocketMQTemplate的bean,如果只引入jar包的依赖,启动的时候不会报错,但是在调用到 RocketMQT…

【OpenCV实现图像阈值处理】

文章目录 概要简单阈值调整自适应阈值调整大津(Otsus)阈值法Otsus 二值化是如何工作的 概要 OpenCV库中的图像处理技术,主要分为几何变换、图像阈值调整和平滑处理三个部分。 在几何变换方面,OpenCV提供了cv.warpAffine和cv.warpPerspective函数&#…

4、让电机转起来【51单片机控制步进电机-TB6600系列】

摘要:本节介绍用简单的方式,让步进电机转起来。其目的之一是对电机转动有直观的感受,二是熟悉整个开发流程。 本系列教程必要的51单片机基础包括IO口操作、中断、定时器三个部分,相关基础教程网上很多,可以自行学习 一…

VMware Ubuntu 关闭自动更新

##1. VMware 17Pro,ubuntu16.04 关闭自动更新 1.1 编辑–》 首选项–》更新–》启动时检查产品更新 2. 这里关了还不够,第二天打开的时候还是提醒系统更新,需要关闭另外的地方 3. 关闭更新检查,默认的是隔天检查一次,…

怎么修复vcomp140.dll丢失问题?5个详细的修复方法分享

在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是“vcomp140.dll丢失”。那么,vcomp140.dll是什么?它丢失会造成哪些问题呢?小编将从以下几个方面进行详细阐述。 一、vcomp140.dll是什么? vco…

如何使用透明贴图实现火焰效果

1、透明贴图的原理 透明贴图是一种纹理贴图,用于模拟物体部分或全部的透明效果。其原理基于透明度和混合技术。 在计算机图形中,如何显示透明的物体是一个具有挑战性的问题。这是因为透明物体不会像不透明物体那样完全遮挡后面的物体,而是允…

【REDIS】redis-命令大全

【REDIS】redis-命令大全 redis-命令的官方文档 键命令 序号命令及描述1DEL key 该命令用于在 key 存在时删除 key。2DUMP key 序列化给定 key ,并返回被序列化的值。3EXISTS key 检查给定 key 是否存在。4EXPIRE key seconds 为给定 key 设置过期时间&#xf…

Python爬虫核心模块urllib的学习

​ 因为在玩Python challenge的时候,有用过这个模块,而且学习这个模块之后也对系统学习网络爬虫有用。 ​ 当时查了各种资料学习,没有碰官网文档(因为还是对英语有抗拒性),但是还是官方的文档最具权威和学…

使用Java做业务开发,如何做好一个定时任务的技术选型?

1. 轻量级任务调度 Quartz Scheduler 适用场景: 单机或简单的分布式任务调度特点: 提供丰富的调度选项,如Cron表达式、固定间隔等;支持持久化,能够在应用重启后恢复任务;支持任务监听和触发器监听。建议: 如果你的应用是基于Spr…

搭建docker本地仓库

1.拉取私有仓库镜像 [rootmaster1 ~]# docker pull registry [rootmaster1 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx v1 546db553f62a About an hour ago …

ftp远程连接传输的常见问题有哪些?如何一站式解决传输问题?

众多传统老行业很多已经部署了FTP传输相关系统,随着数据量和文件量的增加,一些相应的问题也出现了,些问题可能会影响传输的效率和安全性。本文将介绍FTP的常见问题和解决方法,并说明为什么大文件传输平台可以帮助企业实现更快更安…

安卓主板_MTK联发科4G低功耗安卓主板开发板方案

ZM358-DP安卓主板是一款性能功能强大的4G安卓平台。它采用了联发科MTK6737、MTK8735、MTK6753、MTK6735等芯片平台,64位四核Cortex-A53架构,主频高达1.3GHz,搭载ARM Mail-T450 MP2 GPU。 安卓主板具备多路显示屏接口,包括双LVDS、…

强劲升级,太极2.x你值得拥有!

嗨,大家好,最近桃桃没顾得上给大家分享好用好玩的软件。 还记得前段时间给大家分享的太极1.0软件? 最近大佬对软件进行了全新升级,升级后的功能更强更稳定,轻度用户使用基本功能就已经足够了,壕无人性的同学…