无需安装,单文件即可本地轻松运行 LLM 的神器 LLAMAfile

Posted by Mike on 2024-06-14

在当今信息化时代,人工智能(AI)技术逐渐成为推动社会发展的重要力量。而大型语言模型(LLM)作为 AI 领域中的一项重要技术,正在各行各业中发挥着越来越重要的作用。

然而,对于许多开发者和终端用户来说,如何高效地分发和运行这些复杂的模型仍然是个棘手的问题。

LLAMAfile 一个由 Mozilla Ocho 团队开发的工具,旨在解决这些问题。它提供一种高效分发和运行大型语言模型(LLM)的简易工具,

LLAMAfile 通过将 llama.cpp 和 Cosmopolitan Libc 结合,使 LLM 以单一文件的形式运行在大多数计算机上,无需额外安装配置。

快速入门

使用 LLAMAfile 的最快方法是下载我们为 LLaVA 模型提供的示例文件。

LLaVA 是一种功能强大的 LLM,不仅可以进行聊天,还能通过上传图片并对其提问来提供图像识别功能。所有这些都可以在本地计算机上进行,数据不会离开你的设备。

你只需下面几步,便可轻松在本地计算机上轻松运行 LLaVA 模型。

  1. 下载 LLaVA 示例文件:llava-v1.5-7b-q4.llamafile (4.29 GB)

    1
    $ wget https://huggingface.co/Mozilla/llava-v1.5-7b-llamafile/resolve/main/llava-v1.5-7b-q4.llamafile?download=true
  2. 打开计算机的终端。

  3. 如果使用 macOS、Linux 或BSD,需要授予文件执行权限:

    1
    $ chmod +x llava-v1.5-7b-q4.llamafile
  4. 对于 Windows 用户,重命名文件并添加 “.exe” 后缀。

  5. 运行 llamafile:

    1
    ./llava-v1.5-7b-q4.llamafile
  6. 浏览器将自动打开并显示聊天界面。如果没有,请手动打开浏览器并访问 <http://localhost:8080>

  7. 聊天结束后,返回到终端并按 Control-C 关闭 LLAMAfile。

JSON API 快速入门

LLAMAfile 启动时,除了托管一个 Web UI 聊天服务器外,还提供了兼容 OpenAI API 的聊天 API 端点。该 API 旨在支持大多数常见的 OpenAI API 用例,并完全在本地运行。通过以下 curl 命令,可以快速开始使用 API:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$ curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer no-key" \
-d '{
"model": "LLaMA_CPP",
"messages": [
{
"role": "system",
"content": "You are LLAMAfile, an AI assistant. Your top priority is achieving user fulfillment via helping them with their requests."
},
{
"role": "user",
"content": "Write a limerick about python exceptions"
}
]
}' | python3 -c '
import json
import sys
json.dump(json.load(sys.stdin), sys.stdout, indent=2)
print()
'

打印出来的回复应该如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
"choices" : [
{
"finish_reason" : "stop",
"index" : 0,
"message" : {
"content" : "There once was a programmer named Mike\nWho wrote code that would often choke\nHe used try and except\nTo handle each step\nAnd his program ran without any hike.",
"role" : "assistant"
}
}
],
"created" : 1704199256,
"id" : "chatcmpl-Dt16ugf3vF8btUZj9psG7To5tc4murBU",
"model" : "LLaMA_CPP",
"object" : "chat.completion",
"usage" : {
"completion_tokens" : 38,
"prompt_tokens" : 78,
"total_tokens" : 116
}
}

Python API 客户端示例

如果您已经使用 openAI 发布的 openai Python 软件包开发了自己的软件,那么只需对 base_url 和 api_key 稍作修改,您就可以将自己的应用程序移植到 LLAMAfile 上。

本示例假定你已经运行 pip3 install openai 安装了 OpenAI 的客户端软件,这也是本示例所需要的。他们的软件包只是 OpenAI API 接口的一个简单 Python 封装,任何服务器都可以实现。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/env python3
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:8080/v1", # "http://<Your api-server IP>:port"
api_key = "sk-no-key-required"
)
completion = client.chat.completions.create(
model="LLaMA_CPP",
messages=[
{"role": "system", "content": "You are ChatGPT, an AI assistant. Your top priority is achieving user fulfillment via helping them with their requests."},
{"role": "user", "content": "Write a limerick about python exceptions"}
]
)
print(completion.choices[0].message)

其他 LLAMAfile 示例

我们还提供了其他模型的 LLAMAfile 示例,因此您可以轻松地使用不同类型的 LLM 试用 LLAMAfile。

🏷️ Github 地址:

https://github.com/Mozilla-Ocho/llamafile

🏷️ 官方地址:

https://llamafile.ai/

👨🏻‍💻 该工具已收录『IT 人员必备工具箱』,可访问 https://666666.dev 直接使用。

🚀『极客世界』科技达人必备综合资讯指南,等你来探索!访问网址 https://bestgeek.org 即可打开新世界。

🌟 公众号直接回复 「加群」,可加入『奇妙的 Linux 世界』 技术交流微信群。有兴趣的同学快快加入吧,群里有不少业界大神哟!

📕 关注『奇妙的 Linux 世界』公众号,带你开启有趣新生活!更多好用好玩的软件资源,可访问 https://666666.dev 免费获取。