728x90
반응형

2024년 6월 기준으로 작성
 

LLM(Large Language Model) 개념
  • LLM개념
(Google)
주어진 프롬프트에 대해 인간과 유사한 응답을 생성하기 위해 방대한 양의 텍스트 데이터로 훈련된 고급 AI 모델
입니다. 이러한 모델들은 인간 언어를 이해하고 생성하는 등 다양한 작업에서 뛰어납니다. 이로 인해 다양한 응용 분야에서 매우 가치 있는 도구로 사용될 수 있습니다.

(AI와 LLM)

AI > 머신러닝 > 인공 신경망 > 딥러닝 > Gen AI > LLM 
  • 대규모 언어모델에 대한 조(A Survey of Large Language Models)  (https://arxiv.org/)

A Survey of Large Language Models

Language is essentially a complex, intricate system of human expressions governed by grammatical rules. It poses a significant challenge to develop capable AI algorithms for comprehending and grasping a language. As a major approach, language modeling has

arxiv.org

2303.18223v13-A Survey of Large Language Models
5.40MB

 

  • 최근 몇 년 동안의 대규모 언어 모델의 통계

-  사전 훈련 데이터 규모(토큰 수 또는 저장소 크기), 하드웨어 리소스 비용
- Publicly Available(공개) / Closed Source(비공개) /Pre-train Data Scale(사전훈련 데이터 규모) / RLHF(인간 피드백을 통한 강화 학습)

https://arxiv.org/

 

  • LLM 모델 종류  (노랑색은 공개, 오픈소스)
https://arxiv.org/

 

  • OpenAI (GPT 발전 기준)
https://arxiv.org/

 

구분파라미터 규모비고(허깅페이스 모델 예시)
LLM(Language Model)700억개 이상 (70B)https://huggingface.co/meta-llama/Meta-Llama-3-70B-Instruct/tree/main

meta-llama/Meta-Llama-3-70B-Instruct
SLM(Small Language Model)70억개 이하 (7B)https://huggingface.co/meta-llama/LlamaGuard-7b

meta-llama/LlamaGuard-7b

 

  • 오픈소스와 프라이빗 모델의 MMLU 벤치마크 정확도 추이(사진 = 아크인베스트)
https://www.ark-invest.com/

 

  • 인공지능의 영역
https://www.threads.net/@travelinganna/post/C7KqiMFuhiX
  • 여러가지 유형의 AI모델
https://gaiinsights.com/blog/10-types-of-generative-ai
  • 국가별 AI기업 
애널리틱스 인사이트

 

Open Ko-LLM Leaderboard - a Hugging Face Space by upstage

huggingface.co

 
 

LLM 생성과정  (추가 편집 예정)
  1. 데이터 수집 및 준비
  2. 모델 설계
  3. 모델 학습
  4. 평가 및 검증
  5. 배포 및 유지보수

 

LLM 관련 용어
  • 토큰화(tokenization) : 텍스트를 작은 단위로 나누는 과정 (I am a boy!) I, am, a, boy!
  • 정규화(표준화) : eat, eats, ate, eating --> eat으로 표준화화
  • 모델의 실행 성능과 효율성을 향상을 위신경망의 가중치(weight)와 활성화 함수(activation function) 출력을 더 작은 비트 수로 표현하도록 변환하는 기술을 말한다.
LLM 활용 방법

 

  • 파인튜닝 : 

 
 

  • RAG(Rettieval-Augmented Generation) : 

 
수정중
2024.6.12
 
 
 
 
 
 

728x90
반응형
LIST
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
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 

#
728x90
반응형
LIST
728x90
반응형
명령어 
# 가상환경 목록
# C:\Users\shim>conda env list
 conda environments:

base                     C:\Users\shim\anaconda3
cuda                     C:\Users\shim\anaconda3\envs\cuda
streamlit                C:\Users\shim\anaconda3\envs\streamlit
textgenwebui             C:\Users\shim\anaconda3\envs\textgenwebui
                         C:\Users\shim\anaconda3\envs\textgenwebui\text-generation-webui\installer_files\conda
                         C:\Users\shim\anaconda3\envs\textgenwebui\text-generation-webui\installer_files\env

# 가상환경 생성
# C:\Users\shim>conda create -n langserver
Channels:
 - defaults
Platform: win-64
Collecting package metadata (repodata.json): done
Solving environment: done
 Package Plan
  environment location: C:\Users\shim\anaconda3\envs\langserver
Proceed ([y]/n)? y
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
C:\Users\shim>

# 가상환경 활성화
# C:\Users\shim>conda activate langserver
(langserver) C:\Users\shim>

# 가상환경 비활성화
# (langserver) C:\Users\shim>conda deactivate
C:\Users\shim>

# 가상환경 패키지 설치하기
# (langserver) C:\Users\shim>conda install <패키지명>

# 가상환경 패키지 삭제하기
# (langserver) C:\Users\shim>conda uninstall <패키지명>

# 가상환경 삭제
# C:\Users\shim>conda env remove -n langserver

Remove all packages in environment C:\Users\shim\anaconda3\envs\langserver:

Everything found within the environment (C:\Users\shim\anaconda3\envs\langserver), including any conda environment configurations and any non-conda files, will be deleted. Do you wish to continue?
 (y/[n])? y
728x90
반응형
LIST
728x90
반응형
설치개요
Text Generation web UI 와 Hugging Face의 Open AI 모델을 다운받아 로컬에서 chat 테스해보기

- Text Generation Web UI Git
    https://github.com/oobabooga/text-generation-webui

- PC : Windows 11 / NVIDIA GeForce RTX 4060 Laptop GPU
- PC에 Git이 설치되어 있어야 한다.

- PC에 anaconda가 pc에 미리 설치되어 있어야 한다. https://www.anaconda.com/

 

  • HuggingFace Llma korea 모델 사용해 보기

https://huggingface.co/beomi/Llama-3-Open-Ko-8B

 

beomi/Llama-3-Open-Ko-8B · Hugging Face

Update @ 2024.05.01: Pre-Release Llama-3-KoEn-8B model & Llama-3-KoEn-8B-Instruct-preview Update @ 2024.04.24: Release Llama-3-Open-Ko-8B model & Llama-3-Open-Ko-8B-Instruct-preview Model Details Llama-3-Open-Ko-8B Llama-3-Open-Ko-8B model is continued pre

huggingface.co

 

  • HuggingFace 한국어 리더 보드 (Open Ko-LLM Leaderboard) / web page 로딩하는데 시간이 많이 걸

https://huggingface.co/spaces/upstage/open-ko-llm-leaderboard

 

Open Ko-LLM Leaderboard - a Hugging Face Space by upstage

 

huggingface.co

 

 

 

pc에 설치 진행과정
#내 pc의 conda 경로는 

# 기본 conda 경로
C:\Users\shim\anaconda3

# 가상환경에 생성되는 경로

C:\Users\shim\anaconda3\envs

# Text Generation Web UI 테스트할 경로
C:\Users\shim\anaconda3\envs\textgenwebui

 

가상환경 설치 및 text-generation-webui Git 다운로드 및 설치  
# 가상환경을 생성한다 . python version는 3.10으로 함 (일부 3.11 이후 버젼은 cuda인식불가로)
# (base) C:\Users\shim>conda create -n textgenwebui python=3.10
Channels:
 - defaults
Platform: win-64
Collecting package metadata (repodata.json): done
Solving environment: done
<< Package Plan >>
  environment location: C:\Users\shim\anaconda3\envs\textgenwebui
  added / updated specs:
    - python=3.10
The following NEW packages will be INSTALLED:
  bzip2              pkgs/main/win-64::bzip2-1.0.8-h2bbff1b_6
  ca-certificates    pkgs/main/win-64::ca-certificates-2024.3.11-haa95532_0
  libffi             pkgs/main/win-64::libffi-3.4.4-hd77b12b_1
  openssl            pkgs/main/win-64::openssl-3.0.13-h2bbff1b_1
  pip                pkgs/main/win-64::pip-24.0-py310haa95532_0
  python             pkgs/main/win-64::python-3.10.14-he1021f5_1
  setuptools         pkgs/main/win-64::setuptools-69.5.1-py310haa95532_0
  sqlite             pkgs/main/win-64::sqlite-3.45.3-h2bbff1b_0
  tk                 pkgs/main/win-64::tk-8.6.14-h0416ee5_0
  tzdata             pkgs/main/noarch::tzdata-2024a-h04d1e81_0
  vc                 pkgs/main/win-64::vc-14.2-h21ff451_1
  vs2015_runtime     pkgs/main/win-64::vs2015_runtime-14.27.29016-h5e58377_2
  wheel              pkgs/main/win-64::wheel-0.43.0-py310haa95532_0
  xz                 pkgs/main/win-64::xz-5.4.6-h8cc25b3_1
  zlib               pkgs/main/win-64::zlib-1.2.13-h8cc25b3_1

# Proceed ([y]/n)? y

Downloading and Extracting Packages:
Preparing transaction: done
Verifying transaction: done
Executing transaction: done

 To activate this environment, use

     $ conda activate textgenwebui

 To deactivate an active environment, use

     $ conda deactivate

# 가상환경 activate 시킴
# (base) C:\Users\shim>conda activate textgenwebui

# 가상환경 확인 
# (textgenwebui) C:\Users\shim>conda env list
 conda environments:

base                     C:\Users\shim\anaconda3
cuda                     C:\Users\shim\anaconda3\envs\cuda
llm                      C:\Users\shim\anaconda3\envs\llm
textgen                  C:\Users\shim\anaconda3\envs\textgen
                         C:\Users\shim\anaconda3\envs\textgen\text-generation-webui\installer_files\conda
                         C:\Users\shim\anaconda3\envs\textgen\text-generation-webui\installer_files\env
textgenwebui          *  C:\Users\shim\anaconda3\envs\textgenwebui

# 가상환경 경로로 이동
# (textgenwebui) C:\Users\shim>cd anaconda3
# (textgenwebui) C:\Users\shim\anaconda3>cd envs
# (textgenwebui) C:\Users\shim\anaconda3\envs>cd textgenwebui

# text-generation-webui git 다운로드 함
# (textgenwebui) C:\Users\shim\anaconda3\envs\textgenwebui>git clone https://github.com/oobabooga/text-generation-webui.git
Cloning into 'text-generation-webui'...
remote: Enumerating objects: 17986, done.
remote: Counting objects: 100% (28/28), done.
remote: Compressing objects: 100% (20/20), done.
remote: Total 17986 (delta 21), reused 11 (delta 8), pack-reused 17958
Receiving objects: 100% (17986/17986), 27.52 MiB | 6.06 MiB/s, done.
Resolving deltas: 100% (12710/12710), done.

# 해당 디렉토리로 이동 
# (textgenwebui) C:\Users\shim\anaconda3\envs\textgenwebui>cd text-generation-webui

# text-generation-webui 설치파일 실행
# 설치는 windows이므로 start_windows.bat를 실행함
# (textgenwebui) C:\Users\shim\anaconda3\envs\textgenwebui\text-generation-webui>start_windows.bat

 

GPU 사용을 위해서 conda, cudnn, Tensorflow 설치한다.
# (textgenwebui) C:\Users\shim>conda install -c conda-forge cudatoolkit=11.2 cudnn=8.1.0
# (textgenwebui) C:\Users\shim>python -m pip install "tensorflow<2.11"

 

설치 및 완료 및 로그파일 

 

text-generation-webui설치로그(20240515).txt
0.07MB

# (textgenwebui) C:\Users\shim\anaconda3\envs\textgenwebui\text-generation-webui>start_windows.bat
Downloading Miniconda from https://repo.anaconda.com/miniconda/Miniconda3-py310_23.3.1-0-Windows-x86_64.exe to C:\Users\shim\anaconda3\envs\textgenwebui\text-generation-webui\installer_files\miniconda_installer.exe
하위 디렉터리 또는 파일 C:\Users\shim\anaconda3\envs\textgenwebui\text-generation-webui\installer_files이(가) 이미 있습니다.
   Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 53.8M  100 53.8M    0     0  10.0M      0  0:00:05  0:00:05 --:--:-- 10.1M

What is your GPU?

A) NVIDIA
B) AMD (Linux/MacOS only. Requires ROCm SDK 5.6 on Linux)
C) Apple M Series
D) Intel Arc (IPEX)
N) None (I want to run models in CPU mode)

