Skip to content

Latest commit

 

History

History
175 lines (115 loc) · 20.6 KB

File metadata and controls

175 lines (115 loc) · 20.6 KB

생성적 AI 기반 채팅 애플리케이션 구축

이제 텍스트 생성 앱을 구축하는 방법을 살펴보았으니, 채팅 애플리케이션에 대해 알아보겠습니다.

채팅 애플리케이션은 우리의 일상 생활에 통합되어 있으며, 단순한 대화 수단 그 이상을 제공합니다. 고객 서비스, 기술 지원, 심지어 복잡한 자문 시스템의 중요한 부분입니다. 아마도 얼마 전에 채팅 애플리케이션을 통해 도움을 받은 경험이 있을 것입니다. 생성적 AI와 같은 고급 기술을 이러한 플랫폼에 통합함에 따라 복잡성이 증가하고 도전 과제도 늘어납니다.

우리가 답변해야 할 몇 가지 질문은 다음과 같습니다:

  • 앱 구축. 특정 용례에 맞춰 AI 기반 애플리케이션을 효율적으로 구축하고 원활하게 통합하려면 어떻게 해야 할까요?
  • 모니터링. 배포 후 애플리케이션이 기능적으로 최고 수준의 품질로 운영되고 있으며 책임 있는 AI의 여섯 가지 원칙을 준수하고 있는지 어떻게 모니터링할 수 있을까요?

자동화와 원활한 인간-기계 상호작용이 정의하는 시대가 더 깊어짐에 따라, 생성적 AI가 채팅 애플리케이션의 범위, 깊이, 적응성을 어떻게 변화시키는지 이해하는 것이 필수적입니다. 이 레슨에서는 이러한 복잡한 시스템을 지원하는 아키텍처의 측면을 조사하고, 도메인별 작업을 위해 세밀하게 조정하는 방법론을 탐구하며, 책임 있는 AI 배포를 보장하기 위한 메트릭과 고려 사항을 평가할 것입니다.

소개

이 레슨에서는 다음을 다룹니다:

  • 채팅 애플리케이션을 효율적으로 구축하고 통합하는 기술.
  • 애플리케이션에 맞춤화 및 세밀한 조정을 적용하는 방법.
  • 채팅 애플리케이션을 효과적으로 모니터링하기 위한 전략과 고려 사항.

학습 목표

이 레슨이 끝나면 다음을 할 수 있습니다:

  • 기존 시스템에 채팅 애플리케이션을 구축하고 통합할 때의 고려 사항을 설명합니다.
  • 특정 용례에 맞춰 채팅 애플리케이션을 맞춤화합니다.
  • AI 기반 채팅 애플리케이션의 품질을 효과적으로 모니터링하고 유지하기 위한 주요 메트릭과 고려 사항을 식별합니다.
  • AI를 책임감 있게 활용하는 채팅 애플리케이션을 보장합니다.

채팅 애플리케이션에 생성적 AI 통합

생성적 AI를 통해 채팅 애플리케이션을 향상시키는 것은 단순히 더 스마트하게 만드는 것이 아니라, 사용자 경험을 제공하기 위해 아키텍처, 성능, 사용자 인터페이스를 최적화하는 것입니다. 이는 아키텍처적 기초, API 통합, 사용자 인터페이스 고려 사항을 조사하는 것을 포함합니다. 이 섹션은 기존 시스템에 연결하거나 독립형 플랫폼으로 구축할 때 이러한 복잡한 환경을 탐색하기 위한 종합적인 로드맵을 제공하는 것을 목표로 합니다.

이 섹션이 끝나면 채팅 애플리케이션을 효율적으로 구축하고 통합하는 데 필요한 전문 지식을 갖추게 될 것입니다.

챗봇 또는 채팅 애플리케이션?

