Github 星标 16.4K:只需一个单文件,即可本地轻松运行 LLM 的神器

2024-06-14 13:50:25 浏览数 (3)

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

然而,对于许多开发者和终端用户来说,如何高效地分发和运行这些复杂的模型仍然是个棘手的问题。 LLAMAfile 一个由 Mozilla Ocho 团队开发的工具,旨在解决这些问题。它提供一种高效分发和运行大型语言模型(LLM)的简易工具,

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

快速入门

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

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

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

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

代码语言:javascript复制
$ wget https://huggingface.co/Mozilla/llava-v1.5-7b-llamafile/resolve/main/llava-v1.5-7b-q4.llamafile?download=true

打开计算机的终端。

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

代码语言:javascript复制
$ chmod  x llava-v1.5-7b-q4.llamafile

对于 Windows 用户,重命名文件并添加 ".exe" 后缀。

运行 llamafile:

代码语言:javascript复制
./llava-v1.5-7b-q4.llamafile

浏览器将自动打开并显示聊天界面。如果没有,请手动打开浏览器并访问 <http://localhost:8080>

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

JSON API 快速入门

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

代码语言:javascript复制
$ 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()
'

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

代码语言:javascript复制
{
   "choices" : [
      {
         "finish_reason" : "stop",
         "index" : 0,
         "message" : {
            "content" : "There once was a programmer named MikenWho wrote code that would often chokenHe used try and exceptnTo handle each stepnAnd 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 封装,任何服务器都可以实现。

代码语言:javascript复制
#!/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。

0 人点赞