在本地运行 Mixtral 8x7 与 LlamaIndex [译]

在本地运行 Mixtral 8x7 与 LlamaIndex [译]

💡 原文中文,约5900字,阅读约需15分钟。
📝

内容提要

本文介绍如何在本地用Ollama运行开源混合专家模型Mixtral 8x7b(需约48GB内存,配置不足可改用Mistral 7b),并结合LlamaIndex与Qdrant向量数据库加载、索引数据,实现基于自有数据的查询,还演示了用Flask将索引封装成简单API,全部开源免费、可本地运行。

🔎

延伸解读

硬件门槛与替代方案

文章明确指出,运行 Mixtral 8x7b 需要高达 48GB 的 RAM,这远高于普通消费级电脑的配置。如果内存不足,作者建议改用 Mistral 7b,其安装和运行方式完全相同,但性能稍逊。这意味着读者在尝试前需先确认自身硬件,避免因内存不足导致失败。同时,Ollama 目前支持 MacOS 和 Linux,Windows 用户需通过 WSL 使用,这也是一个实际限制。

本地索引与查询的关键配置

在构建索引时,文章使用 embed_model="local" 让 LlamaIndex 在本地完成嵌入,因此需要安装 torch 和 transformers。查询时通过 similarity_top_k 参数控制检索的推文数量,默认是 2 条,示例中设为 20 条以提供更多上下文。这提示读者:检索数量会影响回答的准确性和速度,需要根据数据量和硬件性能权衡调整。此外,Ollama 处理查询时启动 Mixtral 可能较慢,需耐心等待。

从脚本到 API 的实用细节

文章演示了用 Flask 将索引封装成 API,并特别提醒:由于 flask run 命令与 LlamaIndex 加载依赖的方式不兼容,必须直接运行 python app.py 来启动服务。这是一个容易忽略的实操细节。API 接收表单数据中的 query 字段,返回 JSON 格式的响应,并启用了 CORS 以便跨域调用。读者可以基于此快速搭建本地查询服务,但需注意该示例仅为基础版本,未涉及生产环境的安全或性能优化。

❓

Q&A

Mixtral 8x7b 是什么模型?它有什么特点?

Mixtral 8x7b 是 Mistral AI 发布的混合专家模型,包含八个拥有 70 亿参数的专家模型。它在多项基准测试中与 GPT-3.5 相当,甚至在某些方面超越 Llama2 70b。

在本地运行 Mixtral 8x7b 需要多少内存?如果内存不够怎么办?

运行 Mixtral 8x7b 需要约 48GB 的 RAM。如果配置不足,可以改用 Mistral 7b,其安装和运行方式与 Mixtral 相同。

如何用 Ollama 安装和运行 Mixtral?

首先安装 Ollama(支持 MacOS 和 Linux,Windows 可通过 WSL 使用),然后运行命令 `ollama run mixtral` 即可自动下载并启动模型。

如何用 LlamaIndex 和 Qdrant 构建本地数据索引?

安装 llama-index、qdrant_client 等依赖,使用 JSONReader 加载数据,初始化 Qdrant 客户端并创建向量存储,设置 ServiceContext(LLM 为 Mixtral,嵌入模型为本地),最后用 VectorStoreIndex.from_documents 构建索引。

如何将 LlamaIndex 索引封装成 Flask API?

安装 flask 和 flask-cors,加载向量存储、LLM 和索引,创建 Flask 应用并添加 `/process_form` 路由,接收 POST 请求中的 query 参数,通过查询引擎处理并返回 JSON 响应。最后用 `python app.py` 运行。

查询时如何增加检索的上下文数量以提高回答准确性?

在创建查询引擎时设置 `similarity_top_k` 参数,例如 `similarity_top_k=20`,这样会一次性获取 20 条相关文本(默认是 2 条),提供更多上下文。

🏷️

标签

➡️

继续阅读