728x90
반응형
테스트 설치환경 및 목표
Ollama를 이용해서 Windwos에 AI모델(Hugging Face)을 PC에 다운받아 langserve를 통해서 local에서 AI를 질의 응답 테스트 해봄

Windows 11에
- poetry 가 설치되어 있어야함
- ollama 가 설치되어 있어야함
- python이 설치되어 있어야함
- pip로 huggingface-cli가 설치 되어 있어야 함

AI 모델은 Hugging Face의 heegyu/EEVE-Korean-Instruct-10.8B-v1.0-GGUF
ggml-model-Q5_K_M.gguf 모델

https://huggingface.co/heegyu/EEVE-Korean-Instruct-10.8B-v1.0-GGUF  

 

설치환경
# poetry 확인
# C:\Users\shim>poetry --version
Poetry (version 1.8.2)

# poetry 로 langserve git 파일은 아래 경로에 설치예정
C:\Users\shim>poetry>

# ollama 확인
# C:\Users\shim>ollama --version
ollama version is 0.1.35

# python 확인
# C:\Users\shim>python --version
Python 3.11.7

# huggingface-cli 확인 
# C:\Users\shim>huggingface-cli env
Copy-and-paste the text below in your GitHub issue.
- huggingface_hub version: 0.23.0
- Platform: Windows-10-10.0.22631-SP0
- Python version: 3.11.7

# ※ huggingface-cli가 미설치된 경우 설치 ※
# C:\Users\shim>pip install huggingface-cli
Collecting huggingface-cli
  Downloading huggingface_cli-0.1-py3-none-any.whl.metadata (117 bytes)
Downloading huggingface_cli-0.1-py3-none-any.whl (1.0 kB)
Installing collected packages: huggingface-cli
Successfully installed huggingface-cli-0.1

# Hugging Face에서 GGUF download 경로 
C:\Users\shim\.cache\lm-studio\models\
(경로는 본인이 원하는 경로로 지정하면 됨, 현 위치는 lm-studio의 기본 경로임)

# GGUF 다운받아 테스트 할 파일
https://huggingface.co/heegyu/EEVE-Korean-Instruct-10.8B-v1.0-GGUF

# langserver git 위치 (teddylee777 유투버 git 사이트)
https://github.com/teddylee777/langserve_ollama.git

 

ollama로 Hugging Face AI 모델 다운로드 및 변환
# ollama 설치 확인
# C:\Users\shim>ollama --version
ollama version is 0.1.35

# 현재 pc에 다운로드된 AI모델 확인 
# C:\Users\shim>ollama list
NAME                            ID              SIZE    MODIFIED
gemma:2b-instruct               030ee63283b5    1.6 GB  4 weeks ago
llama3:instruct                 a6990ed6be41    4.7 GB  4 weeks ago
gemma:7b-instruct               a72c7f4d0a15    5.0 GB  4 weeks ago


# Hugging face gguf파일 다운로드
# huggingface-cli download heegyu/EEVE-Korean-Instruct-10.8B-v1.0-GGUF ggml-model-Q5_K_M.gguf --local-dir C:/Users/shim/.cache/lm-studio/models/heegyu --local-dir-use-symlinks False

# downloaod 완료후 파일 확인
# C:\Users\shim\.cache\lm-studio\models\heegyu>dir
 C 드라이브의 볼륨에는 이름이 없습니다.
 볼륨 일련 번호: E6CA-A871
 C:\Users\shim\.cache\lm-studio\models\heegyu 디렉터리
2024-06-08  오전 07:18    <DIR>          .
2024-06-08  오전 06:49    <DIR>          ..
2024-06-08  오전 06:46    <DIR>          .huggingface
2024-06-08  오전 06:49     7,653,486,272 ggml-model-Q5_K_M.gguf
2024-06-08  오전 07:18    <DIR>          langserve_ollama
2024-06-07  오후 05:52               358 Modelfile
               2개 파일       7,653,486,630 바이트
               4개 디렉터리  1,523,745,267,712 바이트 남음

# 해당경로에 Modelfile 작성
# notepade 등을 이용해서 FROM ~~~  PARAMETER stop </s> 까지 복사해서
# C:\Users\shim\.cache\lm-studio\models\heegyu> 여기 경로에 저장한다.(첨부파일 참조)

# C:\Users\shim\.cache\lm-studio\models\heegyu>type modelfile
# ===========================================================
FROM ggml-model-Q5_K_M.gguf
TEMPLATE """{{- if .System }}
<s>{{ .System }}</s>
{{- end }}
<s>Human:
{{ .Prompt }}</s>
<s>Assistant:
"""
SYSTEM """A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions."""
PARAMETER stop <s>
PARAMETER stop </s>
# ===========================================================

# ollama 파일로 변환 
# ollama create ggml-model-Q5_K_M -f C:\Users\shim\.cache\lm-studio\models\heegyu\Modelfile
transferring model data
using existing layer sha256:b9e3d1ad5e8aa6db09610d4051820f06a5257b7d7f0b06c00630e376abcfa4c1
creating new layer sha256:6fe7ed0d1aa9d7d4f3b6397184caf17b9b558739bc00f5abde876ee579fbf51a
creating new layer sha256:1fa69e2371b762d1882b0bd98d284f312a36c27add732016e12e52586f98a9f5
creating new layer sha256:fc44d47f7d5a1b793ab68b54cdba0102140bd358739e9d78df4abf18432fb3ea
creating new layer sha256:c9eed651555d2f63be6e8ae5030f98b710868133818fde1bad0ba1e3a5e238aa
writing manifest
success

