賈拉馬簡介
1. 概述
Jlama是一個推理引擎,這意味著它運行一個預先訓練的 AI 模型來產生輸出,而無需自行訓練模型。換句話說,它使我們能夠直接在本機上運行大型語言模型 (LLM) ,而無需依賴外部 API。這使得在 Java 應用程式中本地使用 AI 模型變得非常容易。
在本簡短的實作教程中,我們將快速上手 Jlama。我們將使用 Java 和 Maven 從 Hugging Face 下載模型,配置提示符,並在本地針對該模型運行它。
2. 將 Jlama 整合到 Maven 專案中
設定和開始使用 Jlama 有幾種不同的方法:
-
jlama-cli模組提供了一個 CLI 工具,用於快速實驗和互動式會話。 - 對於需要HTTP整合的應用,
jlama-net模組允許我們將Jlama部署為具有OpenAI相容端點的REST API服務。 - 我們可以使用
jlama-native模組將推理直接嵌入到 Maven 專案中,從而直接從程式碼運行模型。
首先,讓我們將必要的依賴項新增到pom.xml檔案中。除了[jlama-native](https://mvnrepository.com/artifact/com.github.tjake/jlama-native)之外,我們還需要導入jlama-core模組,該模組提供了與嵌入式推理引擎互動的 Java API:
<dependency>
<groupId>com.github.tjake</groupId>
<artifactId>jlama-native</artifactId>
<!-- supports linux-x86_64, macos-x86_64/aarch_64, windows-x86_64 -->
<classifier>${jlama-native.classifier}</classifier>
<version>0.8.4</version>
</dependency>
<dependency>
<groupId>com.github.tjake</groupId>
<artifactId>jlama-core</artifactId>
<version>0.8.4</version>
</dependency>
Jlama 使用了 Java 21 的預覽特性,特別是用於高效能操作的 Vector API。但是,要啟用這些特性,我們需要使用對應的標誌來設定 JVM。例如,我們可以將這些選項新增到 Maven 編譯器和 Surefire 插件中,或直接透過環境變數進行設定:
set JDK_JAVA_OPTIONS=--add-modules jdk.incubator.vector --enable-preview
這樣,我們就有可能從最新的優化中受益。
3. 運行提示
現在,讓我們下載一個模型並執行一個初始提示。
首先,我們從huggingface.co/tjake提供的選項中選擇一個模型。這很簡單,因為我們可以使用 Jlama API 從本機檔案系統載入模型,或者如果模型尚未存在於 Hugging Face 中,則會自動從 Hugging Face 下載該模型:
static AbstractModel loadModel(String workingDir, String model) throws IOException {
File localModelPath = new Downloader(workingDir, model)
.huggingFaceModel();
return ModelSupport.loadModel(localModelPath, DType.F32, DType.I8);
}
如我們所見, ModelSupport.loadModel()接受兩個資料類型參數。 DType.F32 DType.F32我們使用 32 位元浮點數進行精確計算DType.I8表示我們使用 8 位元整數進行緊湊儲存。
之後,我們可以使用此模型根據提示產生文字。為此, Jlama API 提供了一個簡潔的建構器模式,讓我們以聲明式的方式配置產生參數。例如,我們可以設定會話 ID 以在多個提示之間保持上下文一致,指定響應的最大標記數,並透過temperature參數控制輸出的創造性:
public static void main(String[] args) throws IOException {
// available models: https://huggingface.co/tjake
AbstractModel model = loadModel("./models", "tjake/Llama-3.2-1B-Instruct-JQ4");
PromptContext prompt = PromptContext.of("Why are llamas so cute?");
Generator.Response response = model.generateBuilder()
.session(UUID.randomUUID())
.promptContext(prompt)
.ntokens(256)
.temperature(0.3f)
.generate();
System.out.println(response.responseText);
}
static AbstractModel loadModel(String workingDir, String model) throws IOException {
File localModelPath = new Downloader(workingDir, model)
.huggingFaceModel();
return ModelSupport.loadModel(localModelPath, DType.F32, DType.I8);
}
就這樣!這就是我們下載模型並使用 Java 和 Maven 在本地運行它所需的一切。
4. 結論
在這篇短文中,我們學習如何透過將 Jlama 整合到基於 Maven 的 Java 專案中來開始使用 Jlama。
首先,我們從 Hugging Face 下載了一個模型,配置了提示訊息,並使用 Jlama Java API 在本地運行了推理。有了這個基礎,就可以輕鬆地開始嘗試不同的模型、提示資訊和生成設置,從而將 AI 驅動的功能直接整合到 Java 應用程式中。
與往常一樣,本文中的程式碼可在 GitHub 上找到。