Kernel Memory 5.5 코드 분석5

LLM이 갖지 않은 – 사전 훈련되지 않은 – 데이터를 사용해야 할 때가 있다. 이들 데이터 또한 사용되려면  디지털 이어야 합니다. LLM에 더해서 사용될 데이터는 대부분 텍스트지만, 멀티모달 지원으로 음성이나 이미지나 영상으로 있어도 됩니다.
데이터는 필요로 할 때 작성되어 전달될 때도 있지만, 주로 파일로 저장되어 있거나 데이터베이스에서 관리되거나 웹 페이지에 있을 수도 있습니다.
이들 데이터는 질의나 지시할 때 검색되어 LLM에 프롬프트 일부로 포함되어 전달 됩니다. LLM은 검색 증강 되어 질의에 답하거나 생성 지시에 따릅니다.
LLM이 갖지 않은 데이터도 어딘가에 기억되어 있다가 필요할 때 사용될 수 있어야 합니다. 그래서 커널 메모리에서도  메모리라고 이름을 명시적으로 사용합니다.
자연어 질의에 잘 응답하도록 하는 방법이 임베딩해서 데이터를 벡터화하는 겁니다. 데이터를 벡터화하고, 자연어 질의를 벡터화해서 가까운 데이터를 결과로 제공하는 것을 잘 하는 것을 벡터 저장소 또는 벡터 데이터베이스라고 합니다.
RAG를 하려면 데이터를 임베딩할 수 있어야 하고 이를 저장하고 검색할 수 있어야 합니다. 메모리가 서버가 되던 그렇지 않던 이것이 기본으로 해야 합니다 .
데이터를 임베딩라면 먼저 데이터가 있어야 합니다. 텍스트를 직접 받던 다양한 유형의 파일에서 읽던 웹 페이지에서 읽던, 데이터 저장소에 읽던 읽을 수 있어야 합니다.  검색 결과가 더 의미 있게 제공되게 하려면 읽은 데이터는 적당하게 나눠야 합니다.
빌드 과정은 RAG를 하기 위해 필요로 하는 기능들을 잘 조합해서, 하나의 서버 또는 서버리스 메모리를 구성하는 것입니다.  필요한 기능별로 구현이 여럿 존재한다면 이들에 대한 요구를 설정하고, 그 설정에 따라 빌드할 수 있어야 합니다.
설정이 필요합니다. 설정 값들은 관리하기 위한 – KernelMemoryConfig가 등장합니다.

KernelMemoryConfig

데이터를 추출하고, 추출된 데이터를 임베딩하고, 임베딩 벡터를 관리하는 벡터 저장소. 이들과 관련된 설정이 필요합니다. 데이터 검색과 관련된 설정도 필요합니다.

Main Components

The KernelMemoryConfig class has several components, each with its own set of properties and settings. These components can be broadly categorized into three main areas:

1. **Data Ingestion**: This component deals with how documents are uploaded and processed into the kernel memory system. It includes settings for text extraction, embedding generation, and memory database configuration.
2. **Search and Retrieval**: This component is responsible for search and retrieval operations in the kernel memory system. It includes settings for vector storage, embedding generators, and search clients.
3. **Service Configuration**: This component manages settings for various services, such as authorization, document storage, and text generation.

Key Properties and Settings

Here are some key properties and settings within each component:

Data Ingestion

* DistributedOrchestrationConfig: Settings for distributed orchestration, including queue type and orchestration type.
* EmbeddingGenerationEnabled: A boolean flag indicating whether to generate embeddings during document ingestion.
* EmbeddingGeneratorTypes: A list of embedding generator types to use during ingestion.
* MemoryDbTypes: A list of memory database types to use during ingestion.
* TextPartitioningOptions: Settings for partitioning text during memory ingestion.

Search and Retrieval

* MemoryDbType: The type of vector storage to use for search and retrieval.
* EmbeddingGeneratorType: The embedding generator type to use for search and retrieval.
* SearchClientConfig: Settings for the default search client.

Service Configuration

* DocumentStorageType: The type of document storage to use.
* TextGeneratorType: The text generator type to use for generating synthetic data.
* DefaultIndexName: The default index name to use when none is specified.
* ServiceAuthorizationConfig: Authorization settings for the kernel memory service.
* Services: A dictionary of service configurations, including credentials, endpoints, and more.

Methods

The KernelMemoryConfig class has one method, GetServiceConfig, which retrieves a service configuration from the “Services” node.

In Summary

The KernelMemoryConfig class is a central hub for managing configuration settings for a kernel memory system. It consists of three main components: Data Ingestion, Search and Retrieval, and Service Configuration. Each component has its own set of properties and settings that control how the kernel memory system works.

About the Author
(주)뉴테크프라임 대표 김현남입니다. 저에 대해 좀 더 알기를 원하시는 분은 아래 링크를 참조하세요. http://www.umlcert.com/kimhn/

Leave a Reply

*