#Input> A

Do you want to use CUDA 11.8 instead of 12.1?
Only choose this option if your GPU is very old (Kepler or older).

For RTX and GTX series GPUs, say "N".
If unsure, say "N".

Input (Y/N)> N
CUDA: 12.1

...
설치 로그 생략 (첨부파일 참조)
...

There are no logfile(s) to remove.
Files removed: 976


*******************************************************************
* You haven't downloaded any model yet.
* Once the web UI launches, head over to the "Model" tab and download one.
*******************************************************************

16:30:07-495825 INFO     Starting Text generation web UI

Running on local URL:  http://127.0.0.1:7860

 

설치가 완료되면 다음과 같이 URL 주소가 생기며 웹을 접속하면 됨
Running on local URL:  http://127.0.0.1:7860

 

  • 웹접속 화면

 

HuggingFace AI 모델 다운로드 해보기
 

beomi/Llama-3-Open-Ko-8B · Hugging Face

Update @ 2024.05.01: Pre-Release Llama-3-KoEn-8B model & Llama-3-KoEn-8B-Instruct-preview Update @ 2024.04.24: Release Llama-3-Open-Ko-8B model & Llama-3-Open-Ko-8B-Instruct-preview Model Details Llama-3-Open-Ko-8B Llama-3-Open-Ko-8B model is continued pre

