>  기사  >  기술 주변기기  >  사장님 퇴사 후 첫 포스팅! 안정성 공식 코드 모델 Stable Code Instruct 3B

사장님 퇴사 후 첫 포스팅! 안정성 공식 코드 모델 Stable Code Instruct 3B

PHPz
PHPz앞으로
2024-03-29 22:16:16741검색

사장님 퇴사 후 첫 번째 모델이 왔어요!

오늘 Stability AI는 새로운 코드 모델인 Stable Code Instruct 3B를 공식 발표했습니다.

大佬出走后首个发布!Stability官宣代码模型Stable Code Instruct 3BPictures

CEO의 퇴임으로 인해 안정확산에 문제가 생겼을 수도 있고, 본인의 급여에 문제가 있을 수도 있습니다.

그러나 건물 밖은 비바람이 거세지만 연구실은 여전히 ​​움직이지 않고 있다. 연구도 해야 하고, 논의도 해야 하고, 모형도 맞춰야 하고, 각 분야의 대규모 모델 전쟁은 쇠퇴하고 있다. .

전면적인 전쟁을 펼치기 위해 실속을 펼치고 있을 뿐만 아니라, 모든 연구도 지속적으로 발전하고 있습니다. 예를 들어 오늘날의 Stable Code Instruct 3B는 이전 Stable Code 3B를 기반으로 명령어 튜닝을 적용한 것입니다.

大佬出走后首个发布!Stability官宣代码模型Stable Code Instruct 3BPictures

문서 주소: https://static1.squarespace.com/static/6213c340453c3f502425776e/t/6601c5713150412edcd56f8e/1711392114564/Stable _C ode_TechReport_release.pdf

자연어 프롬프트로 Stable Code Instruct 3B 코드 생성, 수학 및 기타 소프트웨어 개발 관련 쿼리와 같은 다양한 작업을 처리할 수 있습니다.

大佬出走后首个发布!Stability官宣代码模型Stable Code Instruct 3BPictures

동일한 레벨에서는 무적, 높은 레벨에서는 강력한 킬

Stable Code Instruct 3B는 동일한 수의 매개변수를 가진 모델에서 현재 SOTA를 달성했으며 CodeLlama보다 훨씬 뛰어납니다. 7B Instruct 및 기타 모델의 두 배 이상 크기이며 소프트웨어 엔지니어링 관련 작업 성능은 StarChat 15B와 비슷합니다.

大佬出走后首个发布!Stability官宣代码模型Stable Code Instruct 3BPictures

위 그림에서 볼 수 있듯이 Stable Code Instruct 3B는 Codellama 7B Instruct 및 DeepSeek-Coder Instruct 1.3B와 같은 주요 모델에 비해 다양한 코딩 작업에서 좋은 성능을 발휘합니다.

테스트에 따르면 Stable Code Instruct 3B는 코드 완성 정확도, 자연어 지침 이해 및 다양한 프로그래밍 언어에서의 다양성 측면에서 경쟁사와 동등하거나 능가할 수 있는 것으로 나타났습니다.

大佬出走后首个发布!Stability官宣代码模型Stable Code Instruct 3BPictures

Stable Code Instruct 3B는 Stack Overflow 2023 개발자 설문 조사 결과를 기반으로 하며 Python, Javascript, Java, C, C++ 및 가다.

위 그래프는 Multi-PL 벤치마크를 사용하여 다양한 프로그래밍 언어로 세 가지 모델이 생성하는 출력의 강도를 비교합니다. Stable Code Instruct 3B는 모든 언어에서 CodeLlama보다 훨씬 우수하고 매개변수 수가 절반 이상임을 알 수 있습니다.

위에서 언급한 인기 있는 프로그래밍 언어 외에도 Stable Code Instruct 3B에는 다른 언어(예: SQL, PHP 및 Rust)에 대한 교육도 포함되어 있으며 언어에서도 강력한 교육을 제공할 수 있습니다. ​교육(예: Lua) 없이 테스트 성능을 발휘합니다.

Stable Code Instruct 3B는 코드 생성뿐만 아니라 FIM(Fill in the middle) 작업, 데이터베이스 쿼리, 코드 번역, 해석 및 생성에도 능숙합니다.

명령어 튜닝을 통해 모델은 미묘한 명령어를 이해하고 이에 따라 행동할 수 있어 단순한 코드 완성을 넘어 수학적 이해, 논리적 추론, 소프트웨어 개발의 복잡한 기술 처리 등 광범위한 코딩 작업을 촉진합니다.

大佬出走后首个发布!Stability官宣代码模型Stable Code Instruct 3BPictures

모델 다운로드: https://huggingface.co/stabilityai/stable-code-instruct-3b

Stable Code Instruct 3B는 이제 Stability AI 멤버십을 통해 상업적 목적으로 사용할 수 있습니다. 비상업적 용도의 경우 Hugging Face에서 모델 가중치 및 코드를 다운로드할 수 있습니다.

