自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java家族出列:十款值得關(guān)注的生成式AI工具與框架

譯文 精選
人工智能
Python開發(fā)者獨(dú)享AI話語(yǔ)權(quán)的時(shí)代該結(jié)束了。以下十款高人氣Java工具,將助你將AI深度集成到Java應(yīng)用與工作流中。?

譯者 | 核子可樂(lè)

審校 | 重樓

盡管Java并非大多數(shù)程序員構(gòu)建AI/ML項(xiàng)目的首選語(yǔ)言——畢竟Python擁有龐大的AI/ML框架生態(tài)——但Java在AI、機(jī)器學(xué)習(xí)及生成式AI革命中仍占據(jù)重要席位。其技術(shù)優(yōu)勢(shì)和廣泛的生態(tài)系統(tǒng)使其成為許多開發(fā)者的首選,尤其是那些偏好嚴(yán)格類型定義和JVM高性能的開發(fā)者。甚至部分Python愛(ài)好者也會(huì)通過(guò)Jython運(yùn)行代碼以發(fā)揮JVM的速度優(yōu)勢(shì)。

歷經(jīng)Sun與甲骨文三十年的持續(xù)創(chuàng)新,加之OpenJDK項(xiàng)目的持續(xù)演進(jìn),Java在保持向兼容的同時(shí)不斷引入新特性。這種"穩(wěn)健優(yōu)先"的理念,使得開發(fā)者無(wú)需離開熟悉的強(qiáng)類型Java環(huán)境,即可獲得豐富的AI/ML解決方案。

配合以下工具清單,我們堅(jiān)信Java團(tuán)隊(duì)完全能高效實(shí)現(xiàn)AI集成;換言之,Python開發(fā)者獨(dú)享AI話語(yǔ)權(quán)的時(shí)代該結(jié)束了。

1.Spring AI

多年來(lái),Spring一直是構(gòu)建從Web應(yīng)用到微服務(wù)各類項(xiàng)目的可靠基礎(chǔ)。如今Spring AI通過(guò)提供一套組織AI集成流程的抽象層,進(jìn)一步簡(jiǎn)化了將任意類型AI引入該生態(tài)的可能。

開發(fā)者可通過(guò)Spring AI抽象層快速集成Anthropic、OpenAI等主流提供商的模型,處理聊天補(bǔ)全、內(nèi)容審核等任務(wù)。所有主流商業(yè)及開源模型均受支持。

需要本地存儲(chǔ)向量數(shù)據(jù)時(shí),可直接接入Milvus、Pinecone等十余種數(shù)據(jù)庫(kù)。Spring AI會(huì)自動(dòng)處理嵌入向量的序列化/反序列化,確保開發(fā)者操作Java對(duì)象的同時(shí),數(shù)據(jù)庫(kù)存儲(chǔ)純向量數(shù)據(jù)。

Spring AI還內(nèi)置了多項(xiàng)現(xiàn)代應(yīng)用開發(fā)標(biāo)配功能,包括自動(dòng)存儲(chǔ)聊天記錄以便追溯、AI模型元評(píng)估功能以減少/標(biāo)記模型幻覺(jué)等。

2.LangChain4j

許多應(yīng)用需要將向量數(shù)據(jù)庫(kù)與多個(gè)大語(yǔ)言模型(LLM)整合到統(tǒng)一門戶。例如生成式AI模型輸出文本后,圖像生成LLM進(jìn)行配圖,全流程由審核AI監(jiān)控內(nèi)容合規(guī)性。

LangChain4j是JavaScript/Python社區(qū)中極具人氣的LangChain框架的Java實(shí)現(xiàn)版。它通過(guò)強(qiáng)大的抽象層將不同模型和數(shù)據(jù)存儲(chǔ)統(tǒng)一整合。數(shù)十種模型與數(shù)據(jù)存儲(chǔ)通過(guò)標(biāo)準(zhǔn)化接口捆綁,共同構(gòu)成開發(fā)中樞。