huggingface.co

  • 웹 다운로드 주소에 아래 레포티토리 모델을 선택하고 다운로드를 클릭함
  • 또는 cmd창에서 # python download-model.py beomi/Llama-3-Open-Ko-8B 
  • beomi/Llama-3-Open-Ko-8B 

 

  • 다운로드 시간이 많이 걸림

 

 

 

 

한국어 모델 다운로드 및 테스트

 

 

728x90
반응형
LIST
728x90
반응형
  • PC환경 정보
o  Windows 11에서 conda 가상환경에서 GPU 인식하기 

o  Windows 환경정보 ( DXDIAG 명령어로 확인)
-Windows 11 Pro 64-bit (10.0, Build 22631) (22621.ni_release.220506-1250) 
                                       13th Gen Intel(R) Core(TM) i7-13620H (16 CPUs), ~2.4GHz
- NVIDIA GeForce RTX 4060 Laptop GPU\

o Windows 에 NVIDIA 설치 정보
 - NVIDIA CUDA Version : 12.4
 - NVIDIA Cunna Version : 8.9 

 

  • Windows Conda 가상환경에서 GPU를 사용하려면 다음과 같은 제약조건이 인터넷 검색결과로 나옴
o NVIDIA CUDA Version : 11.x 이하일것 
o NVIDIA Cunna Version : 8.x 이하일것
o Python : 3.10.x 이하일것
o Tensorflow 2.10.x 이하일것

위의 제약조건에 맞게 Conda 가상환경을 만들어 보고 가상환경에서 GPU가 인식되는지 테스트 해봄
 

CUDA Toolkit Archive

Previous releases of the CUDA Toolkit, GPU Computing SDK, documentation and developer drivers can be found using the links below. Please select the release you want from the list below, and be sure to check www.nvidia.com/drivers for more recent production

developer.nvidia.com

 

cuDNN Archive

Download releases from the GPU-accelerated primitive library for deep neural networks.

developer.nvidia.com

 

CUDA - Wikipedia

From Wikipedia, the free encyclopedia Parallel computing platform and programming model Compute Unified Device Architecture (CUDA) is a proprietary[1] parallel computing platform and application programming interface (API) that allows software to use certa

en.wikipedia.org

 

  • NVIDIA Drive 확인 Nvidia-smi 
# C:\Users\shim>nvidia-smi
Wed May 15 12:16:12 2024
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 552.44                 Driver Version: 552.44         CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                     TCC/WDDM  | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 4060 ...  WDDM  |   00000000:01:00.0 Off |                  N/A |
| N/A   44C    P8              1W /   80W |       0MiB /   8188MiB |      0%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+

+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|  No running processes found                                                             |
+-----------------------------------------------------------------------------------------+

 

  • NVIDIA Cuda 확인 nvcc -V
# C:\Users\shim>nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2024 NVIDIA Corporation
Built on Thu_Mar_28_02:30:10_Pacific_Daylight_Time_2024
Cuda compilation tools, release 12.4, V12.4.131
Build cuda_12.4.r12.4/compiler.34097967_0

 

conda를 통한 가상환경 생성 및 GPU 확인

 

  • conda에서 가상환경 설치하기
# 설치요약

1. 가상환경 디렉토리를 cuda 로 설정
2. python 3.10 설치
3. cudatoolkit 11.2 설치
4. cudnn=8.1.0 설치
5. Tensorflow 2.10 설치
# (base) C:\Users\shim>conda create -n cuda python=3.10
Channels:
 - defaults
Platform: win-64
Collecting package metadata (repodata.json): done
Solving environment: done
<< Package Plan >>
  environment location: C:\Users\shim\anaconda3\envs\cuda
  added / updated specs:
    - python=3.10
The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    pip-24.0                   |  py310haa95532_0         2.9 MB
    python-3.10.14             |       he1021f5_1        15.9 MB
    setuptools-69.5.1          |  py310haa95532_0        1013 KB
    wheel-0.43.0               |  py310haa95532_0         136 KB
    ------------------------------------------------------------
                                           Total:        20.0 MB
