게시일: 2024년 1월 13일
이 도움말은 LLM 및 챗봇에 관한 3부 시리즈 중 첫 번째입니다. WebLLM으로 챗봇 빌드에 관한 2부와 Prompt API 사용에 관한 3부는 이미 게시되어 있습니다.
대규모 언어 모델 (LLM)은 소프트웨어 개발에서 중요한 구성요소가 되고 있습니다. LLM은 자연 언어 텍스트를 생성하고 처리하는 데 적합하며 데이터 추출, 요약, 사용자 데이터와의 대화 지원과 같은 사용 사례를 활용할 수 있습니다.
이 시리즈에서는 기기 내 LLM의 이점과 단점을 설명하고 웹 기반 LLM 런타임 WebLLM과 Chrome의 실험용 Prompt API라는 두 가지 로컬 및 오프라인 지원 접근 방식을 사용하여 기존 애플리케이션에 챗봇 기능을 추가하는 방법을 안내합니다.
가능한 사용 사례
기존 할 일 목록 애플리케이션을 기반으로 챗봇을 빌드합니다. 각 단계의 소스 코드는 GitHub에서 확인할 수 있습니다. 사용자는 새 할 일을 추가하고, 완료로 표시하고, 삭제할 수 있습니다.
사용자가 할 일 목록 데이터에 관해 자세히 알아보거나 추가 기능을 실행할 수 있는 기능을 추가할 수 있습니다. 챗봇 기능을 사용하면 사용자가 다음을 할 수 있습니다.
- 미완료 작업 수를 문의합니다.
- 중복 또는 매우 유사한 할 일을 식별합니다.
- 할 일을 그룹으로 분류합니다.
- 완료한 작업을 기반으로 새 작업을 추천받습니다.
- 작업을 여러 언어로 번역합니다.
- 할 일 목록을 XML 형식으로 내보냅니다.
이는 LLM이 처리할 수 있는 태스크의 몇 가지 예에 불과합니다.
대규모 언어 모델이란 무엇인가요?
LLM은 자연어 텍스트를 처리하고 생성하는 인공 신경망입니다. 현재 대부분의 LLM은 Google에서 개발한 Transformer 아키텍처를 기반으로 합니다. Google의 Gemini 및 Gemma 모델, OpenAI의 GPT 모델 시리즈, Meta AI의 LLaMa, Mistral AI의 Mistral과 같은 오픈소스 모델이 여기에 해당합니다.
LLM은 방대한 양의 데이터를 학습하기 때문에 다양한 기능을 갖추고 있습니다. 다양한 언어를 이해하고, 잡다한 지식을 보유하고, 언어 간에 번역할 수 있거나 프로그래밍 코드를 생성할 수 있습니다. 이러한 기능의 범위는 LLM 크기 이해에서 설명한 것처럼 모델 크기에 따라 크게 달라질 수 있습니다.
이제 자연어가 소프트웨어 엔지니어링의 핵심 기능이 되었으므로 LLM은 소프트웨어 아키텍처의 패러다임 전환을 가져옵니다. 잘 정의된 인터페이스를 사용하여 API를 호출하는 대신 소위 프롬프트에서 자연어로 의도를 표현하면 충분합니다.
LLM의 제한사항
LLM에는 다음과 같은 제한사항도 있습니다.
- 비결정적 동작: LLM은 출력이 고정된 규칙이 아닌 확률적 모델에 종속되므로 동일한 프롬프트에 대해 다양한 응답을 생성할 수 있으며 때로는 상반된 응답을 생성할 수도 있습니다.
- 할루시네이션: 이러한 모델은 사실 정확성보다는 학습된 패턴에 의존하여 부정확하거나 무의미한 정보를 생성할 수 있습니다.
- 프롬프트 삽입: LLM은 사용자가 모델을 조작하여 의도한 기능에서 벗어나거나 원치 않는 결과를 생성하도록 하는 입력 프롬프트를 만드는 프롬프트 삽입 공격에 취약할 수 있습니다.
따라서 사용자는 후속 조치를 취하기 전에 LLM에서 생성된 결과를 확인해야 합니다.
기기 내 LLM을 처리할 때는 크기를 고려해야 합니다. 이러한 모델은 파일 크기가 수백 기가바이트이며, 처음 사용하기 전에 사용자의 기기에 다운로드해야 합니다. 특히 클라우드 지원 모델과 비교할 때 소형 모델은 품질이 낮은 응답을 얻는 경향이 있습니다.
로컬 솔루션 선택
LLM을 웹 애플리케이션에 통합하려면 먼저 클라우드 제공업체를 사용하는 것이 좋습니다. 많은 제공업체에서 고품질 LLM을 제공하며, 그중 일부는 특정 제공업체에만 제공됩니다. 클라우드 기반 LLM은 일반적으로 처리된 토큰당 계산되는 합리적인 비용으로 빠른 추론 속도를 제공합니다.
반면 로컬 솔루션은 매력적인 이점을 제공합니다. 로컬에서 호스팅되는 LLM은 사용자 기기에서 직접 작동하므로 더 안정적인 응답 시간을 제공하고, 사용자가 오프라인 상태일 때도 액세스할 수 있으며, 개발자가 정기 결제 수수료나 기타 지속적인 비용을 지불할 필요가 없습니다. 특히 사용자 안전을 크게 강화할 수 있습니다. 모든 활동을 기기 내에서 유지하면 개인 식별 정보 (PII)를 외부 제공업체 또는 지역으로 전송하지 않아도 됩니다.
데모
직접 빌드하는 방법을 배우기 전에 챗봇 기능이 포함된 완성된 데모를 살펴보세요.
다음으로 WebLLM을 사용하여 할 일 목록 애플리케이션에 챗봇을 추가합니다.