LangChain 챗봇1장 · 과정 소개와 LLM 의 이해2 / 21← 이전목차다음 →MetaContents

1장. 과정 소개와 LLM 의 이해

용어 짚고 가기

  • 챗봇(chatbot): 사람과 글로 대화하는 프로그램입니다. chat(수다, 대화)과 bot(로봇을 줄인 말)을 붙인 이름입니다.
  • 규칙 기반 챗봇(rule-based chatbot): 사람이 미리 정한 규칙("환불"이라는 낱말이 있으면 환불 답)대로만 답하는 챗봇입니다. rule 은 "규칙"이라는 뜻입니다.
  • LLM(Large Language Model): 거대 언어 모델입니다. Large(거대한), Language(언어), Model(모델)의 머리글자입니다. 아주 많은 글을 읽고 "다음에 올 낱말"을 맞히도록 학습한 모델입니다.
  • 생성형 AI(generative AI): 글, 그림, 소리처럼 새로운 것을 만들어 내는 인공지능입니다. generative 는 "만들어 내는"이라는 뜻입니다.
  • GPT(Generative Pre-trained Transformer): OpenAI 가 만든 LLM 의 이름입니다. Generative(만들어 내는), Pre-trained(미리 학습한), Transformer(트랜스포머라는 신경망 구조)의 머리글자입니다.
  • 토큰(token): LLM 이 글을 읽고 쓰는 조각 단위입니다. 낱말 하나일 때도 있고, 낱말의 일부일 때도 있습니다. token 은 "표, 징표"라는 뜻으로, 버스 토큰처럼 하나씩 세는 조각이라는 데서 왔습니다.
  • 토크나이저(tokenizer): 글을 토큰으로 자르고 번호를 붙이는 도구입니다. token 에 "~하게 만드는 것"이라는 뜻의 -izer 를 붙인 말입니다.
  • tiktoken: OpenAI 가 만든 토크나이저 라이브러리입니다. GPT 모델과 같은 방식으로 토큰을 셉니다. 이름은 tik(빠르게 째깍거리는 소리를 흉내 낸 말)과 token 을 붙인 것으로 알려져 있습니다.
  • 확률(probability): 어떤 일이 일어날 가능성을 0 부터 1 사이의 수로 나타낸 것입니다. 이 장에서는 "그 낱말이 온 횟수 ÷ 전체 횟수"로 구합니다. probable(그럴듯한)에서 온 말입니다.
  • 온도(temperature): LLM 이 다음 낱말을 고를 때 얼마나 모험할지 정하는 값입니다. 낮으면 늘 1등 낱말을, 높으면 여러 낱말을 골고루 고릅니다. 물이 뜨거울수록 분자가 활발히 움직이는 것에 빗댄 이름입니다.
  • 프롬프트(prompt): LLM 에게 보내는 지시와 질문의 글입니다. prompt 는 연극에서 배우에게 대사를 일러 주는 일을 뜻합니다.
  • 메시지(message): 대화의 한 마디입니다. 누가 한 말인지 알려 주는 역할과 내용으로 이루어집니다. message 는 "전하는 말"이라는 뜻입니다.
  • 역할(role): 메시지를 누가 했는지 나타내는 이름표입니다. system(시스템, 지시), user(사용자, 질문), assistant(조수, 모델의 답) 셋을 씁니다. role 은 연극의 "배역"이라는 뜻입니다.
  • 시스템 메시지(system message): 대화 맨 앞에 두는 지시입니다. "너는 여행 비서다. 짧게 답한다"처럼 챗봇의 성격과 규칙을 정합니다. system 은 "체계, 운영"이라는 뜻입니다.
  • 무상태(stateless): 앞의 요청을 기억하지 않는 성질입니다. LLM API 가 그렇습니다. state(상태)에 less(없는)를 붙인 말입니다.
  • 컨텍스트 창(context window): LLM 이 한 번에 읽을 수 있는 토큰의 최대 개수입니다. context 는 "앞뒤 사정, 맥락", window 는 "창문"이라는 뜻으로, 창문만큼만 내다볼 수 있다는 데서 왔습니다.
  • 환각(hallucination): LLM 이 사실이 아닌 내용을 그럴듯하게 지어내는 일입니다. hallucination 은 "없는 것을 보는 착각"이라는 뜻입니다.
  • 지식 마감일(knowledge cutoff): LLM 이 학습한 글이 언제까지의 것인지 나타내는 날짜입니다. 그 뒤의 일은 모릅니다. cutoff 는 "잘라 낸 지점"이라는 뜻입니다.
  • API(Application Programming Interface): 프로그램끼리 주고받는 약속된 창구입니다. Application(응용 프로그램), Programming(프로그래밍), Interface(맞닿는 면)의 머리글자입니다. 우리 코드는 API 로 OpenAI 의 모델을 부릅니다.
  • API 키(API key): API 를 쓸 자격이 있는지 확인하는 비밀 글자열입니다. key 는 "열쇠"라는 뜻입니다. 남에게 보이면 안 됩니다.
  • RAG(Retrieval-Augmented Generation): 검색 증강 생성입니다. Retrieval(찾아오기), Augmented(보탠), Generation(생성)의 머리글자입니다. 문서에서 관련 내용을 찾아 프롬프트에 붙인 뒤 답하게 하는 방법으로, 6장에서 만듭니다.
  • 도구 호출(tool calling): LLM 이 계산기나 검색 같은 도구를 쓰겠다고 요청하고, 우리 코드가 그 도구를 실행해 결과를 돌려주는 방식입니다. tool 은 "도구", calling 은 "부르기"라는 뜻입니다.
  • MCP(Model Context Protocol): 모델 맥락 프로토콜입니다. Model(모델), Context(맥락), Protocol(통신 약속)의 머리글자입니다. LLM 앱이 파일이나 데이터 같은 바깥 자원에 같은 방식으로 붙도록 정한 약속이며, 5장에서 다룹니다.
  • LangChain: LLM 으로 앱을 만드는 파이썬 라이브러리입니다. Language(언어) 모델과 chain(사슬)을 붙인 이름으로, 여러 부품을 사슬처럼 이어 붙인다는 뜻입니다.
  • LCEL(LangChain Expression Language): LangChain 표현 언어입니다. 부품을 | 기호로 이어 프롬프트 | 모델 | 파서 처럼 쓰는 방식입니다. Expression 은 "표현식"이라는 뜻입니다. 3장에서 자세히 봅니다.
  • 가짜 모델(fake model): 진짜 LLM 대신 정해 둔 답을 차례로 돌려주는 연습용 모델입니다. LangChain 의 FakeListChatModel 이 그것입니다. fake 는 "가짜"라는 뜻입니다.
  • Streamlit: 파이썬 코드만으로 웹 화면을 만드는 라이브러리입니다. stream(시냇물)과 lit(불 켜진)을 붙인 이름으로, 코드가 흐르듯 바로 화면이 된다는 뜻을 담았습니다. 7장에서 씁니다.
← 이전 절1장 · 먼저 큰 그림부터다음 절 →1장 · 이 과정에서 만들 챗봇