Want to Become a Sponsor? Contact Us Now!🎉

LLM
Google Colab에서 LLM 무료로 실행하는 방법

Google Colab에서 LLM 무료로 실행하는 방법

Published on

Anakin AI - The Ultimate No-Code AI App Builder

큰 언어 모델을 실험해보고 싶지만 그와 함께 따라오는 막대한 비용에 걱정되는 경우, 기쁜 소식이 있습니다. Cheatsheet.md의 Grace Smith가 큰 언어 모델의 세계에 빠져들기를 원하는 기술 열정가들과 돈을 아끼려는 몇 가지 팁을 공유합니다.

Google Colab 소개

Grace가 제안하는 첫 번째 비용 절감 방법은 Google Colab을 사용하는 것입니다. Google Colab은 무료로 사용할 수 있는 클라우드 기반 Jupyter 노트북 환경입니다. Google 계정만 있으면 컴퓨터의 처리 성능에 대한 걱정없이 클라우드에서 Python 코드를 작성하고 실행할 수 있습니다. 더 나아가, Google Colab은 GPU 가속을 지원하여 큰 모델의 학습을 더 빠르고 쉽게 할 수 있습니다.

언어 모델 제공 업체 살펴보기

대부분의 사람들은 OpenAI가 큰 언어 모델의 제공 업체로 잘 알려져 있지만, Grace는 다른 선택지인 Azure OpenAI에 대한 소개를 강조합니다. 기업 사용자를 위해 특별히 설계된 Azure OpenAI는 고려할만한 훌륭한 대안을 제공합니다. 이 외에도 Hugging Face와 Fireworks AI와 같은 기타 오픈 소스 플랫폼에서 다양한 고품질 모델을 선택할 수 있습니다.

Google Colab에서 큰 모델 실행하기

