🚀 완전 관리형 Milvus인 Zilliz Cloud를 무료로 체험해보세요—10배 더 빠른 성능을 경험하세요! 지금 체험하기>>

milvus-logo
LFAI
  • Home
  • Blog
  • 2023년 밀버스 커뮤니티를 지배할 10대 키워드 공개

2023년 밀버스 커뮤니티를 지배할 10대 키워드 공개

  • Engineering
January 21, 2024
Jack Li, Fendy Feng

2023년을 마무리하는 시점에서 Milvus 커뮤니티의 놀라운 여정, 즉 GitHub 스타 25,000개 달성, Milvus 2.3.0 출시, Docker 이미지 다운로드 1,000만 건 돌파를 되돌아보겠습니다. 이 게시물에서는 채팅 기록을 분석하고 토론의 상위 10가지 키워드를 공개하여 커뮤니티의 핵심을 살펴봅니다.

#1위 버전 - AIGC의 부상으로 빠른 Milvus 반복을 주도하다

놀랍게도 '버전'이 2023년에 가장 많이 논의된 키워드로 나타났습니다. 이러한 현상은 AIGC 애플리케이션의 환각 문제를 해결하기 위한 핵심 인프라로 벡터 데이터베이스가 떠오른 올해의 AI 물결에 그 뿌리를 두고 있습니다.

벡터 데이터베이스에 대한 열광적인 반응은 Milvus를 빠른 반복 단계로 이끌었습니다. 커뮤니티에서는 2023년에만 20개의 버전이 출시되어 다양한 애플리케이션에 최적화된 Milvus 버전 선택에 대한 문의가 쇄도하는 등 AIGC 개발자의 요구를 수용했습니다. 이러한 업데이트를 탐색하는 사용자에게는 향상된 기능과 성능을 위해 최신 버전을 사용하는 것이 좋습니다.

Milvus의 출시 계획에 관심이 있으시다면 공식 웹사이트의 Milvus 로드맵 페이지를 참조하세요.

"데이터베이스 운영에서 가장 기본적인 역할을 하는 '검색'이 2위를 차지했습니다. Milvus는 Top-K ANN 검색부터 스칼라 필터링 검색, 범위 검색에 이르기까지 다양한 검색 기능을 지원합니다. 곧 출시될 Milvus 3.0(베타)은 많은 RAG 앱 개발자들이 간절히 기다리던 키워드 검색(스파스 임베딩) 기능을 제공할 예정입니다.

검색에 대한 커뮤니티 토론은 성능, 기능, 원칙에 초점을 맞추고 있습니다. 사용자들은 속성 필터링, 인덱스 임계값 설정, 지연 시간 문제 해결에 대해 자주 질문합니다. 쿼리 및 검색 문서, Milvus 개선 제안(MEP), Discord 토론과 같은 리소스는 Milvus 내에서 검색의 복잡한 문제를 풀기 위해 자주 참조하는 자료가 되었습니다.

#3 메모리 - 메모리 오버헤드 최소화를 위한 성능과 정확도 간의 절충안

'메모리'는 지난 한 해 동안 커뮤니티 토론의 중심 주제이기도 했습니다. 고유한 데이터 유형인 벡터는 본질적으로 높은 차원을 가지고 있습니다. 최적의 성능을 위해 메모리에 벡터를 저장하는 것이 일반적이지만, 데이터 볼륨이 증가하면 사용 가능한 메모리가 제한됩니다. Milvus는 MMap 및 DiskANN과 같은 기술을 채택하여 메모리 사용량을 최적화합니다.

그러나 데이터베이스 시스템에서 낮은 메모리 사용량, 우수한 성능, 높은 정확도를 동시에 달성하는 것은 여전히 복잡하기 때문에 메모리 오버헤드를 최소화하기 위해 성능과 정확도 간의 절충이 필요합니다.

인공 지능 생성 콘텐츠(AIGC)의 경우, 개발자는 일반적으로 엄격한 성능 요구 사항보다 빠른 응답과 결과 정확도를 우선시합니다. Milvus는 메모리 사용량을 최소화하는 동시에 데이터 처리 및 결과 정확도를 극대화하여 AIGC 애플리케이션의 실질적인 요구사항에 부합하는 균형을 맞춥니다.

#4 삽입 - 데이터 삽입을 통한 원활한 항해