The following NEW packages will be INSTALLED:
  bzip2              pkgs/main/win-64::bzip2-1.0.8-h2bbff1b_6
  ca-certificates    pkgs/main/win-64::ca-certificates-2024.3.11-haa95532_0
  libffi             pkgs/main/win-64::libffi-3.4.4-hd77b12b_1
  openssl            pkgs/main/win-64::openssl-3.0.13-h2bbff1b_1
  pip                pkgs/main/win-64::pip-24.0-py310haa95532_0
  python             pkgs/main/win-64::python-3.10.14-he1021f5_1
  setuptools         pkgs/main/win-64::setuptools-69.5.1-py310haa95532_0
  sqlite             pkgs/main/win-64::sqlite-3.45.3-h2bbff1b_0
  tk                 pkgs/main/win-64::tk-8.6.14-h0416ee5_0
  tzdata             pkgs/main/noarch::tzdata-2024a-h04d1e81_0
  vc                 pkgs/main/win-64::vc-14.2-h21ff451_1
  vs2015_runtime     pkgs/main/win-64::vs2015_runtime-14.27.29016-h5e58377_2
  wheel              pkgs/main/win-64::wheel-0.43.0-py310haa95532_0
  xz                 pkgs/main/win-64::xz-5.4.6-h8cc25b3_1
  zlib               pkgs/main/win-64::zlib-1.2.13-h8cc25b3_1

Proceed ([y]/n)? y
Downloading and Extracting Packages:
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
 To activate this environment, use
     $ conda activate cuda
 To deactivate an active environment, use
     $ conda deactivate
     
# (base) C:\Users\shim>conda env list
 conda environments:
base                  *  C:\Users\shim\anaconda3
cuda                     C:\Users\shim\anaconda3\envs\cuda
llm                      C:\Users\shim\anaconda3\envs\llm
textgen2                 C:\Users\shim\anaconda3\envs\textgen2

# (base) C:\Users\shim>conda activate cuda
# (cuda) C:\Users\shim>conda install -c conda-forge cudatoolkit=11.2 cudnn=8.1.0
Channels:
 - conda-forge
 - defaults
Platform: win-64
Collecting package metadata (repodata.json): done
Solving environment: done
<< Package Plan >>
  environment location: C:\Users\shim\anaconda3\envs\cuda
  added / updated specs:
    - cudatoolkit=11.2
    - cudnn=8.1.0
The following packages will be downloaded:
    package                    |            build
    ---------------------------|-----------------
    cudatoolkit-11.2.2         |      h7d7167e_13       634.5 MB  conda-forge
    cudnn-8.1.0.77             |       h3e0f4f4_0       610.8 MB  conda-forge
"By downloading and using the cuDNN conda packages, you accept the terms and conditions of the NVID
done

# (cuda) C:\Users\shim>python -m pip install "tensorflow<2.11"
Collecting tensorflow<2.11
  Downloading tensorflow-2.10.1-cp310-cp310-win_amd64.whl.metadata (3.1 kB)
Collecting absl-py>=1.0.0 (from tensorflow<2.11)
  Using cached absl_py-2.1.0-py3-none-any.whl.metadata (2.3 kB)
  
... 중간 생략
Downloading pyasn1_modules-0.4.0-py3-none-any.whl (181 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 181.2/181.2 kB 5.5 MB/s eta 0:00:00
Using cached urllib3-2.2.1-py3-none-any.whl (121 kB)
Downloading oauthlib-3.2.2-py3-none-any.whl (151 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 151.7/151.7 kB 4.6 MB/s eta 0:00:00
Downloading pyasn1-0.6.0-py2.py3-none-any.whl (85 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 85.3/85.3 kB ? eta 0:00:00
Installing collected packages: tensorboard-plugin-wit, libclang, keras, flatbuffers, wrapt, urllib3, typing-extensions, termcolor, tensorflow-io-gcs-filesystem, tensorflow-estimator, tensorboard-data-server, six, pyasn1, protobuf, packaging, oauthlib, numpy, MarkupSafe, markdown, idna, grpcio, gast, charset-normalizer, certifi, cachetools, absl-py, werkzeug, rsa, requests, pyasn1-modules, opt-einsum, keras-preprocessing, h5py, google-pasta, astunparse, requests-oauthlib, google-auth, google-auth-oauthlib, tensorboard, tensorflow
Successfully installed MarkupSafe-2.1.5 absl-py-2.1.0 astunparse-1.6.3 cachetools-5.3.3 certifi-2024.2.2 charset-normalizer-3.3.2 flatbuffers-24.3.25 gast-0.4.0 google-auth-2.29.0 google-auth-oauthlib-0.4.6 google-pasta-0.2.0 grpcio-1.63.0 h5py-3.11.0 idna-3.7 keras-2.10.0 keras-preprocessing-1.1.2 libclang-18.1.1 markdown-3.6 numpy-1.26.4 oauthlib-3.2.2 opt-einsum-3.3.0 packaging-24.0 protobuf-3.19.6 pyasn1-0.6.0 pyasn1-modules-0.4.0 requests-2.31.0 requests-oauthlib-2.0.0 rsa-4.9 six-1.16.0 tensorboard-2.10.1 tensorboard-data-server-0.6.1 tensorboard-plugin-wit-1.8.1 tensorflow-2.10.1 tensorflow-estimator-2.10.0 tensorflow-io-gcs-filesystem-0.31.0 termcolor-2.4.0 typing-extensions-4.11.0 urllib3-2.2.1 werkzeug-3.0.3 wrapt-1.16.0

 

  • conda 가상환경 GPU 확인 실행 테스트 및 결과
# (cuda) C:\Users\shim>python -c "import tensorflow as tf; print(tf.config.list_physical_devices('GPU'))"
[PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')]

# (cuda) C:\Users\shim>python
Python 3.10.14 | packaged by Anaconda, Inc. | (main, May  6 2024, 19:44:50) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
# >>> from tensorflow.python.client import device_lib
# >>> device_lib.list_local_devices()
2024-05-15 11:54:20.473703: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1616] Created device /device:GPU:0 with 5449 MB memory:  -> device: 0, name: NVIDIA GeForce RTX 4060 Laptop GPU, pci bus id: 0000:01:00.0, compute capability: 8.9
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 11119453684472034767
xla_global_id: -1
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 5713690624
locality {
  bus_id: 1
  links {
  }
}
incarnation: 4304763808021192206
physical_device_desc: "device: 0, name: NVIDIA GeForce RTX 4060 Laptop GPU, pci bus id: 0000:01:00.0, compute capability: 8.9"
xla_global_id: 416903419
]

# >>> gpus = tf.config.experimental.list_physical_devices('GPU')
# >>> for gpu in gpus:
...     print(gpu)
...
PhysicalDevice(name='/physical_device:GPU:0', device_type='GPU')

# >>> import tensorflow as tf
# >>> print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))
Num GPUs Available:  1

 

  • Vitual Studio Code 에서 실행결과
# 파이선 코드
import tensorflow as tf
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
print("Num GPUs AVAILABLE: ", len(tf.config.list_physical_devices('GPU')))

# 실행결과

PS C:\Users\shim\anaconda3\envs\cuda> & c:/Users/shim/anaconda3/envs/cuda/python.exe c:/Users/shim/anaconda3/envs/cuda/cuda_gpu_test.py
2024-05-15 12:53:21.191667: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations:  AVX AVX2
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
2024-05-15 12:53:21.806525: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1616] Created device /device:GPU:0 with 5449 MB memory:  -> device: 0, name: NVIDIA GeForce RTX 4060 Laptop GPU, pci bus id: 0000:01:00.0, compute capability: 8.9
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 18426872582674291349
xla_global_id: -1
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 5713690624
locality {
  bus_id: 1
  links {
  }
}
incarnation: 3688180905390782346
physical_device_desc: "device: 0, name: NVIDIA GeForce RTX 4060 Laptop GPU, pci bus id: 0000:01:00.0, compute capability: 8.9"
xla_global_id: 416903419
]
Num GPUs AVAILABLE:  1

 

  • conda 가상환경 패키지 설치 정보 확인
