웨비나 요약: LlamaIndex를 사용해 비공개 데이터로 LLM 강화하기
ChatGPT의 인기는 지식 생성과 추론에서 대규모 언어 모델(LLM)의 역량을 입증했습니다. 그러나 ChatGPT는 공개적으로 이용 가능한 데이터로 사전 학습되었기 때문에, 귀사의 비즈니스와 관련된 구체적인 답변과 결과를 제공하지 못할 수 있습니다. 그렇다면 LLM을 프라이빗 데이터로 가장 잘 보강하려면 어떻게 해야 할까요? LlamaIndex는 가장 인기 있는 솔루션 중 하나입니다. 이는 외부 데이터와 LLM을 연결하는 간단하고 유연한 중앙화된 인터페이스입니다.
최근 웨비나에서 Jerry Liu LlamaIndex 공동 창업자 겸 CEO는 LlamaIndex가 프라이빗 데이터로 LLM을 어떻게 강화할 수 있는지 설명했습니다. 또한 Frank Liu Zilliz의 머신러닝 아키텍트 겸 운영 이사도 LLM에 대한 자신의 인사이트를 공유했습니다. 이 웨비나의 핵심 내용을 살펴보고 청중이 남긴 몇 가지 미답변 질문을 다루는 데 함께해 주세요.
파인튜닝과 인컨텍스트 학습
"프라이빗 데이터로 LLM을 어떻게 향상할 것인가"는 많은 LLM 개발자들이 묻는 질문입니다. 웨비나에서 Jerry는 두 가지 방법, 즉 파인튜닝과 인컨텍스트 학습을 논의했습니다. 파인튜닝은 프라이빗 데이터로 네트워크를 재학습해야 하지만, 비용이 많이 들고 투명성이 부족할 수 있습니다. 또한 일부 경우에만 효과적일 수 있습니다. 반면, 인컨텍스트 학습은 사전 학습된 모델을 외부 지식 및 검색 모델과 결합하여 입력 프롬프트에 맥락을 추가하는 방식입니다. 그러나 검색과 생성의 결합, 적절한 맥락 검색, 방대한 소스 데이터 관리에서 과제가 발생합니다. LlamaIndex는 인컨텍스트 학습의 과제를 해결하도록 설계된 툴킷입니다.
LlamaIndex란 무엇인가요?
LlamaIndex는 LLM 애플리케이션을 위한 중앙 데이터 관리 및 쿼리 인터페이스를 제공하는 오픈소스 도구입니다. 이 툴킷에는 세 가지 주요 구성 요소가 포함되어 있습니다:
- 다양한 소스에서 데이터를 수집하기 위한 데이터 커넥터.
- 다양한 사용 사례에 맞게 데이터를 구조화하기 위한 데이터 인덱스.
- 프롬프트를 입력하고 지식으로 보강된 출력을 받기 위한 쿼리 인터페이스.
LlamaIndex의 세 가지 주요 구성 요소
LlamaIndex는 LLM 애플리케이션 개발에도 유용한 도구입니다. 이는 블랙박스처럼 작동하여 상세한 쿼리 설명을 입력으로 받아 참조와 작업을 포함한 풍부한 응답을 제공합니다. LlamaIndex는 또한 정확하고 원하는 결과를 제공하기 위해 언어 모델과 프라이빗 데이터 간의 상호작용을 관리합니다.
맥락 속의 LlamaIndex
LlamaIndex의 벡터 스토어 인덱스 작동 방식
LlamaIndex에는 리스트 인덱스, 벡터 스토어 인덱스, 트리 인덱스, 키워드 인덱스 등 다양한 인덱스가 있습니다. Jerry는 웨비나에서 벡터 스토어 인덱스를 사용하여 LlamaIndex 인덱스가 어떻게 작동하는지 보여주었습니다.
벡터 스토어 인덱스는 벡터 스토어와 언어 모델을 결합하는 인기 있는 검색 및 합성 방식입니다. 소스 문서 집합이 수집되어 텍스트 노드로 분할되고, 각 노드에 임베딩이 첨부된 상태로 벡터 스토어에 저장됩니다. 쿼리를 수행하면 쿼리 임베딩이 벡터 스토어에서 가장 유사한 top-k 노드를 검색하고, 이 노드들은 응답 합성 모듈에서 응답을 생성하는 데 사용됩니다.
LlamaIndex로의 데이터 수집
벡터 스토어 인덱스를 통한 쿼리
벡터 스토어 인덱스를 사용하는 것은 LLM 애플리케이션에 유사성을 도입하는 가장 좋은 접근 방식입니다. 이 인덱스 유형은 의미적 유사성을 기준으로 텍스트를 비교하는 워크플로에 이상적입니다. 예를 들어, 벡터 스토어 인덱스는 특정 오픈 소스 소프트웨어에 대해 질문하기에 적합합니다.
Milvus와 LlamaIndex의 통합
LlamaIndex는 강력하면서도 가벼운 수많은 통합을 제공합니다. 웨비나에서 Jerry는 Milvus와 LlamaIndex의 통합을 강조했습니다.
Milvus는 오픈 소스이며 수백만, 수십억, 심지어 수조 개의 벡터를 포함하는 방대한 데이터셋을 처리할 수 있는 벡터 데이터베이스입니다. 이 통합을 통해 Milvus는 임베딩과 텍스트를 위한 백엔드 벡터 스토어 역할을 합니다. 통합 설정은 간단합니다. 여러 매개변수를 입력하고, 이를 일부 스토리지 컨텍스트로 래핑한 다음, 벡터 스토어 인덱스에 넣으면 됩니다. 인덱스 쿼리는 쿼리 엔진을 통해 수행되며, 필요한 답변을 얻을 수 있습니다.
Zilliz Cloud는 Milvus를 위한 완전 관리형 클라우드 네이티브 서비스이며, LlamaIndex와 Zilliz Cloud의 통합도 제공됩니다.
LlamaIndex 사용 사례
웨비나에서 Jerry는 다음을 포함한 LlamaIndex의 많은 인기 사용 사례도 공유했습니다:
- 의미 검색
- 요약
- Text to SQL(정형 데이터)
- 이기종 데이터 전반의 합성
- 비교/대조 쿼리
- 다단계 쿼리
- 시간적 관계 활용
- 최신성 필터링 / 오래된 노드
자세한 설명과 정보는 전체 웨비나 녹화본을 시청하세요.
Q&A
웨비나 동안 청중으로부터 많은 질문을 받았고 그들의 참여에 감사드립니다. Jerry는 Q&A 세션 중 일부 질문에 답했지만, 시간 제약으로 인해 일부는 답하지 못했습니다. 아래에는 가장 많이 받은 질문과 답변하지 못한 질문을 Jerry의 답변과 함께 정리했습니다.
Q: OpenAI의 플러그인에 대해 어떻게 생각하며, LlamaIndex는 그것들과 어떻게 함께 작동하나요?
좋은 질문입니다. 우리는 플러그인 환경의 양쪽 모두에서 우리 자신을 보고 있습니다. 한편으로, 우리는 어떤 외부 에이전트 추상화(ChatGPT, LangChain 등)에 의해서도 호출될 수 있는 매우 좋은 플러그인이라고 봅니다. 클라이언트 에이전트가 입력 요청을 우리에게 전달하면, 우리는 내부에서 해당 요청을 가장 잘 실행하는 방법을 파악할 것입니다. 예를 들어, 우리는 chatgpt-retrieval-plugin repo의 플러그인입니다. 클라이언트 측에서는 chatgpt-retrieval-plugin - "벡터 스토어" 추상화를 구현하는 모든 서비스와의 통합을 지원합니다.
Q: 성능과 지연 시간에서 트레이드오프를 언급하셨습니다. 그 영역에서 겪는 병목 현상과 과제에는 어떤 것이 있나요?
더 많은 컨텍스트 + 더 큰 청크 크기 = 더 높은 지연 시간입니다. 더 큰 청크 크기가 항상 더 나은 결과로 이어지는지에 대해서는 논쟁이 있습니다(GPT-4는 경험적으로 GPT-3보다 더 확장된 양의 컨텍스트를 처리하는 데 더 뛰어납니다). 그래도 일반적으로 여기에는 양의 상관관계가 있습니다. 또 다른 트레이드오프는 에이전트를 포함하는 것과 같은 모든 “고급” LLM 시스템이 체인으로 연결된 LLM 호출을 필요로 한다는 점입니다. 체인으로 연결된 LLM 호출은 본질적으로 실행 시간이 더 오래 걸립니다.
Q: 쿼리를 실행하기 위해 외부 모델을 사용하고 있다는 것을 이해했습니다. 전송되는 비공개 데이터는 얼마나 안전한가요?
이는 API 서비스에 따라 다릅니다. 예를 들어, OpenAI는 API 데이터를 모델 학습/개선에 사용하지 않지만, 민감한 데이터를 제3자에게 전송하는 것에 대한 기업 차원의 우려는 여전히 존재합니다. 최근에는 이를 완화하는 데 도움이 되는 몇 가지 PII 모듈을 추가했습니다. 또 다른 대안은 로컬 모델을 사용하는 것입니다.
Q: 두 가지 접근 방식의 장단점은 무엇인가요: (a) LlamaIndex에 로드하고 인덱싱한 뒤 LLM과 인터페이스하기 전에 고급 유사도 검색 및 그래프 최적화를 위해 Milvus 같은 벡터 데이터베이스를 활용하는 방식; (b) LlamaIndex 네이티브 통합을 사용하여 벡터 스토어를 활용하는 방식?
둘 중 어느 쪽도 가능합니다. 저희는 이 두 가지를 조금 더 통합할 계획이니 계속 지켜봐 주세요. 매우 높은 수준에서 보면, Milvus를 먼저 데이터 로더로 사용하면 기존 데이터를 LlamaIndex와 함께 사용할 수 있습니다. 반대로, Milvus가 뒷받침하는 저희 벡터 인덱스를 사용하면, 이 데이터 위에 추가 구조를 정의하게 됩니다. 전자의 장점은 기존 데이터를 사용할 수 있다는 것이고, 후자의 장점은 메타데이터 정의를 더 잘 제어할 수 있다는 것입니다.
Q: 약 6,000개의 pdf와 PowerPoint를 로컬에서 분석해야 합니다. OpenAI를 사용하지 않고 LlamaIndex와 llama65b로 최상의 결과를 얻으려면 무엇을 추천하시나요?
라이선스에 문제가 없다면 Llama를 사용해 볼 수 있습니다. GitHub의 오픈 소스 모델을 살펴보세요.
전체 웨비나 녹화본을 시청하세요!
LlamaIndex에 대한 더 많은 정보와 Jerry Liu와 Frank Liu의 토론을 보려면 웨비나 녹화본을 시청하세요.
계속 읽기

Will Amazon S3 Vectors Kill Vector Databases—or Save Them?
AWS S3 Vectors aims for 90% cost savings for vector storage. But will it kill vectordbs like Milvus? A deep dive into costs, limits, and the future of tiered storage.

Zilliz Cloud Delivers Better Performance and Lower Costs with Arm Neoverse-based AWS Graviton
Zilliz Cloud adopts Arm-based AWS Graviton3 CPUs to cut costs, speed up AI vector search, and power billion-scale RAG and semantic search workloads.

OpenAI o1: What Developers Need to Know
In this article, we will talk about the o1 series from a developer's perspective, exploring how these models can be implemented for sophisticated use cases.



