본문 바로가기
프로그래밍

보안 이슈 걱정 없이 DeepSeek-R1 오픈 모델 사용하는 방법

by Good.PhD 2025. 2. 13.

DeepSeek-R1은 무료 공개된 모델이다. 아래 링크에 접속해서 사용하는 방법도 있지만, 오픈 모델을 다운받아서 로컬 환경 (개인 PC 혹은 서버)에 설치해서 사용하는 것도 가능하다. 그러면 인터넷이 없는 환경에서도 deepseek-R1을 사용해볼 수 있기 때문에 보안 이슈로부터 걱정이 없다.

https://www.deepseek.com/

 

1. Ollama에서 사용하기

Ollama는 다양한 언어모델들을 양자화(quantization)해서 제공하는 플랫폼이다. 인공지능 모델을 무료로 쉽게 사용할 수 있다. 사용방법도 꽤 쉽다. ollama를 설치하면, 커맨드창 (혹은 cmd 창)에서 ollama를 명령어로 사용해서 호출하면 된다.

 

커맨드창 입력어 예시: ollama run llama3.3

llama3.3을 설치한적이 없으면 설치부터 자동으로 시작된다. 설치가 완료되면 바로 사용해볼 수 있다. deepseek이 오픈 모델이기 때문에 ollama에서 deepseek 모델 또한 제공하고 있다. ollama에서 모델을 찾아보면 모델의 크기가 다양한 것을 알 수 있다. deepseek-R1 같은 경우 모델 파라미터 수가 여러가지 제공된다. (1.5b, 7b, 8b, 14b, 32b, 70b, 671b) 671B 모델을 사용하려면 고사양 GPU는 있어야 한다. ollama 사용 전에 CUDA만 설치해준다면, 모델을 GPU에 올려서 사용하게 된다. 단, 모델이 너무 커서 GPU 메모리에 못 올라가면 CPU에서 사용한다. CPU에서 사용하면 엄청 느리게 한단어씩 차근차근 적는 것을 볼 수 있다 (...)

https://ollama.com/

 

Ollama

Get up and running with large language models.

ollama.com

 

노트북에서도 설치해서 사용하고 있는데, GPU가 없기 때문에 가장 작은 모델 1.5b 모델을 사용한다.

1080 Ti 1장있는 경우는 7b~14b까지는 돌릴 수 있었다.

V100 3장 짜리에서는 32b~70b 까지 사용해봤다.

671b 모델을 사용하려면 좀 더 많은 GPU가 요구되서, 키스티 (KISTi) 슈퍼컴퓨팅 센터에서 조금씩 테스트해보고 있다.

키스티에서 최근에 H200 8장 설치한 노드가 신설되었다. H200을 아주 저렴하게 사용할 수 있는 기회여서 매일 조금씩 사용해보고 있다. 사용료는 CPU 시간을 구매하는 방식. 구매한 계산 시간을 다 소모하면 더 이상 작업 제출은 불가능하다. 치소 결제 금액은 100만원 (학생이라면 10만원). GPU를 위주로 사용한다면 100만원으로도 상당히 여유있게 사용할 수 있었다. 매년 사용자 지원 프로그램도 있는데, 선정만 되면 최대 5-6천만원 수준의 계산 비용을 무료로 제공해준다. (지원할 때는 무슨 계산을 할지, 어느정도 계산자원이 필요한지 적어야 한다. CPU 서버 이름은 누리온, GPU 서버 이름은 뉴론이다. 뉴론보다는 누리온이 주력 서비스이긴 하다. 지원도 누리온을 더 많이 해준다.)

https://www.ksc.re.kr/kor/index/main

 

국가슈퍼컴퓨팅센터

Neuron 시스템 점검중입니다 시작시간2025-02-12 09:00 종료시간2025-02-14 18:00

www.ksc.re.kr

 

2. HuggingFace 라이브러리에서는 사용이 안됨...

