본문 바로가기
AI 언어 모델

🌟코딩 혁신: Codestral - 미스트랄이 만든 AI 코드 생성 끝판왕!🚀

by James AI Explorer 2024. 5. 31.
    728x90

    안녕하세요! 오늘은 미스트랄의 새로운 코드 생성 언어 모델 Codestral에 대해서 알아보겠습니다. Codestral은 Python, Java, C, C++, JavaScript, Bash를 포함한 80개 이상의 프로그래밍 언어로 학습되었으며, Swift, Fortran 같은 특정 언어에서도 높은 성능을 발휘하여 다양한 코딩 환경과 프로젝트에서 개발자들을 지원할 수 있습니다. 이 블로그에서는 Codestral의 개요와 벤치마크 결과를 살펴보고, 코딩 테스트와 VSCode Co-pilot 설정 방법을 살펴보겠습니다.

    🌟코딩 혁신: Codestral - 미스트랄이 만든 AI 코드 생성 끝판왕!🚀

    "이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

    Codestral 개요

    Codestral는 코드 생성 작업을 위해 특별히 설계된 오픈-웨이트 생성 AI 모델입니다. "오픈-웨이트 생성 AI 모델"은 AI 모델의 가중치(weights)가 공개되어 있다는 의미입니다. 모델의 가중치는 AI가 학습한 정보와 지식을 저장하는 부분으로, 모델이 입력 데이터를 처리하고 결과를 생성하는 데 사용됩니다. 오픈-웨이트 모델의 경우, 이 가중치 파일이 누구나 접근할 수 있도록 공개되어 있어, 연구자나 개발자들이 자신의 프로젝트에 이 모델을 사용하거나, 더 나아가 모델을 재훈련하거나 개선할 수 있습니다.

    미스트랄의 새로운 코드 생성 언어 모델  Codestral

    "다양한 언어 지원과 높은 효율성"

    Codestral은 Python, Java, C, C++, JavaScript, Bash 등 80개 이상의 프로그래밍 언어로 학습된 오픈-웨이트 AI 모델로, Swift와 Fortran과 같은 특정 언어에서도 높은 성능을 발휘합니다. 다양한 코딩 환경과 프로젝트에서 개발자들을 지원하며, 코딩 함수 완성, 테스트 작성, 부분 코드 완성을 통해 시간을 절약하고 오류와 버그를 줄여줍니다. Codestral과의 상호작용을 통해 개발자들은 코딩 능력을 향상시킬 수 있습니다.

     

    "강력한 성능과 대기 시간 단축"

    22B 크기의 모델인 Codestral은 코드 생성 성능 및 대기 시간 면에서 이전 모델들보다 뛰어난 성능을 제공합니다. Codestral은 32k의 큰 컨텍스트 윈도우를 가지고 있어 모델이 긴 문맥(컨텍스트)을 처리하고, 대규모 코드베이스에서 정확하게 코드 생성 및 완성을 수행할 수 있는 능력을 평가하는 RepoBench와 같은 복잡한 코드 생성 평가에서 다른 모델들을 능가합니다.

     

    "Python 및 SQL 코드 생성에서 탁월한 성능"

    Codestral 22B는 대부분의 코드 생성 벤치마크에서 높은 점수를 기록하며 우수한 성능을 보이며, 특히 HumanEval( 모델이 인간 평가를 통과하는 올바른 코드를 생성할 수 있는 능력), MBPP(Mostly Basic Programming Problems, 코드 완성 작업성능 측정) , Spider(SQL 쿼리 생성 작업성능 측정)에서 높은 점수를 기록하며 다른 모델들보다 뛰어난 성능을 나타냈습니다.

    728x90

    벤치마크 결과

    Codestral 모델의 벤치마크 결과에 대해 알아보겠습니다. Codestral에서 공개한 벤치마크 결과에서 비교된 모델은 메타의 CodeLlama 70BLlama 3 70B, 중국에서 개발한 코드 생성 모델인 DeepSeek Coder 33B입니다. Codestral은 32k의 컨텍스트 윈도우를 가지고 있어 경쟁 모델들의 4k, 8k 또는 16k와 비교하여, 대규모 코드 생성 평가인 RepoBench에서 모든 다른 모델들을 능가합니다. 

    주요 벤치마크 성능

    위 표에서 Codestral 22B는 HumanEval, RepoBench, HumanEvalFIM(HumanEval Fill-In-the-Middle, 코드 생성 모델이 주어진 코드의 중간 부분을 정확하게 채우는 능력) 평균 및 HumanEval 평균에서 가장 높은 성능을 보입니다. 특히, HumanEval에서 81.1%의 점수를 기록하며, Python 코드 생성 작업에서 다른 모델들을 능가합니다. Codestral 22B는 전체적으로 뛰어난 성능을 보이며, 특히 Python 코드 생성 작업과 긴 문맥 처리에서 강점을 보입니다.

     

    프로그램 언어별 HumanEval 성능 평가결과


    위 표에서 Codestral 22B는 HumanEval( 모델이 인간 평가를 통과하는 올바른 코드를 생성할 수 있는 능력)에서 Python 81.1%모든 모델 중 가장 높은 성능을 보였으며, Bash는 42.4%로 상대적으로 낮은 성능, C++ 65.2%, Java 63.3%, PHP 68.9%, Typescript 68.6%, C# 43.7%로 다양한 언어에서 고르게 높은 성능을 보이고, 평균 61.5%로 모든 모델 중 가장 높은 평균 성능을 나타냅니다. 

    코드의 중간 부분을 채우는 성능 평가결과

    위 표에서 Codestral 22B는 HumanEval FIM 벤치마크 (HumanEval Fill-In-the-Middle, 코드 생성 모델이 주어진 코드의 중간 부분을 정확하게 채우는 능력)에서 전반적으로 뛰어난 성능을 보여주며, 특히 JavaScript에서 매우 높은 성능을 보입니다. 평균 91.6%로 DeepSeek Coder 33B를 압도하는 성능을 기록했습니다.

     

    전반적으로 벤치마크 결과는 Codestral 22B가 코드 생성에 강력한 언어 모델이며, 이 분야의 다른 모델들과 경쟁력이 있음을 보여줍니다. 특히 Python과 SQL 코드 생성 작업에서 뛰어난 성능을 보여, 이러한 언어에서 코드를 생성해야 하는 개발자들에게 매우 유용한 도구가 될 수 있음을 나타냅니다.

     

    코딩 테스트

    다음은 Codestral의 코딩 성능을 테스트해 보겠습니다. 현재 Codestral API Key홈페이지에서 사용요청 후, 이메일 인증을 통해 받을 수 있으며, Mistral의 Le Chat을 통해서는 API Key 없이 바로 이용할 수 있습니다. 코딩 테스트는 edabit.com 코딩 교육 사이트의 파이썬, 자바 스크립트, PHP 코딩 시험문제로 테스트하였습니다.

    https://edabit.com/challenges

     

    Learn to Code with 10,000+ Interactive Challenges

    Learn to code with fun, bite-sized challenges. Earn XP, unlock achievements and level up. It's like Duolingo for learning to code.

    edabit.com

     

    먼저, 아래 화면은 Python 난이도별 시험문제 평가결과 화면입니다.

    Codestral의 Python Expert단계 응답 화면
    Python Medium(좌), Hard(우) 단계 시험결과
    Python Very Hard(좌), Expert(우) 단계 시험결과

    아래 화면은 JavaScript 난이도별 시험문제 평가결과 화면입니다. 

    Codestral의 JavaScript Expert단계 응답 화면
    JavaScript Medium(좌), Hard(우) 단계 시험결과
    JavaScript Very Hard(좌), Expert(우) 단계 시험결과

    아래 화면은 PHP 난이도별 시험문제 평가결과 화면입니다. 

    Codestral의 PHP Expert단계 응답 화면
    PHP Medium(좌), Hard(우) 단계 시험결과
    PHP Very Hard(좌), Expert(우) 단계 시험결과

    다음 표는 Codestral 모델의 Python, JavaScript, PHP에 대한 난이도별 시험문제 평가결과로 첫 번째 시도에서 문제를 맞힌 경우 Pass, 틀리면 Fail로 표시하였습니다. 

    구 분 Medium Hard Very Hard Expert
    Python Pass Pass Pass Pass
    JavaScript Pass Pass Pass Fail
    PHP Pass Pass Pass Pass

     

    코딩 테스트 결과 Codestral은 Python과 JavaScript 시험문제는 모두 성공하였으며, PHP는 Expert 단계에서 실패하였지만 코딩 성능이 전반적으로 우수한 것을 확인하였습니다. 

     

     

     

     

     

    VSCode Co-pilot 설정

    비주얼 스튜디오 코드에서 Codestral을 Co-pilot으로 설정하기 위해서는 아래 화면과 같이 Continue 확장 프로그램을 설치한 후, API Key를 설정하면 됩니다.

    VSCode 확장프로그램 Continue

    다음은 https://codestral.mistral.ai/ 사이트에 접속해서 아래 화면과 같이 모델 접근을 요청합니다. 그러면, 잠시 후 이메일로 Codestral 접근이 허용되었다는 답장이 옵니다. 

    https:// codestral .mistral.ai/ 접근 요청 화면
    Codestral 접근 허용 메일

    이메일에서 https://codestral.mistral.ai/ 주소를 클릭하면 아래 화면과 같이 API Key 생성 화면으로 이동합니다. 

    Codestral API Key 생성 화면

     

    API Key가 생성되면 VSCode를 실행하여, 좌측 확장 프로그램에서 Continue를 클릭하고, 아래 화면과 같이 Mistral API를 선택한 후, API Key를 입력하면 Codestral 모델 설정이 완료됩니다. 

    Continue Mistral API Key 설정화면

    API Key 설정이 완료되면 코드의 범위를 선택한 후, CTR+L 키를 눌러 대화창에 추가하거나, Codestral에게 코드에 대해서 질문할 수 있으며, CTR+I 키를 눌러 코드 편집을 요청할 수 있습니다.  

    Codestral 대화창 추가 및 코드 편집 실행화면

    아래 화면은 Codestral에게 스네이크 게임을 만들어 달라고 요청하여 첫 번째 응답한 코드를 실행한 결과이며, 모든 기능이 정상적으로 동작하였습니다. 

    Codestral 첫번째 생성 스네이크 게임 실행결과

    맺음말

    오늘 블로그에서는 다양한 프로그래밍 언어를 지원하며, 높은 성능과 효율성을 자랑하는 코드 생성 AI 모델, Codestral에 대해서 알아보았는데요, Codestral은 Python, Java, C++, JavaScript 등 여러 언어에서 뛰어난 성능을 보여주며, 특히, 긴 문맥을 처리하고 정확하게 코드를 생성하는 능력으로, 복잡한 프로젝트에서도 시간을 절약하고 오류를 줄이는 데 큰 도움을 줄 수 있습니다.

     

    Codestral의 코딩 테스트를 하면서 느낀 점은 다음과 같습니다.

    • VSCode 확장 Co-pilot에서 스네이크 게임 생성, 코드 질문 응답 등 속도가 매우 빨랐습니다. 
    • 코딩 테스트에서 대부분의 코딩 문제를 맞히는 모델은 처음입니다. 
    • DeepSeek Coder에 이어 든든한 코딩 작업 보조가 생겼습니다.  

    이 블로그를 통해 Codestral의 다양한 기능과 성능을 살펴보았는데요, 여러분도 앞으로 개발 프로젝트에서 Codestral을 적극 활용하여 보다 효율적이고 오류 없는 코딩 작업을 경험해 보시길 바랍니다. 그럼 저는 다음에 더 유익한 정보를 가지고 다시 찾아뵙겠습니다. 감사합니다. 

     

    https://fornewchallenge.tistory.com/

     

     

    2024.05.28 - [AI 논문 분석] - [AI 논문] AutoCoder: GPT-4o를 능가한 코드 생성 대형 언어 모델

     

    [AI 논문] AutoCoder: GPT-4o를 능가한 코드 생성 대형 언어 모델

    안녕하세요! 오늘은 AutoCoder라는 코드 생성 대형 언어 모델에 대해서 알아보겠습니다. AutoCoder는 AIEV(Agent-Interaction and Execution-Verified, 에이전트 상호작용 및 실행검증)-INSTRUCT  방법론을 통해 에이

    fornewchallenge.tistory.com

     

    728x90