설명
Code Llama는 Meta에서 개발한 대규모 언어 모델 제품군으로, Llama 2를 기반으로 하며 코드 관련 작업에 특화되어 있습니다. 이 리포지토리는 이러한 강력한 모델을 실행하는 데 필요한 추론 코드를 제공합니다. Code Llama 모델은 오픈 소스 모델 중 최첨단 성능을 제공하며, 코드 채우기, 최대 100,000 토큰의 확장된 입력 컨텍스트 지원, 프로그래밍을 위한 제로샷 지시 사항 따르기 등의 기능을 갖추고 있습니다.
이 제품군에는 기본 모델(Code Llama), Python 특화 버전(Code Llama - Python), 지시 사항 따르기 모델(Code Llama - Instruct)이 포함됩니다. 이 모델들은 7B, 13B, 34B, 70B의 다양한 매개변수 크기로 제공됩니다. 모든 모델은 16k 토큰 시퀀스로 학습되었으며, 최대 100k 토큰의 입력에서 성능이 향상되었습니다. Code Llama 및 Code Llama - Instruct의 7B 및 13B 변형은 주변 콘텐츠를 기반으로 코드를 채울 수 있습니다.
Llama 2를 더 높은 샘플링 비율의 코드로 파인튜닝하여 개발된 Code Llama는 상당한 안전 완화 조치를 통합합니다. 이 리포지토리는 사전 학습 및 파인튜닝된 모델에 대한 모델 가중치와 시작 코드를 제공합니다. 이는 Code Llama 모델을 로드하고 추론을 실행하기 위한 최소한의 예시 역할을 합니다. 사용자는 라이선스를 수락한 후 Meta 웹사이트에서 모델 가중치와 토크나이저를 다운로드하고 제공된 `download.sh` 스크립트를 사용할 수 있습니다.
설정에는 리포지토리를 클론하고 PyTorch/CUDA가 포함된 conda 환경 내에서 종속성을 설치하는 것이 포함됩니다. 추론에는 모델 크기에 따라 다른 모델 병렬(MP) 값을 지정해야 합니다(예: 7B의 경우 1, 70B의 경우 8). 리포지토리에는 코드 완성(`example_completion.py`), 코드 채우기(`example_infilling.py`), 지시 사항 따르기(`example_instructions.py`)에 대한 예제 스크립트가 포함되어 있어 다양한 모델 유형을 효과적으로 프롬프트하고 실행하는 방법을 보여줍니다.
Code Llama - Instruct 모델은 지시 사항을 따르도록 특별히 파인튜닝되었으며, 최적의 결과를 얻으려면 특정 형식이 필요합니다. 이 리포지토리는 AI 기술과 관련된 잠재적 위험을 강조하고 더 많은 정보를 위해 책임 있는 사용 가이드 및 연구 논문을 사용자에게 안내합니다. 소프트웨어 버그 또는 모델 동작과 관련된 문제는 제공된 GitHub 링크를 통해 보고할 수 있습니다.
Code Llama의 핵심 기능
Code Llama 모델용 추론 코드
기본 모델, Python 특화 모델, 지시 사항 따르기 모델 지원
7B, 13B, 34B, 70B 매개변수 크기로 제공
오픈 소스 코드 모델 중 최첨단 성능
7B 및 13B 모델용 코드 채우기 기능
최대 100,000 토큰의 대규모 입력 컨텍스트 지원
프로그래밍 작업을 위한 제로샷 지시 사항 따르기
16k 토큰 시퀀스로 학습됨
모델 가중치 및 시작 코드 포함
완성, 채우기, 지시 사항 따르기를 위한 예제 스크립트 제공
안전 완화 조치 통합
연구원 및 상업적 주체에 대한 라이선스 제공
Code Llama 시작하기
클론: GitHub에서 리포지토리를 클론합니다.
설치: PyTorch/CUDA가 포함된 conda 환경을 설정하고 `pip install -e .`를 사용하여 종속성을 설치합니다.
다운로드: Meta 웹사이트에서 모델 가중치와 토크나이저를 다운로드하고 `download.sh`를 사용합니다.
구성: 모델 크기에 따라 적절한 모델 병렬(MP) 값을 결정합니다.
실행: 제공된 예제 스크립트(예: `example_completion.py`, `example_infilling.py`, `example_instructions.py`)를 사용하여 추론을 실행합니다.
최적화: 하드웨어 및 사용 사례에 따라 `max_seq_len` 및 `max_batch_size`를 조정합니다.
Code Llama의 사용 사례
- 코드 생성
- 코드 완성
- 코드 채우기
- 지시 사항 따르기
- Python 개발
- 연구
- 대규모 컨텍스트 작업








