logo

증강

최신 정보·정확한 계산·실제 행동에 증강이 필요한 이유를 이해하고, 로봇 제어 사례로 모델과 외부 도구의 역할을 구분한다.

  • 증강(augmentation): 언어 모델에 외부 정보나 도구를 연결해 작업 능력을 확장하는 방법.
  • 학습용 이미지의 회전·뒤집기 같은 데이터 증강과는 다름

증강이 필요한 이유

  • 최신 정보: 학습된 지식만으로는 지금의 재고·가격·날씨를 확인하기 어려움. 현재 상태를 알려 주는 자료나 조회 도구 필요.
  • 정확한 계산: 계산 과정을 그럴듯하게 설명해도 수치가 틀릴 수 있음. 정해진 연산은 계산 함수나 코드 실행기에 맡기고 실제 결과 확인.
  • 실제 행동: “컵을 옮기겠다”라는 문장을 생성해도 컵이 움직이지는 않음. 환경을 인식하고 로봇을 움직이는 장치·프로그램과 연결 필요.
요청 텍스트 생성만으로 부족한 점 연결할 외부 능력
이 상품은 지금 몇 개 남았나? 현재 재고가 입력에 없음 재고 조회
이 표의 매출 합계는? 수치를 빠뜨리거나 잘못 계산할 수 있음 계산 함수·코드 실행기
빈 그릇 위에 블록을 쌓아 줘 물체의 위치 확인과 물리적 동작 필요 물체 인식·로봇 제어
주문을 취소해 줘 취소 안내 문장만으로 주문 상태가 바뀌지 않음 주문 취소 도구

LLM과 애플리케이션의 역할

  • 애플리케이션: 사용자 요청을 LLM에 보내고, LLM이 요청한 외부 도구를 실행해 결과를 전달하는 프로그램. 아래 그림에서는 사용자·LLM·외부 도구 사이의 흐름을 관리.

Mermaid 다이어그램 원문

sequenceDiagram
    autonumber
    actor U as 사용자
    participant A as 애플리케이션
    participant L as LLM
    participant F as 외부 도구
    U->>A: 질문 또는 작업 요청
    A->>L: 사용자 요청과 사용 가능한 도구 정의 전달
    L-->>A: 필요한 도구와 인자를 지정해 호출 요청
    A->>F: 지정된 인자로 도구 실행
    F-->>A: 실행 결과 반환
    A->>L: 호출 기록과 실행 결과 전달
    L-->>A: 실행 결과를 반영한 답변 생성
    A-->>U: 최종 답변 전달

대화형 다이어그램을 불러오기 전에는 원문으로 표시됩니다.

  • LLM: 어떤 도구에 어떤 인자를 전달할지 결정.
  • 애플리케이션: 요청된 도구를 실행하고 결과를 LLM에 전달.
  • 실행 결과를 받은 LLM: 결과를 질문에 맞게 설명.

증강의 종류

  • 정보 조회: 외부 정보나 현재 상태를 가져오는 기능. 재고·날씨·문서 조회, 카메라로 물체 위치 확인.
  • 계산: 입력에 정해진 연산을 적용하는 기능. 합계·할인 금액 계산.
  • 행동: 외부 상태를 바꾸는 기능. 일정 등록·주문 취소.
  • 하나의 도구가 여러 기능을 함께 수행할 수도 있음.

계산의 예시

  • 실험: Zhou 외(2023)가 GPT-4 Code Interpreter로 MATH 수학 문제를 풀며 코드 사용 조건을 비교.
  • MATH: 수학 경시대회 수준의 문제와 정답을 모은 평가용 데이터셋.
  • Code Interpreter: LLM이 작성한 파이썬 코드를 실행하고, 실행 결과를 LLM에 돌려주는 환경.
  • 풀이 흐름: LLM이 계산 코드를 작성 → 실행기가 계산 → LLM이 실행 결과를 읽고 풀이에 반영. 코드로 답을 검증하는 조건에서는 구한 답이 문제의 조건을 만족하는지도 코드로 확인하고, 검증에 실패하면 풀이 수정.