효율적인 데이터 삽입은 개발자들에게 매우 중요한 관심사이며, Milvus 커뮤니티 내에서 삽입 속도 최적화에 대한 논의가 활발히 이루어지고 있습니다. Milvus는 스트리밍 데이터와 배치 데이터를 능숙하게 분리하여 스트리밍 데이터를 효율적으로 삽입하고 인덱스를 구축하는 데 탁월합니다. 이 기능은 Pinecone과 같은 다른 벡터 데이터베이스 제공업체에 비해 성능이 뛰어난 솔루션으로 차별화됩니다.

다음은 데이터 삽입에 대한 몇 가지 유용한 인사이트와 권장 사항입니다:

  • 일괄 삽입: 단일 행 삽입보다 일괄 삽입을 선택하면 효율성이 향상됩니다. 특히 파일에서 삽입하는 것이 일괄 삽입보다 속도가 훨씬 빠릅니다. 천만 개가 넘는 대규모 데이터 세트를 처리할 때는 간소화되고 빠른 가져오기 프로세스를 위해 bulk_insert 인터페이스를 사용하는 것이 좋습니다.

  • 전략적인 flush() 사용: 각 배치마다 flush() 인터페이스를 호출하는 대신 모든 데이터 삽입을 완료한 후 한 번만 호출하세요. 배치 간에 flush() 인터페이스를 과도하게 사용하면 조각화된 세그먼트 파일이 생성되어 시스템에 상당한 압축 부담을 줄 수 있습니다.

  • 기본 키 중복 제거: Milvus는 데이터 삽입을 위해 insert 인터페이스를 사용할 때 기본 키 중복 제거를 수행하지 않습니다. 기본 키 중복 제거가 필요한 경우 upsert 인터페이스를 배포하는 것이 좋습니다. 그러나 upsert의 삽입 성능은 추가적인 내부 쿼리 작업으로 인해 insert 보다 낮습니다.

#5 구성 - 매개변수 미로 디코딩하기

Milvus는 객체 스토리지, 메시지 큐, Etcd와 같은 많은 타사 구성 요소를 통합하는 분산 벡터 데이터베이스입니다. 사용자들은 매개변수를 조정하고 Milvus의 성능에 미치는 영향을 이해하는 데 어려움을 겪으며 '구성'을 자주 논의하는 주제로 삼았습니다.

구성에 대한 모든 질문 중에서 '어떤 매개변수를 조정할 것인가'는 상황에 따라 매개변수가 달라지기 때문에 가장 어려운 부분일 수밖에 없습니다. 예를 들어 검색 성능 매개변수를 최적화하는 것은 삽입 성능 매개변수를 최적화하는 것과는 다르며 실제 경험에 크게 의존합니다.

사용자가 '어떤 매개변수를 조정할지'를 파악하면 '어떻게 조정할지'에 대한 후속 질문은 보다 관리하기 쉬워집니다. 구체적인 절차는 Milvus 설정하기 문서를 참조하세요. 좋은 소식은 Milvus가 버전 2.3.0부터 동적 매개변수 조정을 지원하여 변경 사항을 적용하기 위해 다시 시작할 필요가 없다는 것입니다. 구체적인 절차는 Milvus 즉시 구성을 참조하세요.

#6 로그 - 문제 해결 나침반 탐색하기

'로그'는 문제 해결의 나침반 역할을 합니다. 사용자들은 커뮤니티에서 Milvus 로그 내보내기, 로그 수준 조정, Grafana의 Loki와 같은 시스템과의 통합에 대한 지침을 찾았습니다. 다음은 Milvus 로그에 대한 몇 가지 제안 사항입니다.

  • Milvus 로그를 보고 내보내는 방법: GitHub 리포지토리에서 사용할 수 있는 원클릭 스크립트 export-milvus-log.sh를 사용하여 Milvus 로그를 쉽게 내보낼 수 있습니다.

  • 로그 수준: Milvus는 다양한 사용 사례를 수용하기 위해 여러 로그 레벨을 제공합니다. 정보 수준은 대부분의 경우에 충분하며 디버그 수준은 디버깅을 위한 것입니다. Milvus 로그가 너무 많으면 로그 레벨이 잘못 구성되었다는 신호일 수 있습니다.

  • 향후 문제 해결 시 로그 검색을 간소화하기 위해Milvus 로그를 Loki와 같은로그 수집 시스템과 통합하는 것이 좋습니다.

#7번 클러스터 - 프로덕션 환경을 위한 확장

