본문 바로가기

AI 빅데이터/AI 동향17

[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.
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.
[Inference] WebGPU WebGPU가 크롬미움 113 버전부터 지원된다고 한다. 이게 뭔가 싶지만, 기존의 WebGL을 생각하면 쉬워진다. 구조를 이해할 필요는 없고, 단순하게 말하면 웹브라우저에서 GPU를 바로 액세스해서 브라우저에 더 빠르고 미려한 그래픽을 제공하겠다는 것이다. 그럼 고사양 게임 같은 것들도 브라우저 상에서 실행 가능하게 된다. 하지만, 큰 문제가 하나 있는데, WebGL이 30년도 더 된 OpenGL 라이브러리에 기초하고 있다는 것이다. 애플의 Metal, 마이크로소프트의 DirectX 12, AMD의 Vulkan과 같은 그래픽 라이브러리들은 OpenGL을 지원하지 않는다. WebGPU는 이와 같은 문제를 해결하는 새로운 표준으로 클라이언트 PC의 GPU 자원을 제대로 사용할 수 있도록 해 준다. GPU .. 2023. 10. 25.
[LLM 개발] Colab에서 허깅페이스 오픈 모델 사용 Llama-2 이후로 오픈 모델이 쏟아져 나오는데, 개인들은 이 모델들을 마땅히 테스트해보기도 쉽지 않다. 구글 코랩은 오래전부터 NVidia T4를 기본 GPU로 제공하고 있고, 허깅페이스에서 오픈 소스 모델들을 활용할 수 있는 라이브러리들을 제공하고 있어서 간단한 테스트 정도는 해 볼 수 있다. 참고로, Colab의 런타임을 T4로 바꿔줘야 한다. 특히, Llama 모델을 C 언어로 인퍼런스하도록 한 llama.cpp와 GGML 덕분에 경량화하여 사용할 수 있다. ctransformer는 허깅페이스에서 제공하는 것은 아니지만 GGML을 활용하여 transformer 계열 모델들을 사용할 수 있게 해 준 것으로 경량화된 LLM을 손쉽게 사용할 수 있도록 해 준다. 현시점에서 지원하는 언어모델은 아래와 .. 2023. 10. 7.
[LangChain] VertexAI의 LLM으로 Web검색 연동하기 대체로 보유하고 있는 데이터베이스를 검색하여 Hallucination을 줄이는 예제가 많은데, LangChain은 Web 검색을 통해서도 대답을 할 수 있도록 구성되었다. 본 포스팅에서는 뉴욕타임즈에서 기사를 검색해 대답하는 형태의 간단한 예제를 구현해 본다. from langchain.retrievers.web_research import WebResearchRetriever from langchain.vectorstores import Chroma from langchain.embeddings import VertexAIEmbeddings from langchain.chat_models.vertexai import ChatVertexAI from langchain.utilities import Goo.. 2023. 8. 24.