LeapfrogAI는 에어갭 환경에 배포되도록 설계된 자체 호스팅 AI 플랫폼입니다. 이 프로젝트의 목표는 AI 스택의 모든 필수 구성 요소를 호스팅함으로써 리소스가 제한된 환경에 정교한 AI 솔루션을 제공하는 것입니다.
당사의 서비스에는 벡터 데이터베이스, 모델 백엔드, API 및 UI가 포함됩니다. 이러한 기능은 쉽게 액세스하고 기존 인프라와 통합할 수 있으므로 환경의 제한에 관계없이 AI의 기능을 활용할 수 있습니다.
LLM(대형 언어 모델)은 AI 기반 의사 결정, 콘텐츠 생성 등을 위한 강력한 리소스입니다. LeapfrogAI는 어떻게 AI를 귀하의 임무에 활용할 수 있습니까?
데이터 독립성 : 중요한 정보를 제3자 서비스에 보내는 것은 모든 유형의 데이터 또는 조직에 적합하지 않거나 허용되지 않을 수 있습니다. 자체 LLM을 호스팅하면 데이터에 대한 모든 권한을 유지할 수 있습니다.
확장성 : 종량제 AI 서비스는 특히 대용량 데이터가 포함되고 지속적인 연결이 필요한 경우 비용이 많이 들 수 있습니다. 자체 LLM을 운영하는 것은 모든 규모의 임무에 대해 보다 비용 효율적인 솔루션이 될 수 있습니다.
임무 통합 : 자체 LLM을 호스팅하면 모델의 매개변수, 교육 데이터 등을 사용자 정의하여 AI를 특정 요구 사항에 맞게 조정할 수 있습니다.
LeapfrogAI는 Defense Unicorns의 보안 런타임 환경인 Unicorn Delivery Service(UDS)를 기반으로 구축되었으며 다음과 같은 여러 기능을 포함합니다.
LeapfrogAI 리포지토리는 전용 packages
디렉터리에 포함된 각 구성 요소가 있는 API를 기반으로 하는 모노레포 구조를 따릅니다. LeapfrogAI의 개발 및 최신 배포를 처리하는 UDS 번들은 bundles
디렉터리에 있습니다. 구조는 다음과 같습니다.
leapfrogai/
├── src/
│ ├── leapfrogai_api/ # source code for the API
│ ├── leapfrogai_evals/ # source code for the LeapfrogAI evaluation framework
│ ├── leapfrogai_sdk/ # source code for the SDK
│ └── leapfrogai_ui/ # source code for the UI
├── packages/
│ ├── api/ # deployment infrastructure for the API
│ ├── llama-cpp-python/ # source code & deployment infrastructure for the llama-cpp-python backend
│ ├── repeater/ # source code & deployment infrastructure for the repeater model backend
│ ├── supabase/ # deployment infrastructure for the Supabase backend and postgres database
│ ├── text-embeddings/ # source code & deployment infrastructure for the text-embeddings backend
│ ├── ui/ # deployment infrastructure for the UI
│ ├── vllm/ # source code & deployment infrastructure for the vllm backend
│ └── whisper/ # source code & deployment infrastructure for the whisper backend
├── bundles/
│ ├── dev/ # uds bundles for local uds dev deployments
│ └── latest/ # uds bundles for the most current uds deployments
├── Makefile
├── pyproject.toml
├── README.md
└── ...
LeapfrogAI를 실행하는 데 선호되는 방법은 UDS를 사용하는 로컬 Kubernetes 배포입니다.
시스템 요구 사항 및 지침은 LeapfrogAI 설명서 웹사이트의 빠른 시작 섹션을 참조하세요.
LeapfrogAI는 OpenAI와 거의 일치하는 API를 제공합니다. 이 기능을 사용하면 OpenAI/ChatGPT로 구축된 도구가 LeapfrogAI 백엔드와 원활하게 작동할 수 있습니다.
LeapfrogAI SDK는 gRPC로 백엔드를 구현하기 위한 표준 protobuf 및 Python 유틸리티 세트를 제공합니다.
LeapfrogAI는 일반 채팅 및 "문서 관련 Q&A"와 같은 일반적인 사용 사례를 지원하는 UI를 제공합니다.
LeapfrogAI는 다양한 사용 사례에 맞는 여러 백엔드를 제공합니다. 다음은 백엔드 지원 및 호환성 매트릭스입니다.
백엔드 | AMD64 | ARM64 | 쿠다 | 도커 | 쿠버네티스 | UDS |
---|---|---|---|---|---|---|
라마-cpp-파이썬 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
속삭임 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
텍스트 임베딩 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
vllm | ✅ | ❌ 1 | ✅ | ✅ | ✅ | ✅ |
리피터 "모델"은 수신되는 모든 입력을 사용자에게 다시 전달하는 기본 "백엔드"입니다. 모든 실제 백엔드와 동일한 방식으로 구축되었으며 주로 API 테스트에 사용됩니다.
LeapfrogAI는 DeepEval과 통합된 평가 프레임워크와 함께 제공됩니다. LeapfrogAI에서 평가를 실행하고 활용하는 방법에 대한 자세한 내용은 Evals README를 참조하세요.
각 구성 요소에는 특정 이미지 레지스트리 및/또는 강화 소스를 참조하는 다양한 이미지와 값이 있습니다. 다음 이미지는 Zarf Flavors를 사용하여 패키징됩니다.
upstream
: 오픈 소스 컨테이너 레지스트리 및 리포지토리의 업스트림 공급업체 이미지를 사용합니다.registry1
: Repo1 하버 레지스트리의 IronBank 강화 이미지를 사용합니다.다음은 현재 구성 요소 버전 목록입니다.
요소 | upstream | registry1 |
---|---|---|
API | ✅ | ✅ |
UI | ✅ | ? |
초염기 | ✅ | ? |
마이그레이션 | ✅ | ? |
라마-cpp-파이썬 | ✅ | ? |
속삭임 | ✅ | ? |
텍스트 임베딩 | ✅ | ? |
vllm | ✅ | ? |
vllm | ✅ | ? |
?로 표시된 구성 요소가 포함된 맛 아직 빠른 시작 번들 배포로 사용할 수 없습니다. 로컬 테스트를 위해 구성 요소의 Zarf 패키지를 빌드하는 방법에 대한 지침은 DEVELOPMENT.md를 참조하세요.
LeapfrogAI UDS 번들을 구축하고 배포하려면 LeapfrogAI 설명서 웹사이트를 참조하세요. 문서 웹사이트에서는 로컬 개발 및 기여와 관련되지 않은 모든 LeapfrogAI에 대한 시스템 요구 사항 및 지침을 찾을 수 있습니다.
로컬 Python 또는 Node.js 환경의 각 구성 요소에 대한 기여 및 로컬 배포 및 개발에 대해서는 다음 섹션을 계속 진행하세요.
메모
로컬 개발을 시도하기 전에 LeapfrogAI 문서 웹사이트부터 시작하십시오.
각 LeapfrogAI 구성 요소는 Kubernetes 또는 컨테이너화된 환경 외부에서 개별적으로 실행될 수도 있습니다. 이는 특정 구성 요소에 대한 변경 사항을 테스트할 때 유용하지만 LeapfrogAI의 전체 배포에는 도움이 되지 않습니다. 배포 지침은 위 섹션을 참조하세요. LeapfrogAI에 기여하는 규칙은 다음 섹션을 참조하세요.
먼저 일반적인 개발 세부 사항을 보려면 DEVELOPMENT.md 문서를 참조하세요.
그런 다음 각 개별 하위 디렉터리의 로컬 개발 지침에 대해 연결된 README를 참조하세요.
모든 잠재적 기여자 및 현재 기여자는 이 저장소에 이슈를 열거나 풀 요청을 하기 전에 기여 문서, 보안 정책 및 행동 강령을 읽었는지 확인해야 합니다.
이슈를 제출하거나 PR을 열 때 먼저 기존 또는 종료된 이슈와 PR을 기준으로 잠재적인 이슈나 PR을 검색했는지 확인하세요. 중복된 것으로 인식된 문제는 종료되므로 관련 문제 또는 유사한 문제 및 PR과 귀하의 기여를 참조하고 구별하시기 바랍니다.
LeapfrogAI는 다음을 포함한 사용자 및 기여자 커뮤니티에서 지원됩니다.
이 목록에 귀하의 조직이나 로고를 추가하고 싶으십니까? PR을 열어보세요!
vLLM에는 ARM64용으로 구축된 CUDA 지원 PyTorch가 필요하며, 이는 pip 또는 conda를 통해 사용할 수 없습니다 ↩
SDK는 기능적으로 독립적인 단위가 아니며 API 및 백엔드와 종속성으로 결합 및 패키징될 때만 기능 단위가 됩니다. ↩
API와 UI에는 2개의 하위 디렉터리에 아티팩트가 있다는 점에 유의하세요. packages/
와 관련된 하위 디렉터리는 Zarf 패키징 및 Helm 차트에 중점을 두는 반면, src/
와 관련된 하위 디렉터리에는 실제 소스 코드와 개발 지침이 포함되어 있습니다. ↩ ↩ 2