대표적인 인공지능 플랫폼 huggingface에 들어가보면 deepseek-R1 모델이 올라와 있는 것을 볼 수 있다. 그래서 이 모델을 다운 받으면 된다. 일반적으로 huggingface에 올라와 있는 모델들은 huggingface에서 배포한 파이썬 라이브러리 transformers를 사용하면 대부분 사용할 수 있다. huggingface의 모델들을 다운 받으려면 먼저는 Access Token을 받아야 한다. Access Token을 통해 파이썬 코드로부터 huggingface에 접근해서 원하는 모델들을 다운받을 수 있게 된다.

https://huggingface.co/deepseek-ai/DeepSeek-R1

 

deepseek-ai/DeepSeek-R1 · Hugging Face

DeepSeek-R1 Paper Link👁️ 1. Introduction We introduce our first-generation reasoning models, DeepSeek-R1-Zero and DeepSeek-R1. DeepSeek-R1-Zero, a model trained via large-scale reinforcement learning (RL) without supervised fine-tuning (SFT) as a prel

huggingface.co

 

안타깝게 deepseek-R1은 아직 transformers 라이브러리로 사용할 수 있도록 제공하지는 않는다고 한다. (이걸 몰라서 2주간 씨름을 했다... ㅠㅠ) transformers.pipeline으로 deepseek-R1을 사용해보려고했는데, 자꾸 에러가 발생. 에러메시지는 fp8 type 어쩌구 저쩌구.

컴퓨터에서 소수점 자리의 숫자를 표현하기 위해 사용해야 하는 비트(bit) 수를 의미한다. (0.1 이나 0.001 이나 저장하기 위해서는 동일한 양의 비트를 써야 한다. 0.0001 저장한다고 더 적은 용량을 차지하는 것은 아님..) 소수점 표현 방식이 바뀌어서 weight를 저장하는데 사용하는 비트 수가 줄어들면 모델의 크기가 줄어든다. (당연히 비트 수가 줄면 소수점 뒷자리가 잘려나가니 더 정확한 값을 표현하기는 어렵다.)

소수점 처리 방식이 일치해야 weight를 불러와서 모델을 사용할 수 있는데, deepseek-R1은 fp8이라는 형태를 사용한 것 같다. 문제는 fp8은 huggingface transformers에서 취급하는 타입이 아니다. 그래서 에러가 발생. 별짓을 다해봤는데... 결국 안됨... huggingface에 있는 deepseek 레포에도 같은 문제가 있다고 에러를 보고한 사람들이 있는데, 유저 중에는 transforemr를 이용해서 deepseek-R1으로 추론하는데 성공한 사람도 있지만, 나는 나름 따라 해봐도 잘 안됨... 친절하게 코드도 올려주셨건만... ㅠㅠ

 

왜 안되는지 원인을 파고들어서 찾다보니 deepseek-R1 공식 깃헙에 답이 있었다. 아래 링크가 deepseek-R1 공식 배포 깃헙 레포인데, 여기엔 사용 방법 설명이 없다. 왜냐하면 deepseek-R1은 deepseek-V3와 동일한 구조로 되어 있기 때문. 그래서 deepseek-V3와 동일한 방법으로 사용하면 된다고 한다.

https://github.com/deepseek-ai/DeepSeek-R1

 

GitHub - deepseek-ai/DeepSeek-R1

Contribute to deepseek-ai/DeepSeek-R1 development by creating an account on GitHub.

github.com

 

deepseek-V3 사용 방법은 아래 소개 되어 있다. 모델 weight는 huggingface에서 다운로드만 가능. 다운받은 모델 weight를 전환(conversion)한 후에 써야 한다. 깃헙에서 inference 폴더에 들어가면 모델로 추론하기 위한 코드들이 있는데, convert.py가 weight 전환에 필요한 코드, generate.py가 모델 추론할 때 필요한 코드다.

https://github.com/deepseek-ai/DeepSeek-V3

 

GitHub - deepseek-ai/DeepSeek-V3

Contribute to deepseek-ai/DeepSeek-V3 development by creating an account on GitHub.

github.com

 

그래서 한참 씨름한 후에 내린 결론은... ollama로 사용하는게 제일 편하다는 것. ollama는 langchain나 creawi와도 연동되기 때문에 오픈 모델을 사용해서 효율적으로 RAG나 에이전트를 개발할 수 있다.