InternLM/InternBootcamp

Official implement on InternBootCamp

InternAgentHarness (InternBootcamp) – 무엇인가요

InternAgentHarness (또는 InternBootcamp 라고도 함)는 대규모 언어 모델(LLM) 에이전트를 구축하고, 훈련하며, 평가하기 위한 연구 중심의 프레임워크입니다. 이 프레임워크는 LLM이 외부 도구와 상호작용하고, 상태 피드백을 받으며, 행동에 대해 보상을 받을 수 있는 합성적이고 프로그래밍 가능한 환경을 제공합니다. 단순히 높은 벤치마크 점수를 얻는 것을 넘어서, 다음을 목표로 하는 클로즈드 루프 파이프라인을 구축하는 것입니다.

  1. 실행 가능한 작업 생성 (예: 배터리 설계, 로봇 궤도 계획, 금융 예측, 포커 의사결정).
  2. 모델이 반복적으로 호출할 수 있는 검증된 도구 노출 (다중 라운드 도구 호출).
  3. 모델과 환경 간의 다중 라운드 대화 관리.
  4. 중간 단계와 최종 결과로부터 보상을 계산하여 강화학습 또는 지도 미세조정을 가능하게 함.
  5. 재현성, 데이터 생성, 추가 훈련을 위한 전체 상호작용 트레이스 기록.

핵심 개념

구성 요소 역할
InstructionGenerator 작업 프롬프트와 문제를 정의하는 기본 '정체성' 데이터(예: 풀어야 할 산술식)를 생성함.
ToolManager LLM이 호출할 수 있는 외부 도구(함수, 시뮬레이터, API)를 등록하고 실행함.
InteractionManager 모델과 환경 간의 양방향 대화를 처리하며, 다중 라운드 도구 호출과 선택적 인간 스타일 피드백을 허용함.
RewardCalculator 각 단계와 최종 답변을 참값 또는 규칙 기반 기준과 비교하여 트레이닝용 스칼라 보상을 생성함.
Evaluator 여러 에피소드를 배치로 실행하고, 트레이스를 수집하며, 연구 실험용 메트릭을 출력함.

작동 방식 (고수준 흐름)

  1. 프롬프트 설계 – InstructionGenerator가 작업을 설명하는 자연어 프롬프트를 생성함.
  2. 모델 롤아웃 – LLM이 프롬프트를 받고 도구 호출 여부를 결정함.
  3. 도구 호출 – ToolManager가 요청된 도구(예: 물리 시뮬레이터, 계산기, 데이터베이스 쿼리)를 실행하고 결과를 반환함.
  4. 환경 피드백 – InteractionManager는 도구 출력에 따라 추가 질문이나 힌트를 추가할 수 있음.
  5. 보상 계산 – 각 단계와 종료 시점에 RewardCalculator가 모델의 답변을 참값과 비교하고 보상 신호를 생성함.
  6. 루프 – 종료 조건(최대 라운드 수, 완벽한 점수 등)이 충족될 때까지 단계 2~5를 반복함.
  7. 로깅 – 각 라운드(모델 메시지, 도구 요청, 도구 응답, 보상)는 JSONL 파일에 저장되어 나중에 분석이나 미세조정에 사용됨.

이 프레임워크로 할 수 있는 일

  • BaseInstructionGenerator의 작은 서브클래스를 구현하고, 필요 시 BaseTool과 BaseInteraction을 추가하여 새로운 합성 작업을 생성할 수 있음.
  • 프레임워크를 "롤아웃" 모드로 실행하여 수천 개의 다중 라운드 상호작용 로그를 생성하여 훈련 데이터 수집이 가능함 (지도 미세조정 또는 RLHF에 사용 가능).
  • 도구 사용 능력 벤치마크: 공학, 금융, 게임, 로보틱스 등 다양한 분야에서 모델의 계획, 도구 호출, 자기 수정 능력을 평가할 수 있음.
  • 분산 도구 서버 실행: 내장된 마스터-워커 도구 서버를 통해 무거운 도구를 여러 머신에 걸쳐 확장 가능.

시작하기 (README에서)

  1. pip install -e .과 제공된 requirements-editable.txt를 사용하여 리포지토리와 하위 모듈(verl, openevolve)을 설치함.
  2. InstructionGenerator 서브클래스를 작성하고, 생성 비율, 랜덤 시드, 데이터 분할을 설정하는 YAML 구성 파일을 작성하여 작업을 정의함.
  3. (선택 사항) BaseTool을 서브클래싱하고, LLM에 함수 정의로 전달될 JSON 스키마를 제공하여 도구(예: 계산기)를 추가함.
  4. internbootcamp.utils.data_generation CLI를 사용하여 데이터 생성을 실행하고, 전체 에피소드 트레이스를 포함하는 JSONL(및 선택적 Parquet) 파일을 출력함.
  5. internbootcamp.utils.run_evaluation을 사용하여 모델을 평가하고, 데이터셋, API 키, 도구/인터랙션 구성 파일을 지정함.

누구를 위한가요

도구 확장형 추론, 인간 피드백을 통한 강화학습, 시뮬레이션 환경에서의 다단계 계획 등에 종사하는 연구자 및 개발자에게 유연한 사전 환경을 제공합니다.


위의 모든 세부 정보는 프로젝트의 README에서 직접 인용되었으며, 추가 기능은 추측되지 않았습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트