Ahnlich
<p align="left"><img src="https://raw.githubusercontent.com/deven96/ahnlich/HEAD/assets/logo.jpg" alt="ahnlich" height="120px"></p>
All Test
Netlify Status
⚠️ 참고: Ahnlich는 매우 빠르게 발전하고 있으며, 대부분의 사용 사례에서는 안정적이지만, 기능 개선에 따라 간헐적인 breaking update가 발생할 수 있습니다.
"ähnlich"는 독일어로 '비슷한'을 의미합니다. 이는 다음과 같은 여러 도구들을 포함하여 사용 및 개발에 활용될 수 있습니다:
ahnlich-db: 임베딩(embeddings)/벡터를 저장하고 관련 메타데이터(키-값 맵)와 연결하는 인메모리 벡터 키-값 스토어입니다. 이는 AI/ML 엔지니어들이 선형(코사인, 유클리드) 또는 비선형 유사성(hnsw) 알고리즘을 사용하여 유사한 벡터를 저장하고 검색할 수 있게 해주는 강력한 시스템입니다. 또한 메타데이터 값 내에서 검색 기능을 활용하여 해당 값을 이용해 엔트리를 필터링할 수도 있습니다. 간단한 예시는 다음과 같습니다:
GETSIMN 2 WITH [0.2, 0.1] USING cosinesimilarity IN my_store WHERE (page != hidden)
// example query
...
ahnlich-ai: ahnlich-db와 통신하는 AI 프록시입니다. 원본 입력(raw input)을 받아 임베딩으로 변환한 후 DB에 저장합니다. 이를 통해 개발자/엔지니어는 이미지/텍스트와 같은 원본 입력을 사용하여 동일한 스토어에 쿼리를 발행할 수 있도록 기능을 확장합니다. 이 도구는 스토어 인덱싱 및 쿼리에 선택할 수 있는 여러 상용 모델(off-the-shelf models)을 제공합니다.
CREATESTORE my_store QUERYMODEL all-minilm-l6-v2 INDEXMODEL all-minilm-l6-v2
// example query
...
Architecture
flowchart TD
subgraph ai [ahnlich‑ai]
direction TB
...
Usage
ahnlich-db, ahnlich-ai, 그리고 ahnlich-cli는 여러 플랫폼용 바이너리(binaries)와 함께 도커 이미지로 패키징되어 릴리스됩니다.
모든 클라이언트가 둘 다를 지원하므로, 생성된 벡터 임베딩(vector embeddings)에 대한 더욱 세밀한 제어(fine-grained control)를 위해 DB는 AI 프록시 없이 사용할 수 있습니다.
Docker Images.
참고 사항:
- 인자(Arguments)와 명령어는 반드시 따옴표로 전달해야 합니다. 예시:
docker run <이미지 이름> "ahnlich-db run --enable-tracing --port 8000"
- CLI는 도커 이미지에 패키징되어 제공됩니다.
설치 (Installation)
바이너리 다운로드 (Download Binaries)
ai 및 db용 Ahnlich 바이너리는 GitHub Releases에서 다운로드할 수 있습니다.
-
wget:
wget https://github.com/deven96/ahnlich/releases/download/bin%2Fdb%2F0.0.0/aarch64-darwin-ahnlich-db.tar.gz
-
파일 압축 해제:
tar -xvzf aarch64-darwin-ahnlich-db.tar.gz
- **바이너리 실행:**
```bash
./ahnlich-db
aarch64-darwin-ahnlich-db.tar.gz를 사용자의 아키텍처에 맞는 파일 이름으로 대체하십시오. ai의 경우, 해당 ai 바이너리를 다운로드하고 압축을 해제한 다음 ./ahnlich-ai를 사용하여 실행합니다.
도커 사용 (Using Docker)
Ahnlich용 사전 구축된(prebuilt) 도커 이미지를 가져올 수 있습니다:
-
Ahnlich AI:
docker pull ghcr.io/deven96/ahnlich-ai:latest
-
Ahnlich DB:
docker pull ghcr.io/deven96/ahnlich-db:latest
예시 Docker Compose (Example Docker Compose)
아래는 추적(tracing) 기능을 사용하여 ahnlich-db와 ahnlich-ai를 모두 실행하기 위한 예시 docker-compose.yaml 설정입니다:
services:
ahnlich_db:
image: ghcr.io/deven96/ahnlich-db:latest
...
영속성(persistence)을 포함한 docker-compose.yaml 구성 예시:
services:
ahnlich_db:
...
비대화형 모드에서 CLI를 사용한 상태 확인(health checks)이 적용된 docker-compose.yaml 구성 예시:
services:
ahnlich_db:
...
--no-interactive 플래그는 CLI가 표준 입력(stdin)을 통해 명령을 수락하고 처리가 완료된 후 즉시 종료할 수 있도록 하여, Docker 상태 확인, CI/CD 파이프라인 및 자동화 스크립트에 이상적입니다.
실행 제공자 (Execution Providers) (Ahnlich AI)
CUDA: CUDAv12 이상만 지원하며, sudo apt install libcudnn9-dev-cuda-12가 필요할 수 있습니다.
CoreML (Apple): 높은 차원성(dimensionality)을 가지는 경우가 많아 NLP 모델에는 권장되지 않습니다.
MIGraphX (AMD GPU, Linux): AMD에서 권장하는 실행 제공자입니다. (상위 ONNX Runtime은 1.23 버전에서 이전 ROCm 제공자를 제거했습니다.) 설치하려면 migraphx 런타임이 필요합니다 (AMD의 ROCm apt 저장소에 포함됨). 지원되는 AMD Instinct 가속기는 ROCm 호환성 매트릭스에 나열되어 있으며, Radeon 카드도 지원됩니다. 지원되지 않는 경우 ORT는 CPU로 폴백(fallback)합니다.
기여 (Contributing)
contribution guide를 참조하세요.