[논문 리뷰] Teaching Software Engineering for AI-Enabled Systems
이 논문은 기계학습 학생들을 대상으로 모델 버전 관리, 데이터 파이pline 엔지니어링, 공정성과 같은 실제 문제들에 대한 실무 교육을 제공하는 새로운 대학원 과정을 제시한다. 이 과정은 강력하고 확장 가능하며 윤리적으로 인지하는 AI 기반 시스템을 구축하기 위한 소프트웨어 공학 원리를 다루며, 자체 개발한 시뮬레이터를 활용한 실습 과제를 통합하고, 모든 자료를 크리에이티브 커먼즈 라이선스 하에 개방한다.
Software engineers have significant expertise to offer when building intelligent systems, drawing on decades of experience and methods for building systems that are scalable, responsive and robust, even when built on unreliable components. Systems with artificial-intelligence or machine-learning (ML) components raise new challenges and require careful engineering. We designed a new course to teach software-engineering skills to students with a background in ML. We specifically go beyond traditional ML courses that teach modeling techniques under artificial conditions and focus, in lecture and assignments, on realism with large and changing datasets, robust and evolvable infrastructure, and purposeful requirements engineering that considers ethics and fairness as well. We describe the course and our infrastructure and share experience and all material from teaching the course for the first time.
연구 동기 및 목표
- 모델 정확도에만 집중하면서도 실제 배포를 위한 소프트웨어 공학 관행을 간과하는 AI 교육의 격차를 보완한다.
- 신뢰할 수 있는 AI 시스템을 구축하기 위해 버전 관리, 지속적 통합, 시스템 아키텍처와 같은 핵심 소프트웨어 공학 기술을 기계학습 전공 학생들에게 제공한다.
- 모델 성능에 집중하는 데이터 과학자와 확장성, 유지보수성, 리스크 관리에 중점을 두는 소프트웨어 엔지니어 사이의 격차를 메운다.
- 교수서에 나와 있는 기계학습 시나리오를 넘어서 데이터 품질, 모델 업데이트, 윤리적 고려사항(예: 공정성)과 같은 실질적이고 현실적인 시스템 도전 과제를 도입한다.
- 다른 교육자들이 AI 및 소프트웨어 공학 분야에서 활용할 수 있도록 재사용 가능하고 오픈소스인 커리큘럼과 시뮬레이션 인프라를 제공한다.
제안 방법
- 기계학습 배경을 가졌지만 시스템 경험은 제한적인 학생들을 대상으로, AI 시스템 개발에 초점을 맞춘 소프트웨어 공학 관점의 대학원 과정을 기획했다.
- 실제 사용자 행동, 데이터 스트림, 모델 업데이트를 반영한 영화 추천 시스템을 모델링하기 위해 맞춤형 시뮬레이션 환경(시뮬레이터)을 개발했다.
- 핵심 소프트웨어 공학 관행을 통합: 모델과 데이터에 대한 버전 제어, CI/CD 파이프라인, A/B 테스트, AI 시스템을 위한 위협 모델링.
- 실제 시나리오를 바탕으로 한 과제를 구성: 확장 가능한 추천 파이프라인 구축, 프로덕션 환경에 모델 배포, 신용 평가에서의 공정성 평가, 보안 위험 분석.
- 기초 교재로 Hulten의 *Building Intelligent Systems*를 사용하고, 외부 강연과 실무 도구를 보완 자료로 활용했다.
- 스ライ드, 과제, 시뮬레이터 코드를 포함한 모든 과정 자료를 크리에이티브 커먼즈 라이선스 하에 공개하여 재사용 및 변형을 허용했다.
실험 결과
연구 질문
- RQ1기계학습 배경을 가졌지만 시스템 경험은 제한적인 학생들에게 소프트웨어 공학 원리를 효과적으로 어떻게 가르칠 수 있는가?
- RQ2모델 정확도를 넘어서 실제 배포 및 유지보수에서 발생하는 주요 공학적 과제는 무엇인가?
- RQ3교육적 맥락에서 AI 시스템 공학을 가르치기 위해 현실적이고 확장 가능하며 유연한 시뮬레이션 환경을 어떻게 설계할 수 있는가?
- RQ4윤리적 고려사항(예: 공정성, 해석 가능성)은 시스템 설계에서 어떤 역할을 하는가? 그리고 소프트웨어 공학 워크플로우에 어떻게 통합할 수 있는가?
- RQ5AI 시스템에서 데이터 버전 관리, 모델 품질 모니터링, 지속적 배포를 지원하기 위해 필요한 도구와 관행는 무엇인가?
주요 결과
- 12명의 대학원생이 과정에 적극 참여했으며, 모델 버전 관리, 공정성 평가와 같은 주제의 실용성에 대해 높은 평가를 받았다.
- 자체 개발한 시뮬레이터는 작동 가능했지만, 상당한 엔지니어링 노력이 수반되었고, 스케일이 부족하여(160,000명의 사용자, 70건/초), 현실적인 성능 및 비용 트레이드오프 논의가 제한되었다.
- 기초 소프트웨어 공학 지식에 대한 빈곤이 학생들의 어려움을 유발했으며, 이는 기계학습 전공자와 소프트웨어 공학 전공자에게 별도의 트랙을 제공할 필요가 있음을 시사한다.
- 공정성, 설명 가능성, 데이터 버전 관리를 위한 기존 도구들은 아직 미숙하거나 사용이 어려운 편이었으며, 이는 AI 시스템 공학 분야에서 더 나은 도구 개발의 필요성을 강조한다.
- 과정은 윤리적 고려사항(예: A/B 테스트, 리스크 관리)과 운영적 고려사항을 AI 교육에 통합함으로써 학생들의 시스템 설계 사고 방식을 크게 확장시켰다.
- 모든 과정 자료—시뮬레이터와 과제도 포함—를 크리에이티브 커먼즈 라이선스 하에 공개하여 다른 교육자들이 재사용 및 변형할 수 있도록 했다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.