(Google) 주어진 프롬프트에 대해 인간과 유사한 응답을 생성하기 위해 방대한 양의 텍스트 데이터로 훈련된 고급 AI 모델 입니다. 이러한 모델들은 인간 언어를 이해하고 생성하는 등 다양한 작업에서 뛰어납니다. 이로 인해 다양한 응용 분야에서 매우 가치 있는 도구로 사용될 수 있습니다.
# 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)
# 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)
# (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
# 내 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에 설치가 된걸 기준으로함)
# 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 받은후 실행해야 됨)
# 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
>>> 대한민국수도가어딘지한글로알려줘
수도가 어떤지 알려드릴 수 있습니다. 수도는 서울입니다.
>>> 대한민국 대통령이 누구야?
대한민국 대통령은 윤석열입니다.
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
poetry"는 Python 패키지 관리 및 의존성 관리를 위한 오픈 소스 도구입니다. poetry를 사용하면 Python 프로젝트의 의존성을 관리하고, 가상 환경을 생성하며, 패키지를 빌드하고 배포하는 등의 작업을 간편하게 수행할 수 있습니다. poetry의 주요 기능은 다음과 같습니다:
의존성 관리: poetry는 프로젝트의 의존성을 관리하기 위해 pyproject.toml 파일을 사용합니다. 이 파일에는 프로젝트의 의존하는 패키지 목록과 버전 정보가 포함됩니다.
가상 환경 관리: poetry는 각 프로젝트에 대해 별도의 가상 환경을 생성하여 의존성을 격리할 수 있습니다. 이를 통해 프로젝트 간의 의존성 충돌을 방지하고, 의존성 관리를 더욱 효율적으로 할 수 있습니다.
패키지 관리: poetry를 사용하여 새로운 패키지를 추가하고, 기존 패키지를 업데이트하고, 패키지를 제거하는 등의 작업을 쉽게 수행할 수 있습니다.
배포 지원: poetry는 프로젝트를 패키지로 빌드하고 PyPI와 같은 패키지 저장소에 게시하는 기능을 제공합니다.
poetry는 Python 프로젝트를 관리하고 개발하는 데 있어서 매우 유용한 도구로 평가되고 있으며, Python 개발자들 사이에서 널리 사용되고 있습니다.
# 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>