InfoWorld 公布 2023 年最佳开源软件,你知道几个

开发 前端
Weaviate 在部署模式、生态系统集成和数据隐私方面为开发人员提供了大量灵活性。Weaviate 将关键词搜索与向量搜索相结合,可快速、可扩展地发现多模态数据(文本、图像、音频、视频)。

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

InfoWorld 是致力于引领 IT 决策者走在科技前沿的国际科技媒体品牌,每年 InfoWorld 都会根据软件对开源界的贡献,以及在业界的影响力评选出当年的 “最佳开源软件” (InfoWorld's Best of Open Source Software Awards, Bossies),该奖项评选已经延续了十多年。

此次上榜的 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 的成功可能意味着性能和稳定性的广泛提升。

“这是我们都应该期待的。另外,Zig 是一个优秀的、老式的草根项目,拥有着巨大的抱负和开源精神。”

责任编辑:武晓燕 来源: OSCHINA
相关推荐

2021-10-20 09:36:16

开源技术 软件

2023-08-01 11:14:07

开源Api软件

2011-09-09 10:15:06

开源

2017-08-23 16:01:30

2024-02-26 00:00:00

前端工具Space.js

2019-07-12 08:45:07

开源微服务框架

2022-11-15 09:28:53

2010-03-03 16:20:42

2010-11-22 09:14:46

最佳开源软件jQuery

2023-04-27 08:15:09

2017-03-06 18:33:11

网络监控工具

2016-03-09 09:35:42

Windows 10开源软件

2018-12-27 08:50:06

JavaScript开源

2016-09-19 14:42:12

大数据SQLPig

2018-11-07 15:44:29

虚拟化服务器桌面

2023-08-04 07:09:26

2021-02-27 17:13:21

前端代码逻辑

2021-10-12 09:20:02

数据库SQL脚本

2024-01-18 00:16:07

点赞
收藏

51CTO技术栈公众号