기술 세부사항

大佬出走后首个发布!Stability官宣代码模型Stable Code Instruct 3BPictures

모델 아키텍처

Stable Code는 Stable LM 3B를 기반으로 구축되었으며 LLaMA와 유사한 디자인의 디코더 전용 Transformer 구조입니다. 다음 표는 몇 가지 주요 구조 정보입니다.

大佬出走后首个发布!Stability官宣代码模型Stable Code Instruct 3B그림

LLaMA와의 주요 차이점은 다음과 같습니다.

위치 임베딩: 머리 임베딩의 처음 25%에 회전 위치 임베딩을 사용하여 후속 개선 처리량.

정규화: RMSNorm 대신 학습 편향 용어와 함께 LayerNorm을 사용합니다.

바이어스 용어: KQV를 제외하고 피드포워드 네트워크 및 다중 헤드 Self-Attention 레이어의 모든 바이어스 용어가 삭제됩니다.

Stable LM 3B 모델과 동일한 토크나이저(BPE)를 사용하며 크기는 50,257이며 파일 이름, 저장소를 나타내는 데 사용되는 별표 수를 포함하여 StarCoder의 특수 태그도 참조합니다. 중간 충전(FIM) 대기.

긴 컨텍스트 교육의 경우 특수 마커를 사용하여 두 개의 연결된 파일이 동일한 저장소에 속하는 시기를 나타냅니다.

훈련 과정

훈련 데이터

사전 훈련 데이터 세트는 코드 저장소, 기술 문서(예: readthedocs), 수학 기반을 포함하여 공개적으로 접근 가능한 다양한 대규모 데이터 소스를 수집합니다. 텍스트 및 대규모 웹 데이터 세트에 중점을 둡니다.

초기 사전 학습 단계의 주요 목표는 풍부한 내부 표현을 학습하여 모델의 수학적 이해, 논리적 추론 및 소프트웨어 개발과 관련된 복잡한 기술 텍스트 처리 능력을 크게 향상시키는 것입니다.

또한 훈련 데이터에는 모델에 더 광범위한 언어 지식과 컨텍스트를 제공하는 공통 텍스트 데이터세트도 포함되어 있어 궁극적으로 모델이 대화 방식으로 더 넓은 범위의 쿼리와 작업을 처리할 수 있습니다.

다음 표는 코드와 자연어 데이터의 비율이 80:20인 사전 훈련 코퍼스의 데이터 소스, 카테고리 및 샘플링 가중치를 보여줍니다.

大佬出走后首个发布!Stability官宣代码模型Stable Code Instruct 3B사진

또한 연구원들은 소규모 합성 데이터세트도 도입했는데, 데이터는 174,000개의 팁이 포함된 CodeAlpaca 데이터세트의 시드 팁에서 합성되었습니다.

그리고 WizardLM 방법을 따라 주어진 시드 프롬프트의 복잡성을 점차적으로 증가시켜 추가로 100,000개의 프롬프트를 얻었습니다.

저자는 사전 훈련 단계 초기에 이 합성 데이터를 도입하면 모델이 자연어 텍스트에 더 잘 반응하는 데 도움이 된다고 믿습니다.

긴 컨텍스트 데이터 세트

저장소의 여러 파일은 서로 의존하는 경우가 많기 때문에 컨텍스트 길이는 인코딩 모델에 중요합니다.

연구원들은 소프트웨어 저장소에 있는 토큰의 중앙값과 평균 수를 각각 12,000개와 18,000개로 추정하여 컨텍스트 길이로 16,384개를 선택했습니다.

다음 단계는 긴 컨텍스트 데이터세트를 만드는 것이었습니다. 연구원들은 저장소에서 널리 사용되는 언어로 작성된 일부 파일을 가져와서 각 파일 사이에 특수 태그를 삽입하여 분리를 유지했습니다. 콘텐츠 흐름.

파일의 고정된 순서로 인해 발생할 수 있는 잠재적인 편견을 피하기 위해 저자는 무작위 전략을 채택했습니다. 각 저장소에 대해 서로 다른 두 가지 연결 파일 시퀀스가 ​​생성됩니다.

大佬出走后首个发布!Stability官宣代码模型Stable Code Instruct 3BPictures

단계별 교육

Stable Code는 256개의 NVIDIA A100(40GB HBM2) GPU가 포함된 32개의 Amazon P4d 인스턴스를 사용하여 교육되었으며 분산 최적화를 위해 ZeRO를 사용합니다.

大佬出走后首个发布!Stability官宣代码模型Stable Code Instruct 3BPictures

여기에서는 위 그림과 같이 단계별 학습 방법을 사용합니다.

