作者:来自 Elastic David Hope
了解如何为私有或本地部署配置本地 LLM。更多阅读:使用 Elastic 和 LM Studio 的 Herding Llama 3.1。
智能大语言模型已经存在了一段时间,一些客户做的第一件事就是在发生了许多严重的数据泄露事件后采取措施阻止这些模型,例如:
遗憾的是,这也意味着这些企业错过了这些 LLMs 可以做的令人惊叹的事情,尤其是在可观察性领域。由 LLM 提供支持的 Elastic 可观察性 AI 助手可以帮助解决许多用例:
- 更快、更准确的根本原因分析
- 不仅仅是依靠启发式方法让你停留在 “CPU is busy” 作为根本原因。真正让你找到根本原因。
- 可观察性的民主化
- LLM 帮助新手和初级用户以自然语言交谈、进行数据分析并帮助他们学习和提升技能。初级 BCG 顾问使用 ChatGPT-4 的工作质量提高了 43%。
- 不用来回切换工具
- 能够在同一个界面内对问题进行讨论意味着几乎不需要进行上下文切换。
- 随时掌握最新的专业知识
- 借助基于 Search AI 的 RAG(检索增强生成)和 Elastic,你能够从工单系统中获取最新的信息,并将其纳入你的故障排查流程中。
- 摆脱单调乏味的任务
- Elastic AI Assistant 可以自动执行许多工作流程,自动调用 Elastic API 来生成可视化效果并采取补救措施。
由于这些好处被搁置,很明显企业需要一种替代方法来保护其业务,同时仍然能够使用 LLMs。
一种越来越流行的方法是使用本地可部署的 LLM,现在有许多这样的选项可用,其中最受欢迎的是 Mistral 和 LLAMA3。
在本博客中,我们将向你展示如何至少获得 8.14 版本的 Elastic AI Assistant 来连接到这些可私下部署的 LLM。
先决条件和配置
如果你计划关注此博客,以下是我们用于设置配置的一些组件和详细信息:
- 确保你在 Elastic Cloud 上有一个帐户和一个已部署的堆栈(请参阅此处的说明)。
- AWS 中的 g5.xlarge 实例(或其他云提供商的等效实例)用于运行 LLM。这些实例配备 NVIDIA A10 GPU,在成本和性能之间取得平衡。确保你使用默认的 Amazon Linux 操作系统。
- 我也在我的环境中使用 otel 演示,所以我有一些数据可以使用,你也可以通过克隆存储库并按照此处的说明执行此操作。
设置 ollama
使用 Amazon Linux 启动 G5 实例,如下所示,模型往往相当大,因此你可能希望将磁盘空间增加到至少 200GB:
G5 实例启动后,你需要登录并首先运行命令:
sudo dnf install kernel-modules-extra.x86_64
这将安装额外的库以使 GPU 支持在 Amazon Linux 上运行。
接下来安装 ollama:
curl -fsSL https://ollama.com/install.sh | sh
运行 ollama:
ollama run llama3
然后编辑 ollama 配置以允许其监听公共地址:
sudo mkdir /etc/systemd/system/ollama.service.d
sudo vi /etc/systemd/system/ollama.service.d/override.conf
添加以下几行:
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
完成此操作后,重新启动服务:
sudo systemctl daemon-reload
sudo systemctl restart ollama
为了配置 Elastic,我们使用 ollama 博客中提到的配置来实现 OpenAI 兼容性:
如那里所述,我们需要打开端口 11434。要在你的 AWS 主机上打开端口 11434,请登录 AWS 管理控制台并导航到 EC2 仪表板。转到左侧菜单中的 “Instances” 并选择你的实例,找到你的 EC2 实例。在 “Description” 选项卡中,找到 “Security groups” 部分并单击安全组 ID。在安全组详细信息中,转到 “Inbound rules” 选项卡并单击 “Edit inbound rules”。添加一条新规则,类型为 “Custom TCP Rule”,协议为 “TCP”,端口范围为 “11434”。将源设置为所需的 IP 范围,然后单击 “Save rules” 以应用更改。
并运行测试:
curl http://[YOUR EC2 PUBLIC DNS]:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama3",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
结果应该包含:“Hello there! It's nice to meet you”
现在你已经成功运行了属于你自己的私有大型语言模型。
设置 Elastic
首先让我们从右上角的 图标访问 AI 助手。
接下来点击按钮 “Set up GenAI connector”:
使用 OpenAI 并按以下方式设置连接器,注意,API 密钥是 ollama
,具体文档说明见此处:
接下来,AI 助手将为你设置知识库:
设置好 AI 助手后,你需要打开 “Simulated Function Calling”,如下所示。首先点击 “AI Assistant Settings”,如下所示。
接下来勾选 “Simulated Function Calling”:
完成后,我们可以像这样让 AI 助手工作:
总结
我们设置了 Elastic Observability AI Assistant 来使用其他模型,特别是私有或本地模型,在示例中我们使用 llama3。你可以配置 olama 来使用其他模型(例如 mistral)并进行测试,以查看哪些模型能为你提供最佳结果。
请注意,你的结果可能会因你使用的模型而异,并且 Elastic 无法支持此处的所有不同模型,我们的目标是支持那些能提供最高质量结果的模型,以便客户获得最佳体验。
原文:How to power Observability AI Assistant with local LLMs for on-prem deployments — Elastic Observability Labs