如何运行 AI 模型:本地 vs 远程
在这个游戏中,我们希望运行一个句子相似度模型,我将使用 all-MiniLM-L6-v2。
这是一个 BERT Transformer 模型。它已经过训练,因此我们可以直接使用它。
但是在这里,我有两种运行它的解决方案,我可以
- 远程运行此 AI 模型:在服务器上。我发送 API 调用并从服务器获取响应。这需要互联网连接。
- 在本地运行此 AI 模型:在玩家的机器上。
两者都是有效的解决方案,但它们各有优缺点。
远程运行模型
我在远程服务器上运行模型,并从游戏中发送 API 调用。我可以使用 API 服务来帮助部署模型。
例如,Hugging Face 提供了一个名为 推理 API(原型设计和实验免费)的 API 服务,它允许您通过简单的 API 调用使用 AI 模型。我们还有一个 Unity 插件,用于从 Unity 项目内部访问和使用 Hugging Face AI 模型。
优点
- 您没有使用玩家的 RAM/VRAM 来运行模型。
- 您的服务器可以记录数据,因此您可以了解玩家通常输入的操作,从而改进您的 NPC。
缺点
- 依赖于互联网连接,由于潜在的 API 延迟,可能会导致沉浸感中断。
- 与 API 使用相关的潜在高成本,尤其是在玩家数量众多时。
通常,如果您使用无法在玩家机器上运行的非常大的模型,则会使用 API。例如,如果您使用 Llama 2 等大型模型。
在本地运行模型
我在本地运行模型:在玩家的机器上。为了能够做到这一点,我使用了两个库。
Unity Sentis:允许我们在游戏中直接运行 AI 模型的神经网络推理库。
Hugging Face Sharp Transformers 库:一个用于在 Unity 游戏中运行 Transformer 🤗 模型的 Unity 插件实用程序。
优点
- 您无需支付使用费用,因为所有操作都在玩家的计算机上运行。
- 玩家无需连接到互联网。
缺点
- 您使用玩家的 RAM/VRAM,因此需要指定规格建议
- 您无法轻松了解人们如何使用游戏或模型。
由于我们将要使用的句子相似度模型很小,我们决定在本地运行它。
< > GitHub 更新