Loading [MathJax]/jax/output/CommonHTML/config.js
部署DeepSeek模型,进群交流最in玩法!
立即加群
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何在隔离环境中使用GPU加速的LocalAI进行文本嵌入

如何在隔离环境中使用GPU加速的LocalAI进行文本嵌入

原创
作者头像
点火三周
发布于 2025-02-07 12:43:50
发布于 2025-02-07 12:43:50
2061
举报
文章被收录于专栏:Elastic Stack专栏Elastic Stack专栏

简介

你是否希望在Elasticsearch向量数据库之上构建一个RAG应用程序?是否需要对大量数据进行语义搜索?或者你需要在隔离环境中本地运行?这篇文章将告诉你如何实现这些需求。

Elasticsearch提供了多种方式为你的数据创建嵌入进行对称搜索。其中一种流行的方法是使用Elasticsearch开放推理API与OpenAI、Cohere或Hugging Face模型。这些平台支持许多大型、强大的模型,可以在GPU上运行嵌入。然而,第三方嵌入服务并不适用于隔离系统,或者对于有隐私顾虑和法规要求的客户来说是禁用的。

作为替代方案,你可以使用ELSER和E5在本地计算嵌入。这些嵌入模型在CPU上运行,并针对速度和内存使用进行了优化。它们也适用于隔离系统,并且可以在云中使用。然而,这些模型的性能不如运行在GPU上的模型。

如果你能在本地计算数据的嵌入岂不是很棒?使用LocalAI,你可以做到这一点。LocalAI是一个免费且开源的推理服务器,与OpenAI API兼容。它支持使用多个后端进行模型推理,包括用于嵌入的Sentence Transformers和用于文本生成的llama.cpp。LocalAI还支持GPU加速,因此你可以更快地计算嵌入。

这篇文章将向你展示如何使用LocalAI计算数据的嵌入。我们将一步步地指导你如何设置LocalAI,配置它来计算数据的嵌入,并运行它以生成嵌入。你可以在你的笔记本电脑上,在隔离系统中,或者在任何需要计算嵌入的地方运行它。

你感兴趣了吗?让我们开始吧!

如何设置LocalAI来计算数据的嵌入

第一步:使用docker-compose设置LocalAI

要开始使用LocalAI,你需要在你的机器上安装Dockerdocker-compose。根据你的操作系统,你可能还需要安装NVIDIA容器工具包来支持Docker容器中的GPU。

旧版本不支持NVIDIA运行时指令,因此确保你安装了最新版本的docker-compose

代码语言:shell
AI代码解释
复制
sudo curl -L https://github.com/docker/compose/releases/download/v2.26.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

检查docker-compose的版本:

代码语言:shell
AI代码解释
复制
docker-compose --version

你需要使用以下docker-compose.yaml配置文件:

代码语言:yaml
AI代码解释
复制
# file: docker-compose.yaml
services:
  localai:
    image: localai/localai:latest-aio-gpu-nvidia-cuda-12
    container_name: localai
    environment:
      - MODELS_PATH=/models
      - THREADS=8
    ports:
      - "8080:8080"
    volumes:
      - $HOME/models:/models
    tty: true
    stdin_open: true
    restart: always
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]

注意:

  1. 我们将$HOME/models目录挂载到容器内的/models目录。这是模型存储的位置。你需要根据你想存储模型的目录调整路径。
  2. 我们指定了用于推理的线程数和使用的GPU数量。你可以根据你的硬件配置调整这些值。

第二步:配置LocalAI使用Sentence Transformers模型

在本教程中,我们将使用mixedbread-ai/mxbai-embed-large-v1,它目前在MTEB排行榜上排名第四。然而,任何可以由sentence-transformers库加载的嵌入模型都可以以相同的方式工作。

创建目录$HOME/models并创建一个配置文件$HOME/models/mxbai-embed-large-v1.yaml,内容如下:

代码语言:yaml
AI代码解释
复制
# file: mxbai-embed-large-v1.yaml
name: mxbai-embed-large-v1
backend: sentencetransformers
embeddings: true
parameters:
  model: mixedbread-ai/mxbai-embed-large-v1

第三步:启动LocalAI服务器

在分离模式下启动Docker容器,运行以下命令:

