CalHacks 2023에서의 Zilliz
화창한 일요일 오후, San Franciso의 Metreon 한가운데에서 이 글을 쓰고 있습니다. 금요일 오후(10월 27~29일)부터 CalHacks가 진행되고 있습니다. 상금 $137,650에 스폰서 어워드까지 더해, 다음과 같은 규모였습니다:
행사 기간 동안 CalHacks Slack 채팅에 1949명이 참여했습니다.
전 세계에서 온 1000명 이상의 학생들이 직접 모여 해킹했습니다.
764명의 학생들이 공식적으로 행사에 참가했습니다.
240개의 대회 프로젝트가 제출되었습니다.
Zilliz의 스폰서 상 “Best Use of Milvus”를 놓고 경쟁한 12개의 뛰어난 프로젝트가 있었습니다.
이미지 출처: CalHacks 2023.
방금 저희 Zilliz 상을 수여했는데, 프로젝트들은 혁신적이고 인상적이었습니다!
Best Use of Milvus - 1위
1위는 프로젝트 Second Search가 차지했습니다. 제작자
Catherine Jin (BS EECS ‘25 UC Berkeley)
Kanishk Garg (BS CS ‘24 University of Texas at Dallas)
그들이 한 일: 그들은 Youtube에 업로드된 CS162 강의 영상을 가져왔습니다. 그런 다음 해당 영상들의 자막 텍스트를 가져와 텍스트를 임베딩하고, 임베딩 벡터를 Milvus에 저장했습니다.
사용자는 알고 싶은 주제를 입력할 수 있었습니다. 저는 “Explain LRU cache”를 입력했습니다. 제 동료는 “Explain Linux sockets”를 입력했습니다. 검색 결과는 3개의 영상 구간을 반환했습니다. 각 영상은 교수님이 검색한 주제를 설명하고 있는 영상 속 해당 초(second)로 연결되어 있었습니다. 그저 “Play”를 클릭하기만 하면 영상의 해당 부분을 들을 수 있었습니다. 또한 영상 아래에는 텍스트 요약이 표시되어, 1) 벡터 검색 거리 지표, 2) 재생 중인 영상의 타임스탬프, 3) 해당 영상 구간에서 교수님이 말하고 있던 내용의 텍스트 요약을 보여주었습니다.
저희는 UI가 사용하기 간단하고, 실시간에 가까운 느낌(응답 시간 약 1초)이 있었으며, 제대로 작동했고(관련 콘텐츠가 있는 영상을 보여줌), Milvus를 창의적인 방식으로 사용했으며, 매우 유용해 보인다고 생각했습니다! 이런 제품이 YouTube에서 제공된다면 정말 좋겠습니다!
그들이 만든 방법: 그들은 로컬에서 실행되는 Milvus 오픈소스 벡터 데이터베이스 위에 SecondSearch를 구축했고, OpenAI를 사용해 임베딩을 생성한 다음, Chakra UI 컴포넌트 라이브러리로 만든 React 프론트엔드를 함께 구성해 제품을 완성했습니다. 백엔드는 FastAPI를 사용해 만들었고, Milvus docker 컨테이너는 Jupyter notebooks를 사용해 채웠습니다. Milvus는 Zilliz(클라우드)에서는 훨씬 더 빠르지만, 해커톤 동안 현장에는 wifi 문제가 있었습니다.
Best Use of Milvus - 2위
2위는 프로젝트 Jarvis가 차지했습니다. 제작자
Dhruv Roongta (BS CS ‘27 Georgia Institute of Technology)
Arnav Chintawar (BS CS ‘27 Georgia Institute of Technology)
Shanttanu Oberoi (BTech Engineering Physics ‘26 IIT Bombay)
Sahib Singh (BS CS ‘27 Georgia Institute of Technology)
그들이 한 일: 그들은 사용자의 요청이나 시각적으로 무슨 일이 일어나고 있는지에 대한 질문을 바탕으로 카메라가 보는 것을 설명하는 시스템을 구축했습니다. 사용자의 요청은 음성-텍스트로 변환됩니다(Siri/Alexa와 유사). 동시에 카메라의 이미지는 텍스트로 변환됩니다. 마지막으로 텍스트-음성 변환을 통해 시각 장애가 있는 사람에게 무슨 일이 일어나고 있는지 설명할 수 있습니다.
이 모델은 얼굴 표정을 인식하여 시각장애인에게 사회적 신호를 제공할 수 있었습니다. 사용자는 메뉴에서 무엇을 주문할지, 복잡한 대중교통 지도를 탐색하는 것과 같이 비판적 추론이 필요할 수 있는 질문을 할 수 있었습니다. 이 시스템은 Amazfit으로 확장되어, 사용자가 한 번의 누름만으로 주변 환경에 대한 설명을 얻거나 주변 사람들을 식별할 수 있게 했습니다.
저는 카메라 앞으로 걸어갔고, 그것은 제가 안경을 쓴 여성, 아마도 심사위원이라는 것을 알아낼 수 있었습니다.
구축 방법: 이들은 Hume, LlaVa, OpenCV, Resnet-50, next.js를 사용하여 Amazfit smartwatch를 활용한 ZeppOS로 구축된 frontend를 만들었습니다. 이들은 Zilliz (cloud)를 사용해 Milvus를 온라인으로 호스팅하고, 이미지 데이터셋과 해당 vector embeddings를 저장했습니다. 각 이미지는 Zilliz의 reverse-image-search tool을 사용해 identity-classification tool을 구축하기 위해 사람으로 분류되었습니다. 최소 임계값이 설정되었고, 그 아래에서는 사람들의 신원이 인식되지 않았습니다. 즉, 그들의 데이터가 Zilliz에 없다는 뜻입니다. 이 모델의 추정 정확도는 약 95%였습니다.
Milvus 최우수 활용 - Honorable Mention One
Leo Liu (BS CS ‘26 U Michigan College of Engineering)
Brian Travis (BE CS ‘25 U Michigan College of Engineering)
그들이 한 일: 911-protocol을 따라, 이들은 발신자가 말하는 내용을 듣고 상황을 판단하며, 후속 질문을 하고, 즉각적인 위험에 처한 사람이 있는지 파악하고, 상황을 평가 및 분류하여 긴급도를 부여하는 AI 911 agent를 구축했습니다. 이 긴급도는 자원 배분의 우선순위를 정하기 위한 0번째 단계로 사용됩니다. 동기는 최근 Lahaina, HI 화재에서 최초 신고 전화 이후 응급 서비스 출동까지 45분이 걸린 것으로 알려졌기 때문입니다.
데모 중, 화재에 갇힌 Lahaina 발신자를 시뮬레이션했을 때, 이 시스템은 약 15초 이내에 위험 상황을 평가할 수 있었습니다.
calhacks-2023-image4.png
구축 방법: 이들은 911 training manual pdfs를 Milvus vector database에 저장한 다음, LLMs (OpenAI)와 함께 이를 쿼리하여 발신자에게 응답을 생성하고 상황을 평가했습니다. 전형적인 RAG 패턴입니다. Docker에서 실행되는 local Milvus server와 node.js SDK를 사용했습니다. 전체 스택: React 기반으로 구축된 FastAPI 및 NextJS를 사용하는 client, server, Milvus DB.
Milvus 최우수 활용 - Honorable Mention Two
Mental Maps 제작
Anirudh Pai (BS EECS ‘26 UC Berkeley)
Kushal Kodnad (BS EECS ‘26 UC Berkeley)
Rushil Desai (BS EECS ‘26 UC Berkeley)
Raghav Punnam (BS EECS ‘25 UC Berkeley)
그들이 한 일: 이들은 사용자의 감정과 경험을 확인하는 AI chatbot을 만들었습니다. 각 상호작용은 sentiment analysis의 대상이 되어, 앱이 사용자의 지배적인 기분을 추출할 수 있게 합니다. 매주 말, 애플리케이션은 사용자의 감정을 분석하고, 주간 요약을 생성하며, 자기 인식을 키우고 더 나은 정신 건강을 촉진하기 위한 노력의 일환으로 사용자가 자신의 정신적 웰빙을 더 잘 이해하도록 돕습니다.
구축 방법: 이들은 텍스트 기반 감정 분석을 위해 Hume API를 사용하여 매일 채팅 인터페이스에 대한 사용자의 감정적 반응을 측정했습니다. BERT Hugging Face 모델을 사용해 사용자 응답을 고차원 벡터 임베딩으로 변환했으며, 이를 Milvus 벡터 데이터베이스에 저장하여 응답 간 유사도 검색을 용이하게 했습니다. 프론트엔드에는 React Native를 활용해 iOS 애플리케이션을 구축했습니다. 프론트엔드 Flask REST 서버는 HTTP 요청을 보내기 위해 "axios"를 사용했습니다. 애플리케이션 내비게이션은 사용자 세션을 안전하게 저장하는 데이터베이스 내비게이션 라우터로 제어되었습니다.
모든 CalHacks 주최자분들께 감사드립니다! 모든 프로젝트에 정말 깊은 인상을 받았고, Zilliz와 함께한 스폰서십 경험은 환상적이었습니다(저희가 참여할 수 있도록 도와준 Chris Churilo와 CalHacks 스폰서 주최자인 Chris Chou에게 특별히 감사드립니다).
왼쪽 상단: 영화관에서 열린 워크숍. 오른쪽: Zilliz 스폰서 테이블의 Chris Churilo. 왼쪽 하단: Zilliz 기념품 양말, 이미지 제공: 저자. 기타 모든 이미지 출처: CalHacks 2023.
계속 읽기

Announcing VDBBench 1.0: Open-Source VectorDB Benchmarking with Your Real-World Production Workloads
Discover VDBBench 1.0, an open-source tool for benchmarking vector databases with real-world production data, streaming ingestion, and concurrent workloads.

How to Build RAG with Milvus, QwQ-32B and Ollama
Hands-on tutorial on how to create a streamlined, powerful RAG pipeline that balances efficiency, accuracy, and scalability using the QwQ-32B and Milvus.

Building RAG Pipelines for Real-Time Data with Cloudera and Milvus
explore how Cloudera can be integrated with Milvus to effectively implement some of the key functionalities of RAG pipelines.



