적용 대상: Azure Database for PostgreSQL - 유연한 서버
생성 AI는 기존 멀티미디어 콘텐츠에서 학습하고 새 콘텐츠를 생성할 수 있는 AI 알고리즘 클래스를 나타냅니다. 생성된 콘텐츠는 프롬프트 및 미세 조정과 같은 기술을 통해 사용자 지정할 수 있습니다. 생성 AI 알고리즘은 특정 기계 학습 모델을 적용합니다.
- 텍스트 생성을 위한 변환기 및 RNN(되풀이 신경망)
- 이미지 생성을 위한 생성 적대적 네트워크(GAN) 및 변형 자동 인코더(VAE)
생성 AI는 텍스트 자동 완성, 텍스트 요약 및 번역과 같은 일반적인 작업과 함께 이미지 및 음악 합성 및 의료 분야에서 사용됩니다. 생성 AI 기술을 사용하면 클러스터링 및 세분화, 의미 체계 검색 및 권장 사항, 토픽 모델링, 질문 답변 및 변칙 검색과 같은 데이터에 대한 기능을 사용할 수 있습니다.
다음 비디오에서는 Azure Database for PostgreSQL 및 pgvector
확장에서 생성 AI를 사용하는 방법을 보여 줍니다. 이 기능은 이 문서의 개념을 이해하는 데 도움이 됩니다.
오픈AI
OpenAI는 AI 및 기계 학습 분야에서 선구적인 작업으로 유명한 연구 조직 및 기술 회사입니다. 그 임무는 가장 경제적으로 가치있는 작업에서 인간을 능가 할 수있는 고도로 자율적인 AI 시스템을 의미하는 AGI (인공 일반 지능)가 모든 인류에게 혜택을 주도록하는 것입니다. OpenAI는 GPT-3, GPT-3.5 및 GPT-4와 같은 최신 생성 모델을 출시했습니다.
Azure OpenAI는 Azure를 사용하여 생성 AI 애플리케이션을 빌드하는 데 도움이 되는 Microsoft 서비스 제품입니다. Azure OpenAI는 Azure의 보안 및 엔터프라이즈 기능을 갖춘 OpenAI GPT-4, GPT-3, Codex, DALL-E 및 Whisper 모델을 사용하는 고급 언어 AI를 고객에게 제공합니다. Azure OpenAI는 호환성과 원활한 전환을 보장하기 위해 OpenAI와 API를 공동 개발합니다.
Azure OpenAI를 사용하면 고객은 OpenAI와 동일한 모델을 실행하면서 Microsoft Azure의 보안 기능을 얻을 수 있습니다. Azure OpenAI는 프라이빗 네트워킹, 지역 가용성 및 책임 있는 AI 콘텐츠 필터링을 제공합니다.
큰 언어 모델
LLM(대규모 언어 모델)은 인간과 유사한 언어를 이해하고 생성하기 위해 대량의 텍스트 데이터를 학습하는 AI 모델의 유형입니다. LLM은 일반적으로 변환기와 같은 딥 러닝 아키텍처를 기반으로 합니다. 다양한 자연어 이해 및 생성 작업을 수행하는 능력으로 유명합니다. Azure OpenAI 서비스 및 OpenAI의 ChatGPT는 LLM 제품의 예입니다.
LLM의 주요 특징 및 기능은 다음과 같습니다.
- 규모: 아키텍처에서 사용하는 매개 변수 수 측면에서 LLM의 규모는 엄청납니다. GPT-3과 같은 모델에는 수억에서 수조 개의 매개 변수가 포함되어 있어 언어로 복잡한 패턴을 캡처할 수 있습니다.
- 사전 학습: LLM은 인터넷에서 대량의 텍스트 데이터를 미리 학습합니다. 이러한 사전 학습을 통해 문법, 구문, 의미 체계 및 언어 및 세계에 대한 광범위한 지식을 배울 수 있습니다.
- 미세 조정: 사전 학습 후에는 작업별 데이터 세트가 더 작은 특정 작업 또는 도메인에서 LLM을 미세 조정할 수 있습니다. 이 미세 조정 프로세스를 사용하면 텍스트 분류, 번역, 요약 및 질문 답변과 같은 보다 특수한 작업에 적응할 수 있습니다.
GPT
GPT는 생성 미리 학습된 변환기를 의미하며 OpenAI가 개발한 일련의 큰 언어 모델을 나타냅니다. GPT 모델은 인터넷의 방대한 양의 데이터에 미리 학습된 신경망이므로 인간과 유사한 텍스트를 이해하고 생성할 수 있습니다.
주요 GPT 모델 및 주요 특성에 대한 개요는 다음과 같습니다.
GPT-3: 2020년 6월에 출시되었으며 GPT 시리즈의 잘 알려진 모델입니다. 1,750억 개의 매개 변수가 있으며, 이는 현재 존재하는 가장 크고 가장 강력한 언어 모델 중 하나입니다.
GPT-3은 광범위한 자연어 이해 및 생성 작업에서 놀라운 성능을 달성했습니다. 사용자 수준 유창성을 사용하여 텍스트 완성, 번역 및 질문 답변과 같은 작업을 수행할 수 있습니다.
GPT-3은 가장 작은(1억 2,500만 개의 매개 변수)에서 가장 큰(1억 7,500만 개의 매개 변수)에 이르기까지 다양한 모델 크기로 나뉩니다.
GPT-4: OpenAI의 최신 GPT 모델입니다. 1조 7600억 매개 변수가 있습니다.
벡터
벡터는 선형 대수 및 기하 도형에 사용되는 수학 개념으로 크기 및 방향이 모두 있는 수량을 나타냅니다. 기계 학습의 컨텍스트에서 벡터는 종종 데이터 요소 또는 기능을 나타내는 데 사용됩니다.
벡터의 주요 특성 및 작업은 다음과 같습니다.
- 크기: 일반적으로 표준으로 표시되는 벡터의 길이 또는 크기는 데이터의 크기를 나타냅니다. 음수가 아닌 실수입니다.
- 방향: 방향은 참조 지점 또는 좌표계와 관련하여 나타내는 수량의 방향 또는 각도를 나타냅니다.
- 구성 요소: 여러 축 또는 차원을 따라 벡터를 해당 구성 요소로 분해할 수 있습니다. 2D 카티전 좌표계에서는 벡터를 (x, y)로 나타낼 수 있습니다. 여기서 x 와 y 는 각각 x축과 y축을 따라 구성 요소입니다. n 차원의 벡터는 n 튜플(
{x1, x2… xn}
)입니다. - 추가 및 스칼라 곱하기: 벡터를 함께 추가하여 새 벡터를 형성할 수 있으며 스칼라(실수)를 곱할 수 있습니다.
- 점 제품 및 교차 제품: 점 제품(스칼라 제품) 및 교차 제품(벡터 제품)을 통해 벡터를 결합할 수 있습니다.
벡터 데이터베이스
DBMS(벡터 데이터베이스 관리 시스템)라고도 하는 벡터 데이터베이스는 벡터 데이터를 효율적으로 저장, 관리 및 쿼리하도록 설계된 데이터베이스 시스템의 유형입니다. 기존 관계형 데이터베이스는 주로 테이블의 구조적 데이터를 처리하는 반면, 벡터 데이터베이스는 벡터로 표현되는 다차원 데이터 요소의 스토리지 및 검색에 최적화되어 있습니다. 이러한 데이터베이스는 유사도 검색, 지리 공간적 데이터, 추천 시스템, 클러스터링과 같은 작업이 수반된 애플리케이션에 유용합니다.
벡터 데이터베이스의 주요 특징은 다음과 같습니다.
- 벡터 스토리지: 벡터 데이터베이스는 데이터 요소를 여러 차원의 벡터로 저장합니다. 각 차원은 데이터 요소의 기능 또는 특성을 나타냅니다. 이러한 벡터는 숫자, 범주 및 텍스트 데이터를 포함하여 광범위한 데이터 형식을 나타낼 수 있습니다.
- 효율적인 벡터 작업: 벡터 데이터베이스는 벡터 추가, 빼기, 점 제품 및 유사성 계산(예: 코사인 유사성 또는 유클리드 거리)과 같은 벡터 작업을 수행하는 데 최적화되어 있습니다.
- 효율적인 검색: 효율적인 인덱싱 메커니즘은 유사한 벡터를 빠르게 검색하는 데 중요합니다. 벡터 데이터베이스는 다양한 인덱싱 메커니즘을 사용하여 빠른 검색을 사용하도록 설정합니다.
- 쿼리 언어: 벡터 데이터베이스는 벡터 작업 및 유사성 검색에 맞게 조정된 쿼리 언어 및 API를 제공합니다. 이러한 쿼리 언어를 사용하면 사용자가 검색 조건을 효율적으로 표현할 수 있습니다.
- 유사성 검색: 벡터 데이터베이스는 사용자가 제공된 쿼리 지점과 유사한 데이터 요소를 찾을 수 있도록 하는 유사성 검색에서 탁월합니다. 이 특성은 검색 및 추천 시스템에서 유용합니다.
- 지리 공간적 데이터 처리: 일부 벡터 데이터베이스는 지리 공간적 데이터를 위해 설계되었으므로 위치 기반 서비스, GIS(지리 정보 시스템) 및 지도 관련 작업과 같은 애플리케이션에 적합합니다.
- 다양한 데이터 형식 지원: 벡터 데이터베이스는 벡터, 이미지 및 텍스트와 같은 다양한 유형의 데이터를 저장하고 관리할 수 있습니다.
PostgreSQL는 pgvector
확장 기능을 통해 벡터 데이터베이스의 기능을 얻을 수 있습니다.
포함
포함은 다차원 공간에서 개체(예: 단어, 문서 또는 엔터티)를 벡터로 나타내는 것을 포함하는 기계 학습 및 자연어 처리의 개념입니다.
이러한 벡터는 종종 조밀합니다. 즉, 차원의 수가 많습니다. 신경망을 비롯한 다양한 기술을 통해 학습됩니다. 임베딩은 연속 벡터 공간에서 개체 간의 의미 체계 관계와 유사성을 캡처하는 것을 목표로 합니다.
임베딩의 일반적인 유형은 다음과 같습니다.
- Word: 자연어 처리에서 단어 포함은 단어를 벡터로 나타냅니다. 각 단어는 의미나 컨텍스트가 비슷한 단어가 서로 가까이 있는 고차원 공간의 벡터에 매핑됩니다.
Word2Vec
및GloVe
는 인기 있는 단어 임베딩 기법으로 알려진 기술입니다. - 문서: 문서 포함은 문서를 벡터로 나타냅니다.
Doc2Vec
는 문서 포함을 만드는 데 널리 사용됩니다. - 이미지: 이미지를 포함으로 표시하여 개체 인식과 같은 작업에 대한 시각적 기능을 캡처할 수 있습니다.
포함은 기계 학습 모델이 쉽게 처리할 수 있는 형태로 복잡한 고차원 데이터를 나타내는 데 핵심적인 요소입니다. 대용량 데이터 세트에 대해 학습한 다음 다양한 작업에 대한 기능으로 사용할 수 있습니다. LLM은 이를 사용합니다.
PostgreSQL은 Azure AI 확장 OpenAI 통합을 사용하여 벡터 임베딩을 생성하는 기능을 얻을 수 있습니다.
시나리오
생성 AI는 기술, 의료, 엔터테인먼트, 금융, 제조 등을 비롯한 다양한 도메인 및 산업에 걸쳐 광범위한 애플리케이션을 보유하고 있습니다. 다음은 생성 AI를 사용하여 사용자가 수행할 수 있는 몇 가지 일반적인 작업입니다.
- 의미 체계 검색:
- 생성 AI를 사용하면 어휘 검색이 아닌 데이터에 대한 의미 체계 검색이 가능합니다. 후자는 쿼리와 정확히 일치하는 항목을 찾는 반면 의미 체계 검색은 검색 쿼리의 의도에 맞는 콘텐츠를 찾습니다.
- 챗봇 및 가상 도우미:
- 자연스러운 컨텍스트 인식 대화에 참여할 수 있는 챗봇을 개발합니다. 예를 들어 고객을 위한 자가 진단 구현
- 추천 시스템
- 항목 또는 사용자의 임베딩 또는 표현을 생성하여 추천 알고리즘을 개선합니다.
- 클러스터링 및 세분화:
- 생성 AI가 생성한 임베딩을 활용하면 클러스터링 알고리즘이 데이터를 클러스터링하여 유사한 데이터를 함께 그룹화할 수 있습니다. 이 클러스터링을 사용하면 고객 세분화와 같은 시나리오를 통해 광고주가 특성에 따라 고객을 다르게 타겟팅할 수 있습니다.
- 콘텐츠 생성:
- 챗봇, 소설/시 만들기 및 자연어 이해와 같은 애플리케이션에 대해 인간과 유사한 텍스트를 생성합니다.
- 그래픽, 엔터테인먼트 및 광고를 위한 사실적인 이미지, 아트워크 또는 디자인을 만듭니다.
- 영화, 게임 및 마케팅에 대한 비디오, 애니메이션 또는 비디오 효과를 생성합니다.
- 음악을 생성합니다.
- 번역:
- 한 언어에서 다른 언어로 텍스트를 번역합니다.
- 요약:
- 긴 기사나 문서를 요약하여 주요 정보를 추출합니다.
- 데이터 확대:
- 추가 데이터 샘플을 생성하여 기계 학습 모델에 대한 학습 데이터 세트를 확장하고 개선합니다.
- 의료 이미징과 같이 실제 환경에서 수집하기 어렵거나 비용이 많이 드는 시나리오에 대한 합성 데이터를 만듭니다.
- 약물 발견:
- 분자 구조를 생성하고 제약 연구를 위한 잠재적인 약물 후보를 예측합니다.
- 게임 개발:
- 레벨, 캐릭터, 텍스처를 포함한 게임 콘텐츠를 만듭니다.
- 사실적인 게임 내 환경과 풍경을 생성합니다.
- 데이터 노이즈 제거 및 보완
- 깨끗한 데이터 샘플을 생성하여 노이즈가 있는 데이터를 정리합니다.
- 데이터 세트에서 누락되거나 불완전한 데이터를 채웁니다.
관련 콘텐츠
- Azure Cognitive Services와 Azure Database for PostgreSQL 통합
- Azure Database for PostgreSQL을 사용하는 생성형 AI
- Azure Machine Learning과 Azure Database for PostgreSQL 통합
- Azure Database for PostgreSQL에서 Azure OpenAI를 사용하여 벡터 포함 생성
- Azure Database for PostgreSQL의 Azure AI 확장
- Azure Database for PostgreSQL 및 Azure OpenAI를 사용하여 권장 사항 시스템 만들기
- Azure Database for PostgreSQL 및 Azure OpenAI를 사용하여 의미 체계 검색 만들기
- Azure Database for PostgreSQL에서 pgvector 사용 설정 및 사용