6P by GN⁺ | ★ favorite | 댓글 2개
  • Yi-Coder는 10억 미만의 파라미터로 최첨단 코딩 성능을 제공하는 오픈 소스 코드 대규모 언어 모델(LLM)
  • 1.5B와 9B 파라미터의 두 가지 크기로 제공되며, 효율적인 추론과 유연한 훈련을 위해 기본 버전과 채팅 버전이 모두 설계됨
  • Yi-Coder-9B는 GitHub의 저장소 수준 코드 말뭉치(Corpus)와 CommonCrawl에서 필터링된 코드 관련 데이터에서 2.4T의 고품질 토큰을 추가하여 Yi-9B를 기반으로 구축됨

Yi-Coder의 주요 특징

  • 2.4조(Trillion) 개의 고품질 토큰을 52개 주요 프로그래밍 언어에 걸쳐 사전 훈련함
  • 긴 문맥 모델링: 최대 128K 토큰의 문맥 창을 사용하여 프로젝트 수준의 코드 이해와 생성이 가능함
  • 작지만 강력함: Yi-Coder-9B는 CodeQwen1.5 7B 및 CodeGeex4 9B와 같이 100억 미만의 파라미터를 가진 다른 모델을 능가하며, 심지어 DeepSeek-Coder 33B와 동등한 성능을 달성함

Yi-Coder는 인상적인 코딩 성능을 제공함

LiveCodeBench

  • LiveCodeBench는 LLM에 대한 종합적이고 공정한 경쟁 프로그래밍 평가를 제공하기 위해 설계된 공개적으로 사용 가능한 플랫폼임
  • Yi-Coder-9B-Chat은 23.4%의 인상적인 통과율을 달성했으며, 10B 미만의 파라미터를 가진 모델 중 유일하게 20%를 초과함
  • 이 성능은 DeepSeek-Coder-33B-Instruct(22.3%), CodeGeex4-All-9B(17.8%), CodeLlama-34B-Instruct(13.3%), CodeQwen1.5-7B-Chat(12%)을 능가함

HumanEval, MBPP 및 CRUXEval-O

  • Yi-Coder-9B-Chat은 HumanEval에서 85.4%, MBPP에서 73.8%의 통과율을 달성하여 다른 코드 LLM을 능가함
  • 또한 Yi-Coder 9B는 CRUXEval-O에서 50% 이상의 정확도를 달성한 최초의 오픈 소스 코드 LLM이 됨

Yi-Coder는 코드 편집 및 완성에서 뛰어남

CodeEditorBench

  • Yi-Coder-9B는 오픈 소스 코드 LLM 중에서 인상적인 평균 승률을 달성하며, 프라이머리 및 플러스 하위 집합 모두에서 DeepSeek-Coder-33B-Instruct 및 CodeQwen1.5-7B-Chat을 꾸준히 능가함

CrossCodeEval

  • Yi-Coder는 검색 및 비검색 시나리오 모두에서 Python 및 Java 데이터 세트 모두에 대해 유사한 규모의 다른 모델을 능가함
  • 이는 소프트웨어 저장소 수준의 코드 말뭉치에 대한 더 긴 컨텍스트 길이로 훈련하는 것이 Yi-Coder가 장기 의존성을 효과적으로 포착할 수 있게 하여 뛰어난 성능에 기여함을 검증함

Yi-Coder는 128K 긴 컨텍스트를 모델링할 수 있음

코드에서의 바늘

  • Yi-Coder의 장문맥 모델링 능력을 테스트하기 위해 128K 길이의 시퀀스를 사용하는 "코드에서의 바늘"이라는 합성 작업을 만듦
  • 이 작업에서 단순한 맞춤형 함수가 긴 코드베이스에 무작위로 삽입되고, 코드베이스 끝에서 함수를 재현할 수 있는지 여부에 대해 모델이 테스트됨
  • 이는 LLM이 긴 컨텍스트에서 핵심 정보를 추출할 수 있는지 평가하여 긴 시퀀스를 이해하는 기본 능력을 반영함
  • Yi-Coder-9B는 128K 길이 범위 내에서 이 작업을 완벽하게 완료함

Yi-Coder는 수학적 추론에서 빛나고 있음

프로그램 지원 수학 추론

  • Yi-Coder를 프로그램 지원 설정(PAL: Program-aided Language Models)에서 7개의 수학 추론 벤치마크에 대해 평가함
  • Yi-Coder-9B는 70.3%의 놀라운 정확도를 달성하여 DeepSeek-Coder-33B의 65.8%를 능가함