채팅 애플리케이션을 구축하기 전에 '챗봇'과 'AI 기반 채팅 애플리케이션'을 비교해 봅시다. 이들은 각각 고유한 역할과 기능을 가지고 있습니다. 챗봇의 주요 목적은 자주 묻는 질문에 답변하거나 패키지 추적과 같은 특정 대화 작업을 자동화하는 것입니다. 이는 일반적으로 규칙 기반 로직 또는 복잡한 AI 알고리즘에 의해 관리됩니다. 반면, AI 기반 채팅 애플리케이션은 인간 사용자 간의 텍스트, 음성, 비디오 채팅과 같은 다양한 형태의 디지털 커뮤니케이션을 촉진하기 위해 설계된 훨씬 더 포괄적인 환경입니다. 그 특징은 다양한 입력 및 컨텍스트 신호를 기반으로 응답을 생성하는 세밀하고 인간 같은 대화를 시뮬레이션하는 생성적 AI 모델의 통합입니다. 생성적 AI 기반 채팅 애플리케이션은 개방형 도메인 토론에 참여하고, 진화하는 대화 컨텍스트에 적응하며, 창의적이거나 복잡한 대화를 생성할 수 있습니다.

아래 표는 디지털 커뮤니케이션에서의 고유한 역할을 이해하는 데 도움이 되는 주요 차이점과 유사점을 설명합니다.

챗봇 생성적 AI 기반 채팅 애플리케이션
작업 중심 및 규칙 기반 컨텍스트 인식
종종 더 큰 시스템에 통합됨 하나 이상의 챗봇을 호스팅할 수 있음
프로그래밍된 기능에 제한됨 생성적 AI 모델 통합
전문적이고 구조화된 상호작용 개방형 도메인 토론 가능

SDK와 API를 활용하여 사전 구축된 기능 활용

채팅 애플리케이션을 구축할 때 가장 먼저 할 일은 이미 나와 있는 것을 평가하는 것입니다. SDK와 API를 사용하여 채팅 애플리케이션을 구축하는 것은 다양한 이유로 유리한 전략입니다. 잘 문서화된 SDK와 API를 통합함으로써 애플리케이션의 장기적인 성공을 전략적으로 위치시키고, 확장성과 유지보수 문제를 해결합니다.

  • 개발 프로세스를 신속하게 하고 오버헤드를 줄입니다: 비싼 프로세스를 통해 직접 기능을 구축하는 대신 사전 구축된 기능을 활용하면 비즈니스 로직과 같은 애플리케이션의 다른 중요한 측면에 집중할 수 있습니다.
  • 더 나은 성능: 기능을 처음부터 구축할 때, "어떻게 확장될까? 이 애플리케이션은 갑작스러운 사용자 유입을 처리할 수 있을까?"라는 질문을 하게 될 것입니다. 잘 유지된 SDK와 API는 이러한 문제에 대한 내장 솔루션을 종종 가지고 있습니다.
  • 유지보수가 용이함: 대부분의 API와 SDK는 새 버전이 출시될 때 라이브러리 업데이트만 필요하므로 업데이트와 개선이 더 쉽게 관리됩니다.
  • 최첨단 기술에 대한 접근: 광범위한 데이터셋을 사용하여 세밀하게 조정되고 훈련된 모델을 활용하여 애플리케이션에 자연어 처리 기능을 제공합니다.

SDK 또는 API의 기능에 접근하는 것은 일반적으로 제공된 서비스를 사용할 수 있는 권한을 얻는 것을 포함하며, 이는 종종 고유 키 또는 인증 토큰을 통해 이루어집니다. 우리는 OpenAI Python Library를 사용하여 이것이 어떻게 보이는지 탐구할 것입니다. 또한 다음 OpenAI 노트북 또는 Azure OpenAI Services 노트북에서 직접 시도해볼 수 있습니다.

import os
from openai import OpenAI

API_KEY = os.getenv("OPENAI_API_KEY","")

client = OpenAI(
    api_key=API_KEY
    )

