Jlama 项目介绍
项目简介
Jlama 是一个现代化的 Java 推理引擎,专用于运行大型语言模型(LLM)。它的设计目的是直接将语言模型推理功能集成到 Java 应用程序中。这一项目以其强大的模型支持和出色的性能优化,为 Java 开发者提供了一种高效利用大型语言模型的途径。
支持的模型
Jlama 支持广泛的语言模型,包括:
- Gemma 和 Gemma 2 模型
- Llama、Llama2 和 Llama3 模型
- Mistral 和 Mixtral 模型
- Qwen2 模型
- IBM Granite 模型
- GPT-2 模型
- BERT 模型
此外,Jlama 还支持 BPE 和 WordPiece 分词器。
功能亮点
Jlama 集成了多种先进的功能:
- 分页注意力机制
- 专家混合(Mixture of Experts)技术
- 工具调用
- 生成嵌入
- 分类器支持
- 支持 Huggingface 的 SafeTensors 模型和分词器格式
- 支持 F32、F16 和 BF16 等数据类型
- Q8 和 Q4 模型量化支持
- 快速的 GEMM 操作
- 分布式推理功能
Jlama 需要 Java 20 或更高版本,并利用新的 Vector API 提高推理速度。
使用场景
Jlama 可以直接在 Java 应用程序中添加 LLM 推理功能,为开发者提供了在应用中嵌入大型语言模型的便利途径。
快速入门
本地客户端使用
Jlama 提供了一个简单易用的命令行工具,借助 jbang,用户可以快速运行和测试模型。
首先,安装 jbang:
curl -Ls https://sh.jbang.dev | bash -s - app setup
然后,安装 Jlama CLI:
jbang app install --force jlama@tjake
安装完成后,可以下载模型并与之互动:
jlama restapi tjake/Llama-3.2-1B-Instruct-JQ4 --auto-download
打开浏览器访问 http://localhost:8080/
即可查看界面。
Jlama 支持的命令包括模型推理、分布式推理等功能,用户可以根据需求选择合适的命令进行操作。
集成到 Java 项目中
将 Jlama 嵌入到 Java 项目中非常简单。用户可以通过 Maven 添加 Jlama 的依赖:
<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>
启用 Java 21 预览功能以支持 Jlama:
export JDK_JAVA_OPTIONS="--add-modules jdk.incubator.vector --enable-preview"
通过这些步骤,开发者可以在项目中使用 Jlama 提供的模型类来运行模型。
项目未来计划
Jlama 计划支持更多的模型和功能,例如 LoRA 和 GraalVM 支持,并持续优化分布式推理能力。
许可和引用
Jlama 的代码采用 Apache 许可证(Apache License)发布。如果在研究中使用了该项目,请进行引用:
@misc{jlama2024,
title = {Jlama: A modern Java inference engine for large language models},
url = {https://github.com/tjake/jlama},
author = {T Jake Luciani},
month = {January},
year = {2024}
}