주요 컨텐츠로 이동

당신의 코드를 수정하는 AI 교육: Databricks에서 Quick Fix를 개선하는 나의 여름

나의 여름, Databricks 인턴으로서 실제 세계에 영향을 미치는 경험

Teaching AI to Better Fix Your Code: My Summer Improving QuickFix at Databricks

Published: August 8, 2025

문화1분 이내 소요

작성자: Ilana Nguyen

Summary

  • Databricks 어시스턴트 팀의 인턴으로서, 저는 고객들에게 실제로 도전을 제공하는 기회를 얻었습니다.
  • 문제: 우리는 어떻게 사용자를 위한 수정 제안의 품질을 향상시킬 수 있을까요?
  • 프로젝트: 여러 가능한 수정을 생성하고 보상 모델을 훈련시켜 최선의 것을 반환하도록 선택합니다.

우리 인간은 새로운 것들을 배우게 됩니다, 예를 들어 발레나 복싱(이번 여름에 저도 이 두 가지 활동을 해보았습니다!)과 같은 것들을요. 시행착오를 통해. 우리는 시도하고, 실수에서 배우고, 지도를 듣는 것으로 발전합니다. 이러한 피드백 루프는 저의 여름 인턴 프로젝트의 일부였습니다. Databricks가 최고 수준의 코드 어시스턴트를 구축하기 위한 노력의 일환으로, 보다 나은 코드 수정을 식별할 수 있도록 보상 모델을 교육했습니다.

그러나, 제 모델만이 시행착오를 통해 학습하는 것은 아니었습니다. 좋은 코드 수정과 나쁜 코드 수정을 구분하는 모델을 교육하면서, 나는 견고한 코드를 작성하는 방법, 영향력 있는 제품을 위해 지연 시간과 품질 문제를 균형잡는 방법, 큰 팀에게 명확하게 소통하는 방법, 그리고 무엇보다도 그 과정에서 즐기는 방법을 배웠습니다.

Databricks Assistant Quick Fix

코드를 작성하고 실행해 보려 했지만 까다로운 오류가 발생했다면, Quick Fix를 확실히 평가할 수 있을 것입니다. Databricks 노트북과 SQL 에디터에 내장된 Quick Fix는 구문 오류, 철자가 틀린 열 이름, 간단한 런타임 오류 등에 이상적인 1-3초 내에 생성할 수 있는 높은 신뢰도의 수정을 위해 설계되었습니다. Quick Fix가 트리거되면, 코드와 오류 메시지를 가져와서 LLM을 사용하여 오류를 해결하는 대상 수정을 생성합니다.

Databricks Assistant Quick Fix

제 인턴 프로젝트는 어떤 문제를 해결했나요?

Quick Fix는 이미 존재하고 있었고 Databricks 사용자들이 그들의 코드를 수정하는 데 도움을 주었지만, 그것을 더 좋게 만들 수 있는 방법이 많았습니다! 예를 들어, 코드 수정을 생성하고 기본적인 체크를 통과하는지 확인한 후, 우리가 사용자에게 보여주는 수정이 가장 관련성이 있고 정확한 것인지 어떻게 보장할 수 있을까요? 최적의 K 샘플링을 사용하면—여러 가지 가능한 수정 제안을 생성한 다음, 보상 모델을 사용하여 최선의 것을 선택합니다.

제 프로젝트 구조

제 프로젝트는 백엔드 구현과 연구 실험의 혼합이었는데, 이것이 재미있고 많은 학습이 있는 것으로 나타났습니다.

Assistant Quick Fix Flow with Best-Of-K and Reward Model Selection
Assistant Quick Fix Flow with Best-Of-K and Reward Model Selection

여러 가지 제안 생성

저는 먼저 Quick Fix 백엔드 플로우를 확장하여 다양한 프롬프트와 컨텍스트를 사용하여 병렬로 다양한 제안을 생성하였습니다. 체인-오브-쓰츠 추론, 예측 출력 추론, 시스템 프롬프트 변형, 선택적 데이터베이스 컨텍스트 추가 등의 기법을 실험하여 제안의 품질과 다양성을 극대화하였습니다. 추가적인 추론을 통해 제안을 생성하는 것이 우리의 품질 지표를 향상시켰지만, 일부 지연 비용을 초래하였다는 것을 발견하였습니다.

사용자에게 보여줄 최적의 수정 제안 선택

여러 가지 제안이 생성된 후, 우리는 최선의 것을 선택해야 합니다. 저는 가장 자주 제안된 수정 사항을 사용자에게 제시하는 간단한 다수결 투표 기준을 구현하여 시작했습니다. 이는 더 일반적으로 생성된 해결책이 가장 효과적일 것이라는 원칙에 따라 작동합니다. 이 기준선은 오프라인 평가에서는 잘 수행되었지만, 온라인 사용자 A/B 테스팅에서 현재 구현보다 크게 더 나은 성능을 보이지 않아서, 프로덕션에는 적용되지 않았습니다.

또한, 가장 유망한 제안을 순위 매기고 선택하기 위한 보상 모델을 개발하였습니다. 이 모델은 사용자가 수용하고 성공적으로 실행할 수정을 예측하도록 훈련되었습니다. 우리는 고전적인 머신러닝 접근법(로지스틱 회귀와 LightGBM 패키지를 사용한 그래디언트 부스팅 결정 트리)과 미세 조정된 LLM을 사용하였습니다.

