github上15.9k star的开源项目,好玩到飞起
是个啥项目呢?
LLM大模型有很多,前面也介绍了蛮多可以集成为知识库的,但是大多操作还是有些复杂的。
如果你想要自己尝试玩一下本地部署,又不想复杂,那么这个项目可以关注下,它只需要用一个单文件启动就可以。
llamafile简介
如果你对open LLMS有一些了解,那么这个项目也很好理解,它就是将将llama.cpp与Cosmopolitan Libc组合生成一个单个的执行文件,可以让开发或者用户更佳快捷的访问到open LLM
llamafile特点
- 单文件分发:用户可以通过一个文件分发和运行LLM,无需其他依赖。
- 本地执行:所有操作都在用户的计算机上本地完成,不会有数据离开用户的设备。
- 易于部署:用户只需下载一个 "llamafile" 文件,就可以立即开始使用。
- 支持图片上传和问题回答:除了聊天功能,LLaVA模型还支持图片上传和相关问题的回答。
- 兼容OpenAI API:提供了与OpenAI API兼容的聊天完成端点,支持本地运行的最常见OpenAI API用例。
- 扩展功能:包括特定于 "llama.cpp" 的功能,如 "mirostat"。
快速部署和测试
- 访问 "llamafile" 项目页面,下载示例 "llamafile",例如 "llava-v1.5-7b-q4.llamafile"。
- 在计算机的终端中打开下载的文件。对于macOS、Linux或BSD用户,需要先授权计算机执行新文件(只需一次):
如果是Windows用户,需要将文件重命名,添加 ".exe" 后缀。chmod +x llava-v1.5-7b-q4.llamafile
- 运行 "llamafile",例如:
浏览器应该会自动打开并显示聊天界面。如果没有,只需打开浏览器并指向./llava-v1.5-7b-q4.llamafile
http://127.0.0.1:8080/
。 - 完成聊天后,返回终端并按 Control-C 关闭 "llamafile"。
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()
'
返回结果
{
"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
}
}
结论
"llamafile" 项目是Mozilla-Ocho为了使开放LLM更加易于访问而做出的重要贡献。
它通过一个简单的文件,为开发者和用户提供了一个强大而直观的工具,使他们能够轻松地在本地运行和测试LLM,而无需担心数据隐私问题。