随着大语言模型(LLM)的蓬勃发展,Java 开发者一直在寻找合适的工具来将 LLM 能力集成到自己的应用中。今天为大家介绍一个重量级开源项目 - Jlama,这是一个专为 Java 设计的现代化 LLM 推理引擎。
Jlama 是什么?
Jlama 是一个开源的大型语言模型推理引擎,专门为 Java 生态系统打造。它允许开发者直接在 Java 应用中运行 LLM 推理,无需依赖外部服务(比如 ollama 、vllm 等)。
核心特点:
- 支持多种主流模型:Gemma、Llama、Mistral、Mixtral、Qwen2 等
- 基于 Java 20+ 构建,利用 Vector API 实现高性能推理
快速上手
1. 命令行使用
# 安装 jbang
curl -Ls https://sh.jbang.dev | bash -s - app setup
# 安装 Jlama CLI
jbang app install --force jlama@tjake
# 运行模型(支持 Web UI)
jlama restapi tjake/Llama-3.2-1B-Instruct-JQ4 --auto-download
2. Java 项目集成
在 pom.xml
中添加依赖
<dependency>
<groupId>com.github.tjake</groupId>
<artifactId>jlama-core</artifactId>
<version>${jlama.version}</version>
</dependency>
<dependency>
<groupId>com.github.tjake</groupId>
<artifactId>jlama-native</artifactId>
<!-- 这里不需要改,自动获取OS 架构 -->
<classifier>${os.detected.name}-${os.detected.arch}</classifier>
<version>${jlama.version}</version>
</dependency>
<!-- 本文使用 langchain4j 作为调用框架,所以需要添加以下依赖 -->
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j</artifactId>
<version>1.0.0-beta1</version>
</dependency>
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-jlama</artifactId>
<version>1.0.0-beta1</version>
</dependency>
代码示例
ChatLanguageModel model = JlamaChatModel.builder()
.modelName("tjake/Llama-3.2-1B-Instruct-JQ4")
.temperature(0.7f)
.build();
ChatResponse response = model.chat(
UserMessage.from("Help me write a java version of the palindromic algorithm")
);
System.out.println("\n" + response.aiMessage().text());
运行日志分享
INFO c.g.tjake.jlama.util.HttpSupport - Downloaded file: /Users/lengleng/.jlama/models/tjake_Llama-3.2-1B-Instruct-JQ4/config.json
INFO c.g.tjake.jlama.util.HttpSupport - Downloading file: /Users/lengleng/.jlama/models/tjake_Llama-3.2-1B-Instruct-JQ4/model.safetensors
WARNING: Using incubator modules: jdk.incubator.vector
INFO c.g.t.j.t.o.TensorOperationsProvider - Using Native SIMD Operations (OffHeap)
INFO c.g.tjake.jlama.model.AbstractModel - Model type = Q4, Working memory type = F32, Quantized memory type = I8
Here's a Java implementation of the Palindromic Algorithm:
...
执行过程流程图
特别说明
这里会实时去 huggingface 的下载模型文件,如果下载失败,可以手动下载,然后放到 ~/.jlama/models
目录下。
因为需要 jdk.incubator.vector
模块,所以需要使用 JDK20 及以上版本,并显示启用 jdk.incubator.vector
模块。
--add-modules=jdk.incubator.vector
--enable-native-access=ALL-UNNAMED
--enable-preview
目前 Jlama 虽然提供的都是些小模型,适用于边缘设备应用场景 ,但Jlama 的出现为 Java 开发者提供了一个强大的工具,让在 Java 生态中使用 LLM 变得更加简单和高效。无论是构建企业级应用还是开发创新项目,Jlama 都是一个值得关注的选择。