chat_completion = client.chat.completions.create(model="gpt-3.5-turbo", messages=[{"role": "user", "content": "Suggest two titles for an instructional lesson on chat applications for generative AI."}])

위의 예는 GPT-3.5 Turbo 모델을 사용하여 프롬프트를 완료하지만, API 키가 설정되어야 합니다. 키를 설정하지 않으면 오류가 발생합니다.

사용자 경험 (UX)

일반적인 UX 원칙은 채팅 애플리케이션에도 적용되지만, 기계 학습 구성 요소 때문에 특히 중요한 추가 고려 사항이 있습니다.

  • 모호성을 해결하는 메커니즘: 생성적 AI 모델은 때때로 모호한 답변을 생성합니다. 사용자가 이 문제를 마주했을 때 명확성을 요청할 수 있는 기능은 도움이 될 수 있습니다.
  • 컨텍스트 유지: 고급 생성적 AI 모델은 대화 내에서 컨텍스트를 기억할 수 있는 능력을 가지고 있으며, 이는 사용자 경험에 필요한 자산이 될 수 있습니다. 사용자에게 컨텍스트를 제어하고 관리할 수 있는 기능을 제공하면 사용자 경험이 개선되지만, 민감한 사용자 정보를 보유할 위험이 있습니다. 정보가 얼마나 오래 저장되는지에 대한 고려 사항, 예를 들어 보유 정책을 도입하는 것이 프라이버시와 컨텍스트의 필요를 균형 있게 맞출 수 있습니다.
  • 개인화: 학습하고 적응할 수 있는 AI 모델은 사용자에게 개별화된 경험을 제공합니다. 사용자 프로필과 같은 기능을 통해 사용자 경험을 맞춤화하면 사용자가 이해받고 있다고 느끼게 하며, 특정 답변을 찾는 데 도움을 줘 더 효율적이고 만족스러운 상호작용을 제공합니다.

개인화의 한 가지 예로 OpenAI의 ChatGPT의 "사용자 지정 지침" 설정이 있습니다. 이는 프롬프트에 중요한 컨텍스트일 수 있는 정보를 제공할 수 있게 합니다. 사용자 지정 지침의 예는 다음과 같습니다.

이 "프로필"은 ChatGPT에게 연결 리스트에 대한 수업 계획을 작성하도록 요청합니다. ChatGPT가 사용자의 경험에 따라 더 깊이 있는 수업 계획을 원할 수도 있다는 점을 고려하는 것을 알 수 있습니다.

마이크로소프트의 대규모 언어 모델을 위한 시스템 메시지 프레임워크

마이크로소프트는 LLM에서 응답을 생성할 때 효과적인 시스템 메시지를 작성하기 위한 지침을 4가지 영역으로 나누어 제공했습니다:

  1. 모델의 대상과 그 능력 및 한계를 정의합니다.
  2. 모델의 출력 형식을 정의합니다.
  3. 모델의 의도된 행동을 보여주는 구체적인 예를 제공합니다.
  4. 추가적인 행동 방어책을 제공합니다.

접근성

사용자가 시각, 청각, 운동, 또는 인지 장애가 있든지 간에, 잘 설계된 채팅 애플리케이션은 모두에게 사용 가능해야 합니다. 다음 목록은 다양한 사용자 장애를 위한 접근성을 향상시키기 위한 특정 기능을 분류합니다.

  • 시각 장애 기능: 높은 대비 테마와 텍스트 크기 조절, 화면 리더기 호환성.
  • 청각 장애 기능: 텍스트-음성 변환 및 음성-텍스트 변환 기능, 오디오 알림에 대한 시각적 신호.
  • 운동 장애 기능: 키보드 탐색 지원, 음성 명령.
  • 인지 장애 기능: 간단한 언어 옵션.

도메인별 언어 모델을 위한 맞춤화 및 세밀한 조정

