在当今信息化时代,人工智能(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:
$ 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 封装,任何服务器都可以实现。
#!/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。