DeepSeek-Coder-6.7B-Instruct 사용법

DeepSeek-Coder-6.7B-Instruct 사용법

deepseek-coder-6.7b-instruct는 6.7B 규모의 지시 튜닝 코드 모델이에요. 채팅 템플릿으로 코드 생성 질문에 답하게 할 수 있고, 파인튜닝 여부와 무관하게 코드 완성도 지원해요.

출처: deepseek-ai/deepseek-coder-6.7b-instruct

채팅 추론

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

tokenizer = AutoTokenizer.from_pretrained("deepseek-ai/deepseek-coder-6.7b-instruct", trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained("deepseek-ai/deepseek-coder-6.7b-instruct", trust_remote_code=True, torch_dtype=torch.bfloat16).cuda()

messages = [
    { 'role': 'user', 'content': "write a quick sort algorithm in python." }
]
inputs = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt").to(model.device)
outputs = model.generate(inputs, max_new_tokens=512, do_sample=False, top_k=50, top_p=0.95, num_return_sequences=1, eos_token_id=tokenizer.eos_token_id)
print(tokenizer.decode(outputs[0][len(inputs[0]):], skip_special_tokens=True))

코드 완성 팁

Instruct 모델은 SFT에서 코드 완성용으로 특별 훈련되진 않았지만, 완성을 잘 수행해요. 그 방법은 eos_token_id를 조정하는 건데요, 기본값 32021 대신 32014로 설정하면 코드 완성 태스크에 맞게 시퀀스 종료를 인식해요. <|EOT|>이 EOS 토큰이에요.

라이선스

코드 저장소는 MIT, 모델 사용은 Model License 대상. 상업적 사용을 지원해요.

더 알아보기