결과와 영향

놀랍게도, 후보 수정의 사용자 수용 및 실행 성공을 예측하는 작업에 대해, 고전적인 모델은 오프라인 평가에서 세밀하게 조정된 LLMs와 비교할 수 있었습니다. 특히 결정 트리 모델은 Quick Fix가 처리하는 오류 유형에 대해 "올바르게 보이는" 코드 수정이 실제로 정확하다는 것을 보여주는 특징이 특히 유익했기 때문에 잘 수행되었을 수 있습니다: 원래의 코드 라인과 생성된 수정 사이의 유사성 과 오류 유형이 특히 유익한 특징이었습니다.

이러한 성능을 바탕으로, 우리는 결정 트리(LightGBM) 모델을 제품에 적용하기로 결정하였습니다. LightGBM 모델을 선택한 또 다른 요인은 미세 조정된 LLM에 비해 추론 시간이 훨씬 빨랐다는 것이었습니다. Quick Fix에서는 제안이 사용자가 코드를 수동으로 편집하기 전에 나타나야 하므로 속도가 중요하며, 추가적인 지연 시간은 수정된 오류 수를 줄입니다. LightGBM 모델의 작은 크기로 인해 자원 효율성이 훨씬 높아지고 생산화하기 쉬워졌습니다. 일부 모델 및 인프라 최적화와 함께, 우리는 평균 추론 시간을 거의 100배 줄일 수 있었습니다.

최고의 k 접근법과 보상 모델이 구현되면서, 우리는 내부 수용률을 높일 수 있었고, 이로써 사용자들에게 더 높은 품질을 제공할 수 있었습니다. 우리는 또한 우리의 원래 구현의 허용 가능한 범위 내에서 지연 시간을 유지할 수 있었습니다.

Databricks 어시스턴트에 대해 더 알고 싶다면, 랜딩 페이지 또는 어시스턴트 Quick Fix 공지를 확인해 보세요.

제 인턴십 경험

Databricks 문화를 실천 중입니다.

이 인턴십은 고영향력 제품에 직접 기여하는 놀라운 경험이었습니다. Databricks의 문화가 강력한 행동의 편향 을 장려하면서도 시스템과 제품의 품질에 대한 높은 기준을 유지하는 방식에 대해 직접적인 통찰력을 얻었습니다.

처음부터, 모두가 얼마나 똑똑하면서도 겸손한지 눈치챘습니다. 그 인상은 시간이 지남에 따라 더욱 강해졌습니다. 팀이 얼마나 진심으로 지원하는지 보았기 때문입니다. 매우 경험이 많은 엔지니어들도 정기적으로 나의 성공을 돕기 위해 노력했습니다. 기술적인 도전을 통해 이야기하거나, 세심한 피드백을 제공하거나, 과거의 접근법과 학습을 공유하는 등입니다.

특히 제 멘토 Will Tipton, 관리자 Phil Eichmann과 Shanshan Zheng, 비공식 멘토 Rishabh Singh과 Matt Hayes, 에디터/어시스턴트 팀, Applied AI 팀, 그리고 MosaicML 팀에게 감사의 말씀을 전하고 싶습니다. 그들로부터 배운 귀중한 기술과 인생의 교훈은 나의 나머지 커리어에 걸쳐 가지고 갈 것입니다.

다른 멋진 인턴들!

마지막으로, 다른 인턴들과 친해지는 것이 정말 즐거웠습니다! 채용 팀은 우리가 연결될 수 있도록 도와주는 많은 재미있는 이벤트를 조직했습니다. 내가 가장 좋아하는 것 중 하나는 인턴 올림픽(아래 사진)이었습니다. 점심 시간에 이야기하거나, 현지 운동 수업을 시도하거나, 노래방에서 생일을 축하하는 것이든, 나는 인턴 그룹이 얼마나 지원적이고 긴밀한지, 일 안에서나 밖에서나 정말로 감사했습니다.

인턴들

인턴 올림픽! 팀 2 화이팅!

인턴들의 복싱

저와 함께 복싱을 시도한 다른 인턴들에게 큰 박수를 보냅니다!

이번 여름, 나는 가장 좋은 학습이 실제 문제를 해결하고 실제 제약 조건을 가지고 있을 때—특히 똑똑하고, 열정적이고, 지원적인 사람들이 주변에 있을 때—발생한다는 것을 배웠습니다. 인턴십에서 가장 보람된 부분은 모델 훈련을 완료하거나 팀에게 흥미로운 결과를 제시하는 것만이 아니라, Databricks와 같이 널리 사용되는 플랫폼에서 시작부터 끝까지 구체적인 기능을 제공하는 능력을 향상시킨다는 것을 깨닫는 것이었습니다.

최첨단 프로젝트에서 놀라운 팀원들과 함께 일하고 싶다면, Databricks에서 일하는 것을 추천합니다! Databricks Careers page 를 방문하여 회사 전반에 걸친 채용 공고에 대해 더 알아보세요.

 

(이 글은 AI의 도움을 받아 번역되었습니다. 원문이 궁금하시다면 여기를 클릭해 주세요)

게시물을 놓치지 마세요

관심 있는 카테고리를 구독하고 최신 게시물을 받은편지함으로 받아보세요

다음은 무엇인가요?