InfoWorld 公布 2023 年最佳開源軟件,你知道幾個
InfoWorld 公布了 2023 年最佳開源軟件榜單,旨在表彰年度領(lǐng)先的軟件開發(fā)、數(shù)據(jù)管理、分析、人工智能和機器學(xué)習(xí)開源工具。
InfoWorld 是致力于引領(lǐng) IT 決策者走在科技前沿的國際科技媒體品牌,每年 InfoWorld 都會根據(jù)軟件對開源界的貢獻,以及在業(yè)界的影響力評選出當(dāng)年的 “最佳開源軟件” (InfoWorld's Best of Open Source Software Awards, Bossies),該獎項評選已經(jīng)延續(xù)了十多年。
此次上榜的 25 個軟件涵蓋編程語言、運行時、應(yīng)用程序框架、數(shù)據(jù)庫、分析引擎、機器學(xué)習(xí)庫、大型語言模型 (LLM)、用于部署 LLM 的工具等領(lǐng)域,具體如下(點擊每個項目名可跳轉(zhuǎn)進入項目介紹頁面):
Apache Hudi
在構(gòu)建開放式數(shù)據(jù)湖或湖倉一體時,許多行業(yè)都需要一個更可發(fā)展和可變化的平臺。以出版商、廣告商和媒體買家的廣告平臺為例,僅有快速分析是不夠的。InfoWorld 認(rèn)為,Apache Hudi 不僅提供了快速的數(shù)據(jù)格式、表格和 SQL,還使它們能夠進行低延遲的實時分析。它與 Apache Spark、Apache Flink 以及 Presto、StarRocks 和 Amazon Athena 等工具集成。簡而言之,如果你想在數(shù)據(jù)湖上進行實時分析,Hudi 是一個非常不錯的選擇。
Apache Iceberg
“HDFS 和 Hive 太慢了”。Apache Iceberg 不僅能與 Hive 協(xié)同工作,還能直接與 Apache Spark 和 Apache Flink 以及 ClickHouse、Dremio 和 StarRocks 等其他系統(tǒng)協(xié)同工作。Iceberg 可為所有這些系統(tǒng)提供高性能的表格式,同時支持完整的模式演進、數(shù)據(jù)壓縮和版本回滾。Iceberg 是許多現(xiàn)代開放數(shù)據(jù)湖的關(guān)鍵組成部分。
Apache Superset
多年來,Apache Superset 一直是數(shù)據(jù)可視化領(lǐng)域的佼佼者。對于想要大規(guī)模部署自助服務(wù)、面向客戶或面向用戶的分析工具的人來說,Superset 幾乎是唯一的選擇。Superset 幾乎可以為任何分析場景提供可視化功能,包括從餅狀圖到復(fù)雜的地理空間圖表。它適用于大多數(shù) SQL 數(shù)據(jù)庫,并提供 drag-and-drop builder 和 SQL IDE。如果你要對數(shù)據(jù)進行可視化,Superset 值得一試。
Bun
Bun 是采用 Zig 語言編寫的高性能 “全家桶” JavaScript 運行時,官方稱其為 "all-in-one JavaScript runtime"。Bun 提供了打包、轉(zhuǎn)譯、安裝和運行 JavaScript & TypeScript 項目的功能,內(nèi)置原生打包器 (native bundler)、轉(zhuǎn)譯器、task runner、npm 客戶端,以及 fetch、WebSocket等 Web API。
InfoWorld 評價稱,當(dāng)你以為 JavaScript 已經(jīng)進入可預(yù)見的 routine 時,Bun 出現(xiàn)了。這個 “輕佻” 的名字掩蓋了它嚴(yán)肅的目標(biāo):將服務(wù)器端 JS-- 運行時、捆綁程序、包管理器 -- 所需的一切都集成到一個工具中。讓它成為 Node.js 和 NPM 的直接替代品,但速度要快得多。這個簡單的主張似乎讓 Bun 成為了自 Node 顛覆 applecart 以來最具顛覆性的 JavaScript 工具。
Bun 的速度部分歸功于 Zig,其余則歸功于創(chuàng)始人 Jared Sumner 對性能的執(zhí)著追求。除了性能之外,將所有工具集成在一個軟件包中,也讓 Bun 成為 Node 和 Deno 的有力替代品。
Claude 2
Anthropic 的 Claude 2 在單個提示中最多可接受 100K tokens(約 7 萬字),并可生成多達數(shù)千個 tokens 的故事。Claude 可以編輯、改寫、總結(jié)、分類、提取結(jié)構(gòu)化數(shù)據(jù)、根據(jù)內(nèi)容進行問答等。它在英語方面的訓(xùn)練最多,但在其他一系列常用語言方面也表現(xiàn)出色。Claude 還掌握了大量常用編程語言的知識。
Claude 從一開始就被訓(xùn)練成 helpful、honest 以及 harmless 的機器人,并經(jīng)過廣泛的重新訓(xùn)練,變得更加無害,更難產(chǎn)生攻擊性或危險的輸出。它不會根據(jù)你的數(shù)據(jù)進行訓(xùn)練,也不會在互聯(lián)網(wǎng)上查詢答案。
CockroachDB
CockroachDB 是一種分布式 SQL 數(shù)據(jù)庫,可實現(xiàn)強一致性 ACID 事務(wù),通過實現(xiàn)數(shù)據(jù)庫讀寫的水平擴展性,解決了高性能、事務(wù)繁重型應(yīng)用程序的關(guān)鍵擴展性問題。CockroachDB 還支持多區(qū)域和多云部署,以減少延遲并遵守數(shù)據(jù)法規(guī)。部署實例包括 Netflix 的數(shù)據(jù)平臺,該平臺擁有 100 多個 CockroachDB 生產(chǎn)集群,支持媒體應(yīng)用和設(shè)備管理。主要客戶包括 Hard Rock Sportsbook、摩根大通、桑坦德銀行和 DoorDash。
CPython
在 Python 3.11 和 Python 3.12 這兩個版本中,Python 核心開發(fā)團隊對 Python 解釋器的參考實現(xiàn) CPython 進行了一系列變革性升級。其結(jié)果是,Python 運行時性能對所有人來說都實現(xiàn)了大幅提升,而不僅限于那些選擇使用新庫或 cutting-edge 語法的少數(shù)人。
InfoWorld 認(rèn)為,全局解釋器鎖(Global Interpreter Lock)是阻礙 Python 真正實現(xiàn)多線程并行的一個長期障礙。
DuckDB
DuckDB 是一種分析數(shù)據(jù)庫,它秉承了 SQLite 等小型但功能強大的項目的精神。DuckDB 提供所有熟悉的 RDBMS 功能 --SQL 查詢、ACID 事務(wù)、二級索引 -- 但增加了分析功能,如大型數(shù)據(jù)集的連接和聚合。它還可以攝取和直接查詢常見的大數(shù)據(jù)格式,如 Parquet。
HTMX 和 Hyperscript
HTMX 采用了大眾所熟悉和喜愛的 HTML,并通過增強功能對其進行了擴展,使編寫現(xiàn)代網(wǎng)絡(luò)應(yīng)用程序變得更加容易。HTMX 消除了用于連接網(wǎng)絡(luò)前端和后端的大量模板 JavaScript。相反,它使用直觀的 HTML 屬性來執(zhí)行任務(wù),如發(fā)出 AJAX 請求和用數(shù)據(jù)填充元素。
同類項目 Hyperscript 引入了類似于 HyperCard 的語法,簡化了許多 JavaScript 任務(wù),包括異步操作和 DOM 操作??傊琀TMX 和 Hyperscript 為當(dāng)前的反應(yīng)式框架趨勢提供了一個大膽的替代方案。
Istio
Istio 是一個服務(wù)網(wǎng)格,可為基于容器的微服務(wù)簡化網(wǎng)絡(luò)和通信,提供流量路由、監(jiān)控、日志記錄和可觀測性,同時通過加密、身份驗證和授權(quán)功能增強安全性。
Istio 將通信及其安全功能與應(yīng)用程序和基礎(chǔ)架構(gòu)分離開來,從而實現(xiàn)了更安全、更一致的配置。該架構(gòu)由部署在 Kubernetes 集群中的控制平面和用于控制通信策略的數(shù)據(jù)平面組成。2023 年,Istio 從 CNCF 孵化項目中畢業(yè),在云原生社區(qū)中獲得包括谷歌、IBM、紅帽、Solo.io 等公司在內(nèi)的支持和貢獻。
Kata Containers
Kata Containers 結(jié)合了容器的速度和虛擬機的隔離性,是一種安全的容器運行時,使用了英特爾 Clear Containers 和 Hyper.sh runV。Kata Containers 可與 Kubernetes 和 Docker 協(xié)同工作,同時支持多種硬件架構(gòu),包括 x86_64、AMD64、Arm、IBM p 系列和 IBM z 系列。
獲得了谷歌云、微軟、AWS、阿里云、思科、戴爾、英特爾、紅帽、SUSE 和 Ubuntu 等企業(yè)的贊助。
LangChain
LangChain 是一個模塊化框架,可簡化由語言模型驅(qū)動的應(yīng)用程序的開發(fā)。LangChain 使語言模型能夠連接到數(shù)據(jù)源并與其環(huán)境交互。LangChain 組件是模塊化抽象和抽象實現(xiàn)的集合。
LangChain off-the-shelf chains 是組件的結(jié)構(gòu)化組合,用于完成特定的高級任務(wù)。你可以使用組件定制現(xiàn)有的鏈,也可以構(gòu)建新的鏈。LangChain 目前有三個版本: 一個是 Python 版本,一個是 TypeScript/JavaScript 版本,還有一個是 Go 版本。截至目前,已有大約 160 個 LangChain 集成。
Language Model Evaluation Harness
當(dāng)一個新的大語言模型(LLM)發(fā)布時,通常都會被進行評估,將該模型與 ChatGPT 在某個基準(zhǔn)上進行比較,很多公司可能會使用 lm-eval-harness 來生成評估分?jǐn)?shù)。lm-eval-harness 由分布式人工智能研究所 EleutherAI 創(chuàng)建,包含 200 多個基準(zhǔn),而且很容易擴展。該工具甚至被用來發(fā)現(xiàn)現(xiàn)有基準(zhǔn)中的不足,以及為 Hugging Face 的開放式 LLM 排行榜提供支持。
Llama 2
Llama 2 是 Meta AI 的下一代大型語言模型,與 Llama 1 相比,其訓(xùn)練數(shù)據(jù)量增加了 40%(來自公開來源的 2 萬億個 tokens),上下文長度增加了一倍(4096)。
Llama 2 是一個使用優(yōu)化的 Transformer 架構(gòu)的 auto-regressive 語言模型。調(diào)整后的版本使用了監(jiān)督微調(diào)(SFT)和人類反饋強化學(xué)習(xí)(RLHF),以符合人類對有用性和安全性的偏好。Code Llama 是通過在代碼特定數(shù)據(jù)集上對 Llama 2 進行微調(diào)而訓(xùn)練出來的,它可以根據(jù)代碼或自然語言提示生成代碼和有關(guān)代碼的自然語言。
Ollama
Ollama 是一款命令行工具,可在 macOS 和 Linux 上本地運行 Llama 2、Code Llama 和其他模型,并計劃支持 Windows。Ollama 目前支持近二十多個語言模型系列,每個模型系列都有許多可用的 "tags"。Tags 是模型的變體,這些模型使用不同的微調(diào)方法以不同的規(guī)模進行訓(xùn)練,并以不同的級別進行量化,以便在本地良好運行。量化級別越高,模型越精確,但運行速度越慢,所需的內(nèi)存也越大。
Polars
Pandas 能做到的 Polars 不一定能做到,但它能做到的事情都能以極快的速度完成 -- 比 Pandas 快 10 倍,使用的內(nèi)存只有 Pandas 的一半。來自 PySpark 的開發(fā)人員會覺得 Polars API 比 Pandas 中的更易上手。如果你正在處理大量數(shù)據(jù),Polars 會讓你的工作速度更快。
PostgreSQL
PostgreSQL 已經(jīng)有 35 年的歷史,有 700 多位貢獻者參與其中,在關(guān)系數(shù)據(jù)庫管理系統(tǒng)中估計占有 16.4% 的市場份額。最近的一項調(diào)查顯示,在 9 萬名開發(fā)人員中,45% 的人首選 PostgreSQL。
9 月份發(fā)布的 PostgreSQL 16 提升了聚合和選擇不同查詢的性能,增加了查詢并行性,帶來了新的 I/O 監(jiān)控功能,并增加了更細(xì)粒度的安全訪問控制。同樣在 2023 年,Amazon Aurora PostgreSQL 增加了 pgvector,以支持生成式 AI 嵌入,谷歌云也為 AlloyDB PostgreSQL 發(fā)布了類似的功能。
QLoRA
QLoRA 是華盛頓大學(xué)提出的一種有效的微調(diào)方法,可以減少內(nèi)存使用量,足以在單個 48GB GPU 上微調(diào) 65B 參數(shù)模型,同時保留完整的 16 位微調(diào)任務(wù)性能。QLoRA 通過凍結(jié)的 4 位量化預(yù)訓(xùn)練語言模型將梯度反向傳播到低階適配器 (LoRA)。
使用 QLoRA 意味著你可以在臺式機上微調(diào) 30B 以上的龐大參數(shù)模型,與在多個 GPU 上進行全面調(diào)整相比,精度損失很小。事實上,QLoRA 有時甚至做得更好。InfoWorld 評價稱,“低位推理和訓(xùn)練意味著更多的人可以使用 LLM-- 這不正是開源的意義所在嗎?”
RAPIDS
RAPIDS 是用于常見數(shù)據(jù)科學(xué)和分析任務(wù)的 GPU 加速庫的集合。每個庫處理特定的任務(wù),例如用于數(shù)據(jù)幀處理的 cuDF、用于圖形分析的 cuGraph 和用于機器學(xué)習(xí)的 cuML 。
其他庫涵蓋圖像處理、信號處理和空間分析,而集成則將 RAPIDS 引入 Apache Spark、SQL 和其他工作負(fù)載。如果現(xiàn)有的庫都不符合要求,RAPIDS 還包括 RAFT,這是用于構(gòu)建自己的解決方案的 GPU-accelerated primitives 的集合。RRAPIDS 還可與 Dask 攜手跨多個節(jié)點進行擴展,并與 Slurm 一起在高性能計算環(huán)境中運行。
Spark NLP
Spark NLP 是一個自然語言處理庫,可在 Apache Spark 上運行,支持 Python、Scala 和 Java。該庫可幫助開發(fā)人員和數(shù)據(jù)科學(xué)家嘗試使用大型語言模型,包括來自 Google、Meta、OpenAI 等的 Transformer 模型。
Spark NLP 的模型中心有 2 萬多個模型和管道可供下載,用于語言翻譯、命名實體識別、文本分類、問題解答、情感分析和其他用例。2023 年,Spark NLP 發(fā)布了許多 LLM 集成、新的圖像到文本注釋器、對所有主要公共云存儲系統(tǒng)的支持以及對 ONNX(開放神經(jīng)網(wǎng)絡(luò)交換)的支持。
StarRocks
分析技術(shù)已經(jīng)發(fā)生了變化。如今的公司經(jīng)常要向數(shù)百萬并發(fā)用戶實時提供復(fù)雜的數(shù)據(jù),即使是 PB 級的查詢也必須在數(shù)秒內(nèi)完成。StarRocks 是一個查詢引擎,它結(jié)合了 native code(C++)、高效的基于成本的優(yōu)化器、使用 SIMD 指令集的矢量處理、緩存和物化視圖,可高效處理大規(guī)模連接。
StarRocks 甚至能在直接查詢數(shù)據(jù)湖和湖倉一體(包括 Apache Hudi 和 Apache Iceberg)時提供接近原生的性能。InfoWorld 認(rèn)為,無論你是在追求實時分析、提供面向客戶的分析服務(wù),還是只是想在不移動數(shù)據(jù)的情況下查詢數(shù)據(jù)湖,StarRocks 都值得一試。
TensorFlow.js
TensorFlow.js 將谷歌 TensorFlow 機器學(xué)習(xí)框架的強大功能打包到 JavaScript 軟件包中,以最低的學(xué)習(xí)成本為 JavaScript 開發(fā)人員帶來非凡的功能。你可以在瀏覽器、帶有 WebGL 加速功能的純 JavaScript 棧或服務(wù)器上的 tfjs-node 庫中運行 TensorFlow.js。Node 庫為你提供了相同的 JavaScript API,但運行于 C 二進制程序之上,可最大限度地提高速度和 CPU/GPU 使用率。
“就對機器學(xué)習(xí)感興趣的 JS 開發(fā)人員而言,TensorFlow.js 顯然是是一個不錯的選擇。它為 JS 生態(tài)系統(tǒng)做出了值得歡迎的貢獻,讓廣大開發(fā)者更容易接觸到人工智能?!?/p>
vLLM
由于急于在生產(chǎn)中部署大語言模型,導(dǎo)致出現(xiàn)了大量專注于盡可能快地進行推理的框架。vLLM 是最有前途的框架之一,它支持 Hugging Face 模型、兼容 OpenAI 的 API 和 PagedAttention 算法。
目前,它是在生產(chǎn)中為 LLM 提供服務(wù)的不二之選,并且 FlashAttention 2 支持等新功能也在快速添加中。
Weaviate
生成式 AI 的蓬勃發(fā)展激發(fā)了對新型數(shù)據(jù)庫的需求,這種數(shù)據(jù)庫可以支持海量復(fù)雜的非結(jié)構(gòu)化數(shù)據(jù)。向量數(shù)據(jù)庫應(yīng)運而生。
Weaviate 在部署模式、生態(tài)系統(tǒng)集成和數(shù)據(jù)隱私方面為開發(fā)人員提供了大量靈活性。Weaviate 將關(guān)鍵詞搜索與向量搜索相結(jié)合,可快速、可擴展地發(fā)現(xiàn)多模態(tài)數(shù)據(jù)(文本、圖像、音頻、視頻)。它還有用于檢索增強生成(RAG)的開箱即用模塊,可為聊天機器人和其他生成式 AI 應(yīng)用程序提供特定領(lǐng)域的數(shù)據(jù),使其更加有用。
Zig
InfoWorld 稱,Zig 可能是當(dāng)今所有的開源項目中最重要的一個。
Zig 致力于創(chuàng)建一種具有程序級內(nèi)存控制功能的通用編程語言,其性能優(yōu)于 C 語言,同時提供更強大、更不易出錯的語法。其目標(biāo)是取代 C 語言,成為編程生態(tài)系統(tǒng)中的基準(zhǔn)語言。由于 C 語言無處不在(即系統(tǒng)和設(shè)備中最常見的組件),Zig 的成功可能意味著性能和穩(wěn)定性的廣泛提升。
“這是我們都應(yīng)該期待的。另外,Zig 是一個優(yōu)秀的、老式的草根項目,擁有著巨大的抱負(fù)和開源精神。”