<실리콘밸리 투자사가 정리한 LLM 앱을 위한 새 아키텍처 (2)>
Step 1. 데이터 전처리 및 임베딩 이 절차는 문맥 데이터(Contextual Data)가 데이터 파이프라인(Data Pipline)을 거쳐서 임베딩 모델(Embedding Model)을 거쳐 벡터 데이터베이스(Vector Database)에 저장되는 단계를 말함. 🌸 문맥 데이터(Contextual Data)란? 🍾 주로 텍스트 문서, PDF, CSV 및 SQL Table 과 같은 정형, 비정형 데이터로 구성되어 있음. 🍾 데이터 로딩 및 변환은 기존 ETL 도구들(Databricks, Airflow)를 그대로 사용 🍾 새로운 LangChain, LlamaIndex와 같은 오케스트레이션 프레임워크에 내장된 문서 로더를 이용함. 🍾 LLM앱용으로 특별히 제작된 데이터 변환/복제 솔루션 시장이 형성되고 있음. 🌸 임베딩(Embeddings) 🍾 대부분의 개발자는 OpenAI의 API를 text-embedding-ada-002 모델사용 🍾 사용하기 쉽고, 합리적으로 좋은 결과를 내주며, 점점 더 저렴해지고 있음 🍾 일부 큰 회사들은 특정 시나리오에서 더 나은 성능을 제공하는 코히어(Cohere) 스타트업을 검토중. 코히어는 제프리 힌턴이 대주주인 캐나다 NLP 회사이자 오라클 래리 앨리슨도 투자함. 🍾 오픈소스를 선호하는 개발자들은 Hugging Face의 Sentence Transformers 라이브러리를 표준으로 이용함. 🍾 사용 사례에 맞는 산업별로 다양한 종류의 임베딩을 생성하는 것이 시도 되고 있음. ex) 금융, 헬스케어 🌸 벡터 데이터베이스(Vector Database) 🍾 전처리 파이프라인 부분에서 가장 중요한 부분은 벡터 데이터베이스 🍾 최대 수십억개의 임베딩(벡터)를 효율적으로 저장, 비교 및 검색하는 역할 🍾 시장에서 가장 일반적인 선택은 파이콘(Pinecone) 선택. 저도 파이콘을 사용중임. 성능이 좋고 사용하기가 편리하고 LangChain 이나 LlamaIndex 와 호환성이 좋음. 🍾 퍼블릭 클라우드에서 호스팅되어 시작하기 쉬움 🍾 대규모 기업이 프로덕션에 필요로 하는 많은 기능을 갖추고 있음(좋은 성능, SSO, 업타임 SLA등) 🍾 그외에도 Weaviate, Vespa, Qdrant 같은 오픈소스 벡터 데이터베이스와 경쟁하고 있음. 🍾 우수한 단일 노드 성능을 제공하며 특정 앱에 맞게 조정 가능하고 맞춤형 플랫폼 구축을 선호하는 숙련된 AI팀에게 인기 많음 🍾 Chroma, Faiss 같은 로컬 벡터 관리 라이브러리도 연결시켜서 개발을 쉽게 할 수 있음. 🍾 pgvector 같은 OLTP 확장하고 있으나 완전한 대규모 데이터베이스를 대체하는 용도는 아님 🍾 모든 데이터베이스 형태 요구사항에 PostgresSQL도 벡터 데이터베이스로 사용할 수 있어서 대부분의 데이터 인프라를 구입하는 기업에게는 바로 사용할 수 있음. 🍾 큰 컨텍스트 윈도우는 강력한 도구지만, 상당한 계산 비용이 수반되므로 효율적으로 어떻게 사용할 수 있는가 B2B Enterprise 모델에서 우선임 🍾 향후 다양한 종류의 임베딩 모델이 대중화 되고, 모델 연관성을 가지고 직접 훈련되며, 이를 효율적으로 활성화 및 활용하는 벡터 데이터베이스 시장이 활성화 될 예정. https://a16z.com/2023/06/20/emerging-architectures-for-llm-applications/?mibextid=Zxz2cZ