dalai - 在本地机器上运行 LLaMA 的最简单方法

Created at: 2023-03-13 04:07:32
Language: CSS

达赖

在计算机上运行LLaMA和Alpaca。

GitHub 推特不和谐


只需运行这个

要得到

羊驼和美洲驼都在你的电脑上工作!

羊驼.gif


  1. llama.cppllama-dl CDNalpaca 提供支持.cpp
  2. 包括可破解的网络应用程序
  3. 随 JavaScript API 一起提供
  4. 随附 Socket.io API

介绍

1. 跨平台

达赖在以下所有操作系统上运行:

  1. Linux目录
  2. 苹果电脑
  3. 窗户

2. 内存要求

在大多数现代计算机上运行。除非你的计算机非常非常旧,否则它应该可以工作。

根据 llama.cpp 讨论线程,以下是内存要求:

  • 7B => ~4 GB
  • 13B => ~8 GB
  • 30B => ~16 GB
  • 65B => ~32 GB

3. 磁盘空间要求

羊驼

目前7B和13B型号可通过羊驼获得.cpp

7乙

羊驼是完全量化(压缩的),7B型号唯一需要的空间是4.21GB:

alpaca_7b.png

03C

羊驼是完全量化(压缩的),13B型号唯一需要的空间是8.14GB:

alpaca_13b.png

骆马

你需要大量空间来存储模型。型号名称必须是以下之一:7B、13B、30B 和 65B。

你不必安装所有型号,你可以一个接一个地安装。让我们来看看每个模型占用了多少空间:

注意

以下数字假设你不接触原始模型文件并保留原始模型文件和量化版本。

如果在安装后删除原始模型(要大得多)并仅保留量化版本,则可以对此进行优化。

7乙

  • 完整版:该型号占用31.17GB
  • 量化:4.21GB

7b.png

13乙

  • 完整版:该型号占用60.21GB
  • 量化:4.07GB * 2 = 8.14GB

13b.png

30乙

  • 完整版:该型号占用150.48GB
  • 量化:5.09GB * 4 = 20.36GB

30b.png

65乙

  • 完整版:该型号占用432.64GB
  • 量化:5.11GB * 8 = 40.88GB

65b.png


快速入门

苹果电脑

第 1 步。安装节点.js >= 18

如果你的 Mac 尚未安装 node.js,请确保安装 node.js >= 18

安装节点.js

步骤 2.1.安装模型

当前支持的引擎是 和 。

llama
alpaca

添加羊驼模型

要下载羊驼模型,你可以运行:

npx dalai alpaca install 7B

添加美洲驼模型

要下载美洲驼模型,你可以运行:

npx dalai llama install 7B

或下载多个模型:

npx dalai llama install 7B 13B

现在转到步骤 3。

步骤 2.2.解决

通常你不需要此步骤,但是如果运行上述命令不执行任何操作并立即结束,则意味着出了问题,因为你的系统上未安装某些必需的模块。

在这种情况下,请尝试以下步骤:

1. 安装自制软件

如果你的计算机上未安装自制软件,请通过运行以下命令进行安装:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

或者你可以在自制主页上找到相同的说明:https://brew.sh/

2. 安装依赖项

安装自制软件后,安装以下依赖项:

brew install cmake
brew install pkg-config

3. 更新 NPM

为了确保我们涵盖每个向量,让我们也更新 NPM:

npm install -g npm@latest

现在返回到步骤 2.1 并尝试再次运行命令。

npx dalai

第 3 步。运行网页用户界面

安装完所有内容后,运行以下命令以启动 Web UI 服务器:

npx dalai serve

,然后在浏览器中打开 http://localhost:3000。玩得愉快!


窗户

第 1 步。安装视觉工作室

在Windows上,你需要先安装Visual Studio,然后再安装Dalai。

按下面的按钮访问Visual Studio下载页面并下载:

下载微软视觉工作室

重要!!!

安装 Visual Studio 时,请确保选中下面突出显示的 3 个选项:

  1. 蟒蛇开发
  2. 节点.js开发
  3. 使用C++进行桌面开发

vs.png


步骤 2.1.安装模型

重要

在 Windows 上,确保在 cmd 中运行所有命令。

不要在 POWERSHELL 中运行。Powershell 具有不必要的严格权限,并使脚本以静默方式失败。

当前支持的引擎是 和 。

llama
alpaca

安装羊驼毛

下载羊驼模型。打开你的应用程序并输入:

cmd

npx dalai alpaca install 7B

添加美洲驼模型

下载美洲驼模型。打开你的应用程序并输入:

cmd

npx dalai llama install 7B

或下载多个模型:

npx dalai llama install 7B 13B

步骤 2.2.故障排除(可选)

如果上述步骤失败,请尝试分别安装 Node.js 和 Python。

安装 Python:

下载蟒蛇

安装节点.js >= 18:

下载节点.js

安装两者后,打开 powershell 并键入以查看应用程序是否存在。并键入以查看应用程序是否存在。

python
node

检查它们都存在后,请重试。

第 3 步。运行网页用户界面

