- 2025년 2월 5일 Peter Schneider 작성
- 원문 : https://www.qt.io/blog/which-is-the-best-llm-for-prompting-qml-code-featuring-deepseek-v3
- 번역 : https://j2doll.tistory.com/1151
클로드 3.5 소네트는 영어로 요청될 때 QML 코드를 작성하기에 가장 좋은 LLM입니다.
왜 이런 결론에 도달했는지 알고 싶다면 계속 읽어보세요.
이전 블로그 게시물 에서 설명한 QML100FIM 벤치마크와 마찬가지로 , 우리는 프롬프트 코드 생성을 위한 벤치마크를 개발했습니다. 이러한 벤치마크는 고객을 안내하고 미세 조정 작업을 조정하는 데 도움이 됩니다.
QML100 벤치마크에는 "버튼 주위에 그림자가 바뀌어 눌렸음을 나타내는 버튼에 대한 QML 코드 생성"과 같은 영어로 된 100개의 코딩 과제가 포함되어 있습니다.
처음 50개 과제는 QML 지식의 숨결을 테스트하는 데 초점을 맞추고 있으며, 대부분의 Qt Quick Controls에 대한 과제를 다룹니다. 여기에는 Buttons와 같은 일반적인 구성 요소와 MonthGrid와 같은 덜 일반적인 컨트롤에 대한 코딩 과제가 포함됩니다.
다음 50개 작업은 "사용자가 텍스트 입력 필드 위에 마우스를 올려 놓으면 툴팁을 표시하는 QML 코드를 만듭니다." 또는 "사각형의 x 위치가 변경될 때마다 부드러운 애니메이션 동작을 위한 QML 코드를 만듭니다."와 같은 일반적인 UI 프레임워크 애플리케이션을 다룹니다.
QML100에는 모든 LLM이 성공적으로 완료하는 간단한 작업이 포함되어 있습니다. 예를 들어 "Hello World 애플리케이션에 대한 QML 코드를 생성합니다. Hello World 텍스트는 밝은 회색 배경의 창 중앙에 표시됩니다."
QML100에는 모든 LLM이 여전히 실패하는 어려운 과제도 포함되어 있습니다. 예를 들어 "야채와 그로부터 요리할 수 있는 것들을 분기 노드에 표시하는 트리 뷰에 대한 QML 코드를 만듭니다. 마우스 클릭으로 분기를 확장하고 축소할 수 있어야 합니다."
벤치마크에는 기존 코드의 버그를 수정하거나 기존 코드를 향상시키는 코드를 추가하는 몇 가지 작업이 포함되어 있습니다.
이미지: Qt Creator의 Qt AI Assistant에 대한 LLM 선택
"사용자의 터치 상호작용으로 체크 상태로 설정된 체크박스에 대한 QML 코드를 만듭니다."와 같이 Qt Quick Control의 내장 기능에 대한 지식을 측정하는 작업은 거의 없습니다. 많은 LLM은 지침의 모든 부분에 대한 코드를 작성하여 위의 작업에 실패하는 코드를 만드는 경향이 있습니다. CheckBox 에 핸들러 ´ onClicked: checked =!checked `를 추가하면 UI 컨트롤이 쓸모없게 됩니다.
LLM이 여러 파일에서 컨텍스트를 읽어야 하는 다중 파일 챌린지나 Qt Quick3D, Qt Multimedia, Qt Charts, Qt PDF, Qt Positioning 또는 이와 유사한 작업과 관련된 작업은 포함되지 않습니다.
생성된 코드는 Qt 6.8.1 키트를 사용하여 Qt Creator 15에서 실행되도록 수동으로 검사됩니다. 런타임 오류가 없어야 하며 작업을 해결해야 합니다. 중복된 가져오기 버전 번호나 불필요한 추가 코드는 실격으로 이어지지 않습니다(작동하는 한).
우리는 LLM을 단 한 번만 촉구합니다. 우리는 "3가지 중 최고" 또는 그와 비슷한 것을 하지 않습니다. LLM의 확률적 특성을 고려할 때, 벤치마크 응답은 결코 정확히 동일한 반복이 아니라고 가정할 수 있습니다. 따라서 LLM이 다음 LLM보다 1% 더 좋거나 나쁘다는 것에 대해 너무 많은 것을 읽지 않을 것입니다.
비오는 날 이후에 버섯처럼 새로운 LLM이 튀어나옵니다. 우리는 대부분의 주류 LLM을 테스트했습니다. 우리는 상업용 클라우드 서비스로 제공되는 LLM과 로열티 없이 자체 호스팅할 수 있는 LLM을 테스트했습니다.
QML 코드를 작성하기 위한 최고의 로열티 프리 LLM은 DeepSeek-V3로, 성공적인 코드 생성에 대한 점수가 57%입니다. 가장 좋은 전체 LLM은 Claude 3.5 Sonnet으로, 성공률은 66%입니다.
2024년 9월 말 42%였던 Visual Studio Code의 GitHub Copilot Chat 성능은 다소 실망스럽습니다. 이 성능이 지금까지 개선되었기를 바랍니다. 그러나 위의 결과 대부분은 2024년 4분기의 결과이며, 올해는 DeekSeep-V3와 OpenAI o1만 벤치마크되었습니다. StarCoder2와 Mistral Large 결과는 2024년 2분기의 결과입니다.
StarCoder15B의 성능은 Qt 설명서에서 학습한 경우에도 약간 실망스럽습니다. 그러나 투명한 사전 학습 데이터가 있는 유일한 모델이기 때문에 시도해 보는 것이 좋다고 생각했습니다.
전반적으로 코드 완성과 프롬프트 기반 코드 생성 기술을 모두 고려할 때, Claude 3.5 Sonnet은 순전히 QML 코딩 기술에 관한 것이라면 개인과 고객이 고려해야 할 심각한 옵션입니다. 그러나 비용 효율성, IPR 보호, 사전 학습 데이터 투명성과 같은 다른 측면도 소프트웨어 생성 프로젝트에 가장 적합한 LLM을 선택하는 데 중요한 역할을 해야 합니다.
Qt AI Assistant는 이 블로그 게시물을 작성할 당시 프롬프트 기반 코드 생성 및 전문가 조언을 위해 Claude 3.5 Sonnet, Llama 3.3 70B 및 GPT4o에 대한 연결을 지원합니다. Qt AI Assistant가 귀하를 위해 무엇을 할 수 있는지 자세히 알고 싶으시면 제품 페이지를 방문하세요.
시작하는 방법에 대한 지침이 필요하면 설명서를 참조하세요.
'Qt' 카테고리의 다른 글
KDDockWidgets : Qt 도크 위젯 라이브러리 (dock widget library) (0) | 2025.02.11 |
---|---|
QxOrm 라이브러리 : C++ Qt ORM(Object Relational Mapping) 및 ODM(Object Document Mapper) 라이브러리 (0) | 2025.02.07 |
DynamicQVariantArray 클래스 : QVariant 2차원 동적 배열 (0) | 2025.01.31 |
Qt AI Assistant 0.8.8 실험 버전 출시 (0) | 2025.01.24 |
DynamicQStringArray : QString 동적 2차원 배열 클래스 (0) | 2025.01.22 |