분산형 벡터 데이터베이스라는 Milvus의 정체성을 고려할 때, '클러스터'라는 용어는 커뮤니티에서 자주 논의되는 주제입니다. 클러스터의 데이터 확장, 데이터 마이그레이션, 데이터 백업 및 동기화를 중심으로 대화가 이루어집니다.

프로덕션 환경에서는 강력한 확장성과 고가용성이 분산 데이터베이스 시스템의 표준 요구 사항입니다. Milvus의 스토리지-컴퓨팅 분리 아키텍처는 컴퓨팅 및 스토리지 노드에 대한 리소스를 확장하여 데이터 규모를 무제한으로 수용함으로써 원활한 데이터 확장성을 제공합니다. 또한 Milvus는 다중 복제 아키텍처와 강력한 백업 및 동기화 기능으로 고가용성을 제공합니다. 자세한 내용은 코디네이터 HA를 참조하세요.

#8번 문서화 - Milvus를 이해하는 관문

"문서화"는 커뮤니티 토론에서 자주 제기되는 또 다른 키워드로, 특정 기능에 대한 문서화 페이지가 있는지, 어디서 찾을 수 있는지에 대한 질문과 관련이 있는 경우가 많습니다.

커뮤니티 문의의 약 80%가 공식 문서에서 답을 찾을 정도로 문서가 Milvus를 이해하는 관문 역할을 하고 있습니다. Milvus를 사용하거나 문제가 발생하기 전에 문서를 읽어보시길 권장합니다. 또한 다양한 SDK 리포지토리에서 코드 예제를 살펴보고 Milvus 사용에 대한 인사이트를 얻을 수 있습니다.

#9 배포 - Milvus 여정의 간소화

간편한 배포는 Milvus 팀의 지속적인 목표입니다. 이 목표를 달성하기 위해 모든 기능을 제공하지만 K8이나 Docker 종속성이 없는 Milvus의 경량 대안인 Milvus Lite를 도입했습니다.

또한 더 가벼운 NATS 메시징 솔루션을 도입하고 노드 구성 요소를 통합하여 배포를 더욱 간소화했습니다. 사용자 피드백을 반영하여 종속성이 없는 독립형 버전을 출시하기 위해 준비 중이며, 기능을 개선하고 배포 작업을 간소화하기 위한 지속적인 노력을 기울이고 있습니다. Milvus의 빠른 반복은 배포 프로세스의 지속적인 개선에 대한 커뮤니티의 지속적인 노력을 보여줍니다.

#10위 삭제 - 영향력 해소하기

'삭제'에 대한 일반적인 논의는 삭제 후 변경되지 않는 데이터 수, 삭제된 데이터의 지속적인 검색 가능성, 삭제 후 디스크 공간 복구 실패를 중심으로 이루어집니다.

Milvus 2.3에서는 지연된 엔티티 수 업데이트 문제를 해결하기 위해 count(*) 표현식을 도입했습니다. 쿼리에서 삭제된 데이터가 지속되는 것은 데이터 일관성 모델을 부적절하게 사용했기 때문일 수 있습니다. 디스크 공간 복구 실패 문제는 데이터를 완전히 삭제하기 전에 대기 기간을 설정하는 Milvus의 가비지 수집 메커니즘을 재설계하는 데 대한 즉각적인 통찰력을 제공합니다. 이 접근 방식은 잠재적인 복구에 대한 시간적 여유를 제공합니다.

결론

상위 10개의 키워드를 통해 Milvus 커뮤니티 내에서 활발하게 논의되고 있는 내용을 엿볼 수 있습니다. Milvus가 계속 발전함에 따라, 커뮤니티는 솔루션을 찾고, 경험을 공유하고, AI 시대의 벡터 데이터베이스 발전에 기여하는 개발자에게 귀중한 리소스로 남아 있습니다.

2024년에 Discord 채널에 가입하여 이 흥미진진한 여정에 동참하세요. 이곳에서 뛰어난 엔지니어들과 교류하고 같은 생각을 가진 Milvus 애호가들과 소통할 수 있습니다. 또한 매주 화요일 오후 12:00~12:30(태평양 표준시)에 열리는 Milvus 커뮤니티 런치 앤 런치에 참석하세요. 여러분의 생각, 질문, 피드백을 공유해 주세요. 모든 기여는 Milvus를 발전시키는 협업 정신에 더해집니다. 여러분의 적극적인 참여는 환영할 뿐만 아니라 감사할 따름입니다. 함께 혁신합시다!

Like the article? Spread the word

계속 읽기