LLM 활용하기
· 0 min read
주피터 노트북은 웹 기반의 대화형 개발 환경(IDE)으로, 코드 실행, 텍스트 작성, 시각화 등을 하나의 문서에서 수행할 수 있는 오픈소스 도구
파이썬
ML 분야에서 주피터 노트북이 선호되는 이유 : 코드 실행 결과를 즉시 확인 가능 실험 과정과 결과를 체계적으로 문서화 시각화 도구를 통한 모델 성능 분석 용이 재현 가능한 실험 환경 제공 GitHub에서의 코드 공유 및 협업 편리
데이터 과학 및 머신러닝을 위한 파이썬 배포판으로, 많은 패키지들이 미리 설치되어 있는 통합 개발 환경
# brew 설치
brew install --cask anaconda
# 버전확인
conda --version
# 가상환경 생성
conda create -n jupyter python=3.11.0
# zsh or bash profile 추가
conda init zsh (or bash)
# 활성화
conda activate jupyter
# 비활성화
conda deactive
# ipykernel 설치
pip install ipykernel
# 커널 추가
python -m ipykernel install --user --name=jupyter
# 주피터 노트북 실행
jupyter lab
import mysql.connector
import plotly.graph_objects as go
# MySQL 연결
conn = mysql.connector.connect(
host='10.104.17.79',
database='cos_alpha',
user='cos_alpha',
password='zh0tmdkfvk!DB',
port= '13306'
)
# 커서 생성
cursor = conn.cursor(dictionary=True)
# 쿼리 실행
cursor.execute("""
select cqc.category_name, count(1) as cnt
from cos_qna a
inner join cos_qna_category cqc on a.cos_qna_category_no = cqc.cos_qna_category_no
group by cqc.category_name
""")
# 결과 가져오기
data = cursor.fetchall()
# 카테고리와 건수를 별도 리스트로 분리
categories = [item['category_name'] for item in data]
counts = [item['cnt'] for item in data]
# 바차트 생성
fig = go.Figure(go.Bar(
x=counts,
y=categories,
orientation='h',
marker=dict(
color='rgb(55, 83, 109)',
line=dict(color='rgb(8,48,107)', width=1.5)
)
))
# 차트 레이아웃 설정
fig.update_layout(
title='카테고리별 건수',
title_x=0.5, # 제목 중앙 정렬
xaxis_title='건수',
yaxis_title='카테고리',
width=800,
height=1500,
font=dict(
family="AppleGothic", # 한글 폰트 설정
size=12
),
showlegend=False,
)
# 차트 표시
fig.show()
# 연결 종료
cursor.close()
conn.close()
Ollama는 로컬 환경에서 대규모 언어 모델(LLM)을 쉽게 실행할 수 있는 오픈소스 도구입니다.
brew install --cask ollama
# 코드라마 실행
ollama run codellama:7b
# chatgpt같은 web ui
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
Ollama는 로컬 환경에서 대규모 언어 모델(LLM)을 쉽게 실행할 수 있게 해주는 오픈소스 프레임워크입니다.
brew install ollama
# 라마3.2 실행
ollama run llama3.2
GGUF(GPT-Generated Unified Format)
llama-3.2-Korean-Bllossom-3B.Q8_0.gguf
| | | | | | | |
1 2 3 4 5 6 7 8
Q8: ~8GB
Q6: ~6GB
Q5: ~5GB
Q4: ~4GB
Q3: ~3GB
mistral-7b-v0.1-q4_K_M.gguf
- mistral-7b: 모델명과 크기
- v0.1: 버전
- q4: 4-bit 양자화
- K_M: 중간 크기 컨텍스트
llama-7b-q4_K_S.gguf
- llama-7b: 모델명과 크기
- q4: 4-bit 양자화
- K_S: 짧은 컨텍스트
mixtral-8x7b-v0.1-q3_K_L.gguf
- mixtral-8x7b: 모델명과 크기
- v0.1: 버전
- q3: 3-bit 양자화
- K_L: 긴 컨텍스트
FROM llama-3.2-Korean-Bllossom-3B-gguf-Q4_K_M
TEMPLATE """{{- if .System }}
<s>{{ .System }}</s>
{{- end }}
<s>Human:
{{ .Prompt }}</s>
<s>Assistant:
"""
SYSTEM """당신은 제 개인 비서 입니다. 한국말로 답변 부탁드립니다.
"""
PARAMETER stop <s>
PARAMETER stop </s>
RAG : Retrieval-Augmented Generation
사실 관계 오류
와 맥락 이해 한계
를 극복함고품질, 고성능의 지식 베이스 구축이 중요
Blog posts support Docusaurus Markdown features, such as MDX.
Use the power of React to create interactive blog posts.
<button onClick={() => alert('button clicked!')}>Click me!</button>