LLM(대규모 언어 모델)의 오해와 실제 작동 방식

2. Chris Hasiński - Next Token! - wroc_love.rb 2025

작성자
wrocloverb
발행일
2025년 04월 17일

핵심 요약

  • 1 LLM은 채팅, 사고, 도구 사용을 직접 수행하는 것이 아니라, 토큰 예측과 외부 시스템 연동을 통해 이러한 기능들을 구현합니다.
  • 2 Stop Token, 임베딩, 출력 포맷팅 등 LLM의 핵심 작동 원리가 설명되며, 특히 Ruby 환경에서의 관련 도구 활용 사례가 제시됩니다.
  • 3 LLM 생태계는 빠르게 변화하고 있으나, '마법의 토큰 생성기'인 LLM을 활용한 소프트웨어 개발은 개발자들에게 새로운 기회를 제공합니다.

도입

강연자는 LLM(Large Language Models)에 대한 일반적인 오해들을 바로잡고, LLM이 실제로 어떻게 작동하는지에 대한 심층적인 통찰을 제공합니다. 그는 LLM이 단순히 '채팅'하거나 '생각'하거나 '도구를 사용'하는 것이 아니라, 정교한 토큰 예측과 외부 시스템의 연동을 통해 이러한 기능들을 구현한다는 점을 강조합니다. 이는 마치 피보나치 수열처럼 이전 항목을 기반으로 다음 항목을 예측하는 방식과 유사하다고 설명하며, LLM의 근본적인 작동 원리가 '다음 토큰 예측'에 있음을 명확히 합니다.

강연의 핵심은 LLM의 세 가지 주요 오해를 해부하는 데 있습니다. 첫째, LLM은 채팅할 수 없다는 점입니다. LLM은 ‘채팅’하는 것이 아니라, ‘Stop Token’이라는 개념을 활용한 정교한 처리 트릭을 통해 대화처럼 보이는 출력을 생성합니다. 특정 토큰(예: ‘user’)이 생성되면 LLM의 출력을 중단하고 제어권을 외부 프로그램으로 넘기는 방식입니다. 이 과정에서 Stop Token이 잘못 처리될 경우 LLM이 스스로 질문하고 답변하는 기이한 현상이 발생할 수도 있습니다. 둘째, LLM은 생각할 수 없다는 오해입니다. ‘추론(reasoning)’ 모델에서 보이는 ‘사고 과정’은 실제 사고가 아니라, 사용자에게는 보이지 않는 ‘reason’이라는 별도의 역할을 통해 단순히 토큰을 생성하는 것일 뿐입니다. 셋째, LLM은 도구를 직접 사용할 수 없다는 점입니다. LLM이 도구를 사용하는 것처럼 보이는 것은 ‘Stop Token’의 남용, ‘임베딩’의 활용, ‘출력 포맷팅’의 조작을 통해 외부 프로그램이 도구 호출을 중개하기 때문입니다. LLM은 특정 형식(예: JSON)의 출력을 생성하고, 외부 프로그램이 이를 해석하여 실제 도구를 호출한 뒤 그 결과를 다시 LLM의 컨텍스트에 주입하는 방식으로 작동합니다.

또한, 강연자는 LLM의 토큰화 과정에 대해 상세히 설명합니다. 언어에 따라 토큰의 길이가 달라지며, 영어는 학습 데이터에 많이 포함되어 있어 효율적인 토큰화를 보이는 반면, 폴란드어나 일본어는 더 많은 토큰을 소모하거나 문법적 특징으로 인해 독특한 토큰화 양상을 보인다고 언급합니다. 임베딩(Embeddings)은 비정형 데이터를 인덱싱하고 검색하는 데 사용되는 핵심 기술로, 개념을 숫자의 집합으로 변환하여 유사성을 측정하는 방식입니다. 이를 통해 LLM에 관련 데이터를 제공하는 RAG(Retrieval-Augmented Generation) 시스템이 구축될 수 있습니다. Ruby 생태계에서는 Andrew Kane이 개발한 pg_vectorNeighbor와 같은 라이브러리가 임베딩 기반 검색에 활용되고 있음을 강조하며, 그의 기여가 Ruby ML 생태계에 지대하다고 언급합니다. 마지막으로, LLM의 출력 포맷팅에 대해서는 과거에는 LLM에게 특정 JSON 스키마에 맞춰 출력하도록 요청하고, 유효성 검사 후 잘못되면 다시 요청하는 방식(마치 주니어 개발자에게 작업 지시하는 방식과 유사)을 사용했으나, 이제는 LLM 서버 자체에서 이러한 JSON 응답 처리를 내장하고 있다고 설명합니다.

결론

강연자는 현재 LLM 분야가 여전히 '와일드 웨스트(Wild West)'와 같아서 표준이 부족하고 모든 것이 빠르게 변화하며, 오늘 작성된 코드가 내일이면 구식이 될 수 있음을 시사합니다. 하지만 이러한 변화 속에서도 LLM은 '마법의 토큰 생성기'라는 새로운 강력한 도구이며, 이를 둘러싼 방대한 양의 소프트웨어 개발 기회가 존재한다고 강조합니다. 특히 Ruby 개발자들에게는 `Ruby LLM`과 같은 라이브러리, `MCP 서버` 구현, 그리고 다양한 LLM 벤더 API의 활용 가능성을 제시하며, LLM 시대를 위한 소프트웨어 개발의 중요성을 역설합니다. 결론적으로, LLM의 본질을 이해하고 변화에 능동적으로 대응하는 것이 중요하며, 이는 개발자들에게 새로운 도전이자 기회가 될 것임을 피력합니다.

댓글 0

댓글 작성

0/1000
정중하고 건설적인 댓글을 작성해 주세요.

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!