본문 바로가기

AI 빅데이터73

[Python] Version Upgrade 하기 Python 의 낮은 Version을 사용하다보면 설치되지 않는 패키지가 있다. 이를테면 Langchain은 Python 3.9 이상을 요구한다. Python Version을 Upgrade하고 Jupyter에서 사용하기 위한 방법을 알아 본다. Python 업그레이드 현시점 최신버전인 12.3 기준으로,, > sudo apt update> sudo apt upgrade> sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev> wget https://www.python.. 2024. 4. 26.
[LangChain] PPT Bot 만들기 Langchain으로 간단히 PPT 있는 내용을 읽어서 대답을 생성해 주는 Bot을 Streamlit과 Gemini로 만들었다. Gemini는 Google AI Studio의 무료 계정을 사용했다. 1. ChatGoogle GenerativeAI import import os import streamlit as st import os os.environ["GOOGLE_API_KEY"] = "you api key" from langchain_google_genai import ( ChatGoogleGenerativeAI, HarmBlockThreshold, HarmCategory, ) st.title("PPT-Bot") 2. LangChain Module Import from langchain.text_s.. 2024. 3. 27.
[Zip] Starred Expression : Unzip하기 두개의 List를 묶어 Dictionary 형태로 만드려면 zip 함수를 사용하면 된다. word = ['Pierre', 'Vinken', ',', '61', 'years', 'old', ',', 'will', 'join', 'the', 'board', 'as', 'a', 'nonexecutive', 'director', 'Nov.', '29', '.'] tag_info = ['NNP', 'NNP', ',', 'CD', 'NNS', 'JJ', ',', 'MD', 'VB', 'DT', 'NN', 'IN', 'DT', 'JJ', 'NN', 'NNP', 'CD', '.'] tagged = dict(zip(word, tag_info)) print(tagged.items()) ==> dict_items([('Pi.. 2024. 3. 7.
[Basic] Step-by-Step 분류 Python 예제 데이터 분석한 지 너무 오래 되었는데, 조만간 다시 하게 될 것 같아 공부 중. 기초도 다 까먹어서 새롭다.. 하아.. Kaggle의 은행 이동 예측하는 예제로 다시 감을 잡기 시작한다. Binary Classification with a Bank Churn Dataset | Kaggle www.kaggle.com 전처리를 한다고 결과가 달라지는 예제가 아니긴 하지만, Step-by-Step으로 해 보기로 한다. import pandas as pd train = pd.read_csv("train.csv") train.hist(bins=25, figsize=(16, 10)) 문자형 변수(Gender, Geography)를 제외한 숫자형 변수들의 특징을 보면 CreditScore, Age, Balance, .. 2024. 2. 2.
LLM을 QLoRA로 파인 튜닝 하기 허깅페이스에서는 각종 AI모델을 쉽게 사용하도록 라이브러리를 제공하고 있는데, 개인용 PC(?) 수준에서도 LLM 모델을 테스트할 수 있도록 QLoRA로 LLM을 PEFT(Parameter Efficient Fine Tuning) 할 수 있는 방법을 제공하고 있다. QLoRA는 아래의 이미지로 설명된다. LoRA가 Base 모델의 네트워크는 그대로 둔 채, 추가 데이터 만을 학습하여 본래의 Network에 concatenation하는 것이라면, QLoRA는 여기에 더해 16bit Network Node를 4bit로 양자화하고, 부족한 메모리로 큰 모델을 Handling할 수 있도록 Paging(바이너리를 나누어 2차 저장 장치에 Swapping하는 것)을 추가한 것이다. 16비트를 4비트로 바꾸었으니 정.. 2023. 11. 24.
[AI가속] TensorRT-LLM 지난 주(10월 3주차)에 NVidia에서 TensorRT LLM이라는 LLM을 위한 GPU 가속 라이브러리를 Release 하였다. 기존 A100 대비 약 5배, H100 대비해서는 약 2배 약간 못 미치게 성능 향상이 있다고 발표했다. 소프트웨어만으로 성능 향상을 볼 수 있는 것이라 안 쓸 이유가 크지 않은데, 주요하게 포함된 기술은 아래와 같다. Tensor Parallelism 쉽게 얘기해서 모델의 Tensor들을 나누어 GPU마다 할당하고 연산한 뒤에 다시 합하고 Synchronization하는 것이다. GPU 메모리를 상대적으로 덜 쓸 수 있다는 장점이 있지만, Sync 과정이 복잡할 수 있다. Pipeline Parallelism GPU마다 배치를 나누어서 학습하고, 이를 다시 Sync한다... 2023. 10. 25.