3个版本 (破坏性)
0.2.0 | 2023年8月6日 |
---|---|
0.1.0 | 2023年8月6日 |
0.0.0 | 2023年8月5日 |
#4 in #meaning
160KB
3.5K SLoC
晨搜
晨搜是一个开源的基于意义的分布式网络搜索引擎。它可以索引Common Crawl数据。它使用语义搜索(基于意义搜索),使用all-MiniLM-L6-v2。它使用USearch进行向量搜索。晨搜是用Rust编写的。
公有的实例可在dawnsearch.org找到。
项目状态
晨搜目前作为一个分布式(语义)向量搜索引擎运行。当你启动一个实例时,它将向追踪器注册。实例然后可以通过搜索参与网络。可选地,它可以索引Common Crawl数据集并回答查询。
还需要完成的主要项目
- 更好的错误处理。代码中还有很多.unwrap()。
- 对故障或恶意实例的鲁棒性。
- 数据包加密以防止窃听。
- 将所有索引的页面分布到语义上接近的实例以提高搜索效率。目前搜索是发送到所有实例的。
快速入门
这将在一个最新的Ubuntu上构建和运行一个'访问终端'晨搜实例,不使用GPU加速。请参阅模式以了解其他配置的示例。
sudo apt-get update && sudo apt-get install -y build-essential libssl-dev pkg-config python3-pip
# Install rust if you don't have it already:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
pip3 install torch==2.0.0 --index-url https://download.pytorch.org/whl/cpu
现在我们需要确保构建系统可以找到PyTorch。我们搜索这个包
pip3 show torch
这将打印以下内容
Name: torch
Version: 2.0.0
Summary: Tensors and Dynamic neural networks in Python with strong GPU acceleration
Home-page: https://pytorch.org/
Author: PyTorch Team
Author-email: packages@pytorch.org
License: BSD-3
Location: /home/ubuntu/.local/lib/python3.10/site-packages
Requires: filelock, jinja2, networkx, sympy, typing-extensions
Required-by:
使用来自'位置'的路径,将其放入.bashrc中。注意,您需要追加'/torch'。
export LIBTORCH=/home/ubuntu/.local/lib/python3.10/site-packages/torch
export LD_LIBRARY_PATH=${LIBTORCH}/lib:$LD_LIBRARY_PATH
现在我们可以加载新的环境变量并构建
source ~/.bashrc
mv DawnSearch.toml.example DawnSearch.toml
cargo run --release
现在,转到https://127.0.0.1:8080 访问您自己的晨搜实例。您将能够执行搜索,但您还没有为网络做出贡献。查看模式以了解如何做到这一点。
如果您想升级到GPU加速,请尝试以下操作
pip3 install torch==2.0.0
cargo clean
cargo run --release
或者,按照tch crate中记录的步骤进行。
请注意,在M1/M2 Mac上,'cargo install' 不起作用。但是'cargo build' 可以。
如果您遇到问题,请随时提出问题!
配置
您可以通过DawnSearch.toml 或通过环境变量如DAWNSEARCH_INDEX_CC来配置晨搜。
贡献
请提出问题或创建拉取请求!在开始进行重大增强或重构之前,请先提出一个问题。
另请参阅
- 如何在Rust中构建语义搜索引擎 - 优秀的教程,介绍如何使用rust-bert进行语义搜索。
依赖项
~56–78MB
~1.5M SLoC