생성형 AI 란?
- 생성형 인공 지능(생성형 AI)은 대화, 이야기, 이미지, 동영상, 음악 등 새로운 콘텐츠와 아이디어를 만들 수 있는 AI의 일종입니다.
LLM 이란?
LLM(대규모 언어 모델)은 텍스트의 이해와 분석을 중심으로 하는 고급 AI 기술입니다
Open API LLM 의 입력과 출력
- 입력 자연어
- Context를 토큰으로 쪼개기
- 다음에 올 토큰 고르기
- 3번을 계속 반복
- 적절한 시점에 끊기
- 자연어 출력
다음에 올 토큰 고르기
- 토큰 배열
- 입베딩 벡터 배열
- 엄청 복잡한 연산
- Context 벡터
- 다음 토큰의 확률 분포
- 다음 토큰
LLM을 학습한다는 건
- 입력 언어를 하나의 Context 벡터로 치환하는 방법을 학습.
- 토큰 별로 적절한 임베딩 벡터를 매핑한다.
- 엄청 복잡한 연산 과정에서 무수히 많은 가중치들을 업데이트
- Context 벡터를 가지고 입력 언어(context) 다음에 올 토큰의 확률 분포를 계산하는 방법을 계산한다.
- Context Vecotr 를 토큰별 확률 분포 벡터로 변경시키는 행렬을 업데이트 한다.
Chat-GPT
- Pre-Training
- 자연어를 잘 이해하고, 토큰을 잘 예측하도록 학습
- Fine-Tuning & RLHF
- LLM 이 사람의 말을 잘 따르도록 학습
- Prompting
- 누구나 쉽게 사용할 수 있도록 기본 Context 작성
Next.js page rotuer 에서 /api 호출을 이용하여 아래와 같이 작성!!
import type { NextApiRequest, NextApiResponse } from 'next';
import OpenAI from 'openai';
import type { ChatCompletionMessageParam } from 'openai/resources/index.mjs';
const openai = new OpenAI({
apiKey: process.env.NEXT_PUBLIC_OPENAI_API,
organization: process.env.NEXT_PUBLIC_ORGANIZATION_API
});
type CompletionsResponse = {
messages: ChatCompletionMessageParam[];
};
export default async function handler(
req: NextApiRequest,
res: NextApiResponse<CompletionsResponse>
) {
if (req.method !== 'POST') return res.status(405).end();
const messages = req.body.messages as ChatCompletionMessageParam[];
const response = await openai.chat.completions.create({
messages: [
{
role: 'system',
content:
'너는 toris-dev만을 위한 챗봇이야. 내가 물어보는 개발 질문에 성실하게 대답해줘.'
},
...messages
],
model: 'gpt-3.5-turbo'
});
messages.push(response.choices[0].message);
res.status(200).json({ messages });
}
'Next.js' 카테고리의 다른 글
[Next.JS] parallel routes interception 트러블 슈팅 (0) | 2024.07.09 |
---|---|
[Next.JS] routes handler 이용하여 socket.io 연결 (0) | 2024.05.03 |
[Next.JS] Next.js로 블로그 만들기 (1) | 2024.03.29 |
[엘리스 SW 스터디] Next.js 기초와 내장 컴포넌트 (1) | 2024.01.21 |
Next.js 기초!!! (1) | 2024.01.13 |