llama.rn 项目使用与启动指南
llama.rn React Native binding of llama.cpp 项目地址: https://gitcode.com/gh_mirrors/ll/llama.rn
1. 项目介绍
llama.rn 是一个 React Native 的绑定库,用于在 React Native 应用中集成 llama.cpp,一个纯 C/C++ 编写的 LLaMA 模型推理库。LLaMA 模型是一种基于 Transformer 的通用预训练语言模型,llama.rn 使得 React Native 应用能够利用 LLaMA 模型的能力,进行文本生成、问答、文本理解等任务。
2. 项目快速启动
安装
在您的 React Native 项目中,首先需要安装 llama.rn:
npm install llama.rn
iOS 配置
对于 iOS 项目,您需要重新运行 npx pod-install
命令。默认情况下,llama.rn 会使用预编译的 rnllama.xcframework
。如果您希望从源代码编译,请在您的 Podfile 中设置 RNLLAMA_BUILD_FROM_SOURCE
为 1
。
Android 配置
对于 Android 项目,如果启用了 ProGuard,请在项目的 android/app/proguard-rules.pro
文件中添加以下规则:
# llama.rn
-keep class com.rnllama.** { *; }
默认情况下,llama.rn 会使用预编译的库。如果您希望从源代码编译,请在 android/gradle.properties
文件中设置 rnllamaBuildFromSource
为 true
。
初始化模型
以下是如何初始化 LLaMA 模型的示例代码:
import { initLlama } from 'llama.rn';
const modelPath = 'file://<path to gguf model>';
// 初始化 LLaMA 上下文(可能需要一些时间)
const context = await initLlama({
model: modelPath,
use_mlock: true,
n_ctx: 2048,
n_gpu_layers: 99,
// 其他参数...
});
文本完成
初始化模型后,您可以使用以下代码来完成文本:
import { initLlama } from 'llama.rn';
const stopWords = [
'</s>',
'<|end|>',
'<|eot_id|>',
'<|end_of_text|>',
'<|im_end|>',
'<|EOT|>',
'<|END_OF_TURN_TOKEN|>',
'<|end_of_turn|>',
' ',
];
// 执行聊天完成
const msgResult = await context.completion({
messages: [
{ role: 'system', content: '这是一个用户和助手的对话,一个友好的聊天机器人。' },
{ role: 'user', content: '你好!' },
],
n_predict: 100,
stop: stopWords,
// ...其他参数
});
console.log('结果:', msgResult.text);
console.log('时间:', msgResult.timings);
3. 应用案例和最佳实践
在这一部分,您可以添加一些实际应用案例和最佳实践,展示如何使用 llama.rn 在不同的场景下解决问题。
4. 典型生态项目
在这一部分,您可以列举一些与 llama.rn 相关的生态系统项目,例如集成其他机器学习库、工具或服务的示例。
请注意,以上内容仅为指南的概要,具体实现时可能需要根据实际情况进行调整和补充。
llama.rn React Native binding of llama.cpp 项目地址: https://gitcode.com/gh_mirrors/ll/llama.rn