생성형 AI는 주어진 데이터를 학습하고 이를 바탕으로 새로운 콘텐츠를 만들어내는 인공지능 기술입니다. 예를 들어, 이런 AI는 사람처럼 글을 쓰거나 그림을 그릴 수 있습니다. 기본적으로 많은 데이터를 분석해 패턴을 배우고, 그 패턴을 사용해 새로운 것을 창작하는 것입니다. 그래서 질문에 대한 답변이나 창의적인 글쓰기, 이미지 생성 등 다양한 작업을 할 수 있도록 도와줍니다.
# copilot에 입력한 텍스트
# 세상에서 제일 실력있는 AI 개발자를 상상하여 그려줬으면 좋겠어.
# 한국인이고 잘생긴 얼굴로 수염이 있고 안경을 쓴 얼굴로 그려줘
1. LLM (Large Language Model)
LLM은 대형 언어 모델을 의미합니다. 이 모델은 매우 큰 데이터셋을 기반으로 학습되며, 수억에서 수조 개의 파라미터를 가지고 있습니다. 주로 딥러닝 기술을 활용하며, 자연어 처리(NLP) 작업에서 뛰어난 성능을 발휘합니다. LLM은 인간의 언어를 이해하고 생성하는 데 매우 뛰어난 능력을 보이며, 예를 들어 텍스트 생성, 번역, 질문 응답, 요약 등 다양한 작업을 처리할 수 있습니다.
예) ChatGPT, Bloom, Gemini, LLaMa, Mistral 등
2. SLM (Small Language Model)
SLM은 소형 언어 모델을 의미하며, LLM과 비교하여 상대적으로 작은 크기의 모델입니다. SLM은 적은 수의 파라미터를 가지고 있으며, 특정 작업에 대해 최적화된 모델입니다. 이런 모델은 대형 모델보다 계산 자원이 적게 들고, 빠른 속도와 적은 메모리를 요구하지만, 성능은 LLM에 비해 다소 제한적일 수 있습니다.
예) T5-Small, GPT-NeoX, ALBERT, MobileBERT 등
※ 파라미터
파라미터는 인공지능 모델이 학습하면서 조정하는 숫자들입니다. 쉽게 말해, 파라미터는 AI 모델의 "뇌의 연결 강도"와 같습니다. AI가 텍스트나 이미지를 이해하고 생성할 때, 파라미터는 어떤 단어나 개념이 서로 얼마나 관련이 있는지를 결정합니다. 예를 들어, "고양이"라는 단어가 나오면 "털", "동물", "야옹" 같은 단어들과 연결될 가능성을 파라미터들이 계산합니다. 이 숫자들은 학습 과정을 통해 조정되어 모델이 점점 더 똑똑해지게 만듭니다. 모델이 복잡할수록 더 많은 파라미터가 필요합니다. LLM 같은 대규모 모델은 수십억 개 이상의 파라미터를 가지고 있어 복잡한 질문에 대한 답변을 잘 할 수 있습니다. 반면, SLM은 더 적은 파라미터를 가지고 있어 간단한 작업에 적합합니다.
텍스트 생성형 GPT(Generative Pre-trained Transformer)는 대규모 데이터셋을 기반으로 훈련된 인공지능 모델로, 주어진 입력에 따라 자연스러운 텍스트를 생성할 수 있습니다. 이 모델은 사람의 언어를 이해하고 생성하는 능력을 바탕으로, 질문에 답하거나 글을 작성하고, 창의적인 작업을 수행하는 데 사용됩니다. GPT는 다양한 문맥을 처리할 수 있으며, 글의 흐름과 의미를 일관되게 유지하며, 다양한 주제에 대해 텍스트를 생성할 수 있는 능력을 지니고 있습니다.
1. 텍스트 생성형 GPT API
https://platform.openai.com/docs/models
2. GPT-3.5 Turbo
GPT-3.5-turbo는 한 번에 16,385개의 토큰을 기억하고 사용할 수 있으며, 최대 4,096개의 토큰을 생성할 수 있습니다. 이는 모델이 매우 긴 텍스트를 처리하거나 긴 답변을 생성할 수 있는 능력을 가지고 있다는 것을 의미합니다.
gpt-3.5-turbo-0125
The latest GPT-3.5 Turbo model with higher accuracy at responding in requested formats and a fix for a bug which caused a text encoding issue for non-English language function calls. Learn more.
|
16,385 tokens | 4,096 tokens | Up to Sep 2021 |
gpt-3.5-turbo
Currently points to gpt-3.5-turbo-0125.
|
16,385 tokens | 4,096 tokens | Up to Sep 2021 |
gpt-3.5-turbo-1106
GPT-3.5 Turbo model with improved instruction following, JSON mode, reproducible outputs, parallel function calling, and more. Learn more.
|
16,385 tokens | 4,096 tokens | Up to Sep 2021 |
gpt-3.5-turbo-instruct
Similar capabilities as GPT-3 era models. Compatible with legacy Completions endpoint and not Chat Completions.
|
4,096 tokens | 4,096 tokens | Up to Sep 2021 |
토큰은 모델이 처리하는 텍스트의 작은 단위입니다. 하나의 토큰은 단어, 부분적인 단어, 또는 심지어 공백이나 구두점일 수 있습니다. 예를 들어, "나는 학교에 간다"라는 문장은 5개의 토큰(나는, 학교, 에, 간다)으로 나눠질 수 있습니다. GPT 모델은 텍스트를 처리할 때 이 토큰들을 기반으로 학습하고, 예측을 생성합니다.
1. 토큰은 과금 단위로 사용
가격(https://openai.com/api/pricing/)
토큰 계산(https://platform.openai.com/tokenizer)
2. 토큰화
토큰화(Tokenization)는 자연어 처리(NLP)에서 텍스트를 모델이 이해할 수 있는 작은 단위인 '토큰'으로 분리하는 과정입니다. 토큰은 대개 단어, 부분 단어, 구두점, 공백 등으로 구성될 수 있습니다. 이 과정은 언어 모델이 텍스트를 효과적으로 이해하고 처리할 수 있도록 돕습니다. 토큰화 방법은 문장을 어떻게 나누느냐에 따라 다르며, 각 방법은 모델이 텍스트를 어떻게 처리할지에 큰 영향을 미칩니다.
pip install python-dotenv
pip install openai
pip install --upgrade openai
import os
import openai
from dotenv import load_dotenv
# .env 파일 로드
load_dotenv()
client = OpenAI(
api_key = os.getenv("API_KEY")
)
response = client.chat.completions.create(
model='gpt-3.5-turbo-0125',
messages=[{"role":"user", "content":"안녕하세요? 오늘 어때요?"}]
)
print(response)
print(response.choices[0].message.content)
※ .env 파일
.env 파일은 환경 변수(Environment Variables) 를 저장하는 파일로, 주로 애플리케이션의 설정 정보나 비밀 키(secret key), 데이터베이스 비밀번호 등의 중요한 정보를 코드와 분리하여 관리하기 위해 사용됩니다. 이렇게 중요한 정보를 코드 안에 하드코딩하는 대신 .env 파일에 저장하고, 이를 코드에서 읽어오는 방식으로 보안과 유연성을 높일 수 있습니다.
.env
# API 키
API_KEY=여기에 API키를 입력하세요
프롬프트 엔지니어링 (1) | 2024.11.28 |
---|---|
파이썬과 몽고DB 연동 (0) | 2024.11.22 |
MongoDb (1) | 2024.11.21 |
크롤링 (3) | 2024.11.20 |
인터넷과 웹서비스 (0) | 2024.11.18 |