Ollama와 Continue: 오픈 소스 AI 코드 어시스턴트 설정하기
Ollama와 Continue는 노트북이나 원격 서버에서 로컬로 실행되는 완전한 오픈 소스 AI 코딩 어시스턴트를 구축하기 위한 프레임워크를 제공합니다. 이 통합을 통해 개발자는 Visual Studio Code 및 JetBrains 에디터 내에서 고급 자동 완성 및 채팅 기능을 직접 사용하면서도 자신의 코드와 데이터에 대한 제어권을 유지할 수 있습니다.
채팅 및 자동 완성을 위한 로컬 모델 구성
개발자는 사용 가능한 하드웨어 리소스(VRAM)에 따라 특정 코딩 작업을 처리할 수 있도록 다양한 LLM을 구성할 수 있습니다.
고성능 단일 모델: Codestral 22B
Mistral AI의 Codestral 22B는 자동 완성 및 채팅을 모두 처리할 수 있는 단일 모델을 원하는 사용자에게 권장됩니다. 프로그래밍 작업에 매우 유능하지만, 상당한 VRAM이 필요하며 비상용(non-production) 라이선스의 적용을 받아 사용이 연구 및 테스트로 제한됩니다.
최적화된 멀티 모델 설정: DeepSeek Coder 및 Llama 3
VRAM이 제한적이거나 특화된 모델을 선호하는 사용자의 경우, 분할 구성이 가능합니다:
- 자동 완성: 효율적인 코드 완성을 위해 DeepSeek Coder 6.7B를 권장합니다.
- 채팅: 대화형 인터페이스를 위해 Llama 3 8B를 권장합니다.
Ollama의 다중 동시 요청 처리 능력 덕분에 하드웨어가 지원하는 경우 이러한 모델들을 동시에 실행할 수 있습니다. 지원되지 않는 경우, 사용자는 로컬 모델과 원격으로 호스팅되거나 SaaS 제공업체를 결합할 수 있습니다.
로컬 코드베이스 컨텍스트 및 검색
Continue는 Ollama와 통합되어 로컬 RAG(Retrieval-Augmented Generation) 기능을 제공하며, 이를 통해 코드베이스 컨텍스트가 비공개로 유지되도록 보장합니다.
@codebase를 이용한 코드베이스 인덱싱
@codebase 컨텍스트 제공자는 어시스턴트가 로컬 프로젝트에서 관련 스니펫을 검색할 수 있게 해줍니다. 이는 Ollama를 통해 실행되는 nomic-embed-text 임베딩과 LanceDB를 사용하여 인덱싱되는 방식으로 작동합니다. 이를 통해 개발자는 자신의 코드 내에서 특정 모델의 기본 컨텍스트 길이를 쿼리하는 것과 같이 프로젝트별 질문을 할 수 있습니다 있습니다.
@docs를 이용한 문서 통합
@docs 제공자는 사용자가 외부 문서 사이트를 인덱싱할 수 있게 해줍니다. URL(예: Ollama GitHub README)을 제공함으로써, 어시스턴트는 특정 문서 섹션을 검색하여 채팅 쿼리의 컨텍스트로 사용할 수 있으며, 검색 프로세스를 로컬로 유지할 수 있습니다.
모델 미세 조정 및 커스터마이징
Continue는 팀이 자체 개발 데이터를 활용하여 AI 어시스턴트를 개선할 수 있도록 지원합니다.
StarCoder 2 미세 조정
Continue는 수락된 자동 완성 제안을 포함하여 개발 데이터를 .continue/dev_data에 자동으로 저장합니다. 이 데이터를 StarCoder 2와 같은 모델을 미세 조정하는 데 사용할 수 있습니다 있습니다. 권장되는 워크플로우는 다음과 같습니다:
- 수락된 탭 제안을 Hugging Face Datasets로 추출합니다.
- Hugging Face Supervised Fine-tuning Trainer를 사용합니다.
- 결과물인 미세 조정된 모델을 Ollama 모델 라이브러리에 푸시하여 팀 전체에 배포하고 수락률을 측정합니다.
Sources
관련
- Dispatch
- Dispatch
- Dispatch
- 프로젝트
- 프로젝트