与从前相同,2023 年的 InfoWorld 最佳开源软件奖评选了许多令人惊叹且形形色色的开源项目。在这25个获奖项目中,您会了解到和编程言语、运转时、运用程序结构、数据库、剖析引擎、机器学习库、大型言语模型 (LLM) 有关的东西,以及至少一两个超出预期的项目。
Apache Hudi
在构建开放数据湖或湖仓一体时,许多职业都需求一个更可开展和可变化的渠道。以出版商、广告商和媒体买家的广告渠道为例——仅有快速剖析是不够的。Apache Hudi 不只供给了快速的数据格式、表格和 SQL,还使它们能够进行低推迟的实时剖析。它是与 Apache Spark、Apache Flink 以及 Presto、StarRocks(见下文)和 Amazon Athena 等东西集成。简而言之,假如您想在数据湖上进行实时剖析,Hudi 是一个非常不错的挑选。
Apache Iceberg
事实上,假如成果需求花费很长时间,开发人员一般不会在乎 “扩展功用” 是否好。而Apache Iceberg 却兼备这两个优势。不只能与 Hive 兼容,还能直接与 Apache Spark 和 Apache Flink 以及 ClickHouse、Dremio 和 StarRocks 等其他体系协同作业。Iceberg 可为全部这些体系供给高功用的表格式,一起支撑完好的形式演进、数据压缩和版别回滚。它或许能成为许多现代开放数据湖的关键组成部分。
Apache Superset
多年来,Apache Superset 一直是数据可视化领域的标杆。关于想要大规模布置自助服务、面向客户或面向用户的剖析东西的人来说,Superset 好像是唯一的挑选。Superset 几乎能够为任何剖析场景供给可视化功用,包含从饼状图到杂乱的地舆空间图表。它可与大多数 SQL 数据库对话,并供给拖放生成器和 SQL IDE。假如您要对数据进行可视化,Superset 值得您一试。
Bun
就在开发人员普遍认为 JavaScript 即将进入可预测的常规作业时,Bun 呈现了。这个轻佻的名字掩盖了它严肃的方针:将服务器端 JS–运转时、捆绑程序、包管理器——所需的全部都集成到一个东西中。让它成为 Node.js 和 NPM 的直接替代品,但速度要快得多。这一简单的主张好像让 Bun 成为了自 Node 推翻苹果购物车以来最具颠覆性的 JavaScript 东西。
Bun 的速度部分归功于 Zig(见下文),其余则归功于创始人 Jared Sumner 对功用的执着寻求。您能够在命令行上立即感受到它的异乎寻常。除了功用之外,将全部东西集成在一个数据包中,也让 Bun 成为 Node 和 Deno 的有力替代品。
Claude 2
Anthropic 的 Claude 2 在单个提示中最多可接受 10 万个符号(约 7 万字),并可生成多达数千个符号的故事。它能够修改、改写、总结、分类、提取结构化数据、依据内容进行问答等。虽然它在英语方面的练习最多,但在其他一系列常用言语方面也表现出色。Claude 还把握了很多常用编程言语的常识。
Claude 从一开始就被练习的乐于助人、诚笃、无害(HHH),并经过广泛的重新练习,变得更难产生攻击性或风险的输出。它不会依据您的数据进行练习,也不会在互联网上查询答案。美国和英国的用户能够免费下载 Claude 测试版,Jasper、Sourcegraph 和 AWS 等商业合作伙伴也已选用。
概况请见:claude.ai/
CockroachDB
CockroachDB 是一个分布式 SQL 数据库,可完结强一致性 ACID 业务,经过完结数据库读写的水平可扩展性,为高功用、业务深重的运用程序解决了一个关键的可扩展性问题。CockroachDB 还支撑多区域和多云布置,以削减推迟并恪守数据法规。布置实例包含 Netflix 的数据渠道,该渠道有 100 多个 CockroachDB 生产集群,支撑媒体运用和设备管理。主要客户还包含 Hard Rock Sportsbook、JPMorgan Chase、 Santander 和 DoorDash。
CPython
机器学习、数据科学、使命自动化、网络开发……都是 Python 编程言语具备的优势。但运转时功用却不是其中之一,不过这种情况正在改变。在 Python 3.11 和 Python 3.12 这两个版别中,Python 中心开发团队对 Python 解说器的参考完结 CPython 进行了一系列革新性升级。其成果是,Python 运转时对全部人来说都更快了,而不只仅是那些挑选运用新库或前沿语法的少数人。Global Interpreter Lock 是阻止 Python 真实完结多线程并行的一个长期妨碍。
DuckDB
OLAP 数据库很巨大,因为没有人会把 IBM Cognos、Oracle OLAP、SAP Business Warehouse 或 ClickHouse 描绘为 “轻量级”。但是,假如您需求的仅仅满足的 OLAP–一个嵌入式、进程内运转、无外部依赖的剖析数据库呢?DuckDB 作为一种剖析数据库,它秉承了 SQLite 等小型但功用强壮的项目的精力。DuckDB 供给全部了解的 RDBMS 功用——SQL 查询、ACID 业务、二级索引–但增加了剖析功用,如大型数据集的衔接和聚合。它还能够吸取和直接查询常见的大数据格式,如 Parquet。
HTMX 和 Hyperscript
HTMX 选用了开发人员们了解和喜欢的 HTML,并经过增强功用对其进行了扩展,使编写现代网络运用程序变得更加简单。HTMX 消除了用于衔接网络前端和后端的很多模板 JavaScript。并且,它运用直观的 HTML 特点来执行使命,如发出 AJAX 请求和用数据填充元素。同类项目 Hyperscript 引入了类似于 HyperCard 的语法,简化了许多 JavaScript 使命,包含异步操作和 DOM 操作。总归,HTMX 和 Hyperscript 为当前的反应式结构趋势供给了一个大胆的替代方案。
概况请见:github.com/bigskysoftw… 和 github.com/hyperhype/h…
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 和阿里巴巴云是根底设施赞助商。其他支撑 Kata Containers 的公司包含 Cisco, Dell, Intel, Red Hat, SUSE, and Ubuntu。最近发布的版别为 GPU 设备和笼统设备管理带来了保密容器。
LangChain
LangChain 是一个模块化结构,可简化由言语模型驱动的运用程序的开发。LangChain 使言语模型能够衔接到数据源,并与其环境进行交互。LangChain 组件是模块化笼统和笼统完结的调集。LangChain 现成的链是组件的结构化组合,用于完结特定的高级使命。您能够运用组件定制现有的链,也能够构建新的链。LangChain 现在有三个版别:一个是 Python 版别,一个是 TypeScript/JavaScript 版别,还有一个是 Go 版别。到现在,已有大约 160 个 LangChain 集成。
言语模型评价 Harness
当一个新的大型言语模型(LLM)发布时,您通常会看到一组评价分数,将该模型与 ChatGPT 在某个基准上进行比较。更有可能的是,该模型背面的公司会运用 lm-eval-harness 来生成这些分数。lm-eval-harness 由分布式人工智能研究所 EleutherAI 创立,包含 200 多个基准,并且很简单扩展。该东西乃至被用来发现现有基准中的不足,以及为 Hugging Face 的开放式 LLM 排行榜供给支撑。
Llama 2
Llama 2 是 Meta AI 的下一代大型言语模型,与 Llama 1 比较,其练习数据量增加了 40%(2 万亿个来自公开来源的词库),上下文长度增加了一倍(4096)。Llama 2 是一个自动回归言语模型,运用优化的转换器架构。调整后的版别运用了监督微调(SFT)和人类反馈强化学习(RLHF),以契合人类对有用性和安全性的偏好。Code Llama 是经过在代码特定数据集上对 Llama 2 进行微调而练习出来的,它能够依据代码或自然言语提示生成代码和有关代码的自然言语。
Ollama
Ollama 是一款命令行东西,可在 macOS 和 Linux 上本地运转 Llama 2、Code Llama 和其他模型,并方案支撑 Windows。Ollama 现在支撑近二十多个言语模型系列,每个模型系列都有许多 “标签”。标签是模型的变体,这些模型运用不同的微调方法以不同的规模进行练习,并以不同的等级进行量化,以便在本地杰出运转。量化等级越高,模型越精确,但运转速度越慢,所需的内存也越大。
Ollama 支撑的模型包含一些未删减的变体。这些模型是运用埃里克-哈特福德(Eric Hartford)设计的一种程序建立的,能够在不运用通常的防护措施的情况下练习模型。例如,假如您问 Llama 2 如何制作火药,它会警告您制作炸药是不合法和风险的。假如您问未经审查的 Llama 2 模型同样的问题,它会直接告诉您。
Polars
既然咱们现已有了著名的 Pandas,为什么 Python 还需求另一个数据结构重组库呢?但深化了解一下,您会发现 Polars 正是您要找的。Polars 做不了 Pandas 能做的全部事情,但它能做的事情都能以极快的速度完结——比 Pandas 快 10 倍,运用的内存只要 Pandas 的一半。来自 PySpark 的开发人员会觉得 Polars API 比 Pandas 中的艰深操作更简单上手。假如您正在处理很多数据,Polars 会让您的作业速率更快。
QLoRA
Tim Dettmers 和他的团队好像肩负着一项使命,那就是让大型言语模型能够全部设备上运转。去年,他们的 bitsandbytes 库将大型言语模型的推理引入了消费级硬件。本年,他们转向了练习,将现已令人印象深刻的 LoRA 技能缩小到量化模型上。运用 QLoRA 意味着您能够在台式机上微调 30B 以上的巨大参数模型,与在多个 GPU 上进行全面调整比较,精度损失很小。事实上,QLoRA 有时乃至做得更好。低位推理和练习意味着更多的人能够运用 LLM——这也正是开源的含义地点。
概况请见: github.com/artidoro/ql…
RAPIDS
RAPIDS 是一系列 GPU 加快库,用于常见的数据科学和剖析使命。每个库都处理特定的使命,如用于数据帧处理的 cuDF、用于图形剖析的 cuGraph 和用于机器学习的 cuML。其他库包含镜像处理、信号处理和空间剖析,而集成则将 RAPIDS 带到 Apache Spark、SQL 和其他作业负载中。假如现有的库都不契合要求,RAPIDS 还包含 RAFT,这是一个 GPU 加快基元调集,用于构建自己的解决方案。RAPIDS 还可与 Dask 携手在多个节点上扩展,并与 Slurm 携手在高功用计算环境中运转。
概况请见:github.com/rapidsai
Spark NLP
Spark NLP 是一个自然言语处理库,可在 Apache Spark 上运转,支撑 Python、Scala 和 Java。该库可帮助开发人员和数据科学家尝试运用大型言语模型,包含来自谷歌、Meta、OpenAI 等公司的转换器模型。Spark NLP 的模型中心有 2 万多个模型和管道可供下载,用于言语翻译、命名实体辨认、文本分类、问题解答、情感剖析和其他用例。2023 年,Spark NLP 发布了许多 LLM 集成、新的镜像到文本注释器,用于为镜像增加标题并支撑全部主要的公共云存储体系以及ONNX。
StarRocks
现在,公司经常向数百万并发用户实时供给杂乱的数据。即使是 PB 级查询,也必须在数秒内完结。StarRocks 是一个查询引擎,它结合了本地代码(C++)、高效的根据成本的优化器、运用 SIMD 指令集的矢量处理、缓存和物化视图,能够高效地处理大规模衔接。StarRocks 乃至能在直接查询数据湖和湖仓一体(包含 Apache Hudi 和 Apache Iceberg)时供给挨近原生的功用。不管您是在寻求实时剖析、供给面向客户的剖析服务,还是仅仅想在不移动数据的情况下查询数据湖,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 算法,该算法的生产量是 Hugging Face 变换器库的 20 倍。现在,它是为生产中的 LLM 供给服务的不二之选,FlashAttention 2 支撑等新功用也在快速增加中。
Weaviate
GenAI 的蓬勃开展激发了对新式数据库的需求,这种数据库能够支撑很多杂乱的非结构化数据。矢量数据库应运而生。Weaviate 在布置形式、生态体系集成和数据隐私方面为开发人员供给了很多灵活性。Weaviate 将关键词查找与矢量查找相结合,可快速、可扩展地发现多模态数据(文本、图像、音频、视频)。它还有用于 RAG 开箱即用模块,可为 chatbots 和其他 GenAI 运用程序供给特定领域的数据,使其更加有用。
Zig
在当今全部的开源项目中,Zig 可能是最重要的一个。Zig 致力于创立一种具有程序级内存操控功用的通用编程言语,其功用优于 C 言语,一起供给更强壮、更不易犯错的语法。其方针是替代 C 言语,成为编程生态体系中的基准言语。因为 C 言语无处不在(即体系和设备中最常见的组件),Zig 的成功意味着功用和稳定性的广泛进步。这是咱们都应该期待的。别的,Zig 是一个优秀的、老式的草根项目,有着巨大的抱负和开源精力。