[Python] GPU로 AI 모델을 구동하기 위한 PyTorch + CUDA + cuDNN 설정 방법 [03]
[Python] LangChain으로 Llama3 언어 모델 구동해보기 [02][Python] 메타의 대규모 AI 언어모델 Llama3 설치 및 사용방법 [01]메타에서 AI기술의 발전을 가속화 할 수 있도록 대규모 언어 모델(LLM)을 오픈소스로
dev-drive.tistory.com
허깅페이스란?
현재 가장 유명한 인공지능 플랫폼으로 자연어 처리를 위한 Transformer 라이브러리와
데이터 처리를 위한 Datasets 라이브러리, 데이터를 토큰화 시키는 Tokenizers 라이브러리 등
AI모델 처리를 위한 다양한 편의 기능을 제공하고 Hub를 통해 모델을 호스팅하거나 공유할 수 있는 플랫폼입니다.
🔹 허깅페이스 둘러보기
Models - Hugging Face
huggingface.co
허깅페이스 사이트에 접속해 모델 카데고리를 살펴보면
텍스트로 이미지를 생성하는 Text-to-Image,
사람의 얼굴이나 객체를 찾는 Object Detection,
이미지를 보고 어떤 것인지 분류하는 Image Classification 등
현재 존재하는 AI 기술에 대한 모델들이 대부분 오픈소스로 올라와 있습니다.
(물론 오픈소스이지만 상업적 사용은 제한된 모델들도 존재합니다)
그 중 라마 같은 언어 모델을 허깅페이스에서는 Text Generation이라고 표현하는데,
들어가서 살펴보면 오픈소스 언어모델 중에는 라마가 리더보드 점수도 높은 편이고 상위권에 위치하고 있습니다.
하지만 이번에는 라마 대신 Qwen2 언어모델로 테스트해보겠습니다.
Qwen/Qwen2-72B-Instruct · Hugging Face
Qwen2-72B-Instruct Introduction Qwen2 is the new series of Qwen large language models. For Qwen2, we release a number of base language models and instruction-tuned language models ranging from 0.5 to 72 billion parameters, including a Mixture-of-Experts mo
huggingface.co
Qwen2 모델 페이지에서 우측에 있는 Use this model을 클릭하고 사용할 라이브러리를 클릭하면
모델의 사용 방법을 확인할 수 있습니다.
여기서 pipeline은 AutoTokenizer를 포함하고 있는 방식이고
모델을 조금 더 세부적으로 제어하고 싶을 때 아래에 있는 AutoTokenizer 방식을 사용합니다.
🔹 Qwen2 7B모델 테스트
from transformers import pipeline
messages = [
{"role": "user", "content": "AI언어모델에 대해 알려줘"},
]
pipe = pipeline("text-generation", model="Qwen/Qwen2-7B-Instruct", max_length=1024)
print(pipe(messages))
(72B모델은 다운로드가 너무 오래걸려서 저는 7B 모델로 테스트했습니다)
간단하게 위와 같이 테스트코드를 작성해 실행해보면 모델이 없는 경우 자동으로 다운로드까지
진행되며 아래와 같은 내용이 출력됩니다.
※ 허깅페이스에서 다운 받은 모델은 아래의 경로에 저장되니 사용하지 않는 모델은 해당 경로에서 제거하면 됩니다.
C:\Users\<사용자명>\.cache\huggingface\
마지막으로 GPU를 사용하여 Text to Image 모델을 테스트해보겠습니다.
전통적으로 유명한 Text to Image 모델인 Stable Diffusion으로 테스트를 진행하겠습니다.
🔹 Text to Image (Stable Diffusion) 모델 테스트
from diffusers import StableDiffusionPipeline
import torch
model_id = "runwayml/stable-diffusion-v1-5"
pipe = StableDiffusionPipeline.from_pretrained(
model_id,
torch_dtype=torch.float16,
safety_checker=None
).to("cuda")
prompt = "A busy city street during rush hour, with cars, pedestrians, and tall buildings on both sides under a clear blue sky."
image = pipe(prompt).images[0]
image.save("test.png")
사용하는 GPU에 따라서 이미지가 생성되지 않거나 하는 버그가 있을 수 있는데,
실행 시 오류가 발생하거나 이미지가 깨지면 일부 옵션을 수정해보세요.
아래는 입력한 프롬프트로 생성된 이미지입니다.
Spaces - Hugging Face
Running on CPU Upgrade
huggingface.co
허깅페이스 Spaces에 가면 다른 사람들이 구현해 놓은 서비스를 체험해 볼 수 있으니
다양한 모델들을 체험해보고 자신만의 서비스를 구현해보시길 바랍니다😀
'파이썬' 카테고리의 다른 글
[Python] GPU로 AI 모델을 구동하기 위한 PyTorch + CUDA + cuDNN 설정 방법 [03] (0) | 2024.07.29 |
---|---|
[Python] LangChain으로 Llama3.1 언어 모델 구동해보기 [02] (2) | 2024.06.27 |
[Python] 메타의 대규모 AI 언어모델 Llama3.1 설치 및 사용방법 [01] (0) | 2024.06.27 |
댓글