faiss by orchestra-research/ai-research-skills
npx skills add https://github.com/orchestra-research/ai-research-skills --skill faissFacebook AI 用于十亿级向量相似性搜索的库。
在以下情况下使用 FAISS:
指标 :
在以下情况下使用替代方案 :
# 仅 CPU
pip install faiss-cpu
# GPU 支持
pip install faiss-gpu
import faiss
import numpy as np
# 创建示例数据(1000 个向量,128 维)
d = 128
nb = 1000
vectors = np.random.random((nb, d)).astype('float32')
# 创建索引
index = faiss.IndexFlatL2(d) # L2 距离
index.add(vectors) # 添加向量
# 搜索
k = 5 # 查找 5 个最近邻
query = np.random.random((1, d)).astype('float32')
distances, indices = index.search(query, k)
print(f"Nearest neighbors: {indices}")
print(f"Distances: {distances}")
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
# L2(欧几里得)距离
index = faiss.IndexFlatL2(d)
# 内积(如果归一化则为余弦相似度)
index = faiss.IndexFlatIP(d)
# 最慢,最准确
# 创建量化器
quantizer = faiss.IndexFlatL2(d)
# 具有 100 个簇的 IVF 索引
nlist = 100
index = faiss.IndexIVFFlat(quantizer, d, nlist)
# 在数据上训练
index.train(vectors)
# 添加向量
index.add(vectors)
# 搜索(nprobe = 要搜索的簇数)
index.nprobe = 10
distances, indices = index.search(query, k)
# HNSW 索引
M = 32 # 每层的连接数
index = faiss.IndexHNSWFlat(d, M)
# 无需训练
index.add(vectors)
# 搜索
distances, indices = index.search(query, k)
# PQ 可将内存减少 16-32 倍
m = 8 # 子量化器数量
nbits = 8
index = faiss.IndexPQ(d, m, nbits)
# 训练并添加
index.train(vectors)
index.add(vectors)
# 保存索引
faiss.write_index(index, "large.index")
# 加载索引
index = faiss.read_index("large.index")
# 继续使用
distances, indices = index.search(query, k)
# 单 GPU
res = faiss.StandardGpuResources()
index_cpu = faiss.IndexFlatL2(d)
index_gpu = faiss.index_cpu_to_gpu(res, 0, index_cpu) # GPU 0
# 多 GPU
index_gpu = faiss.index_cpu_to_all_gpus(index_cpu)
# 比 CPU 快 10-100 倍
from langchain_community.vectorstores import FAISS
from langchain_openai import OpenAIEmbeddings
# 创建 FAISS 向量存储
vectorstore = FAISS.from_documents(docs, OpenAIEmbeddings())
# 保存
vectorstore.save_local("faiss_index")
# 加载
vectorstore = FAISS.load_local(
"faiss_index",
OpenAIEmbeddings(),
allow_dangerous_deserialization=True
)
# 搜索
results = vectorstore.similarity_search("query", k=5)
from llama_index.vector_stores.faiss import FaissVectorStore
import faiss
# 创建 FAISS 索引
d = 1536
faiss_index = faiss.IndexFlatL2(d)
vector_store = FaissVectorStore(faiss_index=faiss_index)
| 索引类型 | 构建时间 | 搜索时间 | 内存 | 精度 |
|---|---|---|---|---|
| Flat | 快 | 慢 | 高 | 100% |
| IVF | 中等 | 快 | 中等 | 95-99% |
| HNSW | 慢 | 最快 | 高 | 99% |
| PQ | 中等 | 快 | 低 | 90-95% |
每周安装量
91
代码仓库
GitHub Stars
5.5K
首次出现
Feb 7, 2026
安全审计
安装于
cursor73
opencode67
claude-code65
codex56
gemini-cli55
github-copilot54
Facebook AI's library for billion-scale vector similarity search.
Use FAISS when:
Metrics :
Use alternatives instead :
# CPU only
pip install faiss-cpu
# GPU support
pip install faiss-gpu
import faiss
import numpy as np
# Create sample data (1000 vectors, 128 dimensions)
d = 128
nb = 1000
vectors = np.random.random((nb, d)).astype('float32')
# Create index
index = faiss.IndexFlatL2(d) # L2 distance
index.add(vectors) # Add vectors
# Search
k = 5 # Find 5 nearest neighbors
query = np.random.random((1, d)).astype('float32')
distances, indices = index.search(query, k)
print(f"Nearest neighbors: {indices}")
print(f"Distances: {distances}")
# L2 (Euclidean) distance
index = faiss.IndexFlatL2(d)
# Inner product (cosine similarity if normalized)
index = faiss.IndexFlatIP(d)
# Slowest, most accurate
# Create quantizer
quantizer = faiss.IndexFlatL2(d)
# IVF index with 100 clusters
nlist = 100
index = faiss.IndexIVFFlat(quantizer, d, nlist)
# Train on data
index.train(vectors)
# Add vectors
index.add(vectors)
# Search (nprobe = clusters to search)
index.nprobe = 10
distances, indices = index.search(query, k)
# HNSW index
M = 32 # Number of connections per layer
index = faiss.IndexHNSWFlat(d, M)
# No training needed
index.add(vectors)
# Search
distances, indices = index.search(query, k)
# PQ reduces memory by 16-32×
m = 8 # Number of subquantizers
nbits = 8
index = faiss.IndexPQ(d, m, nbits)
# Train and add
index.train(vectors)
index.add(vectors)
# Save index
faiss.write_index(index, "large.index")
# Load index
index = faiss.read_index("large.index")
# Continue using
distances, indices = index.search(query, k)
# Single GPU
res = faiss.StandardGpuResources()
index_cpu = faiss.IndexFlatL2(d)
index_gpu = faiss.index_cpu_to_gpu(res, 0, index_cpu) # GPU 0
# Multi-GPU
index_gpu = faiss.index_cpu_to_all_gpus(index_cpu)
# 10-100× faster than CPU
from langchain_community.vectorstores import FAISS
from langchain_openai import OpenAIEmbeddings
# Create FAISS vector store
vectorstore = FAISS.from_documents(docs, OpenAIEmbeddings())
# Save
vectorstore.save_local("faiss_index")
# Load
vectorstore = FAISS.load_local(
"faiss_index",
OpenAIEmbeddings(),
allow_dangerous_deserialization=True
)
# Search
results = vectorstore.similarity_search("query", k=5)
from llama_index.vector_stores.faiss import FaissVectorStore
import faiss
# Create FAISS index
d = 1536
faiss_index = faiss.IndexFlatL2(d)
vector_store = FaissVectorStore(faiss_index=faiss_index)
| Index Type | Build Time | Search Time | Memory | Accuracy |
|---|---|---|---|---|
| Flat | Fast | Slow | High | 100% |
| IVF | Medium | Fast | Medium | 95-99% |
| HNSW | Slow | Fastest | High | 99% |
| PQ | Medium | Fast | Low | 90-95% |
Weekly Installs
91
Repository
GitHub Stars
5.5K
First Seen
Feb 7, 2026
Security Audits
Gen Agent Trust HubWarnSocketPassSnykPass
Installed on
cursor73
opencode67
claude-code65
codex56
gemini-cli55
github-copilot54
AI 代码实施计划编写技能 | 自动化开发任务分解与 TDD 流程规划工具
50,900 周安装
RSS 代理发现工具 - AI 代理专用 RSS 源 JSON 输出
106 周安装
DuckDuckGo搜索技能 - 开源网络搜索工具,集成DuckDuckGo API,支持多种开发环境
106 周安装
Nuxt 4 数据管理:useFetch、useAsyncData、useState 组合式函数与 SSR 状态管理
70 周安装
Tauri v2 前端调用 Rust 后端函数教程:命令系统与参数传递详解
108 周安装
定价策略师指南:SaaS定价模型、价值指标与分层定价策略框架
106 周安装
Godot组合式架构技能包:组件化游戏开发最佳实践与脚本示例
108 周安装