LLM이 Ruby 코드에 어려움을 겪는 주된 원인은 “Python 우위” 현상과 학습 데이터의 질적 문제입니다. LLM은 Python 중심 벤치마크에 최적화되어 솔루션의 93.5% 이상이 Python을 선호합니다. Ruby는 양적으로는 존재하지만, 구조화되고 고품질의 관용적 예제가 부족하여 LLM 성능 격차가 발생합니다.
Ruby의 LLM 고유 과제
Ruby의 표현력과 컨벤션 강조 특성으로 인해 LLM은:
-
비관용적 코드: Ruby 컨벤션을 무시하고 Python 유사 코드를 생성합니다.
-
프레임워크 컨벤션: Rails의 “설정보다 관례” 철학, ActiveRecord, RESTful 라우팅 등 핵심 패턴을 놓칩니다.
-
메타프로그래밍:
method_missing같은 동적 기능이나 프레임워크별 DSL 이해가 부족합니다. -
테스팅: RSpec, Minitest 등 다양한 테스트 프레임워크의 구문과 관용구를 혼동합니다.
현대 AI 시스템의 해결 방안
고급 AI 시스템은 검색 증강 생성(RAG)과 후속 미세 조정(Post-Training Fine-Tuning)을 결합하여 이 문제를 해결합니다. RAG는 추론 시 관련 Ruby 코드 예제와 문서를 동적으로 검색하고, 미세 조정은 고품질 Ruby 데이터셋으로 모델을 추가 학습시킵니다. Propel과 같은 시스템은 Ruby 특화 RAG와 미세 조정을 통해 전문화된 지식 기반을 활용, LLM의 Ruby 코드 이해도를 크게 향상시킵니다.