InternLM/InternBootcamp
Official implement on InternBootCamp
InternAgentHarness (InternBootcamp) – 무엇인가요
InternAgentHarness (또는 InternBootcamp 라고도 함)는 대규모 언어 모델(LLM) 에이전트를 구축하고, 훈련하며, 평가하기 위한 연구 중심의 프레임워크입니다. 이 프레임워크는 LLM이 외부 도구와 상호작용하고, 상태 피드백을 받으며, 행동에 대해 보상을 받을 수 있는 합성적이고 프로그래밍 가능한 환경을 제공합니다. 단순히 높은 벤치마크 점수를 얻는 것을 넘어서, 다음을 목표로 하는 클로즈드 루프 파이프라인을 구축하는 것입니다.
- 실행 가능한 작업 생성 (예: 배터리 설계, 로봇 궤도 계획, 금융 예측, 포커 의사결정).
- 모델이 반복적으로 호출할 수 있는 검증된 도구 노출 (다중 라운드 도구 호출).
- 모델과 환경 간의 다중 라운드 대화 관리.
- 중간 단계와 최종 결과로부터 보상을 계산하여 강화학습 또는 지도 미세조정을 가능하게 함.
- 재현성, 데이터 생성, 추가 훈련을 위한 전체 상호작용 트레이스 기록.
핵심 개념
| 구성 요소 | 역할 |
|---|---|
| InstructionGenerator | 작업 프롬프트와 문제를 정의하는 기본 '정체성' 데이터(예: 풀어야 할 산술식)를 생성함. |
| ToolManager | LLM이 호출할 수 있는 외부 도구(함수, 시뮬레이터, API)를 등록하고 실행함. |
| InteractionManager | 모델과 환경 간의 양방향 대화를 처리하며, 다중 라운드 도구 호출과 선택적 인간 스타일 피드백을 허용함. |
| RewardCalculator | 각 단계와 최종 답변을 참값 또는 규칙 기반 기준과 비교하여 트레이닝용 스칼라 보상을 생성함. |
| Evaluator | 여러 에피소드를 배치로 실행하고, 트레이스를 수집하며, 연구 실험용 메트릭을 출력함. |
작동 방식 (고수준 흐름)
- 프롬프트 설계 – InstructionGenerator가 작업을 설명하는 자연어 프롬프트를 생성함.
- 모델 롤아웃 – LLM이 프롬프트를 받고 도구 호출 여부를 결정함.
- 도구 호출 – ToolManager가 요청된 도구(예: 물리 시뮬레이터, 계산기, 데이터베이스 쿼리)를 실행하고 결과를 반환함.
- 환경 피드백 – InteractionManager는 도구 출력에 따라 추가 질문이나 힌트를 추가할 수 있음.
- 보상 계산 – 각 단계와 종료 시점에 RewardCalculator가 모델의 답변을 참값과 비교하고 보상 신호를 생성함.
- 루프 – 종료 조건(최대 라운드 수, 완벽한 점수 등)이 충족될 때까지 단계 2~5를 반복함.
- 로깅 – 각 라운드(모델 메시지, 도구 요청, 도구 응답, 보상)는 JSONL 파일에 저장되어 나중에 분석이나 미세조정에 사용됨.
이 프레임워크로 할 수 있는 일
BaseInstructionGenerator의 작은 서브클래스를 구현하고, 필요 시BaseTool과BaseInteraction을 추가하여 새로운 합성 작업을 생성할 수 있음.- 프레임워크를 "롤아웃" 모드로 실행하여 수천 개의 다중 라운드 상호작용 로그를 생성하여 훈련 데이터 수집이 가능함 (지도 미세조정 또는 RLHF에 사용 가능).
- 도구 사용 능력 벤치마크: 공학, 금융, 게임, 로보틱스 등 다양한 분야에서 모델의 계획, 도구 호출, 자기 수정 능력을 평가할 수 있음.
- 분산 도구 서버 실행: 내장된 마스터-워커 도구 서버를 통해 무거운 도구를 여러 머신에 걸쳐 확장 가능.
시작하기 (README에서)
pip install -e .과 제공된requirements-editable.txt를 사용하여 리포지토리와 하위 모듈(verl,openevolve)을 설치함.InstructionGenerator서브클래스를 작성하고, 생성 비율, 랜덤 시드, 데이터 분할을 설정하는 YAML 구성 파일을 작성하여 작업을 정의함.- (선택 사항)
BaseTool을 서브클래싱하고, LLM에 함수 정의로 전달될 JSON 스키마를 제공하여 도구(예: 계산기)를 추가함. internbootcamp.utils.data_generationCLI를 사용하여 데이터 생성을 실행하고, 전체 에피소드 트레이스를 포함하는 JSONL(및 선택적 Parquet) 파일을 출력함.internbootcamp.utils.run_evaluation을 사용하여 모델을 평가하고, 데이터셋, API 키, 도구/인터랙션 구성 파일을 지정함.
누구를 위한가요
도구 확장형 추론, 인간 피드백을 통한 강화학습, 시뮬레이션 환경에서의 다단계 계획 등에 종사하는 연구자 및 개발자에게 유연한 사전 환경을 제공합니다.
위의 모든 세부 정보는 프로젝트의 README에서 직접 인용되었으며, 추가 기능은 추측되지 않았습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트