在计算机上运行 LLaMA 和 Alpaca。
羊驼和美洲驼都在您的计算机上工作!
- 由llama.cpp、llama-dl CDN和alpaca.cpp提供支持
- 包括可破解的网络应用程序
- 附带 JavaScript API
- 附带Socket.io API
Dal-ai 在以下所有操作系统上运行:
- Linux
- 苹果
- 视窗
在大多数现代计算机上运行。除非您的计算机非常旧,否则它应该可以工作。
根据llama.cpp 讨论线程,以下是内存要求:
- 7B => ~4 GB
- 13B => ~8 GB
- 30B => ~16 GB
- 65B => ~32 GB
目前 7B 和 13B 型号可通过alpaca.cpp获得
Alpaca 完全量化(压缩),7B 模型所需的唯一空间是 4.21GB:
Alpaca 已完全量化(压缩),13B 模型所需的唯一空间是 8.14GB:
您需要大量空间来存储模型。型号名称必须是以下之一:7B、13B、30B 和 65B。
您不必安装所有型号,您可以一一安装。我们来看看每个模型占用了多少空间:
笔记
以下数字假设您不接触原始模型文件并保留原始模型文件和量化版本。
如果您在安装后删除原始模型(更大)并仅保留量化版本,则可以对此进行优化。
- Full:该模型占用31.17GB
- 量化:4.21GB
- Full:该模型占用60.21GB
- 量化:4.07GB * 2 = 8.14GB
- Full:该模型占用150.48GB
- 量化:5.09GB * 4 = 20.36GB
- Full:该模型占用432.64GB
- 量化:5.11GB * 8 = 40.88GB
要求您已安装并运行 docker。
docker compose build
docker compose run dalai npx dalai alpaca install 7B # or a different model
docker compose up -d
这会将模型保存在./models
文件夹中
如果您的 Mac 尚未安装 Node.js,请确保安装 Node.js >= 18
目前支持的引擎有llama
和alpaca
。
要下载羊驼模型,您可以运行:
npx dalai alpaca install 7B
要下载 llama 模型,您可以运行:
npx dalai llama install 7B
或下载多个模型:
npx dalai llama install 7B 13B
现在转到步骤 3。
通常您不需要这一步,但如果运行上面的命令没有执行任何操作并立即结束,则意味着出现问题,因为您的系统上未安装某些所需的模块。
在这种情况下,请尝试以下步骤:
如果您的计算机上未安装自制程序,请通过运行以下命令进行安装:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
或者您可以在自制程序主页上找到相同的说明:https://brew.sh/
安装自制程序后,安装这些依赖项:
brew install cmake
brew install pkg-config
为了确保我们涵盖每个向量,我们也更新 NPM:
npm install -g npm@latest
现在返回步骤 2.1 并尝试npx dalai
再次运行命令。
安装完所有内容后,运行以下命令来启动 Web UI 服务器:
npx dalai serve
并在浏览器中打开http://localhost:3000 。玩得开心!
在Windows上,您需要先安装Visual Studio,然后再安装Dalai。
按下面的按钮访问 Visual Studio 下载页面并下载:
重要的!!!
安装 Visual Studio 时,请务必选中下面突出显示的 3 个选项:
- Python开发
- Node.js 开发
- 使用 C++ 进行桌面开发
重要的
在 Windows 上,请确保在cmd中运行所有命令。
不要在powershell中运行。 Powershell 具有不必要的严格权限,并使脚本静默失败。
目前支持的引擎有llama
和alpaca
。
下载羊驼模型。打开您的cmd
应用程序并输入:
npx dalai alpaca install 7B
下载美洲驼模型。打开您的cmd
应用程序并输入:
npx dalai llama install 7B
或下载多个模型:
npx dalai llama install 7B 13B
如果上述步骤失败,请尝试分别安装 Node.js 和 Python。
安装Python:
安装 Node.js >= 18:
两者安装完毕后,打开 powershell 并键入python
以查看该应用程序是否存在。还可以键入内容node
来查看该应用程序是否也存在。
检查它们是否都存在后,请重试。
安装完所有内容后,运行以下命令来启动 Web UI 服务器(确保在cmd
而不是 powershell 中运行!):
npx dalai serve
并在浏览器中打开http://localhost:3000 。玩得开心!
您需要确保安装了正确版本的 Python 和 Node.js。
确保版本为 3.10 或更低(不是 3.11) Python 必须为 3.10 或更低(最新版本尚不支持 pytorch 和其他库)
确保版本为18或更高
目前支持的引擎有llama
和alpaca
。
要下载羊驼模型,您可以运行:
npx dalai alpaca install 7B
要下载 llama 模型,您可以运行:
npx dalai llama install 7B
或下载多个模型:
npx dalai llama install 7B 13B
如果模型安装无提示失败或永远挂起,请尝试以下命令,然后再次尝试运行 npx 命令:
在 ubuntu/debian/等上:
sudo apt-get install build-essential python3-venv -y
在软呢帽/等上:
dnf install make automake gcc gcc-c++ kernel-devel python3-virtualenv -y
安装完所有内容后,运行以下命令来启动 Web UI 服务器:
npx dalai serve
并在浏览器中打开http://localhost:3000 。玩得开心!
Dalai也是一个NPM包:
- 以编程方式安装
- 在本地向模型发出请求
- 运行 dalai 服务器(由 socket.io 提供支持)
- 以编程方式向远程 dalai 服务器发出请求(通过 socket.io)
Dalai 是一个 NPM 包。您可以使用以下方式安装它:
npm install dalai
const dalai = new Dalai(home)
home
:(可选)手动指定llama.cpp文件夹
默认情况下,Dalai 自动将整个llama.cpp
存储库存储在~/llama.cpp
.
但是,通常您可能已经llama.cpp
在计算机上的其他位置拥有存储库并且只想使用该文件夹。在这种情况下,您可以传入该home
属性。
创建一个工作区于~/llama.cpp
const dalai = new Dalai()
手动设置llama.cpp
路径:
const dalai = new Dalai("/Documents/llama.cpp")
dalai.request(req, callback)
req
:请求对象。由以下属性组成:prompt
: (必填)提示字符串model
:(必填)要查询的型号+型号名称。采用以下形式:<model_type>.<model_name>
- 例子:
alpaca.7B
,llama.13B
, ...
- 例子:
url
:仅在连接到远程 dalai 服务器时需要- 如果未指定,则使用node.js API直接在本地运行dalai
- 如果指定(例如
ws://localhost:3000
),它将在 URL 处查找 socket.io 端点并连接到它。
threads
:要使用的线程数(如果未指定,则默认为 8)n_predict
:要返回的令牌数量(如果未指定,则默认为 128)seed
: 种子。默认值为 -1(无)top_k
top_p
repeat_last_n
repeat_penalty
temp
: 温度batch_size
:批量大小skip_end
:默认情况下,每个会话都以 结束\n\n<end>
,它可以用作标记来了解完整响应何时返回。然而有时您可能不需要这个后缀。设置skip_end: true
并且响应将不再以\n\n<end>
callback
:每次客户端从模型返回任何令牌响应时都会调用流回调函数
使用node.js,你只需要初始化一个Dalai对象,new Dalai()
然后使用它。
const Dalai = require('dalai') new Dalai().request({ model: "7B", prompt: "The following is a conversation between a boy and a girl:", }, (token) => { process.stdout.write(token) })
要在浏览器或任何其他语言中使用它,您可以使用 socket.io API。
首先你需要运行一个 Dalai 套接字服务器:
// server.js const Dalai = require('dalai') new Dalai().serve(3000) // port 3000
然后,一旦服务器运行,只需ws://localhost:3000
在初始化 Dalai 对象时通过传递套接字 url 向服务器发出请求即可:
const Dalai = require("dalai") new Dalai().request({ url: "ws://localhost:3000", model: "7B", prompt: "The following is a conversation between a boy and a girl:", }, (token) => { console.log("token", token) })
启动 socket.io 服务器port
dalai.serve(port)
const Dalai = require("dalai") new Dalai().serve(3000)
连接现有http
实例(http
npm 包)
dalai.http(http)
http
:http对象
当您尝试将 dalai 插入现有的 Node.js Web 应用程序时,这非常有用
const app = require('express')(); const http = require('http').Server(app); dalai.http(http) http.listen(3000, () => { console.log("server started") })
await dalai.install(model_type, model_name1, model_name2, ...)
model_type
:型号名称。目前支持:- “羊驼”
- “骆驼”
model1
,model2
, ...:要安装的型号名称(“7B”`、“13B”、“30B”、“65B”等)
安装 Llama“7B”和“13B”型号:
const Dalai = require("dalai"); const dalai = new Dalai() await dalai.install("llama", "7B", "13B")
安装羊驼7B模型:
const Dalai = require("dalai"); const dalai = new Dalai() await dalai.install("alpaca", "7B")
返回已安装模型的数组
const models = await dalai.installed()
const Dalai = require("dalai"); const dalai = new Dalai() const models = await dalai.installed() console.log(models) // prints ["7B", "13B"]
默认情况下,Dalai 使用您的主目录来存储整个存储库 ( ~/dalai
)。然而有时您可能想将存档存储在其他地方。
在这种情况下,您可以使用以下标志调用所有 CLI 方法--home
:
npx dalai llama install 7B --home ~/test_dir
npx dalai serve --home ~/test_dir
为了确保更新到最新版本,请首先在https://www.npmjs.com/package/dalai查找最新版本
假设最新版本是0.3.0
.要更新 dalai 版本,请运行:
npx dalai@0.3.0 setup
有疑问或反馈吗?通过以下渠道关注该项目: