생성형 AI 애플리케이션 개발
이 문서에서는 생성형 AI 애플리케이션을 개발하는 각 단계에서 발생하는 문제를 해결하는 방법을 설명합니다. 또한 모델을 선택하고 니즈에 맞게 모델 출력을 맞춤설정하고 맞춤설정을 평가하며 모델을 배포하는 방법을 설명합니다. 이 문서에서는 이미 사용 사례를 염두에 두고 있고 사용 사례가 생성형 AI에 적합하다고 가정합니다. 사용 사례를 개발하는 방법은 생성형 AI 비즈니스 사용 사례 평가 및 정의를 참조하세요.
생성형 AI 애플리케이션 개발을 시작하기 전에 조직의 기술 준비 상태(기능 및 인프라)를 평가합니다. AI 기능을 평가하고 잠재력을 활용하기 위한 로드맵을 만드는 방법은 AI 준비 워크숍을 참조하세요. 생성형 AI로 자동화되는 워크플로를 개발하려는 경우 중요 결정 단계의 루프에 사람이 포함되어야 하는지 여부를 평가합니다. 사람의 검토는 책임감 있는 사용 보장, 특정 품질관리 요구사항 충족, 생성된 콘텐츠 모니터링과 같은 결정에 도움이 될 수 있습니다.
생성형 AI 모델
생성형 AI 기반 모델은 텍스트, 이미지, 코드 또는 기타 멀티미디어의 테라바이트급 데이터 세트에서 학습됩니다. 모델은 데이터 및 모델 아키텍처를 통해 복잡한 패턴을 식별하고 심층적인 문맥 이해를 얻고 학습 데이터에 의해 구동되는 텍스트, 이미지, 음악, 동영상과 같은 새로운 콘텐츠를 생성할 수 있습니다.
기반 모델은 수많은 생성형 AI 애플리케이션이 빌드되는 핵심을 형성합니다. 모델 기능은 새로운 기능으로 이어집니다. 간단한 텍스트 프롬프트 지침을 통해 생성형 AI 기반 모델은 각 태스크에 대한 명시적인 학습 없이도 언어 번역, 질문에 대답, 시 쓰기, 코드 작성과 같은 다양한 태스크를 수행하는 방법을 학습할 수 있습니다. 일부 프롬프트 기술을 사용하여 특정 태스크를 수행하도록 생성형 AI 기반 모델을 조정하거나 최소한의 추가 학습 데이터를 사용하여 미세 조정할 수 있습니다.
대규모 언어 모델(LLM)은 텍스트로 학습되며 2017년에 Google에서 개발한 Transformer와 같이 일반적으로 딥 러닝 아키텍처를 기반으로 하는 기반 모델의 한 가지 예시입니다. LLM은 수십억 개의 텍스트 샘플과 기타 콘텐츠로 학습될 수 있으며 특정 도메인에 맞게 LLM을 맞춤설정할 수 있습니다.
다른 멀티모달 모델은 이미지, 동영상, 오디오, 텍스트를 포함한 여러 모달리티의 정보가 처리되도록 생성형 AI 애플리케이션 기능을 확장합니다. 멀티모달 프롬프트는 텍스트, 이미지, 오디오와 같은 여러 입력 형식을 결합합니다. 예를 들어 이미지를 입력하고 생성형 AI 애플리케이션에 이미지의 객체를 나열하거나 설명하도록 요청할 수 있습니다. Google의 Gemini 모델은 처음부터 멀티모달리티를 사용하도록 빌드되었으며 텍스트, 이미지, 동영상, 오디오, 코드에서 원활하게 추론할 수 있습니다. Google Cloud의 Model Garden 및 Vertex AI는 Google, 오픈소스, 서드 파티 소스에서 다양한 기반 모델을 찾고 맞춤설정하는 데 도움이 됩니다.
모델 선택
모델을 선택할 때는 모델의 형식, 크기, 비용을 고려해야 합니다. 응답 품질 및 지연 시간 요구사항을 충족하는 가장 저렴한 모델을 선택합니다.
- 형식: 이전 섹션의 설명처럼 모델의 형식은 텍스트, 이미지, 동영상과 같이 모델이 학습된 상위 수준의 데이터 카테고리에 해당합니다. 일반적으로 사용 사례와 모델 형식은 밀접하게 관련되어 있습니다. 사용 사례에 텍스트-이미지 생성이 포함된 경우 텍스트와 이미지 데이터로 학습된 모델을 찾아야 합니다. 멀티모달 검색과 같이 여러 형식의 유연성이 필요한 경우 멀티모달 사용 사례도 지원하는 모델이 있지만 비용과 지연 시간이 더 높을 수 있습니다.
- Vertex AI 모델은 사용할 수 있는 다양한 생성형 AI 모델 목록을 제공합니다.
- Model Garden은 Google Cloud의 퍼스트 파티 및 오픈소스 ML 모델 제품의 목록을 제공합니다.
- 크기: 모델 크기는 일반적으로 매개변수 수로 측정됩니다. 일반적으로 대형 모델은 데이터 내에서 더 복잡한 패턴과 관계를 학습할 수 있으므로 응답 품질이 더 좋을 수 있습니다. 같은 계열에서 모델이 클수록 지연 시간과 비용이 높을 수 있으므로 모델을 실험하고 평가하여 사용 사례에 가장 적합하게 작동하는 모델 크기를 확인해야 할 수 있습니다.
비용: 모델 비용은 일반적으로 모델의 매개변수 수와 관련된 기능과 관련이 있습니다. 모델은 각각 다르게 측정되고 비용이 청구될 수도 있습니다. 예를 들어 일부 모델에서는 입력 및 출력 토큰 수에 따라 요금이 청구됩니다. 다른 모델은 모델이 배포되는 동안에 사용된 노드 시간을 기준으로 요금이 청구됩니다.
Vertex AI의 생성형 AI 모델 가격 책정은 Vertex AI 가격 책정을 참조하세요.
Google Kubernetes Engine(GKE)에서 모델을 배포하는 비용은 GKE 가격 책정을 참조하세요.
기능: 일부 모델은 조정 및 증류와 같은 기능을 지원하지 않습니다. 이러한 기능이 중요한 경우 각 모델에서 지원하는 특성을 확인하세요.
프롬프트 설계
프롬프트 설계는 프롬프트 및 응답 쌍을 작성하여 언어 모델에 추가 컨텍스트와 안내를 제공하는 프로세스입니다. 프롬프트를 작성한 후에는 사전 학습을 위한 프롬프트 데이터 세트로 모델에 공급합니다. 모델에서 예측을 제공하면 기본 제공되는 안내로 응답합니다.
특정 출력을 가져오려면 모델에 부분 입력을 완료하도록 지시나 이상적인 응답의 모델 예시 제공과 같은 프롬프트 설계 전략을 사용하면 됩니다. 자세한 내용은 프롬프트 설계 소개를 참조하세요.
모델 맞춤설정
프롬프트 설계 후 모델 응답이 잘 작동하는지 확인할 수 있으므로 이를 맞춤설정할 필요가 없습니다. 모델이 제대로 작동하지 않으면(예: 할루시네이션) 추가 맞춤설정 기법을 사용할 수 있습니다. 다음 섹션에서는 이러한 기법을 소개하고 이러한 옵션이 모델 출력에 미치는 영향을 설명합니다.
함수 호출 및 확장 프로그램
함수 호출 및 Vertex AI 확장 프로그램은 모델 기능을 확장합니다. 애플리케이션 사용 사례와 모델만 사용으로는 충분하지 않을 수 있는 경우를 고려합니다. 함수 호출이나 확장 프로그램을 추가하여 모델을 지원할 수 있습니다. 예를 들어 모델은 텍스트에서 캘린더 정보를 추출한 후 확장 프로그램을 사용하여 예약을 찾고 예약할 수 있습니다.
함수 호출과 확장 프로그램을 서로 바꿔서 사용할 수 있지만 몇 가지 중요한 차이점이 있습니다. 함수 호출은 비동기 작업이므로 코드에 사용자 인증 정보를 포함시킬 필요가 없습니다. Vertex AI 확장 프로그램은 복잡한 태스크에 사용할 수 있는 사전 빌드된 옵션을 제공하므로 자체 함수를 작성할 필요가 없습니다. 하지만 Vertex AI 확장 프로그램에서 자동으로 함수를 반환하고 호출하므로 확장 프로그램을 사용하려면 코드에 사용자 인증 정보를 포함시켜야 합니다.
그라운딩
그라운딩은 모델 응답을 확인 가능한 정보 소스에 고정하여 보강하는 것을 의미합니다. 모델을 그라운딩하려면 모델을 데이터 소스에 연결합니다. 모델을 그라운딩하면 할루시네이션을 줄여 생성된 콘텐츠의 신뢰성을 높이는 데 도움이 됩니다.
검색 증강 생성(RAG)은 일반적으로 사용되는 그라운딩 기법입니다. RAG는 검색 기능을 사용하여 관련 정보를 찾은 후 해당 정보를 모델 프롬프트에 추가합니다. RAG를 사용할 때 출력은 사실과 최신 정보에 그라운딩됩니다. RAG 검색은 벡터 임베딩과 벡터 데이터베이스를 사용합니다. 이 데이터베이스는 데이터를 텍스트 및 이미지와 같은 비정형 데이터의 숫자 표현으로 저장합니다. 자세한 내용은 벡터 데이터베이스란 무엇인가요?를 참조하세요.
Vertex AI의 그라운딩은 그라운딩 개요를 참조하세요. PostgreSQL용 AlloyDB에서 임베딩 워크플로를 설정하는 방법은 임베딩 워크플로 예시를 참조하세요.
모델 조정
특정 용어로 언어 모델 학습과 같은 전문화된 태스크를 수행하려면 프롬프트 설계만으로 수행하는 경우보다 더 많은 학습이 필요할 수 있습니다. 이 시나리오에서는 모델 조정을 사용하여 성능을 향상시키고 모델이 특정 출력 요구사항을 준수하도록 할 수 있습니다.
모델을 조정하려면 학습 데이터 세트를 빌드한 후 지도 조정, 인간 피드백 기반 강화 학습(RLHF) 조정 또는 모델 증류와 같은 조정 방법을 선택해야 합니다. 데이터 세트 크기와 조정 방법은 모델과 최적화 대상에 따라 달라집니다. 예를 들어 전문화된 틈새 태스크를 수행하려면 상당한 개선을 위해 더 작은 데이터 세트가 필요합니다. 모델 조정에 대한 자세한 내용은 언어 기반 모델 조정을 참조하세요.
모델 평가
모델 평가를 사용하면 프롬프트와 맞춤설정이 모델 성능에 미치는 영향을 평가할 수 있습니다. 평가 방법마다 고려해야 할 고유한 장단점이 있습니다. 예를 들어 측정항목 기반 평가는 정량화할 수 있는 성능 측정 방법으로 빠르게 자동화되고 확장될 수 있습니다. 그러나 측정항목은 결과를 과도하게 단순화하고 컨텍스트와 자연어의 미묘한 차이를 놓칠 수 있습니다. 이러한 단점을 완화하려면 사람 평가와 함께 다양한 측정항목을 사용합니다.
Vertex AI용 생성형 AI는 두 모델의 출력을 정답과 비교할 수 있도록 자동 정렬 평가를 제공합니다. 세 번째 모델은 더 나은 품질의 응답을 선택하는 데 도움이 됩니다. 자동 정렬 평가는 사람 평가자와 대등하지만 필요할 때 더 빠르고 사용이 가능합니다. 하지만 비교를 수행하기 위해 이 방법을 사용하려면 평가하는 모델보다 더 큰 모델이 필요하며 이로 인해 내재된 편향이 발생할 수 있습니다. 따라서 여전히 사람 평가를 어느 정도 수행해야 합니다.
모든 평가 방법에 평가 데이터 세트가 필요합니다. 평가 데이터 세트에는 생성된 프롬프트와 정답(이상적 응답) 쌍이 포함됩니다. 데이터 세트를 빌드할 때는 의미 있는 결과를 얻기 위해 평가 중인 태스크와 일치하는 다양한 예시를 포함하세요.
모델 배포
모델을 배포하면 지연 시간이 짧은 온라인 예측을 제공하기 위해 엔드포인트와 물리적 머신 리소스가 모델과 연결됩니다. 모든 모델에 배포가 필요한 것은 아닙니다. 예를 들어 Vertex AI의 생성형 AI에서 사용할 수 있는 Google 기반 모델에는 이미 엔드포인트가 있습니다. 엔드포인트는 Google Cloud 프로젝트에 따라 다르며 즉시 사용 가능합니다. 하지만 이러한 모델을 조정하는 경우 엔드포인트에 배포해야 합니다.
모델을 배포할 때 모델을 완전 관리형 환경과 자체 관리형 환경 중 어디에 배포할지 결정합니다. 완전 관리형 환경에서 머신 유형 및 가속기 유형과 같이 필요한 물리적 리소스를 선택합니다. 그러면 Vertex AI에서 자동으로 리소스를 인스턴스화하고 관리합니다. 예를 들어 Vertex AI에서 자동으로 배포 리소스를 관리하는 온라인 예측을 사용 설정하려면 엔드포인트에 모델 배포를 참조하세요. 자체 관리형 환경에서는 리소스를 보다 세밀하게 제어할 수 있지만 직접 관리합니다. 자체 관리형 환경을 사용하면 GKE와 같은 플랫폼에서 모델을 제공할 수 있습니다.
배포하려는 환경 유형을 결정한 후에는 예상되는 트래픽, 지연 시간 요구사항, 예산을 고려합니다. 이러한 요인과 물리적 리소스 간의 균형을 유지해야 합니다. 예를 들어 낮은 비용을 우선시하면 저렴한 머신에서 더 높은 지연 시간을 허용할 수 있습니다. 테스트 환경은 이러한 절충의 좋은 예시입니다. 머신 유형을 선택하는 방법에 대한 자세한 내용은 Vertex AI 엔드포인트에 사용할 이상적인 머신 유형 결정 노트북을 참조하세요.
책임감 있는 AI
Vertex AI의 생성형 AI는 Google의 AI 원칙을 염두에 두고 설계되었습니다. 그러나 모델을 테스트하여 모델이 안전하고 책임감 있게 사용되는지 확인하는 것이 중요합니다. LLM의 뛰어난 다양성으로 인해 의도치 않거나 예측하지 못한 응답을 예측하기가 어렵습니다.
사용 사례용 애플리케이션을 개발할 때 잠재적인 오용과 의도치 않은 문제를 적절하게 완화할 수 있도록 생성형 AI 모델의 제한사항을 고려합니다. 모델 제한사항에 대한 한 가지 예시는 사용하는 데이터만큼만 모델이 개선된다는 점입니다. 부정확하거나 불완전한 데이터와 같이 최적이 아닌 데이터를 모델에 제공하면 최적의 성능을 기대할 수 없습니다. 입력 데이터와 프롬프트가 정확한지 확인합니다. 그렇지 않으면 모델에 최적화되지 않은 성능이나 거짓 모델 출력이 있을 수 있습니다. 생성형 AI 모델 제한사항에 대한 자세한 내용은 책임감 있는 AI를 참조하세요.
다음 단계
- Vertex AI 노트북 튜토리얼 사용해 보기
- 생성형 AI를 위한 머신러닝 작업(MLOps) 알아보기