회사의 전문 용어를 이해하고 사용자 기반이 자주 하는 특정 질문을 예상하는 채팅 애플리케이션을 상상해 보세요. 언급할 가치가 있는 몇 가지 접근 방식이 있습니다:

  • DSL 모델 활용. DSL은 도메인별 언어를 의미합니다. 특정 도메인에 대해 훈련된 소위 DSL 모델을 활용하여 해당 개념과 시나리오를 이해할 수 있습니다.
  • 세밀한 조정 적용. 세밀한 조정은 특정 데이터를 사용하여 모델을 추가로 훈련하는 과정입니다.

맞춤화: DSL 사용

도메인별 언어 모델(DSL 모델)을 활용하면 전문적이고 맥락적으로 관련 있는 상호작용을 제공하여 사용자 참여를 향상시킬 수 있습니다. 이는 특정 분야, 산업 또는 주제와 관련된 텍스트를 이해하고 생성하도록 훈련되거나 세밀하게 조정된 모델입니다. DSL 모델을 사용하는 옵션은 처음부터 훈련하거나, SDK와 API를 통해 기존 모델을 사용하는 것에서 다양합니다. 또 다른 옵션은 기존의 사전 훈련된 모델을 특정 도메인에 맞게 조정하는 세밀한 조정입니다.

맞춤화: 세밀한 조정 적용

세밀한 조정은 종종 사전 훈련된 모델이 특정 도메인 또는 특정 작업에서 부족할 때 고려됩니다.

예를 들어, 의료 질문은 복잡하고 많은 컨텍스트가 필요합니다. 의료 전문가가 환자를 진단할 때는 생활 방식이나 기존 조건과 같은 다양한 요소에 기반하며, 진단을 확인하기 위해 최근 의료 저널에 의존할 수도 있습니다. 이러한 미묘한 시나리오에서는 일반 목적 AI 채팅 애플리케이션이 신뢰할 수 있는 출처가 될 수 없습니다.

시나리오: 의료 애플리케이션

의료 전문가가 치료 지침, 약물 상호작용 또는 최근 연구 결과에 대한 빠른 참조를 제공하는 채팅 애플리케이션을 고려해 보세요.

일반 목적 모델은 기본적인 의료 질문에 답하거나 일반적인 조언을 제공하는 데 적합할 수 있지만, 다음과 같은 어려움을 겪을 수 있습니다:

  • 매우 특정하거나 복잡한 사례. 예를 들어, 신경과 전문의가 "소아 환자의 약물 저항성 간질 관리에 대한 현재의 모범 사례는 무엇입니까?"라고 애플리케이션에 질문할 수 있습니다.
  • 최근의 발전 부족. 일반 목적 모델은 신경학 및 약리학에서의 최신 발전을 포함하는 현재의 답변을 제공하는 데 어려움을 겪을 수 있습니다.

이러한 경우에는 세밀한 조정을 통해 전문적인 의료 데이터셋을 사용하여 모델을 훈련하면 이러한 복잡한 의료 문의를 더 정확하고 신뢰성 있게 처리할 수 있는 능력이 크게 향상됩니다. 이는 해결해야 할 도메인별 과제와 질문을 대표하는 크고 관련성 있는 데이터셋에 대한 접근이 필요합니다.

고품질 AI 기반 채팅 경험을 위한 고려 사항

이 섹션은 "고품질" 채팅 애플리케이션의 기준을 설명하며, 실행 가능한 메트릭을 캡처하고 AI 기술을 책임감 있게 활용하는 프레임워크를 준수하는 것을 포함합니다.

주요 메트릭

애플리케이션의 고품질 성능을 유지하려면 주요 메트릭과 고려 사항을 추적하는 것이 중요합니다. 이러한 측정은 애플리케이션의 기능을 보장할 뿐만 아니라 AI 모델과 사용자 경험의 품질을 평가합니다. 아래 목록은 고려해야 할 기본, AI, 사용자 경험 메트릭을 다룹니다.