Google Colab을 활용하여 큰 언어 모델을 실행하는 방법이 궁금하신가요? Grace는 아래 단계별 안내를 제공합니다:

  1. Google 계정이 없는 경우 Google 계정을 만드세요.
  2. 제공된 링크(https://colab.research.google.com/)를 방문하여 Google Colab 인터페이스에 접속하세요.
  3. "파일" 메뉴에서 "새 노트북"을 선택하여 새 Jupyter 노트북을 만드세요.
  4. 계속하기 전에 파일이 저장되도록 Google 드라이브를 마운트해야 합니다. 이 단계를 거치지 않으면 노트북 내에서 다운로드된 파일은 일시적이며 세션 간에 유지되지 않습니다. 다음 코드 스니펫을 실행하여 Google 드라이브를 마운트하세요:
from google.colab import drive
drive.mount('/content/drive')
  1. GPU 가속을 활용하려면 메뉴에서 "런타임" 옵션을 클릭하고 "런타임 유형 변경"을 선택하세요. "하드웨어 가속기"에서 "GPU"를 선택하세요. Google Colab은 15G T4 GPU에 대한 무료 액세스를 제공합니다.
  2. GPU 환경에서 작업 중인지 확인하려면 다음 코드 스니펫을 실행하세요:
import tensorflow as tf
tf.test.gpu_device_name()
! /opt/bin/nvidia-smi
  1. 이제 오픈 소스 모델을 사용할 준비가 되었습니다. Hugging Face는 광범위한 선택의 트랜스포머 기반 모델을 제공하는 인기있는 선택지입니다. HuggingFaceEmbedding 클래스에 모델 이름을 제공하면 모델 다운로드, 로딩 및 텍스트 임베딩 계산이 자동으로 처리됩니다.

Grace는 지능적인 검색 및 대규모 지식베이스 응용을 위한 Hugging Face 및 Llama 2 오픈 소스 모델을 사용하는 예제 코드 스니펫을 제공합니다. 해당 코드는 사전 훈련된 모델을 로드하고 텍스트를 인코딩하며, 지식베이스에서 유사한 정보를 검색하고 응답을 생성하는 과정을 보여줍니다.

Google Colab에서 LLM 실행하는 단계별 샘플 코드

Stable Diffusion 및 Google Flan T5 XL과 같은 LLM을 사용하는 응용 프로그램을 개발하는 경우, Google Colab의 무료 GPU의 강력함을 활용하는 단계별 접근 방식이 필요합니다. 이 가이드에서는 Flask 애플리케이션을 설정하고 이러한 모델을 통합하여 사용자 입력을 기반으로 이미지와 텍스트를 생성할 수 있는 Flask 애플리케이션을 구축하는 방법을 안내합니다. 이 과정은 Python으로 코드를 작성하고, 웹 프레임워크로 Flask를 사용하며, ngrok를 사용하여 앱을 공개적으로 접속할 수 있도록 배포합니다.

단계 1: 환경 설정

코드에 들어가기 전에, Google 계정이 있는지 확인하여 Google Colab에 액세스할 수 있는지 확인하세요. Google Colab은 브라우저를 통해 Python 코드를 작성, 실행, 공유할 수 있는 강력한 플랫폼입니다.

단계 2: Flask 애플리케이션 생성

Flask는 Python에서 가벼운 WSGI 웹 애플리케이션 프레임워크입니다. 시작하기 쉽고 간단하면서도 복잡한 애플리케이션으로 확장 가능한 설계를 제공합니다. Flask 애플리케이션 구조를 설정하여 시작하세요:

from flask import Flask, render_template, request
from flask_ngrok import run_with_ngrok
 
app = Flask(__name__)
run_with_ngrok(app)  # app 실행 시 ngrok 시작

단계 3: LLM 통합

이 프로젝트에서는 이미지 생성을 위해 Stable Diffusion, 텍스트 생성을 위해 Google Flan T5 XL 모델을 사용할 것입니다. 이 모델들은 transformers, diffusers, torch 라이브러리를 필요로 합니다.

import torch
from diffusers import StableDiffusionPipeline
from transformers import T5Tokenizer, T5ForConditionalGeneration
 
# Flan-T5-XL 모델 로드
tokenizer = T5Tokenizer.from_pretrained("google/flan-t5-xl")
model = T5ForConditionalGeneration.from_pretrained("google/flan-t5-xl").to("cuda")
 
# Stable Diffusion 모델 로드
pipe = StableDiffusionPipeline.from_pretrained(
    "runwayml/stable-diffusion-v1-5", 
    revision="fp16", 
    torch_dtype=torch.float16
).to("cuda")

단계 4: 애플리케이션 디자인

애플리케이션을 위한 기본 HTML 템플릿을 만들어보세요. 이 템플릿에는 사용자가 AI 모델에 대한 프롬프트를 입력할 수 있는 양식이 포함됩니다. 이 템플릿을 Flask 프로젝트 디렉토리의 templates 폴더에 index.html로 저장하세요.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>LLM Flask App</title>
</head>
<body>
    <form action="/submit-prompt" method="post">
        <input type="text" name="prompt-input" placeholder="프롬프트를 입력하세요">
```markdown
<button type="submit">생성</button>
</form>
</body>
</html>

단계 5: 요청 처리하기

플라스크 앱에서 요청을 처리하기 위해 라우트를 설정하세요. 사용자가 프롬프트를 제출하면 애플리케이션은 해당 프롬프트를 기반으로 이미지와 텍스트를 생성하는데 LLMs를 사용할 것입니다.

from flask import Flask, render_template, request, jsonify
from io import BytesIO
import base64
 
@app.route('/')
def index():
    return render_template('index.html')
 
@app.route('/submit-prompt', methods=['POST'])
def generate():
    prompt = request.form['prompt-input']
    
    # Stable Diffusion으로 이미지 생성
    image = pipe(prompt=prompt).images[0]
    buffered = BytesIO()
    image.save(buffered, format="PNG")
    img_str = base64.b64encode(buffered.getvalue()).decode()
    
    # Flan-T5-XL로 텍스트 생성
    input_ids = tokenizer(prompt, return_tensors="pt").input_ids.to("cuda")
    generated_output = model.generate(input_ids, max_length=512)
    generated_text = tokenizer.decode(generated_output[0], skip_special_tokens=True)
    
    return render_template('index.html', generated_image=img_str, generated_text=generated_text)

단계 6: Ngrok로 배포하기

Ngrok을 사용하면 NAT 및 방화벽 뒤의 로컬 서버를 안전한 터널을 통해 인터넷에 공개할 수 있습니다. Ngrok을 설치한 후 토큰을 사용하여 인증하세요:

!ngrok authtoken <YOUR_AUTHTOKEN_HERE>

Flask 앱을 실행하고 ngrok은 액세스하는 데 사용할 수 있는 공개 URL을 제공할 것입니다:

!python app.py

단계 7: Google Colab에서 실행하기

Google Colab에서이 전체 설정을 실행하려면 Flask 앱이 포함 된 GitHub 저장소를 복제하고 실행해야합니다. Google Colab을 사용하면 노트북에서 필요한 라이브러리를 설치하고 ngrok을 인증하고 Flask 애플리케이션을 실행할 수 있습니다.

  1. 저장소를 복제합니다:
!git clone https://github.com/yourusername/yourrepository.git
  1. 앱이 있는 디렉토리로 이동합니다:
import os
os.chdir("your repository")
  1. 필요한 Python 패키지를 설치합니다:
!pip install flask flask_ngrok torch diffusers transformers
  1. ngrok을 인증합니다:
!ngrok authtoken YOUR_NGROK_AUTHTOKEN
  1. Flask 애플리케이션을 실행하세요. 이 명령은 Flask 앱을 실행하고 ngrok이 제공하는 공개 URL을 통해 액세스 할 수 있게합니다:
!python app.py

Google Colab에서 Flask 애플리케이션을 실행하면 ngrok 공개 URL로 연결된 출력이 표시됩니다. 이 URL을 통해 Flask 애플리케이션에 어디에서나 액세스 할 수 있습니다.

단계 8: 애플리케이션과 상호 작용하기

제공된 ngrok URL로 이동하여 Flask 애플리케이션을 확인하세요. 양식에 프롬프트를 입력하고 제출하세요. 백엔드 Flask 애플리케이션은 이 입력을 사용하여 Stable Diffusion 및 Google Flan T5 XL 모델을 사용하여 이미지와 텍스트를 생성합니다. 이 결과는 동일한 페이지에 표시되어 이러한 대형 언어 모델의 기능을 보여줍니다.

단계 9: 더 탐색하기

이 프로젝트는 LLMs 및 클라우드 기반 컴퓨팅이 가능한 것의 일부만을 보여줍니다. 다른 기능을 추가하여 애플리케이션을 개선할 수 있습니다. 예를 들어 다음과 같은 추가 기능을 구현할 수 있습니다.

  • 사용자 정의 옵션: 사용자가 이미지 및 텍스트 생성에 대한 매개 변수를 지정할 수 있도록 하여 모델의 창의성 수준이나 생성할 이미지의 유형과 같은 것을 설정합니다.
  • 더 큰 부하 처리: 큐 시스템을 구현하여 여러 요청을 효율적으로 처리하여 사용자 요구에 따라 응용 프로그램을 확장할 수 있도록합니다.
  • 고급 모델 사용: 다른 모델 및 그들의 고유한 기능을 탐색합니다. 예를 들어, 의료 상담이나 법률 분석과 같은 특정 도메인에 특화된 모델을 통합할 수 있습니다.

결론

Stable Diffusion 및 Google Flan T5 XL과 같은 대형 언어 모델을 실행하고 Google Colab 및 ngrok을 사용하여 배포하는 Flask 애플리케이션을 구축하는 것은 현대 AI 기술의 접근성과 능력을 보여줍니다. 몇 가지 단계만으로 개발자는 브라우저 내에서 최첨단 모델을 활용하는 상호 작용적인 애플리케이션을 만들 수 있습니다. 이 가이드는 이러한 모델의 실용적인 응용을 강조하는 데에 그치지 않고, 산업 및 창의적인 노력을 변혁시킬 AI의 잠재력 탐색을 장려합니다.

AI 개발에 더 깊숙히 뛰어들 때, 저작권, 개인 정보 보호 및 공정성을 존중하는 내용을 생성하는 데 중요한 고려사항의 중요성을 기억하세요. AI 및 기계 학습으로의 여정은 이러한 원칙을 존중하는 혁명적이고 혁신적인 응용 프로그램을 만들기 위한 기회로 가득 차 있습니다.

Google Colab의 언어 모델과의 힘

Google Colab의 무료 클라우드 환경과 sentence-transformers 및 Llama 2 오픈 소스 모델과 같은 라이브러리를 결합하여 기술 열정가는 의미 검색 및 질의 응답 작업을 쉽게 탐색할 수 있습니다. 이 접근 방식은 귀중한 하드웨어 리소스를 절약하고 더 스마트하고 개인화된 질문-응답 시스템을 만드는 것을 가능하게합니다.

Google Colab을 사용하면 사용자는 은행을 깨지 않고도 대형 언어 모델의 가능성을 탐색할 수 있습니다. Grace는 독자들이 직접 시도해보고 더욱 흥미로운 응용 프로그램을 발견할 수 있도록 권장합니다. 의견을 남기고 성과를 공유하는 것은 자유롭습니다!

마지막으로, SolidUI의 독립적인 오픈 소스 소프트웨어 개발자이자 저자인 Grace Smith는 기술의 현장에서 AI 및 데이터 분야에 특히 열광적입니다. 이 글이 도움이 되었고 흥미로운 내용이라고 생각한다면, 그녀의 기사를 좋아하고 즐겨찾기하는 방법으로 서포트를 보여주세요.

기억하세요: 항상 호기심을 가지고 기술의 매혹적인 세계를 계속 탐구하세요!

Anakin AI - The Ultimate No-Code AI App Builder