3.Deeplearning4J

面對(duì)AI分類任務(wù)的Java開發(fā)者,可求助于Eclipse Deeplearning4J(DL4J)生態(tài)。該框架支持廣泛的機(jī)器學(xué)習(xí)算法,輸入原始數(shù)據(jù)即可輸出調(diào)優(yōu)后的決策模型。

核心引擎libnd4j采用C++編寫,確保核心ML原語(yǔ)的高效執(zhí)行。通過(guò)nd4j(數(shù)值計(jì)算)和Samediff(自動(dòng)微分)兩大模塊、NumPy以及TensorFlow/PyTorch的可鏈接操作實(shí)現(xiàn)算法。數(shù)據(jù)流由Apache Spark負(fù)責(zé)定義。

盡管框架統(tǒng)一使用Java接口,但Deeplearning4J支持多語(yǔ)言實(shí)驗(yàn)——Kotlin、Scala等JVM語(yǔ)言可直接交互,Python算法可通過(guò)Python4j運(yùn)行。開源項(xiàng)目文檔提供了豐富示例。

4.Apache Spark MLib

處理大規(guī)模數(shù)據(jù)集的數(shù)據(jù)科學(xué)家長(zhǎng)期依賴Spark這一Apache項(xiàng)目,而MLlib是其專為機(jī)器學(xué)習(xí)算法優(yōu)化的擴(kuò)展層。

數(shù)據(jù)可存儲(chǔ)于任何Hadoop風(fēng)格存儲(chǔ)系統(tǒng)算法可以用任何一種主要語(yǔ)言進(jìn)行編碼。Java、Scala或任何以JVM為中心的語(yǔ)言均可支持此外,Spark用戶也添加了膠水代碼來(lái)使用Python或R,借此享受這兩種語(yǔ)言在數(shù)據(jù)分析領(lǐng)域的優(yōu)勢(shì)

MLlib的核心吸引力在于預(yù)置了決策樹、聚類、交替最小二乘等經(jīng)典算法。像大量矩陣的奇異值分解這樣的大型計(jì)算可以分布在多臺(tái)機(jī)器上,在極大提升性能的同時(shí),開發(fā)者甚至無(wú)需編寫大量代碼。Spark的迭代式流水線設(shè)計(jì),使MLlib速度較MapReduce快百倍。

5.Testcontainers

多數(shù)LLM運(yùn)行在Docker容器中,因此容器管理工具也非常重要。Testcontainers是開源的容器生命周期管理庫(kù),可輕松啟動(dòng)/關(guān)閉容器并管理IO通道,是集成LLM的最簡(jiǎn)方案。預(yù)置模塊支持?jǐn)?shù)據(jù)庫(kù)、消息隊(duì)列等常見(jiàn)組件的快速部署。

6.GraalPy

從名稱上,GraalPy似乎專為Python設(shè)計(jì),實(shí)則不然。GraalPy是優(yōu)化后的Python3嵌入版本,可在JVM內(nèi)高效運(yùn)行Python代碼。Java開發(fā)者可借此利用全部Python生態(tài),且項(xiàng)目宣稱保持著JVM內(nèi)Python執(zhí)行速度紀(jì)錄。作為GraalVM項(xiàng)目的一部分,GraalPy旨在簡(jiǎn)化虛擬環(huán)境中的技術(shù)棧部署。

7.Apache OpenNLP

文本學(xué)習(xí)離不開大量預(yù)處理任務(wù):清除排版指令、分段、分塊等。Apache OpenNLP提供基礎(chǔ)算法構(gòu)建ML基礎(chǔ),涵蓋從分詞到句法分析的全流程。