代码语言:shell
AI代码解释
复制
docker-compose up -d

从你的$HOME目录运行。

通过运行docker-compose ps验证容器是否正确启动,检查localai容器是否处于Up状态。

你应该看到类似以下的输出:

代码语言:shell
AI代码解释
复制
~$ docker-compose ps
WARN[0000] /home/valeriy/docker-compose.yaml: `version` is obsolete 
NAME      IMAGE                                           COMMAND                  SERVICE   CREATED              STATUS                                 PORTS
localai   localai/localai:latest-aio-gpu-nvidia-cuda-12   "/aio/entrypoint.sh"     localai   About a minute ago   Up About a minute (health: starting)   0.0.0.0:8080->8080/tcp

如果出现问题,请检查日志。你还可以使用日志来验证LocalAI是否能看到GPU。运行以下命令:

代码语言:shell
AI代码解释
复制
docker logs localai

应该能看到类似以下的信息:

代码语言:shell
AI代码解释
复制
$ docker logs localai
===> LocalAI All-in-One (AIO) container starting...
NVIDIA GPU detected
Thu Mar 28 11:15:41 2024       
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.86.10              Driver Version: 535.86.10    CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  Tesla T4                       Off | 00000000:00:04.0 Off |                    0 |
| N/A   59C    P0              29W /  70W |      2MiB / 15360MiB |      6%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+
                                                                                         
+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|  No running processes found                                                           |
+---------------------------------------------------------------------------------------+
NVIDIA GPU detected. Attempting to find memory size...
Total GPU Memory: 15360 MiB

最后,你可以通过查询已安装的模型列表来验证推理服务器是否正常工作:

代码语言:shell
AI代码解释
复制
curl -k http://localhost:8080/v1/models

应产生如下输出:

代码语言:json
AI代码解释
复制
{"object":"list","data":[{"id":"tts-1","object":"model"},{"id":"text-embedding-ada-002","object":"model"},{"id":"gpt-4","object":"model"},{"id":"whisper-1","object":"model"},{"id":"stablediffusion","object":"model"},{"id":"gpt-4-vision-preview","object":"model"},{"id":"MODEL_CARD","object":"model"},{"id":"llava-v1.6-7b-mmproj-f16.gguf","object":"model"},{"id":"voice-en-us-amy-low.tar.gz","object":"model"}]}

第四步:创建Elasticsearch _inference 服务

我们已经创建并配置了LocalAI推理服务器。由于它是OpenAI推理服务器的替代品,我们可以在Elasticsearch中创建一个新的openai推理服务。此功能在Elasticsearch 8.14中实现。

要创建新的推理服务,请在Kibana中打开开发工具并运行以下命令:

代码语言:json
AI代码解释
复制
PUT _inference/text_embedding/mxbai-embed-large-v1
{
  "service": "openai",
  "service_settings": {
    "model_id": "mxbai-embed-large-v1",
    "url": "http://localhost:8080/embeddings",
    "api_key": "ignored"
  }
}

注意:

  1. api_key参数对于openai服务是必需的,必须设置,但对于我们的LocalAI服务,其具体值并不重要。
  2. 对于大型模型,如果模型第一次下载到LocalAI服务器需要较长时间,PUT请求可能会超时。此时请稍后重试PUT请求。

最后,你可以验证推理服务是否正常工作:

代码语言:json
AI代码解释
复制
POST _inference/text_embedding/mxbai-embed-large-v1
{
  "input": "It takes all the running you can do, to keep in the same place. If you want to get somewhere else, you must run at least twice as fast as that!"
}

应产生如下输出:

代码语言:json
AI代码解释
复制
{
  "text_embedding": [
    {
      "embedding": [
        -0.028375082,
        0.6544269,
        0.1583663,
        0.88167363,
        0.5215657,
        0.05415681,
        0.62085253,
        0.069351405,
        0.29407632,
        0.51018727,
        0.8183201,
        ...
      ]
    }
  ]
}

结论

