權威媒體評選:2023 年 25 個優秀開源軟體

Seal數澈發表於2024-01-24

與往年一樣,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 等商業合作伙伴也已採用。


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 為當前的反應式框架趨勢提供了一個大膽的替代方案。


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 模型同樣危險的問題,它會直接告訴您。


Polars

既然我們已經有了 Pandas,為什麼 Python 還需要另一個資料框架重組庫呢?但深入瞭解一下,您會發現 Polars 正是您要找的。Polars 做不了 Pandas 能做的所有事情,但它能做的事情都能以極快的速度完成——比 Pandas 快 10 倍,使用的記憶體只有 Pandas 的一半。來自 PySpark 的開發人員會覺得 Polars API 比 Pandas 中的深奧操作更容易上手。如果您正在處理大量資料,Polars 會讓您的工作速率更快。


QLoRA

Tim Dettmers 和他的團隊似乎肩負著一項使命,那就是讓大型語言模型能夠一切裝置上執行。去年,他們的 bitsandbytes 庫將大型語言模型的推理引入了消費級硬體。今年,他們轉向了訓練,將已經令人印象深刻的 LoRA 技術縮小到量化模型上。使用 QLoRA 意味著您可以在桌上型電腦上微調 30B 以上的龐大引數模型,與在多個 GPU 上進行全面調整相比,精度損失很小。事實上,QLoRA 有時甚至做得更好。低位推理和訓練意味著更多的人可以使用 LLM——這也正是開源的意義所在。


RAPIDS

RAPIDS 是一系列 GPU 加速庫,用於常見的資料科學和分析任務。每個庫都處理特定的任務,如用於資料幀處理的 cuDF、用於圖形分析的 cuGraph 和用於機器學習的 cuML。其他庫涵蓋映象處理、訊號處理和空間分析,而整合則將 RAPIDS 帶到 Apache Spark、SQL 和其他工作負載中。如果現有的庫都不符合要求,RAPIDS 還包括 RAFT,這是一個 GPU 加速基元集合,用於構建自己的解決方案。RAPIDS 還可與 Dask 攜手在多個節點上擴充套件,並與 Slurm 攜手在高效能運算環境中執行。


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 是一個優秀的、老式的草根專案,有著巨大的抱負和開源精神。


來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70026925/viewspace-3004894/,如需轉載,請註明出處,否則將追究法律責任。

相關文章