随着大语言模型(LLM)的蓬勃发展,Java 开发者一直在寻找合适的工具来将 LLM 能力集成到自己的应用中。今天为大家介绍一个重量级开源项目 - Jlama,这是一个专为 Java 设计的现代化 LLM 推理引擎。
Jlama 是什么? Jlama 是一个开源的大型语言模型推理引擎,专门为 Java 生态系统打造。它允许开发者直接在 Java 应用中运行 LLM 推理,无需依赖外部服务(比如 ollama 、vllm 等)。
核心特点:
支持多种主流模型:Gemma、Llama、Mistral、Mixtral、Qwen2 等
基于 Java 20+ 构建,利用 Vector API 实现高性能推理
快速上手 1. 命令行使用 1 2 3 4 5 6 7 8 curl -Ls https://sh.jbang.dev | bash -s - app setup jbang app install --force jlama@tjake jlama restapi tjake/Llama-3.2-1B-Instruct-JQ4 --auto-download
2. Java 项目集成 在 pom.xml 中添加依赖 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 <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 > <classifier > ${os.detected.name}-${os.detected.arch}</classifier > <version > ${jlama.version}</version > </dependency > <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 >
代码示例 1 2 3 4 5 6 7 8 9 10 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());
运行日志分享 1 2 3 4 5 6 7 8 9 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 模块。
1 2 3 --add-modules=jdk.incubator.vector --enable-native-access=ALL-UNNAMED --enable-preview
总结 目前 Jlama 虽然提供的都是些小模型,适用于边缘设备应用场景 ,但Jlama 的出现为 Java 开发者提供了一个强大的工具,让在 Java 生态中使用 LLM 变得更加简单和高效。无论是构建企业级应用还是开发创新项目,Jlama 都是一个值得关注的选择。