安装完所有内容后,运行以下命令以启动 Web UI 服务器(确保在 Power shell 中运行而不是 powershell!

cmd

npx dalai serve

,然后在浏览器中打开 http://localhost:3000。玩得愉快!


Linux目录

第 1 步。安装依赖项

你需要确保安装了正确版本的 Python 和 Node.js。

步骤 1.1.蟒蛇 <= 3.10

下载蟒蛇

确保版本为 3.10 或更低版本(不是 3.11)Python 必须为 3.10 或更低版本(最新版本尚不支持 pytorch 和其他库)

步骤 1.2.节点.js >= 18

下载节点.js

确保版本为 18 或更高版本


步骤 2.1.安装模型

当前支持的引擎是 和 。

llama
alpaca

添加羊驼模型

要下载羊驼模型,你可以运行:

npx dalai alpaca install 7B

添加美洲驼模型

要下载美洲驼模型,你可以运行:

npx dalai llama install 7B

或下载多个模型:

npx dalai llama install 7B 13B

步骤 2.2.解决

如果模型安装静默失败或永远挂起,请尝试以下命令,然后再次尝试运行 npx 命令:

在 ubuntu/debian/etc. 上:

sudo apt-get install build-essential python3-venv -y

关于软呢帽/等:

dnf install make automake gcc gcc-c++ kernel-devel python3-virtualenv -y

第 3 步。运行网页用户界面

安装完所有内容后,运行以下命令以启动 Web UI 服务器:

npx dalai serve

,然后在浏览器中打开 http://localhost:3000。玩得愉快!


应用程序接口

达赖也是一个NPM包:

  1. 以编程方式安装
  2. 在本地向模型发出请求
  3. 运行达赖服务器(由 socket.io 提供支持)
  4. 以编程方式向远程达赖服务器发出请求(通过 socket.io)

达赖是一个NPM包。你可以使用以下方法安装它:

npm install dalai

1. 构造函数()

语法

const dalai = new Dalai(home)
  • home
    :(可选)手动指定 llama.cpp 文件夹

默认情况下,达赖会自动将整个存储库存储在 下。

llama.cpp
~/llama.cpp

但是,通常你可能已经在计算机上的其他地方拥有存储库,并且只想使用该文件夹。在这种情况下,你可以传入属性。

llama.cpp
home

例子

基本

在以下位置创建工作区

~/llama.cpp

const dalai = new Dalai()

自定义路径

手动设置路径:

llama.cpp

const dalai = new Dalai("/Documents/llama.cpp")

2. 请求()

语法

dalai.request(req, callback)
  • req
    :请求对象。由以下属性组成:
    • prompt
      (必需)提示符字符串
    • model
      (必填)要查询的模型类型 + 模型名称。采用以下形式:
      <model_type>.<model_name>
      • 例:。。。
        alpaca.7B
        llama.13B
    • url
      :仅在连接到远程达赖服务器时才需要
      • 如果未指定,则使用 node.js API 直接在本地运行达赖
      • 如果指定(例如),它会在 URL 上查找 socket.io 端点并连接到该端点。
        ws://localhost:3000
    • 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
    :每次客户端从模型获取任何令牌响应时调用的流式回调函数

例子

1. 节点.js

使用 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)
})

2. 非节点.js (socket.io)

要在浏览器或任何其他语言中使用它,你可以使用 socket.io API。

第 1 步。启动服务器

首先,你需要运行一个达赖套接字服务器:

// server.js
const Dalai = require('dalai')
new Dalai().serve(3000)     // port 3000
第 2 步。连接到服务器

然后,一旦服务器运行,只需在初始化 Dalai 对象时通过传递套接字 url 向它发出请求:

ws://localhost:3000

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)
})

3. 服务()

语法

在 启动 socket.io 服务器

port

dalai.serve(port)

例子

const Dalai = require("dalai")
new Dalai().serve(3000)

4. http()

语法

连接现有实例(npm 包)

http
http

dalai.http(http)
  • http
    http 对象

例子

当你尝试将 dalai 插入现有节点.js Web 应用程序时,这很有用

const app = require('express')();
const http = require('http').Server(app);
dalai.http(http)
http.listen(3000, () => {
  console.log("server started")
})

5. 安装()

语法

await dalai.install(model_type, model_name1, model_name2, ...)
  • model_type
    :模型的名称。目前支持:
    • “羊驼”
    • “骆驼”
  • model1
    、、...:要安装的型号名称(“7B”、“13B”、“30B”、“65B”等)
    model2

例子

安装美洲驼“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")

6. 已安装()

返回已安装模型的数组

语法

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

在这种情况下,你可以使用标志调用所有 CLI 方法:

--home

1. 将模型安装到自定义路径

npx dalai llama install 7B --home ~/test_dir

2. 从自定义路径投放

npx dalai serve --home ~/test_dir

更新到最新版本

为确保更新到最新版本,请先在 https://www.npmjs.com/package/dalai

假设最新版本是 .要更新达赖版本,请运行:

0.3.0

npx dalai@0.3.0 setup

保持最新状态

有问题或反馈?通过以下渠道跟踪项目:

GitHub 推特不和谐