교육은 표준 자동 회귀 시퀀스 모델링을 따라 다음 토큰을 예측합니다. Stable LM 3B의 체크포인트를 사용하여 모델을 초기화합니다. 첫 번째 학습 단계의 컨텍스트 길이는 4096이며 이후 연속 사전 학습이 수행됩니다.

훈련은 BFloat16 혼합 정밀도로 수행되며, All-Reduce에는 FP32가 사용됩니다. AdamW 최적화 설정은 다음과 같습니다: β1=0.9, β2=0.95, ε=1e−6, λ(가중치 감소)=0.1. 학습률 = 3.2e-4로 시작하고 최소 학습률을 3.2e-5로 설정하고 코사인 붕괴를 사용합니다.

大佬出走后首个发布!Stability官宣代码模型Stable Code Instruct 3BPictures

자연어 모델 훈련의 핵심 가정 중 하나는 왼쪽에서 오른쪽 인과 순서입니다. 그러나 코드의 경우 이 가정이 항상 참인 것은 아닙니다(예: 함수 호출 및 함수). 선언은 많은 함수에 대해 어떤 순서로든 가능합니다.

이 문제를 해결하기 위해 연구진은 FIM(Fill in the Middle)을 사용했습니다. 문서를 접두사, 중간, 접미사의 세 세그먼트로 무작위로 분할한 다음 중간 세그먼트를 문서 끝으로 이동합니다. 재배치 후에는 동일한 자기회귀 훈련 프로세스가 수행됩니다.

지시 미세 조정

사전 학습 후, 저자는 지도 미세 조정(SFT)과 직접 선호 최적화(DPO)가 포함된 미세 조정 단계를 통해 모델의 대화 능력을 더욱 향상시킵니다.

먼저 Hugging Face에서 공개적으로 사용 가능한 데이터 세트(OpenHermes, Code Feedback, CodeAlpaca 포함)를 사용하여 SFT 미세 조정을 수행합니다.

정확한 일치 중복 제거를 수행한 후 세 가지 데이터 세트는 총 약 500,000개의 훈련 샘플을 제공합니다.

코사인 학습률 스케줄러를 사용하여 훈련 과정을 제어하고 전역 배치 크기를 512로 설정하여 입력을 4096보다 길지 않은 시퀀스로 묶습니다.

SFT 후에 DPO 단계를 시작하고 UltraFeedback의 데이터를 사용하여 약 7,000개의 샘플이 포함된 데이터 세트를 선별합니다. 또한 모델의 보안을 향상하기 위해 저자는 유용하고 무해한 RLFH 데이터 세트도 포함했습니다.

연구원들은 DPO 훈련 초기 단계에서 RMSProp을 최적화 알고리즘으로 채택하여 학습률을 최고 5e-7까지 높였습니다.

성능 테스트

다음은 모델을 평가하기 위해 Multi-PL 벤치마크를 사용하여 코드 완성 작업에 대한 모델의 성능을 비교합니다.

Stable Code Base

다음 표는 Multi-PL에서 매개변수 크기가 3B 이하인 다양한 코드 모델의 성능을 보여줍니다.

大佬出走后首个发布!Stability官宣代码模型Stable Code Instruct 3BPictures

Stable Code의 매개변수 개수는 각각 Code Llama 및 StarCoder 15B의 40% 및 20% 미만이지만 다양한 프로그래밍 언어에서 모델의 평균 성능은 그들을.

Stable Code Instruct

다음 표는 Multi-PL 벤치마크에서 여러 모델의 미세 조정 버전을 평가합니다.

大佬出走后首个发布!Stability官宣代码模型Stable Code Instruct 3BPictures

SQL Performance

코드 언어 모델의 중요한 응용 프로그램은 데이터베이스 쿼리 작업입니다. 이 영역에서는 Stable Code Instruct의 성능을 다른 널리 사용되는 명령 조정 모델 및 SQL용으로 특별히 훈련된 모델과 비교합니다. Defog AI를 사용하여 여기에서 만든 벤치마크입니다.

大佬出走后首个发布!Stability官宣代码模型Stable Code Instruct 3BPictures

Inference Performance

다음 표는 소비자급 기기와 해당 시스템 환경에서 Stable Code를 실행할 때의 처리량과 전력 소비량을 보여줍니다.

大佬出走后首个发布!Stability官宣代码模型Stable Code Instruct 3BPictures

결과에 따르면 낮은 정밀도를 사용할 때 처리량이 거의 2배 증가하는 것으로 나타났습니다. 그러나 더 낮은 정밀도의 양자화를 구현하면 모델 성능이 일부(잠재적으로 크게) 저하될 수 있다는 점에 유의하는 것이 중요합니다.

참조: https://www.php.cn/link/8cb3522da182ff9ea5925bbd8975b203

위 내용은 사장님 퇴사 후 첫 포스팅! 안정성 공식 코드 모델 Stable Code Instruct 3B의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제