Digestly

Dec 17, 2024

OpenAI DevDay 2024 | Community Spotlight | Cosine

OpenAI - OpenAI DevDay 2024 | Community Spotlight | Cosine

Genie는 소프트웨어 엔지니어링 작업을 자동화하기 위해 개발된 AI 모델로, GPT-40을 기반으로 미세 조정되었습니다. 이 모델은 개발자가 작업을 완료하는 방식을 학습하기 위해 합성된 실제 데이터를 사용하여 훈련되었습니다. 주요 목표는 소프트웨어 엔지니어가 작업을 수행하는 과정을 모델에 학습시키는 것이며, 이를 위해 대량의 데이터 정리와 큐레이션이 필요했습니다. Genie는 코드 리뷰와 같은 복잡한 작업을 수행할 수 있으며, 사용자 정의 추론 경로를 통해 모델이 인간처럼 사고하도록 돕습니다. 또한, Selfplay 기법을 사용하여 실제로 존재하지 않는 훈련 예제를 생성하여 모델을 더욱 효과적으로 훈련시킬 수 있습니다. Genie는 GitHub와 통합되어 코드베이스를 인덱싱하고, 에러를 자동으로 수정하는 등의 작업을 수행할 수 있습니다.

Key Points:

  • Genie는 소프트웨어 엔지니어링 작업을 자동화하기 위해 미세 조정된 AI 모델입니다.
  • 미세 조정은 모델의 성능을 높이는 데 필수적이며, 데이터 정리와 큐레이션이 중요합니다.
  • 사용자 정의 추론 경로를 통해 모델이 인간처럼 사고하도록 돕습니다.
  • Selfplay 기법을 사용하여 실제로 존재하지 않는 훈련 예제를 생성할 수 있습니다.
  • Genie는 GitHub와 통합되어 코드베이스를 인덱싱하고 에러를 자동으로 수정합니다.

Details:

1. 🚀 Genie 소개 및 개발 배경

  • Genie는 완전 자율 AI 엔지니어로, gbt 40을 실제 세계 데이터를 합성적으로 증강하여 미세 조정함으로써 개발되었습니다.
  • 기존의 사전 훈련 데이터는 소프트웨어 엔지니어가 작업을 수행하는 예시를 통합하지 않으며, 주로 완료된 작업의 결과물만을 보여줍니다.
  • Genie 개발을 통해 작업 수행 과정의 데이터를 활용하여 AI 시스템을 구축하는 유용한 기술을 발견했습니다.

2. 🔧 파인튜닝의 중요성과 데이터 처리 방법

  • 파인튜닝은 LLM 도구 상자에서 매우 활용도가 낮은 도구로 보이지만, 제품 품질이 미션 크리티컬한 경우 필수적이다.
  • 기본 LLM에서 원하는 성능을 얻지 못해 파인튜닝을 통해 모델을 특정 분야에 특화시켰다.
  • 일반적으로 적은 예시가 필요하지만, 세부적인 데이터 처리가 매우 중요하다.
  • 프롬프트를 사용한 제품은 하루 만에 멀리 갈 수 있지만, 마지막 20%의 성능 향상은 파인튜닝을 통해 이루어졌다.
  • 모델이 인간처럼 소프트웨어 엔지니어가 되도록 하기 위해 대량의 데이터 정리와 큐레이션이 필요했다.
  • 처음에는 중요하다고 생각한 것들이 실제로는 사람들이 제품을 사용할 때 중요하지 않다는 것을 깨달았다.

3. 🧠 추론 기법과 모델 개선 전략

  • 최근 출시된 01 및 01 mini와 같은 모델은 추론의 중요성을 강조하고 있다.
  • Genie 구축 시, 맞춤형 추론 경로를 활용하여 모델이 인간처럼 사고하도록 유도하였다.
  • 특히 소프트웨어 엔지니어링과 같은 복잡한 작업에서는 모델의 사고 방식을 변경하는 것이 유용할 수 있다.
  • Chain of Thought 기법은 모델의 단점을 완화하는 데 도움이 된다.
  • 01과 같은 전용 추론 모델을 사용하여 맞춤형 추론 경로를 생성하고 이를 더 작은 모델로 증류할 수 있다.
  • 기본 모델이 원하는 출력을 일관되게 생성하지 못할 때, 맞춤형 추론 경로가 원하는 결과를 얻는 데 도움을 줄 수 있다.

4. 🛠️ 코드 리뷰 및 맞춤형 추론 활용 사례

  • 모델을 코드 리뷰에 맞게 미세 조정하여 성능을 30% 향상시킬 수 있습니다.
  • PR(풀 리퀘스트)와 리뷰 코멘트를 입력으로 사용하여 01 모델을 통해 왜 해당 코멘트가 남겨졌는지 추론할 수 있습니다.
  • 이러한 추론 과정은 인간이 남긴 코멘트의 의도를 이해하는 데 중요하며, 불필요한 정보를 25% 줄이는 데 도움을 줍니다.
  • 이 접근 방식은 Genie 내부에서 널리 사용되며, 선호하는 답변 세트에 도달하는 데 40% 더 빠르게 기여했습니다.

5. 🎮 셀프플레이 기법을 통한 데이터 생성

  • 셀프플레이 기법은 실제 세계에서 얻기 어려운 훈련 예제를 생성하는 데 유용하며, 브라우저 기반 작업에 뛰어난 개인 비서를 구축하는 데 사용됩니다.
  • 이 기법은 500만~1000만 라인의 대규모 코드베이스에서도 효과적으로 작동하며, 코드베이스 탐색 및 검색에 강력한 도구로 활용됩니다.
  • 셀프플레이 파이프라인 내 모델을 미세 조정하여 성능을 향상시킬 수 있으며, 데이터 정리가 중요합니다.
  • 플레이어 모델과 감독 모델을 사용하여 셀프플레이 파이프라인을 구성할 수 있으며, 플레이어 모델은 프롬프트를 받고 도구와 상호작용하여 파일을 읽거나 검색합니다.
  • 감독 모델은 교사 역할을 하며 프롬프트와 원하는 결과를 받아 피드백을 제공합니다.
  • 플레이어와 감독 모델을 미세 조정하면 인간의 추론을 더 많이 얻을 수 있으며, 수렴 속도가 빨라집니다.
  • 모델을 잘 작동시키기 위해 수천 개의 주석이 필요하지 않으며, 몇 백 개의 주석으로도 충분합니다.
  • 모델을 미세 조정하면 성능이 크게 향상됩니다.

6. 💡 Genie의 실제 활용 및 데모

  • 커스텀 추론 트레이스는 어려운 작업에서 모델 성능을 크게 향상시킴.
  • 데이터 세트 품질을 개선하는 것이 프롬프트 반복보다 더 많은 성능을 추출할 수 있음.
  • 자체 플레이는 에이전트 기반 워크플로우에 매우 효과적이며, 수직적 특화 에이전트 훈련에 사용 가능.
  • 모델은 제공된 데이터를 학습하며, 문제의 원인은 데이터 속성에 있을 가능성이 높음.
  • Genie는 GitHub와 연동하여 코드베이스를 인덱싱하고, 키워드 인덱스를 생성하여 코드 검색 및 수정 가능.
  • Genie는 에러를 자동으로 수정하고, GitHub CI를 통해 코드 실행 결과를 확인함.
  • Genie와 Cosign의 모든 작업은 GitHub에 자동으로 반영되며, PR을 생성하여 문제를 해결함.
View Full Content
Upgrade to Plus to unlock complete episodes, key insights, and in-depth analysis
Starting at $5/month. Cancel anytime.