连接到您自己的本地 LLM
编辑连接到您自己的本地 LLM编辑
此页面提供使用 LM Studio 设置您选择的连接到大型语言模型 (LLM) 的连接器的说明。这使您能够在 Elastic Security 中使用您选择的模型。您首先需要设置一个反向代理来与 Elastic Security 通信,然后在服务器上设置 LM Studio,最后在您的 Elastic 部署中配置连接器。 详细了解使用本地 LLM 的优势.
此示例使用在 GCP 中托管的单个服务器来运行以下组件
- 具有 Mixtral-8x7b 模型的 LM Studio
- 使用 Nginx 的反向代理,用于向 Elastic Cloud 进行身份验证
为了进行测试,您可以使用 Nginx 的替代方案,例如 Azure Dev Tunnels 或 Ngrok,但使用 Nginx 可以轻松地通过使用 Elastic 的原生 Nginx 集成来收集额外的遥测数据并监控其状态。虽然此示例使用云基础设施,但它也可以在没有互联网连接的情况下在本地复制。
配置您的反向代理编辑
如果您的 Elastic 实例与 LM Studio 位于同一主机上,则可以跳过此步骤。
您需要设置一个反向代理,以启用 LM Studio 和 Elastic 之间的通信。有关更完整的说明,请参考以下指南,例如 此指南.
以下是一个示例 Nginx 配置文件
server { listen 80; listen [::]:80; server_name <yourdomainname.com>; server_tokens off; add_header x-xss-protection "1; mode=block" always; add_header x-frame-options "SAMEORIGIN" always; add_header X-Content-Type-Options "nosniff" always; return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name <yourdomainname.com>; server_tokens off; ssl_certificate /etc/letsencrypt/live/<yourdomainname.com>/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/<yourdomainname.com>/privkey.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets on; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256'; ssl_protocols TLSv1.3 TLSv1.2; ssl_prefer_server_ciphers on; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; add_header x-xss-protection "1; mode=block" always; add_header x-frame-options "SAMEORIGIN" always; add_header X-Content-Type-Options "nosniff" always; add_header Referrer-Policy "strict-origin-when-cross-origin" always; ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /etc/letsencrypt/live/<yourdomainname.com>/fullchain.pem; resolver 1.1.1.1; location / { if ($http_authorization != "Bearer <secret token>") { return 401; } proxy_pass https://127.0.0.1:1234/; } }
如果您使用上述示例配置文件,则必须替换几个值:用您的实际令牌替换 <secret token>
,并将其保密,因为您需要它来设置 Elastic Security 连接器。用您的实际域名替换 <yourdomainname.com>
。如果您决定将 LM Studio 中的端口号更改为 1234 以外的其他端口号,请更新配置底部处的 proxy_pass
值。
(可选) 设置反向代理的性能监控编辑
您可以使用 Elastic 的 Nginx 集成 来监控性能并在 Elastic Security 应用程序中填充监控仪表盘。
配置 LM Studio 并下载模型编辑
首先,安装 LM Studio。LM Studio 支持 OpenAI SDK,这使其与 Elastic 的 OpenAI 连接器兼容,使您能够连接到 LM Studio 市场中可用的任何模型。
LM Studio 当前的一个限制是,当它安装在服务器上时,您必须使用其 GUI 启动应用程序,然后才能使用 CLI 启动它。例如,通过使用 Chrome RDP 和 X Window 系统。使用 GUI 首次打开应用程序后,您可以通过在 CLI 中使用 sudo lms server start
来启动它。
启动 LM Studio 后
- 转到 LM Studio 的搜索窗口。
- 搜索 LLM(例如,
Mixtral-8x7B-instruct
)。您选择的模型的名称中必须包含instruct
,才能与 Elastic 配合使用。 -
将搜索筛选为“兼容性猜测”,以优化硬件的搜索结果。结果将用颜色编码
- 绿色表示“完全支持 GPU 卸载”,这将产生最佳结果。
- 蓝色表示“部分支持 GPU 卸载”,这可能有效。
- 红色表示“可能对这台机器太大”,通常无效。
- 下载一个或多个模型。
出于安全原因,在下载模型之前,请验证它来自受信任的来源。查看社区对该模型的反馈(例如,使用像 Hugging Face 这样的网站)可能会有所帮助。
在此示例中,我们使用 TheBloke/Mixtral-8x7B-Instruct-v0.1.Q3_K_M.gguf
。它有 46.7B 个总参数、32,000 个令牌上下文窗口,并使用 GGUF 量化。有关模型名称和格式信息的更多信息,请参阅下表。
模型名称 | 参数大小 | 令牌/上下文窗口 | 量化格式 |
---|---|---|---|
模型名称,有时包含版本号。 |
LLM 通常通过其参数数量进行比较——数量越多表示模型越强大。 |
令牌是输入信息的较小片段。令牌不一定对应于字符。您可以使用 Tokenizer 来查看给定提示可能包含多少个令牌。 |
量化会减少总体参数并帮助模型更快地运行,但会降低准确性。 |
示例:Llama、Mistral、Phi-3、Falcon。 |
参数数量是衡量模型大小和复杂性的指标。模型的参数越多,它能够处理、学习、生成和预测的数据就越多。 |
上下文窗口定义模型一次可以处理多少信息。如果输入令牌数量超过此限制,则输入将被截断。 |
量化的具体格式各不相同,大多数模型现在支持 GPU 而不是 CPU 卸载。 |
在 LM Studio 中加载模型编辑
下载模型后,使用 GUI 或 LM Studio 的 CLI 工具 在 LM Studio 中加载它。
选项 1:使用 CLI 加载模型(推荐)编辑
最佳做法是使用 GUI 从市场下载模型,然后使用 CLI 加载或卸载它们。GUI 使您能够搜索模型,而 CLI 只能导入特定路径,但 CLI 提供了用于加载和卸载的良好界面。
在 CLI 中使用以下命令
- 验证 LM Studio 是否已安装:
lms
- 检查 LM Studio 的状态:
lms status
- 列出所有已下载的模型:
lms ls
- 加载模型:
lms load
模型加载后,您应该在 CLI 中看到 Model loaded successfully
消息。
要验证加载了哪个模型,请使用 lms ps
命令。
如果您的模型使用 NVIDIA 驱动程序,则可以使用 sudo nvidia-smi
命令检查 GPU 性能。
选项 2:使用 GUI 加载模型编辑
请参考以下视频,了解如何使用 LM Studio 的 GUI 加载模型。您可以更改 端口 设置,该设置在 Nginx 配置文件中引用。请注意,GPU 卸载 设置为 最大.
(可选) 使用 Elastic 的自定义日志集成收集日志编辑
您可以使用 Elastic 的 自定义日志集成 来监控运行 LM Studio 的主机的性能。这也有助于进行故障排除。请注意,LM Studio 日志的默认路径为 /tmp/lmstudio-server-log.txt
,如以下屏幕截图所示
在您的 Elastic 部署中配置连接器编辑
最后,配置连接器
- 登录到您的 Elastic 部署。
- 导航到 堆栈管理 → 连接器 → 创建连接器 → OpenAI。OpenAI 连接器启用了此用例,因为 LM Studio 使用 OpenAI SDK。
- 命名您的连接器,以帮助跟踪您正在使用的模型版本。
- 在 URL 下,输入您在 Nginx 配置文件中指定的域名,后跟
/v1/chat/completions
。 - 在 默认模型 下,输入
local-model
。 - 在 API 密钥 下,输入您在 Nginx 配置文件中指定的秘密令牌。
- 单击 保存.
设置现已完成。您可以使用在 LM Studio 中加载的模型来为 Elastic 的生成式 AI 功能提供支持。您可以测试各种模型,并在与 AI 助理交互时查看哪个模型最适合您,而无需更新您的连接器。