# conda 환경에 cudatoolkit 11.2.2, cudnn 8.1.0.77, python 3.10.14, tensorflow 2.10.1이
  설치되어 있는것을 확인할수 있다.

#(cuda) C:\Users\shim\anaconda3\envs\cuda>conda list
 packages in environment at C:\Users\shim\anaconda3\envs\cuda:

$ Name                    Version                   Build  Channel
absl-py                   2.1.0                    pypi_0    pypi
astunparse                1.6.3                    pypi_0    pypi
bzip2                     1.0.8                h2bbff1b_6
ca-certificates           2024.3.11            haa95532_0
cachetools                5.3.3                    pypi_0    pypi
certifi                   2024.2.2                 pypi_0    pypi
charset-normalizer        3.3.2                    pypi_0    pypi
cudatoolkit               11.2.2              h7d7167e_13    conda-forge
cudnn                     8.1.0.77             h3e0f4f4_0    conda-forge
flatbuffers               24.3.25                  pypi_0    pypi
gast                      0.4.0                    pypi_0    pypi
google-auth               2.29.0                   pypi_0    pypi
google-auth-oauthlib      0.4.6                    pypi_0    pypi
google-pasta              0.2.0                    pypi_0    pypi
grpcio                    1.63.0                   pypi_0    pypi
h5py                      3.11.0                   pypi_0    pypi
idna                      3.7                      pypi_0    pypi
keras                     2.10.0                   pypi_0    pypi
keras-preprocessing       1.1.2                    pypi_0    pypi
libclang                  18.1.1                   pypi_0    pypi
libffi                    3.4.4                hd77b12b_1
markdown                  3.6                      pypi_0    pypi
markupsafe                2.1.5                    pypi_0    pypi
numpy                     1.26.4                   pypi_0    pypi
oauthlib                  3.2.2                    pypi_0    pypi
openssl                   3.3.0                hcfcfb64_0    conda-forge
opt-einsum                3.3.0                    pypi_0    pypi
packaging                 24.0                     pypi_0    pypi
pip                       24.0            py310haa95532_0
protobuf                  3.19.6                   pypi_0    pypi
pyasn1                    0.6.0                    pypi_0    pypi
pyasn1-modules            0.4.0                    pypi_0    pypi
python                    3.10.14              he1021f5_1
requests                  2.31.0                   pypi_0    pypi
requests-oauthlib         2.0.0                    pypi_0    pypi
rsa                       4.9                      pypi_0    pypi
setuptools                69.5.1          py310haa95532_0
six                       1.16.0                   pypi_0    pypi
sqlite                    3.45.3               h2bbff1b_0
tensorboard               2.10.1                   pypi_0    pypi
tensorboard-data-server   0.6.1                    pypi_0    pypi
tensorboard-plugin-wit    1.8.1                    pypi_0    pypi
tensorflow                2.10.1                   pypi_0    pypi
tensorflow-estimator      2.10.0                   pypi_0    pypi
tensorflow-io-gcs-filesystem 0.31.0                   pypi_0    pypi
termcolor                 2.4.0                    pypi_0    pypi
tk                        8.6.14               h0416ee5_0
typing-extensions         4.11.0                   pypi_0    pypi
tzdata                    2024a                h04d1e81_0
ucrt                      10.0.22621.0         h57928b3_0    conda-forge
urllib3                   2.2.1                    pypi_0    pypi
vc                        14.2                 h21ff451_1
vc14_runtime              14.38.33130         h82b7239_18    conda-forge
vs2015_runtime            14.38.33130         hcb4865c_18    conda-forge
werkzeug                  3.0.3                    pypi_0    pypi
wheel                     0.43.0          py310haa95532_0
wrapt                     1.16.0                   pypi_0    pypi
xz                        5.4.6                h8cc25b3_1
zlib                      1.2.13               h8cc25b3_1

