GPT-OSS-Reverse-Engineering 프로젝트 소개
최근 오픈소스 언어 모델에 대한 관심이 급격히 증가하면서, 이들 모델이 실제로 어떤 데이터를 학습했는지 파악하는 연구도 활발히 이루어지고 있습니다. 특히 OpenAI가 발표한 GPT-OSS 모델 시리즈는 기존 상용 GPT 계열과 유사한 기능을 제공하면서도, 오픈소스로 공개되었기 때문에 그 내부 구조나 학습 방식에 대한 궁금증이 더욱 커지고 있습니다.
이번에 소개하는 gpt-oss-reverse-engineering 프로젝트는 이러한 궁금증을 해결하기 위한 일종의 탐색적 연구입니다. 구체적으로는 GPT-OSS-20B 모델을 중심으로, 모델이 특정 단어로 시작하는 문장을 생성할 때 드러나는 ‘문장 패턴’을 통해, 해당 모델이 어떤 종류의 데이터에 많이 노출되었는지를 분석합니다. 이는 단순히 모델의 성능을 넘어서, 모델의 내부에 어떤 데이터가 잠재되어 있는지를 실험적으로 파악하는 시도라는 점에서 흥미로운 접근입니다.
이 프로젝트는 개발자, AI 연구자, 모델 평가에 관심 있는 분들에게 의미 있는 인사이트를 제공할 수 있습니다. 특히 LLM의 학습 데이터 구성에 따른 출력 특성 변화를 이해하고 싶은 분들에게 좋은 참고 자료가 될 것입니다.
특히, GPT-OSS-20B를 중심으로 DeepSeek, Qwen3, Kimi-K2, GLM-4.5 등 다양한 모델을 비교 분석함으로써, 각 모델의 학습 방식과 내용 특성을 직관적으로 이해할 수 있습니다. 예를 들어, GPT-OSS 계열은 구조화된 기술 문서와 튜토리얼 기반의 출력이 주를 이루며, DeepSeek은 문학적이고 창의적인 텍스트 생성에 강점을 보이고, Qwen3-Coder는 수학적 정형 논리에 최적화되어 있는 것이 특징입니다.
GPT-OSS 역공학 프로젝트 개요
GPT-OSS 모델의 학습 데이터가 공개되지 않았기 때문에, 이 프로젝트는 입력 단어를 다양하게 바꿔가며 생성되는 문장을 수집하고, 이를 통해 모델이 어떤 유형의 데이터에 노출되었는지를 유추합니다. 주요 분석 대상은 GPT-OSS-20B이며, 보조적으로 GPT-OSS-120B, DeepSeek, Qwen3-Coder, Kimi-K2, GLM-4.5 모델의 결과도 비교 분석합니다.
실험 방법론
단어 기반 프롬프트 전략
모든 모델에 대해 동일한 9개의 단어(The, This, How, Why, What, A, An, In, New)로 시작하는 문장을 반복 생성시켜 비교합니다. 생성에는 temperature=1.0 설정이 사용되어 최대한 다양한 문장이 생성되도록 유도했습니다.
수집된 데이터
각 모델에서 단어별로 10개 이상의 샘플을 수집했으며, 생성된 문장들의 주요 주제나 작성 스타일을 분석했습니다. 이 과정을 통해 모델이 학습한 데이터의 분포를 역으로 추정할 수 있습니다.
GPT-OSS-20B의 분석 결과
프로그래밍 중심의 데이터 분포
GPT-OSS-20B 모델은 생성 결과의 약 85~90%가 코드, 개발 문서, 프로그래밍 튜토리얼, API 문서 등으로 구성되어 있습니다. 다양한 언어(Java, Python, JavaScript, C#, Go 등)를 다루며, 테스트 코드, 코드 설명, 디자인 패턴, 디버깅 가이드 등 매우 실무적인 주제를 포함하고 있습니다.
단어별 프롬프트 특성
- The: 기술 문서, API 설명, 코드 주석
- This: 디버깅 설명, 구현 세부사항, 보안 처리
- How: 알고리즘, 수학적 증명, 그래프 이론
- Why: 아키텍처 설계 이유, 디자인 패턴
- What: 오류 분석, API 통합 문제
- A: 웹 개발 튜토리얼, UI 구현
- An: 알고리즘/자료구조 분석
- In: 플랫폼 간 호환 구현
- New: 코드 직렬화, 파일 처리 튜토리얼
다중 모델 분석 및 비교
모델별 특성 비교
| 모델 | 주요 내용 | 학습 데이터 유형 | 출력 품질 | 문서 스타일 |
|---|---|---|---|---|
| GPT-OSS-20B | 프로그래밍 교육 | 구조화된 합성 데이터 | 매우 우수 | 단계별 튜토리얼 |
| GPT-OSS-120B | 시스템/게임 메커니즘 | 합성 기술문서 | 우수 | 기술 설명서 |
| DeepSeek | 문학 창작 | 자연 + 합성 | 문학적 우수 | 내러티브 |
| Qwen3-Coder | 수학 논리 | 학술적 자연 데이터 | 정형적 | 논문 스타일 |
| Kimi-K2 | 실무 프로그래밍 Q&A | 자연 + 합성 | 중간 | 기술 지원형 |
| GLM-4.5 | 웹 게시글 | 웹 기반 자연 텍스트 | 다양하지만 불안정 | 캐주얼 포럼 스타일 |
프로젝트 구조 및 활용법
- Jupyter 노트북 random_generation.ipynb에서 프롬프트별 문장 생성 및 결과 수집
- 출력 파일은 모델별, 단어별로 분류되어 있음 (예: outputs-oss-20b/The/)
- 의존성 관리는 uv를 사용하며, 설치 후 uv sync 명령어로 환경 구성
- 생성된 데이터는 학습 데이터의 성격을 추론하는 데 사용됨
결론 및 시사점
gpt-oss-reverse-engineering 프로젝트는 언어 모델의 ‘출력’을 바탕으로 ‘학습 데이터’를 추정하는 새로운 방식의 분석 방법론을 제시합니다. 특히 GPT-OSS-20B의 경우, 거의 대부분의 생성 내용이 실용적인 프로그래밍 주제를 포함하고 있어, 코드 생성, 문서화, 교육 콘텐츠 생성 등에 최적화되어 있음을 보여줍니다.
다른 모델과의 비교를 통해, 각 모델이 어떤 데이터 기반으로 학습되었고 어떤 용도에 적합한지를 명확히 파악할 수 있습니다. 이는 향후 모델을 선택하거나 특정 목적에 맞게 활용할 때 매우 유용한 정보가 될 수 있습니다.
라이선스
gpt-oss-reverse-engineering 프로젝트는 Apache-2.0 라이선스로 공개되어 있으며, 상업적 사용에 제약이 없습니다.
gpt-oss-reverse-engineering 프로젝트 GitHub 저장소
학습 데이터 속성 추론에 대한 연구
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. ![]()
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ ![]()
