如何在GPU上运行Java:GPULlama3.java完整教程

Java也能跑大模型?GPULlama3.

Java也能跑大模型?GPULlama3.java让你在GPU上飞起来

还在为Java无法直接调用GPU跑大模型发愁?GPULlama3.java来了——这是一个纯Java实现的GPU加速Llama3推理框架,基于TornadoVM实现。简单来说,你不用写一行OpenCL或CUDA代码,就能让Java程序充分利用GPU算力跑Llama3、Mistral、Qwen等一系列大模型。

项目目前支持Llama3、Mistral、Qwen2.5、Qwen3、Phi3、IBM Granite等主流模型,格式为GGUF。TornadoVM会自动把Java代码编译到GPU上执行,推理效率相当可观。

GPULlama3 demo

为什么Java开发者需要关注这个?

做企业级应用的Javaer应该清楚,传统Java程序只能在CPU上跑推理,调用Python的PyTorch又得走进程间通信,延迟感人。GPULlama3.java直接解决了这个痛点——模型加载、推理、输出全在JVM里完成,延迟低、吞量大,企业内部部署私有知识库或者做RAGpipeline简直不要太爽。

LangChain4j集成:Java版的LangChain

从LangChain4j v1.7.1开始,GPULlama3.java正式成为官方支持的模型提供商。这意味着你可以像使用其他LLM一样,无缝在LangChain4j应用里接入GPULlama3.java,享受完整的GPU加速能力。

LangChain4j Logo

Maven依赖

<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-gpullama3-java</artifactId>
    <versionId>1.7.1</versionId>
</dependency>

快速上手代码

在LangChain4j里使用GPULlama3.java跟用其他模型没区别:

import dev.langchain4j.model.chat.ChatLanguageModel;
import dev.langchain4j.model.gpullama3.GpuLlama3ChatModel;

ChatLanguageModel model = GpuLlama3ChatModel.builder()
    .modelPath("/path/to/llama3-8b.gguf")
    .temperature(0.7)
    .maxTokens(512)
    .build();

String response = model.chat("用Java怎么调用大模型?");
System.out.println(response);

这几行代码就能跑起来。GpuLlama3ChatModel底层自动调用TornadoVM把推理任务分发到GPU,开发者完全感知不到硬件差异。构建AI Agents、做Tool调用、跑RAG检索、搭建Chat API都可以直接复用这套接口。

Gradle用户

implementation 'dev.langchain4j:langchain4j-gpullama3-java:1.7.1'

Quarkus生态集成

如果你在用Quarkus做微服务,GPULlama3.java从v1.4.2开始也官方支持了。Quarkus extension直接封装了模型加载和推理逻辑,配置几行yaml就能在服务里用上本地GPU大模型。

Quarkus Icon

Quarkus配置示例

# application.properties
quarkus.langchain4j.gpullama3.model-path=/models/llama3-8b.gguf
quarkus.langchain4j.gpullama3.temperature=0.7
@Inject
ChatLanguageModel model;

@GET
@Path("/chat")
public String chat(@QueryParam("message") String message) {
    return model.chat(message);
}

不用写额外的胶水代码,Quarkus的CDI容器自动注入模型实例。官方文档在这里,有更详细的配置说明。

Maven依赖

<dependency>
    <groupId>io.quarkiverse.langchain4j</groupId>
    <artifactId>quarkus-langchain4j-gpullama3</artifactId>
    <versionId>1.4.2</versionId>
</dependency>

独立项目引用

如果不依赖LangChain4j或Quarkus生态,也可以直接在项目里引用GPULlama3.java的核心库:

Code Icon

Maven

<dependency>
    <groupId>io.github.beehive-lab</groupId>
    <artifactId>gpullama3-java</artifactId>
    <versionId>最新版本号</versionId>
</dependency>

Gradle

implementation 'io.github.beehive-lab:gpullama3-java:最新版本号'

GPU运行效果

实测在RTX 5090上跑Llama3 8B,配合nvtop可以看到GPU利用率和显存占用相当漂亮:

GPULlama3 demo

TornadoVM会自动把推理kernel编译到GPU上执行,第一次加载模型会稍慢一些(编译开销),后续推理速度取决于模型大小和GPU规格。企业场景建议用显存够大的卡,比如A100或H100,batch处理能力更强。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注