# gguf 파일 ollama 확인 및 테스트 
# C:\Users\shim\.cache\lm-studio\models\heegyu>ollama list
NAME                            ID              SIZE    MODIFIED
ggml-model-Q5_K_M:latest        d1e2e98c46af    7.7 GB  10 hours ago
gemma:2b-instruct               030ee63283b5    1.6 GB  4 weeks ago
llama3:instruct                 a6990ed6be41    4.7 GB  4 weeks ago
gemma:7b-instruct               a72c7f4d0a15    5.0 GB  4 weeks ago

# ollma로 변환된 AI 테스트 
# C:\Users\shim\.cache\lm-studio\models\heegyu>ollama run ggml-model-Q5_K_M:latest
>>> Send a message (/? for help)
>>> 대한민국의 크기는 얼마나 되나요 ?
대한민국은 약 99,720제곱킬로미터의 면적을 차지하며, 세계에서 109번째로 큰 국가입니다. 이는 미국의 네브래스카 주와  거의 같은 크기로, 남북한을 합친 길이는 대략 835킬로미터이며 폭은 약
200킬로미터입니다.
대한민국은 한반도 남부에 위치해 있으며, 북쪽으로는 북한과 중국 및 러시아의 국경을 접하고 있고, 서쪽으로는 황해를,  남쪽으로는 동해를 마주보고 있습니다.
더 많은 정보를 원하신다면 도와드리겠습니다!
추가 질문이 있으시거나 더 많은 정보를 원하시면 언제든지 문의해주세요.
>>> Send a message (/? for help)

 

Modelfile
0.00MB

 

heegyu/EEVE-Korean-Instruct-10.8B-v1.0-GGUF at main

 

huggingface.co

 

 

poetry 로 langserve git 파일 다운로드 및 가상환경 생성 및 실행

 

# git 파일다운로드  
# git 파일은 AI분야 유투버로 유명한 git 사이트 https://github.com/teddylee777 
# C:\Users\shim\poetry>git clone https://github.com/teddylee777/langserve_ollama.git

# git 을 다운받으면 langserve_ollama 디렉토리가 생성됨
# C:\Users\shim\poetry>dir
 C:\Users\shim\poetry 디렉터리
2024-06-08  오후 02:46    <DIR>          .
2024-06-08  오후 12:16    <DIR>          ..
2024-06-08  오후 12:20    <DIR>          langserve-template
               0개 파일                   0 바이트
               6개 디렉터리  1,523,742,863,360 바이트 남음
               
# 설치 디렉토리로 이동               
# C:\Users\shim\poetry>cd langserve_ollama

# poetry shell 명령어로 가상환경 진입함
# C:\Users\shim\poetry\langserve_ollama>poetry shell
Virtual environment already activated: C:\Users\shim\AppData\Local\pypoetry\Cache\virtualenvs\langserve-ollama-O-Xhld6I-py3.11

# 가상환경에 진입했는지 확인
# C:\Users\shim\poetry\langserve_ollama>poetry env list
langserve-ollama-O-Xhld6I-py3.11 (Activated)

# 가상환경 설치
# C:\Users\shim\poetry\langserve_ollama>poetry 디렉토리 아래 pyproject.toml 환경 설치됨
# C:\Users\shim\poetry\langserve_ollama>poetry install 

# langserve app 실행
# C:\Users\shim\poetry\langserve_ollama> 하위 app 디렉토리 이동
# C:\Users\shim\poetry\langserve_ollama>cd app
# C:\Users\shim\poetry\langserve_ollama\app>python server.py
INFO:     Started server process [26252]
INFO:     Waiting for application startup.

 __          ___      .__   __.   _______      _______. _______ .______     ____    ____  _______
|  |        /   \     |  \ |  |  /  _____|    /       ||   ____||   _  \    \   \  /   / |   ____|
|  |       /  ^  \    |   \|  | |  |  __     |   (----`|  |__   |  |_)  |    \   \/   /  |  |__
|  |      /  /_\  \   |  . `  | |  | |_ |     \   \    |   __|  |      /      \      /   |   __|
|  `----./  _____  \  |  |\   | |  |__| | .----)   |   |  |____ |  |\  \----.  \    /    |  |____
|_______/__/     \__\ |__| \__|  \______| |_______/    |_______|| _| `._____|   \__/     |_______|

LANGSERVE: Playground for chain "/prompt/" is live at:
LANGSERVE:  │
LANGSERVE:  └──> /prompt/playground/
LANGSERVE:
LANGSERVE: Playground for chain "/chat/" is live at:
LANGSERVE:  │
LANGSERVE:  └──> /chat/playground/
LANGSERVE:
LANGSERVE: Playground for chain "/translate/" is live at:
LANGSERVE:  │
LANGSERVE:  └──> /translate/playground/
LANGSERVE:
LANGSERVE: Playground for chain "/xionic/" is live at:
LANGSERVE:  │
LANGSERVE:  └──> /xionic/playground/
LANGSERVE:
LANGSERVE: Playground for chain "/llm/" is live at:
LANGSERVE:  │
LANGSERVE:  └──> /llm/playground/
LANGSERVE:
LANGSERVE: See all available routes at /docs/

INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)

 

웹페이지 접속 테스트, 소스 수정
  • python server.py 를 처음 실행하면 http://0.0.0.0:8000 접속하면 에러가 남

  • server.py 소스 파일을 127.0.0.1:8000번으로 변경해서 재실행  
# server.py 파일을 notepad, visual code 등을 이용하여 수정함

uvicorn.run(app, host="0.0.0.0", port=8000) 을 
uvicorn.run(app, host="127.0.0.1", port=8000) 으로 변경

 

  • python server.py 재실행한 화면

 

langserve 실행 및 테스트 화면

 

728x90
반응형
LIST

+ Recent posts