logo

증강

언어 모델의 한계

  • 언어 모델은 텍스트 생성 작업에는 효과적
  • 복잡한 기술이 필요한 작업(수학, 복잡한 추론 등)에는 한계
  • 학습 데이터에 포함되지 않은 정보(현재 날씨, 날짜 등)에 접근할 수 없음
  • 기존의 방법은 모형 설계, 데이터 등 학습 단계에서 접근
  • 대규모 모형의 학습은 비용이 높음

증강 augmentation

  • 증강: 외부 도구로 언어 모형의 성능을 높이는 것
  • 외부 도구: 언어 모델 외부에서 실행되는 컴퓨터 프로그램에 대한 함수 인터페이스
  • 언어 모델은 도구를 사용하기 위해 함수 호출과 입력 인자를 생성
  • 도구 함수는 다양한 방식으로 구현될 수 있음
    • 심볼릭 계산이나 신경망 등 어떤 방식으로든 구현 가능
    • 프로그래밍 인터페이스만 갖추면 됨

도구의 종류

  • 인식(Perception)
    • 환경으로부터 정보를 제공하거나 수집하는 도구
    • 학습 데이터에 포함되지 않은 외부 정보에 접근 가능
    • 예: get_time() API를 사용하여 현재 시간 정보 획득
  • 행동(Action)
    • 환경에 대해 행동을 수행하고 환경의 상태를 변경할 수 있는 도구
    • 예: turn_left()로 로봇의 방향 전환
  • 계산(Computation)
    • 외부 환경과의 상호작용 없이 프로그램을 통해 복잡한 계산 작업 수행
    • 예: 계산기, 번역기

다중 기능을 가진 도구

  • 하나의 도구가 여러 가지 기능을 할 수 있음
  • 검색 엔진:
    • 계산: 문서 유사도 측정 및 관련 문서 선택
    • 인식: 웹에서 데이터 인식 및 가져오기
  • SQL 쿼리
    • 계산: SELECT SQRT(16) / 10 AS result
    • 인식: SELECT name FROM data
    • 행동: INSERT INTO data VALUES name

도구 사용 패러다임

  • 추론 시점 프롬프팅(Inference-time prompting)
    • LM의 문맥 내 학습 능력 활용
    • 도구 정보를 프롬프트로 제공
    • 작업에 대한 지침, 쿼리와 해결책 예시, 도구 기능에 대한 문서를 제공
  • 학습을 통한 방법(Learning by training)
    • 도구를 사용하는 예시로부터 학습

도구: 다른 모델 사용하기

  • 여러 가지 전문화된 모델을 체인으로 연결하여 작업을 수행
  • 다른 모달리티의 모델을 연결할 수도 있음
  • ChatGPT도 유사한 방식을 사용하는 것으로 추정

augmentation-slide133-image01 출처: PromptChainer: Chaining Large Language Model Prompts through Visual Programming (https://arxiv.org/abs/2203.06566)

도구: 검색

  • 검색 증강 생성(Retrieval Augmented Generation; RAG)
  • 검색된 문서를 프롬프트에 추가
  • 검색 방법: 키워드(sparse) 검색, 임베딩(dense) 검색
  • 검색 대상: 내부 문서 and/or 인터넷

augmentation-slide134-image01

augmentation-slide134-image02

출처: WebGPT: Browser-assisted question-answering with human feedback (https://arxiv.org/abs/2112.09332)

도구: 코드 실행

  • ChatGPT는 Python, Claude는 JavaScript를 이용

augmentation-slide135-image01

augmentation-slide135-image02

출처: Solving Challenging Math Word Problems Using GPT-4 Code Interpreter with Code-based Self-Verification (https://arxiv.org/abs/2308.07921)

도구: 로봇 제어

  • Code as Policies
    • 자연어로 표현된 복잡한 지시를 로봇이 수행할 수 있도록 코드를 생성

augmentation-slide136-image01

출처: Code as Policies: Language Model Programs for Embodied Control (https://arxiv.org/abs/2209.07753)

  • SayCan
    • LM이 현실에 대한 이해가 부족할 수 있음
    • LM은 복잡한 명령을 더 간단한 하위 목표로 분할
    • 로봇은 각 작업의 가치와 실현 가능성에 대한 정보를 제공

augmentation-slide136-image02

출처: Do As I Can, Not As I Say: Grounding Language in Robotic Affordances (https://arxiv.org/abs/2204.01691)

Vision-Language Action Model

augmentation-slide137-image01

도구 선택

  • 지정된 도구가 있는 경우: 별도의 도구 선택 불필요
  • 소수의 도구(5-10개)가 있는 경우
    • 도구의 메타데이터와 사용 사례를 사용자 쿼리와 함께 입력 컨텍스트로 제공
    • LM이 표준 생성 프로세스를 통해 컨텍스트에서 직접 도구 선택
  • 다수의 도구가 있는 경우
    • 검색을 통해 가장 관련 있는 도구를 선택
    • 선택된 도구의 메타데이터를 LM에 제공
  • 적용 가능한 도구가 없는 작업의 경우: 기존의 도구를 조합하여 새로운 도구를 만들고 사용

도구 사용의 장단점

  • 도구를 사용하기 위해 추가적인 학습 및 추론이 필요
  • 계산량 증가에 비해 성능 향상이 미미한 경우도 있음

augmentation-slide139-image01

Previous
프롬프트 엔지니어링은 필요한가