通过本文中的步骤,你可以设置LocalAI来使用GPU加速计算数据的嵌入,而无需依赖第三方推理服务。使用LocalAI,Elasticsearch的用户在隔离环境或有隐私顾虑的情况下,可以利用世界一流的向量数据库为他们的RAG应用程序提供服务,而不会牺牲计算性能或选择最佳AI模型的能力。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
1 条评论
热度
最新
文介绍了如何在隔离环境中使用LocalAI进行GPU加速的文本嵌入,适用于需要在本地环境中运行且有隐私顾虑的用户。通过详细的步骤指导,读者可以设置和配置LocalAI,并与Elasticsearch集成,实现高效的语义搜索和数据嵌入
文介绍了如何在隔离环境中使用LocalAI进行GPU加速的文本嵌入,适用于需要在本地环境中运行且有隐私顾虑的用户。通过详细的步骤指导,读者可以设置和配置LocalAI,并与Elasticsearch集成,实现高效的语义搜索和数据嵌入
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
LLM大模型部署实战指南:Ollama简化流程,OpenLLM灵活部署,LocalAI本地优化,Dify赋能应用开发
Ollama 是一个开源框架,专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计。,这是 Ollama 的官网地址:https://ollama.com/
汀丶人工智能
2024/08/17
1.5K0
LLM大模型部署实战指南:Ollama简化流程,OpenLLM灵活部署,LocalAI本地优化,Dify赋能应用开发
LocalAI——一款可在消费级硬件上本地运行 LLMs的AI应用
在AI盛起的当下,各类AI应用不断地出现在人们的视野中,AI正在重塑着各行各业。笔者前前后后调研过无数个AI应用项目,它们都是各自应用场景中的佼佼者。今天介绍的LocalAI 是一个符合 OpenAI API 规范的 REST API,用于本地推理。它允许您在消费级硬件上本地或本地运行 LLMs(不仅仅是)支持多个与 ggml 格式兼容的模型系列,不需要 GPU。
山行AI
2023/08/10
8.8K0
LocalAI——一款可在消费级硬件上本地运行 LLMs的AI应用
寻找最佳的RAG开源嵌入模型
寻找适合您 RAG 应用的最佳开源嵌入模型?我们分享一个比较工作流程,以便您可以停止支付 OpenAI 的费用。
云云众生s
2024/12/24
1.5K0
寻找最佳的RAG开源嵌入模型
如何通过开源项目 LocalAI 运行本地 LLM
我们研究了一种开源方法,用于在本地运行大型语言模型。LocalAI 是私有公司 Ollama 的替代品。
云云众生s
2024/04/08
1.2K0
如何通过开源项目 LocalAI 运行本地 LLM
本地测试 DeepSeek R1 用于 RAG 与 Ollama 和 Kibana
最近大家都在讨论DeepSeek R1,这是中国幻方推出的新大型语言模型。新闻中充满了对这个具备链式推理能力且权重公开的LLM对行业影响的猜测。对那些好奇尝试这个新模型与 RAG 以及 Elasticsearch 向量数据库的功能的人来说,这里有一个快速教程,教你如何使用本地推理来使用 DeepSeek R1。在此过程中,我们将使用 Elastic 的 Playground 功能,并发现 Deepseek R1 对 RAG 的一些优缺点。
点火三周
2025/02/04
7981
本地测试 DeepSeek R1 用于 RAG 与 Ollama 和 Kibana
langchain4j+local-ai小试牛刀
本文主要研究一下如何本地运行local-ai并通过langchain4j集成调用。
code4it
2025/03/03
1110
langchain4j+local-ai小试牛刀
langchain4j+local-ai小试牛刀
本文主要研究一下如何本地运行local-ai并通过langchain4j集成调用。
code4it
2025/03/01
960
langchain4j+local-ai小试牛刀
本地化部署文本嵌入向量模型(AI知识库中间最重要一环)的爬坑过程
前言:嵌入向量模型排行榜,可以在这个网站上进行查看。可以手动选择不同的模型进行横向对比:
Wesky
2025/04/04
2590
本地化部署文本嵌入向量模型(AI知识库中间最重要一环)的爬坑过程
腾讯云ES AI增强搜索:十分钟快速入门自然语言处理(NLP)与向量检索
| 导语 本文从腾讯云ES AI增强搜索相关能力介绍出发,通过集群部署、模型上传、效果验证等全流程演示,从零到一完成基于腾讯云ES的自然语言处理(NLP)与向量检索实践。
腾讯QQ大数据
2023/11/24
1K1
腾讯云ES AI增强搜索:十分钟快速入门自然语言处理(NLP)与向量检索
Xinference实战指南:全面解析LLM大模型部署流程,携手Dify打造高效AI应用实践案例,加速AI项目落地进程
Xorbits Inference (Xinference) 是一个开源平台,用于简化各种 AI 模型的运行和集成。借助 Xinference,您可以使用任何开源 LLM、嵌入模型和多模态模型在云端或本地环境中运行推理,并创建强大的 AI 应用。通过 Xorbits Inference,可以轻松地一键部署你自己的模型或内置的前沿开源模型
汀丶人工智能
2024/08/17
6.1K0
Xinference实战指南:全面解析LLM大模型部署流程,携手Dify打造高效AI应用实践案例,加速AI项目落地进程
容器环境下部署Open-webui、One-api、Ollama、Deepseek
浏览器访问 http://ip:3000 (注意:首次登录不要去注册,直接登录,默认超管账号:root,密码:123456),登录后直接跳转到更新用户信息界面修改后再重新登陆,如下截图:
用户2141488
2025/03/07
5521
基于 Deepseek LLM 本地知识库搭建开源方案(AnythingLLM、Cherry、Ragflow、Dify)认知
LLM 本身只是一些 神经网络参数, 就拿 DeepSeek-R1 来讲,模型本身存储了 权重矩阵,以及 混合专家(MoE)架构, 实际运行起来需要行业级别的服务器配置, 消费级别的个人电脑不能直接运行,实际还涉及到硬件适配,需手动配置 CUDA/PyTorch 环境,编写分布式推理代码,处理量化与内存溢出问题
山河已无恙
2025/02/25
1.7K0
基于 Deepseek LLM 本地知识库搭建开源方案(AnythingLLM、Cherry、Ragflow、Dify)认知
选择最适合数据的嵌入模型:OpenAI 和开源多语言嵌入的对比测试
OpenAI最近发布了他们的新一代嵌入模型embedding v3,他们将其描述为性能最好的嵌入模型,具有更高的多语言性能。这些模型分为两类:较小的称为text- embeddings -3-small,较大且功能更强大的称为text- embeddings -3-large。
deephub
2024/03/01
3.1K0
选择最适合数据的嵌入模型:OpenAI 和开源多语言嵌入的对比测试
31.3K star!开源免费本地AI神器,一键部署多模态大模型!
嗨,大家好,我是小华同学,关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法
小华同学ai
2025/03/31
3560
31.3K star!开源免费本地AI神器,一键部署多模态大模型!
详解几种常见本地大模型个人知识库工具部署、微调及对比选型(2)
这里首先介绍的是大模型侧的工具安装部署实践,至于为什么先提大模型侧后提知识库侧呢?这是因为大模型通常是知识库操作和应用的基础与核心,是提供智能决策的引擎。它们构建了理解和生成文本、图像、语音等多模态反应的基础能力,是整个智能应用的心脏,同时,由于这次主题是本地大模型个人知识库,所以大模型的安装、配置、优化和部署是首要步骤,也是确保知识库工具能够顺畅运行的基石。
zhouzhou的奇妙编程
2024/06/12
4.4K0
使用 LangChain 和 Elasticsearch 实现隐私优先的人工智能搜索
过去几个周末,我一直沉浸在“即时工程”的迷人世界中,学习Elasticsearch® 等向量数据库如何通过充当长期记忆和语义知识存储来增强 ChatGPT 等大型语言模型 (LLM)。然而,困扰我和许多其他经验丰富的数据架构师的一件事是,许多教程和演示完全依赖于向大型网络公司和基于云的人工智能公司发送您的私人数据。
点火三周
2023/07/25
2.8K0
使用 LangChain 和 Elasticsearch 实现隐私优先的人工智能搜索
无缝融入,即刻智能[一]:Dify-LLM大模型平台,零编码集成嵌入第三方系统,42K+星标见证专属智能方案
Dify,一款引领未来的开源大语言模型(LLM)应用开发平台,革新性地融合了后端即服务(Backend as a Service,BaaS)与LLMOps的精髓,为开发者铺设了一条从创意原型到高效生产的快车道。其设计旨在打破技术壁垒,让非技术背景的用户也能轻松参与至AI应用的构思与数据运营之中,共同塑造智能未来。
汀丶人工智能
2024/08/17
2.9K0
无缝融入,即刻智能[一]:Dify-LLM大模型平台,零编码集成嵌入第三方系统,42K+星标见证专属智能方案
FauxPilot :可本地运行的开源 GitHub Copilot (Copilot Plugin)
GitHub Copilot 是 GitHub 去年 6 月推出的人工智能模型,这是一个利用机器学习技术为开发者提供代码建议和代码补全的工具,能够帮助开发者更快完成编程任务。但由于 GitHub Copilot 训练使用的数据集,以及该工具如今成为了一款向开发者收费的商业性产品,GitHub Copilot 也引发了一些争议。
一个会写诗的程序员
2022/09/28
5.4K0
FauxPilot :可本地运行的开源 GitHub Copilot (Copilot Plugin)
使用 E5 嵌入模型进行多语言向量搜索
近年来,向量搜索席卷了搜索和信息检索领域。它能够将查询的语义与文档相匹配,合并文本的上下文和含义,并为用户提供前所未有的自然语言查询能力。向量搜索是促进大型语言模型 (LLM) 的重要上下文来源,它为生成式 AI 时代越来越多的现代搜索体验提供动力。
点火三周
2023/09/27
2.8K0
使用 E5 嵌入模型进行多语言向量搜索
Elasticsearch 开放推理 API 新增 Hugging Face 原生分块支持
通过 Elasticsearch 的开放推理 API,你可以使用 Hugging Face 的 Inference Endpoints 在 Elasticsearch 外部进行推理。这使你能够利用 Hugging Face 的可扩展基础设施,包括在 GPU 和 AI 加速器上进行推理的能力。生成的 Hugging Face 嵌入的使用能力作为第一个开放推理 API 集成在 Elasticsearch 8.11 中引入,从那时起,我们一直在努力更新它,增加了更强大的功能,使你能够以更少的努力获得更好的结果。
点火三周
2024/09/15
1800
Elasticsearch 开放推理 API 新增 Hugging Face 原生分块支持
推荐阅读
LLM大模型部署实战指南:Ollama简化流程,OpenLLM灵活部署,LocalAI本地优化,Dify赋能应用开发
1.5K0
LocalAI——一款可在消费级硬件上本地运行 LLMs的AI应用
8.8K0
寻找最佳的RAG开源嵌入模型
1.5K0
如何通过开源项目 LocalAI 运行本地 LLM
1.2K0
本地测试 DeepSeek R1 用于 RAG 与 Ollama 和 Kibana
7981
langchain4j+local-ai小试牛刀
1110
langchain4j+local-ai小试牛刀
960
本地化部署文本嵌入向量模型(AI知识库中间最重要一环)的爬坑过程
2590
腾讯云ES AI增强搜索:十分钟快速入门自然语言处理(NLP)与向量检索
1K1
Xinference实战指南:全面解析LLM大模型部署流程,携手Dify打造高效AI应用实践案例,加速AI项目落地进程
6.1K0
容器环境下部署Open-webui、One-api、Ollama、Deepseek
5521
基于 Deepseek LLM 本地知识库搭建开源方案(AnythingLLM、Cherry、Ragflow、Dify)认知
1.7K0
选择最适合数据的嵌入模型:OpenAI 和开源多语言嵌入的对比测试
3.1K0
31.3K star!开源免费本地AI神器,一键部署多模态大模型!
3560
详解几种常见本地大模型个人知识库工具部署、微调及对比选型(2)
4.4K0
使用 LangChain 和 Elasticsearch 实现隐私优先的人工智能搜索
2.8K0
无缝融入,即刻智能[一]:Dify-LLM大模型平台,零编码集成嵌入第三方系统,42K+星标见证专属智能方案
2.9K0
FauxPilot :可本地运行的开源 GitHub Copilot (Copilot Plugin)
5.4K0
使用 E5 嵌入模型进行多语言向量搜索
2.8K0
Elasticsearch 开放推理 API 新增 Hugging Face 原生分块支持
1800
相关推荐
LLM大模型部署实战指南:Ollama简化流程,OpenLLM灵活部署,LocalAI本地优化,Dify赋能应用开发
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档