결론

  • 우리는 Yi-Coder 1.5B/9B를 커뮤니티에 기본 버전과 채팅 버전 모두 오픈 소스로 제공함
  • Yi-coder는 기본 및 경쟁 프로그래밍, 코드 편집 및 저장소 수준 완성, 장문맥 이해 및 수학적 추론을 포함한 다양한 작업에서 놀라운 성능을 보여줌
  • 우리는 Yi-Coder가 소규모 코드 LLM의 한계를 넓혀 소프트웨어 개발을 가속화하고 변화시킬 수 있는 사용 사례를 열어줄 수 있다고 믿음

GN⁺의 정리

  • Yi-Coder의 장점은 적은 파라미터 수로도 최신의 코딩 성능을 제공한다는 점임. 이는 ChatGPT와 같은 대형 LLM이 요구하는 막대한 컴퓨팅 자원 없이도 뛰어난 코딩 지원을 가능케 할 것임
  • Yi-Coder의 장문맥 모델링 능력은 큰 프로젝트 전체에 걸친 코드 이해를 가능하게 하며, 이는 복잡한 코딩 작업에서 특히 유용할 것으로 보임
  • 경쟁 프로그래밍, 코드 편집, 리포지토리 수준의 완성, 긴 문맥 이해, 수학적 추론 등에서 뛰어난 성능을 발휘함.
  • LLM 기반 코딩 지원 도구의 대표주자로는 GitHub Copilot, Amazon CodeWhisperer 등이 있음. Yi-Coder는 이들과 비교해 경량화된 모델이라는 장점이 있으나, 플러그인 등 추가 기능 면에서는 아직 부족한 편임
  • 유사한 기능을 가진 다른 프로젝트로는 DeepSeek-Coder, CodeGeex4, CodeLLama 등이 있음.
  • Yi-Coder의 수학 추론 능력은 흥미로운 부분임. 프로그래밍을 통한 문제 해결 방식은 순수 언어 모델과는 차별화된 접근법으로, 수학뿐 아니라 다양한 영역에서 LLM의 활용 가능성을 보여줌
GeekNews Weekly에 포함된 글입니다. 에디터 코멘트 보기

댓글과 토론

Hacker News 의견
  • Claude 3.5 Sonnet이 코드 관련 LLM에서 여전히 최고 성능을 보임

    • 하지만 DeepSeek Coder V2 236B가 더 저렴하고 효율적임
    • Aider와 Claude Dev 플러그인에서 DeepSeek Coder V2 사용 중
  • Yi-Coder가 Aider의 코드 편집 벤치마크에서 GPT-3.5보다 낮은 점수를 받음

    • Sonnet: 77%
    • GPT-3.5: 58%
    • Yi-Coder-9b-Chat: 54%
    • Yi-Coder-9b-Chat-q4_0: 45%
  • SRE/DevOps/C#/Golang/C++ 작업에서 LLM을 테스트한 결과, 비논리적인 응답을 받음

    • 간단한 Python 스크립트 작성 요청에 엉뚱한 답변을 함
    • 여러 프로그래밍 언어로 관련 없는 답변을 제공함
  • 소프트웨어 엔지니어와 예술가들이 AI 모델에 반응하는 방식의 차이가 흥미로움

  • 특정 언어에 특화된 모델을 기다리고 있음

    • 현재 모델들은 여러 언어를 다루지만, 특정 언어에 매우 능숙한 모델이 필요함
  • 작은 LLM을 로컬에서 설정하는 방법에 대해 궁금해함

    • VSCode에서 탭 완성 기능이 작동하는지 질문
    • GitHub Copilot 외에 클라우드 모델 설정 방법에 대한 팁 요청
  • 로컬 데스크탑 PC에서 모델을 실행하기 위한 추천 하드웨어에 대해 질문

  • SWE-agent와 Yi-Coder-9B-Chat의 성능을 보고 싶어함

  • Aider 벤치마크에 대한 설명 요청

    • 113개의 동일한 테스트를 매번 통과시키는 이유에 대해 궁금해함
    • 모델의 일반적인 코드 생성 및 편집 능력을 평가하는 방식에 의문을 가짐
  • 모델 크기를 가중치 수로 표현하는 이유에 대해 질문

    • GPU RAM 요구량을 알고 싶어함
    • 가중치 수가 실제 사용자에게 얼마나 중요한지 의문을 가짐