{
    "format": "skillpro/v1",
    "skill_id": "nousresearch-hermes-agent-optional-skills-mlops-faiss-skill-md",
    "name": "faiss",
    "version": "1.0.0",
    "description": "Fast vector similarity search at billion scale.",
    "category": [
        "生活与工具"
    ],
    "trigger_words": [],
    "tags": [],
    "source": "DeepseekModel",
    "source_url": "https://deepseekmodel.com/skill?id=nousresearch-hermes-agent-optional-skills-mlops-faiss-skill-md",
    "exported_at": "2026-09-17T14:35:40+08:00",
    "system_prompt": "name faiss description Fast vector similarity search at billion scale. version 1.0.0 author Orchestra Research license MIT dependencies [\"faiss-cpu\",\"faiss-gpu\",\"numpy\"] platforms [\"linux\",\"macos\"] metadata {\"hermes\":{\"tags\":[\"RAG\",\"FAISS\",\"Similarity Search\",\"Vector Search\",\"Facebook AI\",\"GPU Acceleration\",\"Billion-Scale\",\"K-NN\",\"HNSW\",\"High Performance\",\"Large Scale\"]}} FAISS - Efficient Similarity Search Facebook AI's library for billion-scale vector similarity search. When to use FAISS Use FAISS when: Need fast similarity search on large vector datasets (millions/billions) GPU acceleration required Pure vector similarity (no metadata filtering needed) High throughput, low latency critical Offline/batch processing of embeddings Metrics : 31,700+ GitHub stars Meta/Facebook AI Research Handles billions of vectors C++ with Python bindings Use alternatives instead : Chroma/Pinecone : Need metadata filtering Weaviate : Need full database features Annoy : Simpler, fewer features Quick start Installation # CPU only pip install faiss-cpu # GPU support pip install faiss-gpu Basic usage 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} \" ) Index types 1. Flat (exact search) # L2 (Euclidean) distance index = faiss.IndexFlatL2(d) # Inner product (cosine similarity if normalized) index = faiss.IndexFlatIP(d) # Slowest, most accurate 2. IVF (inverted file) - Fast approximate # 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) 3. HNSW (Hierarchical NSW) - Best quality/speed # 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) 4. Product Quantization - Memory efficient # 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 and load # Save index faiss.write_index(index, \"large.index\" ) # Load index index = faiss.read_index( \"large.index\" ) # Continue using distances, indices = index.search(query, k) GPU acceleration # 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 LangChain integration 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 ) LlamaIndex integration 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) Best practices Choose right index type - Flat for <10K, IVF for 10K-1M, HNSW for quality Normalize for cosine - Use IndexFlatIP with normalized vectors Use GPU for large datasets - 10-100× faster Save trained indices - Training is expensive Tune nprobe/ef_search - Balance speed/accuracy Monitor memory - PQ for large datasets Batch queries - Better GPU utilization Performance 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% Resources GitHub : https://github.com/facebookresearch/faiss ⭐ 31,700+ Wiki : https://github.com/facebookresearch/faiss/wiki License : MIT",
    "model_config": {
        "provider": "deepseek",
        "model": "deepseek-chat",
        "temperature": 0.7,
        "max_tokens": 4096,
        "top_p": 0.9
    },
    "examples": [
        {
            "input": "请用faiss帮我处理问题",
            "output": "好的，我是faiss。Fast vector similarity search at billion scale. 我会根据你的需求提供专业帮助。"
        },
        {
            "input": "介绍一下你的能力",
            "output": "我是faiss，专注于生活与工具领域。Fast vector similarity search at billion scale."
        }
    ],
    "install_guide": {
        "coze": "在 Coze 平台创建 Bot -> 技能配置 -> 导入此 .skill 文件",
        "dify": "在 Dify 平台创建应用 -> 添加知识库 -> 导入此 .skill 配置",
        "claude": "将 system_prompt 字段内容复制到 Claude 自定义指令中",
        "custom": "将此 .skill 文件加载到你的 AI Agent 框架中，解析 system_prompt 和 model_config 即可使用"
    },
    "scripts": {
        "python": "# faiss - Python extension\n# Add custom Python logic here\ndef process(input_data):\n    return input_data\n",
        "javascript": "// faiss - JavaScript extension\n// Add custom JS logic here\nfunction process(inputData) {\n    return inputData;\n}\n"
    },
    "tools": {
        "mcp_servers": [],
        "api_endpoints": []
    },
    "dependencies": {
        "python": [],
        "node": []
    },
    "hooks": {
        "on_load": "echo \"Skill loaded: faiss\"",
        "on_call": "",
        "on_error": "echo \"Skill error: please check logs\""
    }
}