Llama 2 是 Meta 最新的文本生成模型,目前其性能优于所有开源替代方案。
推荐:用 NSDT编辑器 快速搭建可编程3D场景
1、强大的Llama 2
它击败了 Falcon-40B(之前最好的开源基础模型),与 GPT-3.5 相当,仅低于 GPT-4 和 PALM 2(均为闭源模型,分别由 OpenAI 和 Google 拥有)。
HuggingFace 上的开源基金会模型排行榜
在如上所示的同一排行榜上,如果你更改过滤器以包含微调模型,会发现基本上整个列表都是由 Llama 2 衍生品组成的。
虽然 Llama 2 还没有完全开放,但对于绝大多数用户来说是非常宽松的。
如果在 Llama 2 版本发布之日,被许可方或被许可方的关联公司提供的产品或服务的每月活跃用户数在上一个日历月中超过 7 亿,你必须向Meta申请许可证。
2、托管 Llama 2 API
Llama 2 模型有 3 种不同大小:7B、13B 和 70B 参数。
70B参数版本需要多个 GPU,因此无法免费托管。
在 13B 和 7B 版本中,13B 版本更强大,但需要一些压缩(量化或降低浮点精度)才能适合单个中档 GPU。 幸运的是,Llama cpp 库使这变得相当简单!
托管 Llama 2 API 的基本概要如下:
使用 Google Colab 免费访问 Nvidia T4 GPU! 使用 Llama cpp 将 Llama 2 模型压缩并加载到 GPU 上。 创建 FastAPI 服务器以向模型提供 REST API。 使用 Ngrok 通过公共 URL 公开 FastAPI 端点。完整的 Colab 代码可以从这里下载。
3、Google Colab 操作
首先复制示例的Notebook:
在左上角,选择“文件”->“在云端硬盘中保存副本”。 这将打开你拥有的新 Colab。
仔细检查Runtime是否设置为使用 T4 Nvidia GPU:
右上角有用于更改运行时硬件的选项。
要查看实例上的文件(例如 server.log),请检查左侧边栏:
4、使用 Ngrok 创建公共 URL
我们需要的最后一个工具是 Ngrok,它提供了一种通过公共 URL 访问模型服务端点的方法。
用户需要创建一个仅允许 1 个本地隧道的免费帐户 — 你不需要下载或设置任何东西,只需要一个用户身份验证密钥的帐户。
可以使用电子邮件或通过 GitHub 或 Google 帐户进行注册。 请随意跳过两步身份验证设置。
在 Ngrok 设置页面上获取 Auth token,如图中红框所示
将用户身份验证令牌放入 Colab 代码中,如下所示:
!./ngrok authtoken <YOUR-NGROK-TOKEN-HERE>
这是示例的Notebook所需的唯一更改,简单易行!
其余流程相当简单,请参阅Notebook的内容。
5、访问 Llama 2 API
现在,只需一个简单的请求,就可以轻松访问你的 Llama 2 模型!
curl --location --request POST 'https://499a-104-196-231-246.ngrok-free.app/generate' \
--header 'Content-Type: application/json' \
--data-raw '{
"inputs": "What is mypy used for?",
"parameters": {
"temperature": 0.0,
"max_tokens": 25
}
}'
如果你使用 Postman,请求/响应可能如下所示:
6、下一步
主机托管的 LLM 最突出且广泛适用的用例之一是利用你的私有数据丰富模型的内部知识,以便它可以像知识渊博的队友一样在完整的上下文中回答用户查询。
我将在后续文章中介绍如何建立一个免费的开源项目来执行此操作。
作为一个案例,Danswer 是目前唯一免费、完全开源的基于 Llama 2 LLM 的问答项目,功能齐全,可供生产使用。
7、结束语
虽然能够免费托管自己的 LLM 非常有价值,但使用 Google Colab 有一些注意事项:
本指南(和 Google Colab)更多地用于开发用途,为了拥有永久端点,你可能需要投资专用硬件,因为 Google Colab 将在一段时间不活动后回收实例。 免费套餐中不提供 A100 等高端 GPU。 在免费套餐中,你只能在单个会话中申请最多 12 小时的实例。原文链接:Llama 2 API免费托管方案 — BimAnt