-
ChatGPT API로 서비스 구축하기 #1. Language Models, the Chat Format and TokensData & ML & AI/LLM 2023. 6. 11. 16:35반응형
DeepLearning.AI에서 이전 짧은 강의(ChatGPT Prompt Engineering for Developers, 한국어 참고자료(제 블로그 포스트))를 선보인지 채 1~2달도 안되어서 또 다른 강의를 공개했습니다.
You'll build:
- Chains of prompts that interact with the completions of prior prompts.
- Systems where Python code interacts with both completions and new prompts.
- A customer service chatbot using all the techniques from this course.
You'll learn:
- How to apply these skills to practical scenarios, including classifying user queries to a chat agent’s response,
- evaluating user queries for safety, and processing tasks for chain-of-thought, multi-step reasoning.그럼 이번에도 바로 한 강의, 한 강의씩 따라가 보겠습니다.
Overview : How LLM works
LLM의 학습과정
본격적으로 들어가기 전, LLM(Large Language Model)이 어떻게 학습하고 작동하는지 보겠습니다.
LLM의 학습은 기본적으로 Supervised Learning(지도학습)에 기반합니다.
LLM의 학습은 주어진 문장(x) 다음에 나올 단어(y)를 예측하는 방식으로 이루어집니다.
수많은 문장을 이용해 수많은 학습용 데이터셋을 만들고, 학습시키면 됩니다.
LLM의 종류
LLM의 종류는 크게 2가지로 구분할 수 있습니다.
- Base LLM: 다음에 올 단어를 예측하는 모델 (위의 사진)
- Instruction Tuned LLM: 사용자의 지시에 따르는 모델 (Base LLM을 기반으로 Fine-Tuning한 모델)
ChatGPT, Bing검색 등, 우리가 현재 사용하고 있는 챗봇들은 Instruction Tuned LLM으로 분류됩니다.
(두 종류의 아주 조금 더 상세한 차이는 아래의 글을 참고해 주세요.)
토큰화(Tokenizing)
위에서는 "다음에 나올 단어를 예측"이라고 했지만, 엄밀히 말하면 단어가 아니라 토큰입니다.
토큰이란, 정보의 일정한 단위, 분절입니다.
- "Learning new things is fun!": 모든 단어가 일상적인(common) 단어이기 때문에 단어별로 토큰화
- "Prompting is a powerful developer tool.", "lollipop": Prompting, lollipop은 일상적인 단어가 아니기 때문에 한 단어이지만 분절되어서 토큰화
- "l-o-l-l-i-p-o-p": 임의로 각 문자별로 토큰화하고 싶어서 중간중간 - 를 추가
영어에서는 일반적으로 1개의 토큰은 약 4개의 문자로 이루어져있다고 합니다.
한국어는 교착어(조사, 어미 등이 붙는 언어) 등의 원인으로 인해, 기본적으로는 형태소를 기반으로 토큰화 합니다.
ChatGPT에서의 역할(role)
chatGPT API로 나만의 서비스를 만들기 위해서는 system, assistant, user라는 역할에 대해 이해해야 합니다.
- system: 사전 세팅 및 설정
- assistant: 챗봇 모델
- user: 챗봇과 대화하는 유저
(role에 대한 추가설명과 나만의 챗봇을 만드는 간단한 과정 설명은 아래 글을 참조해주세요)
반응형'Data & ML & AI > LLM' 카테고리의 다른 글
ChatGPT API로 서비스 구축하기 #3-1. Evaluate Inputs: Moderation (윤리성 검토하기) (0) 2023.11.26 ChatGPT API로 서비스 구축하기 #2. Evaluate Inputs: Classification (0) 2023.06.13 ChatGPT 프롬프트 엔지니어링 #7. Chatbot (Isa Fulford, Andrew Ng) (0) 2023.05.28 ChatGPT 프롬프트 엔지니어링 #6. Transforming (Isa Fulford, Andrew Ng) (0) 2023.05.24 ChatGPT 프롬프트 엔지니어링 #5. Inferring (Isa Fulford, Andrew Ng) (0) 2023.05.23