GPT-4 Code Interpreter의 코드 사용 조건별 MATH 정확도와 문제 난이도별 정확도·코드 실행 빈도를 비교한 그래프

  • 왼쪽: 조건별 정답률(%). 코드 사용 금지 60.80%, 한 번만 허용 67.58%, 사용 제한 없음 69.94%, 코드로 답을 검증하도록 요청 74.48%.
  • 오른쪽: 가로축은 문제 난이도, 세로축은 정답률. 원이 클수록 코드를 실행한 횟수가 많음.
  • 해석: 이 실험에서는 코드 실행과 결과 검증을 활용한 조건에서 정확도가 높았음. 계산을 외부 실행기에 맡기고, 반환된 결과로 풀이를 확인하는 증강의 효과를 보여주는 사례.

출처: Zhou 외(2023), Solving Challenging Math Word Problems Using GPT-4 Code Interpreter with Code-based Self-Verification, 그림 2.

행동의 예시

Code as Policies: 지시를 실행 코드로 바꾸기

  • 사용자 요청: “빈 그릇 위에 블록을 쌓아 줘.”
  • 언어 모델: 지시를 해석해 미리 준비된 인식·제어 API를 호출하는 코드 작성. 준비되지 않은 기능은 새 함수로 정의.
  • 인식 API: 카메라 영상에서 블록과 그릇을 찾음.
  • 제어 API: 지정한 물체를 집어 목표 위치에 놓는 동작 실행.

빈 그릇 위에 블록을 쌓으라는 지시를 언어 모델이 인식·제어 API와 새로 정의한 함수로 이루어진 코드로 바꾸는 과정과 로봇 사진

  • 초록색 detect_objects: 블록과 그릇을 찾는 인식 API.
  • 주황색 pick_place: 물체를 집어 다른 물체 위에 놓는 제어 API.
  • 빨간색 is_empty, stack_objects: 준비된 API에 없어 언어 모델이 새로 정의한 함수. 그릇이 비었는지 확인하는 함수와, pick_place를 반복 호출해 물체를 차례로 쌓는 함수.
  • 그림 오른쪽: 카메라로 인식할 물체와 실제 동작을 수행할 로봇.
  • 핵심: 모델이 로봇의 모든 움직임을 직접 계산하는 대신, 준비된 인식·제어 API를 코드로 조합. 필요한 기능이 없으면 그 함수를 새로 작성해 단계적으로 코드 구성.

출처: Liang 외(2022), Code as Policies: Language Model Programs for Embodied Control.

SayCan: 필요한 행동과 가능한 행동 함께 판단하기

  • 사용자 요청: “음료를 쏟았는데 도와줄래?”
  • 언어 모델: 요청을 해결하는 데 유용한 행동을 판단. 예를 들어 스펀지를 찾거나 집는 행동을 고려.
  • 로봇의 가치 함수: 현재 환경과 로봇의 능력에서 해당 행동이 성공할 가능성을 평가.
  • 두 정보를 결합해 요청에 도움이 되면서 현재 실행할 수 있는 행동을 선택.

음료를 쏟았다는 요청에 대해 언어 모델의 행동 후보와 로봇 가치 함수의 실행 가능성을 결합해 스펀지를 찾아 집는 SayCan 구성도

  • 그림 위: 언어 모델의 판단과 로봇 가치 함수의 판단.
  • 그림 아래: 두 판단을 결합해 선택한 행동과 로봇의 실행 장면.
  • 핵심: 자연어로 적절해 보이는 행동이라도 현재 로봇이 수행할 수 있는지 확인 필요.

출처: Ahn 외(2022), Do As I Can, Not As I Say: Grounding Language in Robotic Affordances.

도구를 연결하는 여러 방식

  • 함수 호출: 미리 만든 함수에 모델이 인자 지정.
  • MCP: 외부 도구와 자료를 공통 프로토콜로 연결.
  • 코드 실행: 모델이 작성한 코드를 별도의 실행기에서 실행.
  • 도구 검색: 많은 도구 중 필요한 도구의 정의를 찾아 로딩.

퀴즈

문제 1 / 4맞음: 0힌트: 0틀림: 0채점중: 0남음: 4

언어 모델의 증강이란 무엇인가?

  • ○외부 정보나 도구를 연결해 작업 능력을 확장하는 것
  • ○학습용 이미지를 회전하거나 뒤집어 자료를 늘리는 것
  • ○모델의 파라미터 수를 늘려 규모를 키우는 것
  • ○같은 질문에 대한 답변을 여러 개 생성하는 것

퀴즈를 풀려면 대화형 기능을 불러와야 합니다.