Open Assistant 프로젝트 상세 소개
프로젝트 개요
Open Assistant는 LAION-AI 조직에서 개발한 오픈 소스 채팅 AI 어시스턴트 프로젝트입니다. 이 프로젝트는 모든 사람이 뛰어난 채팅 기반 대규모 언어 모델에 접근할 수 있도록 하는 것을 목표로 하며, 오픈 소스 방식으로 언어 기술의 혁신을 창조합니다.
⚠️ 중요 공지: OpenAssistant 프로젝트는 완료되었으며, 현재 프로젝트는 종료되었습니다. 최종적으로 공개된 데이터셋은 HuggingFace의 OpenAssistant/oasst2에서 찾을 수 있습니다.
프로젝트 비전
Open Assistant는 오픈 소스 협업을 통해 언어 기술 분야에서 혁명을 일으킬 수 있다고 믿습니다. 마치 Stable Diffusion이 새로운 방식으로 예술과 이미지를 창조하는 데 도움을 준 것처럼 말입니다. 프로젝트의 최종 목표는 단순히 ChatGPT를 복제하는 것이 아니라, 다음과 같은 기능을 갖춘 미래의 어시스턴트를 구축하는 것입니다.
- 이메일 및 자기소개서 작성
- 의미 있는 작업 수행
- API 사용
- 동적으로 정보 연구
- 개인화 및 확장 지원
기술 방법
핵심 기술 스택
프로젝트의 주요 목표는 질문에 답변할 수 있는 챗봇을 보유하는 것이며, 대규모 언어 모델(LLM)을 적용하여 명령을 더 잘 따르도록 합니다. 이를 위해 프로젝트는 InstructGPT 논문에서 제시된 방법, 즉 인간 피드백 강화 학습(RLHF)을 사용합니다.
3단계 훈련 방법
프로젝트는 InstructGPT paper에 설명된 3단계 방법을 따릅니다.
1단계: 데이터 수집
- 고품질의 인간이 생성한 명령어-완료 샘플(프롬프트+응답) 수집
- 목표: 50,000개 이상의 샘플
- 크라우드소싱 프로세스를 설계하여 프롬프트 수집 및 검토
- 훈련 플러드 공격/유해/쓰레기/개인 정보 데이터 방지
- 순위표를 통해 커뮤니티를 장려하고 진행 상황 및 가장 활발한 사용자 표시
2단계: 순위 수집
- 수집된 각 프롬프트에 대해 여러 번 완료 샘플링
- 사용자에게 프롬프트의 완료 결과를 무작위로 표시하여 순위 매기기 (최고에서 최악으로)
- 신뢰할 수 없거나 악의적인 사용자를 크라우드소싱 방식으로 처리
- 여러 독립적인 사용자의 투표를 수집하여 전체 일관성 측정
- 수집된 순위 데이터를 사용하여 보상 모델 훈련
3단계: RLHF 훈련
- 프롬프트 및 보상 모델을 기반으로 인간 피드백 강화 학습 훈련 단계 진행
- 결과 모델을 사용하여 다음 반복을 위해 샘플링 단계를 계속 완료할 수 있습니다.
프로젝트 아키텍처
개발 환경 설정
프로젝트는 웹사이트, 백엔드 및 관련 종속 서비스를 포함한 전체 Docker 스택 배포를 지원합니다.
기본 시작 명령어:
docker compose --profile ci up --build --attach-dependencies
MacOS M1 칩 사용자는 다음을 사용해야 합니다.
DB_PLATFORM=linux/x86_64 docker compose ...
로컬 액세스:
개발 컨테이너 지원
프로젝트는 표준화된 개발 환경 지원을 제공합니다.
- 로컬 VSCode devcontainer
- GitHub Codespaces 웹 브라우저 환경
- 구성 파일은
.devcontainer
폴더에 있습니다.
기능 특징
채팅 기능
- 채팅 프론트엔드가 출시되었으며, 사용자는 로그인하여 채팅을 시작할 수 있습니다.
- 어시스턴트 응답에 대한 좋아요 또는 싫어요 피드백 지원
- 실시간 상호 작용 경험
데이터 수집
- 데이터 수집 프론트엔드가 출시되었으며, 사용자는 로그인하여 작업을 시작할 수 있습니다.
- 모델 프롬프트 및 응답을 제출, 순위 지정 및 태깅하여 Open Assistant 기능 개선에 직접 도움을 줄 수 있습니다.
- 크라우드소싱 방식으로 고품질 데이터 수집
추론 시스템
프로젝트에는 다음과 같은 기능을 지원하는 완전한 추론 시스템이 포함되어 있습니다.
- 로컬 배포 추론 서비스
- 소비자 수준 하드웨어 실행 능력
- 확장 가능한 아키텍처 설계
오픈 소스 특징
커뮤니티 참여
- 프로젝트는 LAION과 이 기술을 모든 사람에게 제공하는 데 관심이 있는 전 세계 개인 조직에서 주도합니다.
- 개발자의 코드 기여를 환영합니다.
- 자세한 기여 가이드 제공
프로젝트 상태
중요 알림: OpenAssistant 프로젝트는 완료되었으며 종료되었습니다. 프로젝트 자체는 종료되었지만:
- 최종 데이터셋 oasst2는 HuggingFace에서 사용할 수 있습니다.
- 코드는 여전히 오픈 소스로 액세스할 수 있습니다.
- 커뮤니티는 기존 작업을 기반으로 계속 개발할 수 있습니다.
기술 요구 사항
하드웨어 요구 사항
- 프로젝트 비전은 단일 고급 소비자 수준 GPU에서 실행할 수 있는 대규모 언어 모델을 만드는 것입니다.
- 소비자 수준 하드웨어 배포 지원
- 최적화된 추론 성능
배포 옵션
- Docker 컨테이너화 배포
- 로컬 개발 환경
- 클라우드 배포 지원
- 추론 서비스 독립 배포
관련 자료