(cuda) C:\Users\shim\anaconda3\envs\cuda>

 

 

728x90
반응형
LIST
728x90
반응형

 

구글의 오픈 모델 젬마(Gemma) 를 이용하여 PC(로컬)에서 Ollama, Gradio Chatbot interface 를 띄워보기

o  PC에 선 설치되있어야 하는 프로그램 (아래 사이트에서 다운도드 및 설치)
- Poetry  https://python-poetry.org/
- Ollama  https://ollama.com
- Vitual Studio Code https://code.visualstudio.com/

 

 

Poetry로 가상환경 생성

 

# 내 PC의 가상환경 기본 ROOT는 C:\Users\shi1m\Edu> 이다 (본인 환경에 맞게 설치하면됨)

# gemma-gradio-chatbot 프로젝트 가상환경 환경 생성 
# C:\Users\shi1m\Edu>poetry new gemma-gradio-chatbot
Created package gemma_gradio_chatbot in gemma-gradio-chatbot

# 관련 패키지 (langchain gradio) / pyproject.tmol에서 확인
# C:\Users\shi1m\Edu>poetry add langchain gradio  

# 프로젝트 가상환경 환경 생성후 Vitual Studio Code 실행
# C:\Users\shi1m\Edu> code .

 

Vitual Studio Code 에서 환경 설정 및 실행

 

  • Vitual Studio Code 오른쪽 하단에 Python 을 클릭하면 됨

  • 프로젝트 가상환경 설정 (인터프리터 경로 설정)

  • 관련 패키지 설치 확인 

  • 프로젝트 가상환경 (GEMMA-GRADIO-CHATBOT) 에 새파일 생성하고 파일이름을 main.py로 설정

 

  • main.py를 생성하고 아래와 같은 소스코드 설정 (아직 gemma:2b-instruct 를 다운받지 않은 상태이므로 gemma 모델을 다운로드 해야됨
# Ollama 모델 로드 및 테스트
from langchain_community.chat_models import ChatOllama
import gradio as gr

model = ChatOllama(model="gemma:2b-instruct", temperature=0)

response = model.invoke("대한민국의 수도는 어디입니까")

 

Ollama 로 gemma 모델 다운로드 하기 (Ollama 는 pc에 설치가 된걸 기준으로함)

 

 

library

Get up and running with large language models.

ollama.com

  • gemma:2b-instruct 를 확인한다
  • 다운받는 명령어는 ollma run gemma:2b-instruct 이다.

 

ollama로 gemma:2b-instruct 다운받기

 

# ollama 로 gemma:2b-instruct 다운로드

# 다운로드만 할경우 full
# C:\Users\shim\Edu>ollama run gemma:2b-instruct

# 다운로드 및 실행할경우 run 
# C:\Users\shim\Edu>ollama run gemma:2b-instruct

# 다운로드 및 확인
# C:\Users\shim\Edu>ollama list
NAME                    ID              SIZE    MODIFIED
gemma:2b-instruct       030ee63283b5    1.6 GB  23 hours ago
llama3:instruct         a6990ed6be41    4.7 GB  5 days ago
gemma:7b-instruct       a72c7f4d0a15    5.0 GB  6 days ago


# 실행 및 테스트 (gemma:2b)
# C:\Users\shim\Edu>ollama run gemma:2b-instruct
>>> 대한민국의 대통령은 누구입니까?
대한민국의 대통령은 제임스 정은석입니다.

헛!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

# 실행 및 테스트 (gemma:7b)로 다시 테스트 
# C:\Users\shim\Edu>ollama run gemma:7b-instruct
>>> 대한민국의 대통령은 누구입니까?
2022년 5월 10일 현재,대한민국의 대통령은 **윤석열**입니다.

 

main.py 작성 및 테스트 및 실행  (소스코드는 gradio Chatinterface Doc 참조)

 

# Ollama 모델 로드 및 테스트
from langchain_community.chat_models import ChatOllama
import gradio as gr

model = ChatOllama(model="gemma:2b-instruct", temperature=0)
# model = ChatOllama(model="gemma:7b-instruct", temperature=0)


def echo(message, history):
    response = model.invoke(message)
    return response.content

demo = gr.ChatInterface(fn=echo, title="Gemma Bot")
demo.launch()

 

  • Vitual Studio Code에서 실행되는 화면
  • 아래 터미널에 ChatInterface 주소가 생성됨(http://127.0.0.1:7860)
  • 주소를 Ctrl + 마우스 클릭하면 Chat 웹 페이지가 실행됨

 

  • Chat 웹 페이지 실행화면 (대한민국의 대통령은 ? 박근성... 

  • Gemma:7b로 소스코드를 수정하여 다시 테스트 해봄
# Ollama 모델 로드 및 테스트
from langchain_community.chat_models import ChatOllama
import gradio as gr

model = ChatOllama(model="gemma:7b-instruct", temperature=0)

def echo(message, history):
    response = model.invoke(message)
    return response.content

# Chat 창 타이틀 이름도 바꿔본다. Gemma Bot -->  우리회사 Gemma 7b Chat Bot
demo = gr.ChatInterface(fn=echo, title="우리회사 Gemma 7b Chat Bot")
demo.launch()

 

  • gemma:7b-instruct 로 바꿔서 테스트 (물론 gemman:7b가 없으면 ollama로 down 받은후 실행해야 됨)

728x90
반응형
LIST
728x90
반응형

 

Huggingface-cli 다운로드

 

# pip install huggingface_hub

 

Huggingface GGUF  다운로드 

 

 

  • huggingface-cli 다운로드 명령어
# 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

 

 

다운도르 파일을 ollama list로 생성

 

  • 다운받은 gguf 파일이 있는 위치에 Modelfile 생성
# c:\type Modelfile     (linux의 cat 명령과 동일)

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 create 로 모델 생성
# 파일경로는 아래와 같은 경우로 예를 들임
C:\Users\shim\.cache\lm-studio\models\heegyu\


# ollama create ggml-model-Q5_K_M -f C:/Users/shim/.cache/lm-studio/models/heegyu/ggml-model-Q5-K-M-gguf/Modelfile
transferring model data
creating model layer
creating template layer
creating system layer
creating parameters layer
creating config layer
using already created layer sha256:b9e3d1ad5e8aa6db09610d4051820f06a5257b7d7f0b06c00630e376abcfa4c1
writing layer sha256:6fe7ed0d1aa9d7d4f3b6397184caf17b9b558739bc00f5abde876ee579fbf51a
writing layer sha256:1fa69e2371b762d1882b0bd98d284f312a36c27add732016e12e52586f98a9f5
writing layer sha256:fc44d47f7d5a1b793ab68b54cdba0102140bd358739e9d78df4abf18432fb3ea
writing layer sha256:6dfba5058d8d9a7829a8f0617f2e10c71fb928f150acfe99ee714384034b1020
writing manifest
success


# ggml-model-Q5-K-M-gguf>ollama list
NAME                            ID              SIZE    MODIFIED
gemma:7b-instruct               a72c7f4d0a15    5.0 GB  5 days ago
ggml-model-Q5_K_M:latest        acb55eed16e7    7.7 GB  2 minutes ago
llama3:instruct                 a6990ed6be41    4.7 GB  4 days ago

 

 

  • ollama run 으로 다운받은 AI 모델 질의/응답 테스트
Microsoft Windows [Version 10.0.22631.3527]
(c) Microsoft Corporation. All rights reserved.

C:\Users\shim>ollama list
NAME                            ID              SIZE    MODIFIED
gemma:7b-instruct               a72c7f4d0a15    5.0 GB  5 days ago
ggml-model-Q5_K_M:latest        acb55eed16e7    7.7 GB  43 minutes ago
llama3:instruct                 a6990ed6be41    4.7 GB  4 days ago


C:\Users\shim>ollama run gemma:7b-instruct
>>> 대한민국수도가어딘지한글로알려줘
수도가 어떤지 알려드릴 수 있습니다. 수도는 서울입니다.

>>> 대한민국 대통령이 누구야?
대한민국 대통령은 윤석열입니다.
728x90
반응형
LIST
728x90
반응형
# Ollama full 후 AI Model 이 저장되는 경로 확인

 

# 모델 리스트 확인

 

 

# 모델이 저장되는 경로
C:\Users\shim\.ollama\models\blobs

 

 

# 모델명이 저장되는 경로
C:\Users\shim\.ollama\models\manifests\registry.ollama.ai\library

728x90
반응형
LIST
728x90
반응형
LM Studio를 이용하여 AI Model 을 PC에 다운받아 돌려봄

 

LM Studio 다운로드 및 설치

 

https://lmstudio.ai/

 

👾 LM Studio - Discover and run local LLMs

Find, download, and experiment with local LLMs

lmstudio.ai

 

  • 초기 화면

 

  • AI Model 검색 및 다운로드 화면 (다운로드되면 pc에 *.gguf 파일로 저장됨)

 

  • 다운로드한 AI Model 를 chat 테스트
  • 테스트 모델은 EEVE Korean Instruct 10 v1 0 34B Q8_0.gguf 

 

 

  • AI Model Prompt, 검색 옵션을 바꿔가며 테스트 가능

 

  • GPU 설정 옵션

 

  • 검색 파라미터 변경 등

728x90
반응형
LIST
728x90
반응형
노트북 또는 서버에 AI 모델을 다운받아서 Docker와 Open-webUI를 이용하여 로컬 ChatGPT 창을 만들어봄

- Ollama Linux 설치 버젼도 있으므로 Linux 서버에서 가능함

 

Ollama 설치 (AI모델 다운로드)

 

https://ollama.com/download

 

Download Ollama on macOS

Download Ollama on macOS

ollama.com

 

  • Ollama pc에서 동작 확인

 

  • Ollama Model 다운로드 및 설치 (2개의 모델을 PC에 다운 받는다 , gemma, llama3
C:\Users\shim>ollama pull gemma:7b-instruct

C:\Users\shim>ollama pullllama3:instruct

C:\Users\shim>ollama list
NAME                    ID              SIZE    MODIFIED
gemma:7b-instruct       a72c7f4d0a15    5.0 GB  34 hours ago
llama3:instruct         a6990ed6be41    4.7 GB  About an hour ago

 

 

 

  • Ollama 에서 다운가능한 모델 

https://www.ollama.com/library

 

library

Get up and running with large language models.

ollama.com

 

  • huggingface 또는 Open Ko-LLM 다운받을수 있는 방법 (찾는중)

https://huggingface.co/

 

Hugging Face – The AI community building the future.

The Home of Machine Learning Create, discover and collaborate on ML better. We provide paid Compute and Enterprise solutions. We are building the foundation of ML tooling with the community.

huggingface.co

 

https://huggingface.co/spaces/upstage/open-ko-llm-leaderboard

 

Open Ko-LLM Leaderboard - a Hugging Face Space by upstage

 

huggingface.co

 

 

Docker-Desktop 설치 

 

https://docs.docker.com/get-docker/

 

Get Docker

Download and install Docker on the platform of your choice, including Mac, Linux, or Windows.

docs.docker.com

 

  • Docker 및 Open-WebUI 실행
C:\Users\shim>docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

Unable to find image 'ghcr.io/open-webui/open-webui:main' locally
main: Pulling from open-webui/open-webui
b0a0cf830b12: Pull complete
72914424168c: Pull complete
..
..
..
ee142353b3f4: Pull complete
b1db2e5d884d: Pull complete
Digest: sha256:ab62ecc09c2f9a64f7bcdfd585d9cb25c38f4b430639e1fb03fe6155cfd02e43
Status: Downloaded newer image for ghcr.io/open-webui/open-webui:main
64aa1109f6cd8212f64521134a732b5a30ff8d6a4c69c7f4855a8cf7ca201cf0

 

  • Docker Desktop에 접속하여 실행된 Docker 클릭 (Containers)
  • Containers 그룹에 Open-webui 가 떠 있음 (port 3000:8080)을 클릭하여 웹접속

 

  • Open-WebUI 접속화면 및 회원가입 (회원가입 저장데이터는 PC에만 저장됨)
  • localhost:3000/auth

  • 로그인후 환경, 공지 화면

 

  • 왼쪽 Select a Model 에서 다운받은 2개의 모델 번갈아 가며 테스트 (gemma, llama3)

  • Open-webUI 설정화면

 

  • gemma 모델 테스트 

  • llama3 모델 테스트 

  • llama3 모델 (한글로 번역, 설명)

 

 

 

728x90
반응형
LIST
728x90
반응형
poetry"는 Python 패키지 관리 및 의존성 관리를 위한 오픈 소스 도구입니다. poetry를 사용하면 Python 프로젝트의 의존성을 관리하고, 가상 환경을 생성하며, 패키지를 빌드하고 배포하는 등의 작업을 간편하게 수행할 수 있습니다.
poetry의 주요 기능은 다음과 같습니다:

 

  1. 의존성 관리: poetry는 프로젝트의 의존성을 관리하기 위해 pyproject.toml 파일을 사용합니다. 이 파일에는 프로젝트의 의존하는 패키지 목록과 버전 정보가 포함됩니다.
  2. 가상 환경 관리: poetry는 각 프로젝트에 대해 별도의 가상 환경을 생성하여 의존성을 격리할 수 있습니다. 이를 통해 프로젝트 간의 의존성 충돌을 방지하고, 의존성 관리를 더욱 효율적으로 할 수 있습니다.
  3. 패키지 관리: poetry를 사용하여 새로운 패키지를 추가하고, 기존 패키지를 업데이트하고, 패키지를 제거하는 등의 작업을 쉽게 수행할 수 있습니다.
  4. 배포 지원: poetry는 프로젝트를 패키지로 빌드하고 PyPI와 같은 패키지 저장소에 게시하는 기능을 제공합니다.

poetry는 Python 프로젝트를 관리하고 개발하는 데 있어서 매우 유용한 도구로 평가되고 있으며, Python 개발자들 사이에서 널리 사용되고 있습니다.

 
Poetry 설치 
 

Introduction | 1.7 | Documentation | Poetry - Python dependency management and packaging made easy

If you installed using the deprecated get-poetry.py script, you should remove the path it uses manually, e.g. rm -rf "${POETRY_HOME:-~/.poetry}" Also remove ~/.poetry/bin from your $PATH in your shell configuration, if it is present.

python-poetry.org

  • Linux 또는 Windows 의 경우 아래와 같이 파워쉘에서 아래 코드를 실행
# linux 의 경우
curl -sSL https://install.python-poetry.org | python3 -


# windows 파워쉘의 경우

(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -
 
Poetry 사용방법 
# 가상환경 생성
# C:\Users\shim\poetry>poetry new testenv
Created package testenv in testenv

# C:\Users\shim\poetry>cd testenv

# 가상환경 진입
# C:\Users\shim\poetry>testenv>poetry shell
(testenv-py3.11) C:\Users\shim\poetry\testenv>

# 가상환경 환경정보
# (testenv-py3.11) C:\Users\shim\poetry\testenv>poetry env info

Virtualenv
Python:         3.11.5
Implementation: CPython
Path:           C:\Users\shim\AppData\Local\pypoetry\Cache\virtualenvs\testenv-Cs3mTsQw-py3.11
Executable:     C:\Users\shim\AppData\Local\pypoetry\Cache\virtualenvs\testenv-Cs3mTsQw-py3.11\Scripts\python.exe
Valid:          True

Base
Platform:   win32
OS:         nt
Python:     3.11.5
Path:       C:\Users\shim\AppData\Local\Programs\Python\Python311
Executable: C:\Users\shim\AppData\Local\Programs\Python\Python311\python.exe

# 가상환경 리스트 보기
# (testenv-py3.11) C:\Users\shim\poetry\testenv>poetry env list
testenv-Cs3mTsQw-py3.11 (Activated)

# 가상환경 종료
# (testenv-py3.11) C:\Users\shim\poetry>deactivate
C:\Users\shim\poetry>

 

git clone 으로 다운로드 받은 디렉토리 가상환경으로 실행
# C:\Users\shim>
# C:\Users\shim>cd poetry
# C:\Users\shim\poetry>dir
# C:\Users\shim\poetry>git clone https://github.com/langchain-ai/langserve.git
Cloning into 'langserve'...
remote: Enumerating objects: 3171, done.
remote: Counting objects: 100% (49/49), done.
remote: Compressing objects: 100% (37/37), done.
remote: Total 3171 (delta 20), reused 28 (delta 11), pack-reused 3122
Receiving objects: 100% (3171/3171), 6.87 MiB | 25.11 MiB/s, done.
Resolving deltas:   0% (0/2018)
Resolving deltas: 100% (2018/2018), done.

# C:\Users\shim\poetry>cd langserve

#  C:\Users\shim\poetry\langserve>poetry shell
(langserve-py3.11) C:\Users\shim\poetry\langserve>

# (langserve-py3.11) C:\Users\shim\poetry\langserve>poetry install
Installing dependencies from lock file
Package operations: 152 installs, 0 updates, 0 removals
  - Installing attrs (23.2.0)
  - Installing rpds-py (0.18.1)
  .... 
  .... 
  .... 생략
  - Installing ruff (0.1.15)
  - Installing sse-starlette (1.8.2)
Installing the current project: langserve (0.2.1)

# 가상환경 종료
# (langserve-py3.11) C:\Users\shim\poetry\langserve>deactivate
C:\Users\shim\poetry\langserve>

 

  • Poetry add [pakage 설치 ] 
# poetry add python

# poetry add langchain pypdf langchain-openai
728x90
반응형
LIST

+ Recent posts