6P by neo 3달전 | 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의 활용 가능성을 보여줌
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 요구량을 알고 싶어함
    • 가중치 수가 실제 사용자에게 얼마나 중요한지 의문을 가짐