其工具涵蓋了從低級(jí)分割和令牌、再到高級(jí)解析的各個(gè)領(lǐng)域。語(yǔ)言檢測(cè)命名實(shí)體提取等附加功能可以根據(jù)需要隨時(shí)部署。OpenNLP的JAR文件中直接提供超過(guò)32種語(yǔ)言的模型,開發(fā)者也可以從零訓(xùn)練自己的模型。

這款工具與Java生態(tài)系統(tǒng)集成良好。UIMASolr等多個(gè)項(xiàng)目已經(jīng)在利用OpenNLP來(lái)解鎖自然語(yǔ)言文本中的模式。與Maven和Gradle的集成也使其啟動(dòng)變得格外簡(jiǎn)單。

8.Neo4j

當(dāng)應(yīng)用需要檢索增強(qiáng)型(RAG)數(shù)據(jù)存儲(chǔ)時(shí),圖數(shù)據(jù)庫(kù)Neo4j就成了絕佳解決方案。其Java基礎(chǔ)使其能輕松整合RAG應(yīng)用與圖數(shù)據(jù)庫(kù),提供統(tǒng)一的GraphRAG存儲(chǔ)方案。

9.Stanford CoreNLP

斯坦福NLP團(tuán)隊(duì)開發(fā)的CoreNLP提供另一套NLP工具鏈,可處理文本分割、標(biāo)準(zhǔn)化(如數(shù)字/日期)等任務(wù)。

開發(fā)者對(duì)其高精度預(yù)置模型(如情感分析、指代消解)和高級(jí)解析算法普遍贊賞有加。該庫(kù)的高級(jí)功能也降低了復(fù)雜解析算法與策略的實(shí)現(xiàn)門檻。CoreNLP支持九大主要語(yǔ)言,且可與Gradle/Maven輕松集成。

10.Jllama

某些特定場(chǎng)景下,依托本地可控JVM運(yùn)行模型往往較調(diào)用遠(yuǎn)程云API更具優(yōu)勢(shì),例如硬件成本低、隱私安全可控。Jllama可加載Gemma、Llama、Qwen、Granite等開源模型進(jìn)行推理,支持聊天、提示補(bǔ)全、OpenAI API兼容等功能。

項(xiàng)目代碼利用系列最新Java特性,比如Vector API和支持simd的擴(kuò)展,這些擴(kuò)展可以加速LLM推理的并行執(zhí)行。代碼還將工作負(fù)載劃分為多個(gè)部分,并將其分布在集群中的可用計(jì)算資源上。

原文標(biāo)題:10 Java-based tools and frameworks for generative AI,作者:Peter Wayner

責(zé)任編輯:姜華 來(lái)源: 51CTO內(nèi)容精選
相關(guān)推薦

2010-09-03 13:54:44

PHP開發(fā)工具

2023-11-13 09:00:00

2019-09-02 08:57:35

滲透測(cè)試開源工具網(wǎng)站安全

2020-11-12 10:40:37

Kubernetes日志運(yùn)維

2020-10-30 20:50:24

Kubernetes容器工具

2014-11-14 09:41:53

Java工具

2011-08-30 09:43:29

2024-09-18 06:20:00

2019-03-05 09:00:00

工具性能數(shù)據(jù)

2019-04-24 09:40:24

ARAR應(yīng)用移動(dòng)開發(fā)

2018-03-09 08:56:58

AI平臺(tái)物聯(lián)網(wǎng)自動(dòng)配置

2024-08-05 14:13:56

2024-04-22 15:00:00

AIAI輔助編程工具開發(fā)

2023-10-09 11:20:00

2019-08-23 09:00:00

PHP開發(fā)工具編程 語(yǔ)言

2019-07-03 10:00:16

NoSQLNewSQL數(shù)據(jù)庫(kù)

2020-02-03 09:30:42

開發(fā)技能代碼

2022-01-12 00:58:24

Java云框架開發(fā)

2021-11-30 00:07:31

區(qū)塊鏈游戲技術(shù)

2025-03-24 00:00:00

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)