본문으로 건너뛰기

Ktransformers 사용 방법

Ktransformers 가이드 - 사용 방법

Ktransformers 사용 방법​

Ktransformers을 사용하기 위해서는 huggingface의 계정과 경우에 따라 LLM 모델의 리포지토리 사용 허가가 필요할 수 있습니다. 이 매뉴얼에서는 LLM 모델의 설정 방법과 Open WebUI를 연동하는 방법에 관해 소개합니다.

정보
  • 운영체제 : Ubuntu 24.04
  • 하드웨어 환경
    • CPU : 48T (24T * 2)
    • 메모리 : 1TB
  • 테스트 모델 : DeepSeek-R1:671B (Q4_K_M 양자화 모델)

1. LLM 모델 다운로드​

LLM 모델을 사용하려면 Hugging Face에서 다운로드가 필요합니다. 여기서는 예시로 DeepSeek-R1:671B 버전을 사용할 것으로 최소 400GB 이상의 디스크 용량을 확보 하시는 것을 권장드립니다.

먼저 가상환경을 활성화 후 ktransformers 디렉토리 내부에 llm_model 디렉토리를 생성합니다.

정보

OS 디스크의 용량이 충분하지 않다면 테스트 전 llm_model 디렉토리에 별도의 디스크를 마운트 해주세요.

conda activate ktransformers
mkdir -p /root/ktransformers/llm_model/

ktransformers 디렉토리 내부에서 작동할 DeepSeek-R1:671B 버전의 디렉토리를 생성하고 다운로드를 진행합니다.

mkdir -p /root/ktransformers/llm_model/DeepSeek-R1-Q4_K_M
cd /root/ktransformers/llm_model/DeepSeek-R1-Q4_K_M
wget https://huggingface.co/unsloth/DeepSeek-R1-GGUF/resolve/main/DeepSeek-R1-Q4_K_M/DeepSeek-R1-Q4_K_M-0000{1..9}-of-00009.gguf

2. LLM 모델 실행 및 질문 방법​

ktransformers와 DeepSeek-R1:671B 버전은 대화 형식과 API 형식으로 작동 방법이 나뉘어 집니다. 원하는 부분을 참고하여 명령어 사용을 진행 합니다.

정보
  • -cpu_infer 옵션은 사용하고 있는 서버의 최대 쓰레드에서 2를 뺀 내용으로 적용합니다.
  • LLM에 질문 시 별도의 터미널을 실행 후 curl 명령어를 사용해야합니다.

LLM 모델 실행

cd /root/ktransformers
python -m ktransformers.local_chat --model_path deepseek-ai/DeepSeek-R1 --gguf_path /root/ktransformers/llm_model/DeepSeek-R1-Q4_K_M --cpu_infer 46

LLM 질문 방법

curl http://localhost:10002/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-ai/DeepSeek-R1",
"prompt": "대한민국의 수도가 어디야? 간단히 설명해줘",
"max_tokens": 200
}'

LLM 답변

{"id":"9935f4f6-b71c-4636-8f74-5ad73b062d16","object":"text_completion","created":1958054732,"choices":[{"index":0,"text":"\n\n대한민국의 수도는 서울특별시입니다. 서울은 한국의 정치, 경제, 문화의 중심지로, 한반도 서부 중앙에 위치하고 있습니다. 1948년 대한민국 정부 수립 이후부터 지금까지 수도 역할을 하고 있습니다. 서울은 인구 약 1천만 명의 거대 도시로, 전국 인구의 약 20%가 거주하고 있습니다. 주요 관광지로는 경복궁, 남산타워, 명동 등이 있으며, 한강이 도시를 가로지르고 있습니다.","logprobs":null,"finish_reason":null}],"model":"not implmented","system_fingerprint":"not implmented","usage":null}

}'

Open WebUI와 연동하여 사용​

Open WebUI에서 Ktransformers을 연동해서 사용하려면 몇가지 준비 과정이 필요합니다. 먼저 서버에서 8080 포트가 활성화 되어있는지 확인합니다.

netstat -nltp
tcp        0      0 0.0.0.0:8080        0.0.0.0:*           LISTEN      41666/python3

만일 8080 포트가 확인되지 않는다면 Open WebUI 서비스의 상태 체크가 필요합니다.

systemctl status openwebui.service

Open WebUI에서 Ktransformers을 자동으로 연동하지 않으므로 2. LLM 모델 실행 및 질문 방법의 내용을 통해 터미널에서 지속적으로 실행이 되어야합니다.

1. Web 접속​

http://xxx.xxx.xxx.xxx:8080

2. 계정 생성​

관리자가 될 계정정보를 입력 후 관리자 계정 생성을 클릭합니다. 콘솔 대시보드 페이지

3. 로그인 후 첫 화면​

Ktransformers과 연동이 되어있지 않다면 모델 선택에서 내용을 확인할 수 없습니다. 콘솔 대시보드 페이지

4. Ktransformers 연동​

좌측 상단에 유저 아이콘을 클릭 후 사용자 패널로 이동합니다. 콘솔 대시보드 페이지

OpenAI API 연결 관리에서 아래와 같은 내용을 입력하고 저장합니다.

URL : http://xxx.xxx.xxx.xxx:10002/v1
비밀번호 : 임의의 값

콘솔 대시보드 페이지

5. LLM 모델 설정​

좌측 상단에 유저 아이콘을 클릭 후 설정 → 인터페이스로 이동 후 아래의 옵션을 끄기로 변경합니다.

- 제목 자동 생성
- Follow-Up Auto-Generation
- 채팅 태그 자동생성

콘솔 대시보드 페이지

6. LLM 모델 이름 변경​

좌측 상단에 유저 아이콘을 클릭 후 사용자 패널 → 모델로 이동 후 모델의 이름을 DeepSeek-R1:671B로 변경 합니다.

정보
  • Ktransformers 소스상의 문제로 소스내 미리 정의된 다른 모델명이 출력될 가능성이 있습니다. 사용 시 헷갈리지 않도록 다른 버전을 사용할 때 참고하셔서 이름을 변경하시는 것을 권장합니다.

콘솔 대시보드 페이지

7. LLM 모델 사용​

준비된 DeepSeek-R1:671B 모델을 통해 질문을 남길 수 있습니다. 콘솔 대시보드 페이지

8. LLM 모델 성능 결과 값 확인​

LLM 모델에 관한 성능 및 결과 값을 확인할 수 있습니다. 콘솔 대시보드 페이지

방화벽 사용 권장​

정보

서버와 Open WebUI에 기본적으로 사용되는 22, 8080 포트에 불필요한 외부 접근을 막고 안정적인 사용을 위해서 자체적인 설정 또는 매뉴얼 통한 방화벽 설정을 적용하여 사용할 것을 권장합니다.