01.引言
在人工智能的浪潮中,大型语言模型(LLM)已成为推动自然语言处理(NLP)领域进步的关键力量。然而,这些强大模型的部署并非易事,传统上需要专业的知识来配置复杂的运行环境和依赖关系。llamafile,一个由Mozilla创新团队推出的项目,通过将模型权重和运行环境封装进单个可执行文件中,彻底改变了大型语言模型的分发和运行方式。
02.什么是llamafile?
llamafile是一种创新的解决方案,它允许用户通过单一的文件来部署和运行大型语言模型(LLM)。这种文件包含了模型的所有权重和必要的运行时环境,使得用户无需进行繁琐的环境配置和依赖安装。
1)设计目标
-
简化部署:降低技术门槛,使得部署大型模型变得简单快捷。
-
跨平台兼容性:支持多种操作系统,包括但不限于Windows、macOS、Linux。
-
独立运行:不依赖外部环境,减少了运行时出现问题的可能性。
2)技术构成
-
llama.cpp:一个C++库,为模型提供运行所需的底层支持。
-
Cosmopolitan Libc:一个跨平台的C标准库,确保了llamafile在不同操作系统上的兼容性。
-
模型权重:直接嵌入到llamafile中,无需额外下载或配置。
03.核心特性
1)一键部署的便捷性
用户只需下载相应的llamafile文件,然后执行这个文件,即可启动模型。这种便捷性的背后是大量的工程努力,将模型的复杂性封装在用户友好的界面之后。
2)跨平台支持
llamafile支持多种操作系统,包括但不限于Windows、macOS、Linux等。这种跨平台的特性使得无论用户使用的是哪种操作系统,都能够轻松地部署和运行大型语言模型。
3)独立可执行文件
每个llamafile都是一个独立的可执行文件,这意味着它们包含了运行模型所需的所有依赖和配置。用户无需担心环境配置问题,也不需要安装额外的软件或库。
04.部署流程详解
1)下载模型文件
用户可以从HuggingFace、modelscope.cn等平台下载所需的llamafile。这些文件通常包含了模型的权重和配置信息,并且已经过优化,以确保在不同系统上都能高效运行。
https://www.modelscope.cn/models/bingal/llamafile-models/
当前llamafile集合中的模型列表:
注意:Windows 系统不支持单个 exe 文件超过 4GB,所以大于 4GB 的模型,需要分别下载 llamafile 和 gguf 模型运行;此外,也可以使用 Windows 的 WSL 子系统(Linux)来运行,同样可以绕过 4GB 的限制
2)模型启动运行
- Linux/macOS:
1. 下载llamafile到本地。
2. 为文件添加执行权限:`chmod +x filename.llamafile`。
3. 运行模型:`./filename.llamafile`。
- Windows:
1. 下载并重命名llamafile,添加`.exe`后缀:`filename.llamafile.exe`。
2. 双击文件或通过命令行运行。
qwen1_5-1_8b-chat-q4_k_m.llamafile下载运行如下:
3)Web界面访问
一旦模型运行起来,用户可以通过Web界面与模型进行交互。通常,llamafile会在本地启动一个Web服务器,用户只需在浏览器中输入对应的URL(如`http://127.0.0.1:8080`)即可访问。
4)模型API调用
对于开发者来说,llamafile还提供了类似于OpenAI的API接口,使得开发者可以通过编程方式与模型进行交互,实现更复杂的应用场景。
#!/usr/bin/env python3`` ``from openai import OpenAIclient = 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": "您是一个人工智能助手。您的首要任务是帮助用户实现他们的请求,以实现用户的满足感。"},`` ` `{"role": "user", "content": "写一个与龙有关的故事"}`` ``]`` ``)`` ``print(completion.choices[0].message)
5)可选参数说明
-
-ngl 9999 表示模型的多少层放到 GPU 运行,其他在 CPU 运行,如果没有 GPU 则可设置为 -ngl 0 ,默认是 9999,也就是全部在 GPU 运行(需要装好驱动和 CUDA 运行环境)。
-
–host 0.0.0.0 web 服务的hostname,如果只需要本地访问可设置为 --host 127.0.0.1 ,如果是0.0.0.0 ,即网络内可通过 ip 访问。
-
–port 8080 web服务端口,默认 8080 ,可通过该参数修改。
-
-t 16 线程数,当 cpu 运行的时候,可根据 cpu 核数设定多少个内核并发运行。
-
其他参数可以通过 --help 查看。
结语
llamafile的推出标志着大型语言模型部署方式的重要转变。它不仅降低了技术门槛,还扩大了AI技术的受众范围,使得更多的人能够接触和利用这一强大的技术。随着技术的不断发展,我们期待llamafile能够继续进化,提供更加强大和灵活的模型部署方案。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。