메트릭 정의 채팅 개발자 고려 사항
가동 시간 애플리케이션이 운영 중이고 사용자에게 접근 가능한 시간을 측정합니다. 다운타임을 최소화하려면 어떻게 해야 합니까?
응답 시간 사용자의 질문에 대한 애플리케이션의 응답 시간입니다. 응답 시간을 개선하기 위해 쿼리 처리를 어떻게 최적화할 수 있습니까?
정확도 총 긍정 예측 수에 대한 실제 긍정 예측 수의 비율입니다. 모델의 정확도를 어떻게 검증할 것입니까?
재현율 (민감도) 실제 긍정 수에 대한 실제 긍정 예측 수의 비율입니다. 재현율을 어떻게 측정하고 개선할 것입니까?
F1 점수 정확도와 재현율의 조화 평균으로, 둘 간의 균형을 맞춥니다. 목표 F1 점수는 무엇입니까? 정확도와 재현율을 어떻게 균형 있게 조정할 것입니까?
혼란도 모델이 예측한 확률 분포가 실제 데이터 분포와 얼마나 잘 일치하는지를 측정합니다. 혼란도를 어떻게 최소화할 것입니까?
사용자 만족도 메트릭 애플리케이션에 대한 사용자의 인식을 측정합니다. 종종 설문조사를 통해 수집됩니다. 사용자 피드백을 얼마나 자주 수집할 것입니까? 이를 기반으로 어떻게 적응할 것입니까?
오류율 모델이 이해하거나 출력하는 데 실수를 하는 비율입니다. 오류율을 줄이기 위한 전략은 무엇입니까?
재훈련 주기 새로운 데이터와 인사이트를 통합하기 위해 모델이 업데이트되는 빈도입니다. 모델을 얼마나 자주 재훈련할 것입니까? 재훈련 주기를 유발하는 요인은 무엇입니까?
이상 탐지 예상된 행동에 맞지 않는 이상 패턴을 식별하기 위한 도구와 기술입니다. 이상에 어떻게 대응할 것입니까?

채팅 애플리케이션에서 책임 있는 AI 관행 구현

마이크로소프트의 책임 있는 AI 접근법은 AI 개발 및 사용을 안내하는 여섯 가지 원칙을 식별했습니다. 아래는 원칙, 정의, 채팅 개발자가 고려해야 할 사항 및 이를 진지하게 받아들여야 하는 이유입니다.

원칙 마이크로소프트의 정의 채팅 개발자 고려 사항 중요한 이유
공정성 AI 시스템은 모든 사람을 공정하게 대우해야 합니다. 사용자 데이터를 기반으로 차별하지 않는 채팅 애플리케이션을 보장합니다. 사용자 간의 신뢰와 포용성을 구축하기 위해; 법적 문제를 피합니다.
신뢰성 및 안전성 AI 시스템은 신뢰성과 안전성을 갖추어야 합니다. 오류와 위험을 최소화하기 위해 테스트 및 실패 방지책을 구현합니다. 사용자 만족을 보장하고 잠재적인 피해를 방지합니다.
개인정보 보호 및 보안 AI 시스템은 안전하고 개인정보를 존중해야 합니다. 강력한 암호화 및 데이터 보호 조치를 구현합니다. 민감한

면책 조항:
이 문서는 AI 번역 서비스 Co-op Translator를 사용하여 번역되었습니다. 우리는 정확성을 위해 노력하지만, 자동 번역에는 오류나 부정확성이 있을 수 있음을 유의하시기 바랍니다. 원본 문서가 권위 있는 자료로 간주되어야 합니다. 중요한 정보의 경우, 전문적인 인간 번역을 권장합니다. 이 번역의 사용으로 인해 발생하는 오해나 오역에 대해서는 책임을 지지 않습니다.