생성 AI는 자연어, 이미지, 오디오 및 코드와 같은 원래 콘텐츠를 만들 수 있는 인공 지능의 한 유형입니다. 생성 AI의 출력은 사용자가 제공한 입력을 기반으로 합니다. 사용자가 생성 AI와 상호 작용하는 일반적인 방법 중 하나는 자연어를 입력으로 사용하는 채팅 애플리케이션을 사용하는 것입니다. OpenAI에서 개발한 ChatGPT는 이 예제의 인기 있는 예입니다. 자연어를 입력으로 사용하는 생성 AI 애플리케이션은 NLP(자연어 처리)를 수행하기 위해 LLM(대규모 언어 모델)에 의해 구동됩니다.
생성 AI의 작동 방식
모든 생성 AI는 모델을 기반으로 빌드됩니다. 이러한 모델은 자연어, 이미지, 오디오 및 코드와 같은 콘텐츠 형식의 대규모 데이터 집합으로 학습됩니다. 생성 AI 모델은 학습 데이터에서 식별된 패턴을 사용하여 통계적으로 유사한 새로운 콘텐츠를 생성합니다.
사용자가 제공한 입력은 AI 모델에서 출력을 빌드하는 데 사용됩니다. 입력은 먼저 모델에서 이해할 수 있는 데이터 형식으로 구문 분석됩니다. 그런 다음 모델은 해당 데이터를 사용하여 최종 출력을 빌드하기 위해 결합하는 학습에서 일치하는 패턴을 식별합니다. 생성 AI 모델은 고유한 콘텐츠를 생성하도록 설계되었기 때문에 동일한 입력에 대해 동일한 출력을 생성하지 않습니다.
자연어를 입력 또는 출력으로 지원하는 생성 AI 애플리케이션은 LLM을 활용하여 이를 수행합니다. LLM은 입력 텍스트를 분류하고 해당 감정을 결정하는 NLP를 수행하는 데 사용됩니다. 해당 분류 및 감정 분석은 생성 AI 모델에서 패턴을 식별하고 출력을 빌드하는 데 사용됩니다. 출력이 텍스트인 경우 LLM만 사용하여 생성할 수 있습니다. 출력이 오디오 또는 이미지인 경우 추가 모델을 사용하여 해당 형식의 출력을 생성하기 위한 데이터와 패턴을 제공합니다.
생성 AI의 일반적인 사용
생성 AI 애플리케이션은 다음 섹션에서 설명하는 다양한 잠재적 사용 사례 및 잠재적 출력을 지원합니다.
자연어 생성
일부 생성 AI 애플리케이션은 다음과 같은 자연어 출력을 생성할 수 있습니다.
- LinkedIn 프로필에 대한 전문적인 단어 요약
- 온라인 상점의 항목에 대한 풍부한 설명
- 건강한 식사에 대한 아이디어
예를 들어 사용자 입력에서 고추를 포함한 건강한 아침 식사에 대한 세 가지 아이디어를 제공하면 생성 AI 애플리케이션에서 다음 출력을 생성할 수 있습니다.
좋아, 여기에 고추를 포함하는 세 가지 건강한 아침 식사는 다음과 같습니다 :
달걀과 피망 스크램블: 피망을 잘게 썰어 팬에 넣고 약간 부드러워질 때까지 볶습니다. 그런 다음, 풀어놓은 계란을 추가하고 모든 재료를 함께 스크램블 해주세요. 영양가 있는 아침 식사를 위해 통곡물 토스트와 함께 제공합니다.
후추와 아보카도 토스트: 통곡물 빵 조각을 토스트하고 슬라이스 피망, 으깬 아보카도, 소금과 후추를 뿌립니다. 이것은 고추에서 비타민 C와 함께 아보카도에서 몇 가지 건강 한 지방을 얻을 수 있는 좋은 방법입니다.
고추를 곁들이는 아침 식사 부리토: 다진 피망, 양파, 스크램블 에그를 팬에 함께 볶습니다. 그런 다음 혼합물을 통곡물 토르티야에 숟가락으로 넣고 살사 또는 핫 소스를 얹습니다. 롤업하고 만족스럽고 영양가 있는 아침 식사를 즐기십시오.
이미지 생성
일부 생성 AI 애플리케이션은 자연어 입력에서 이미지 출력을 생성합니다. 애플리케이션 및 해당 모델에 따라 사용자는 다음을 지정할 수 있습니다.
- 이미지를 표시할 사람 또는 항목
- 이미지를 만드는 예술적 스타일
- 유사한 이미지를 생성하기 위한 참조
이미지 생성은 온라인 계정용 가상 아바타를 만들거나, 비즈니스용 로고를 디자인하거나, 제작자에게 예술적 영감을 제공할 수 있습니다. 예를 들어 사용자가 요청을 입력할 수 있습니다. 햄버거를 먹는 코끼리의 이미지를 만듭니다. 생성 AI 애플리케이션은 다음과 같은 출력을 생성할 수 있습니다.
오디오 생성
일부 생성 AI 애플리케이션은 자연어 입력에서 오디오 출력을 생성합니다. 애플리케이션 및 해당 모델에 따라 사용자는 다음을 수행할 수 있습니다.
- 입력 텍스트에서 자연스러운 소리 음성 합성
- 특정 스타일로 음악을 만들거나 특정 악기를 특징으로 합니다.
- 자연어로 제공된 설정된 조건에 따라 입력 오디오 파일 수정
오디오 생성은 디지털 음성 도우미의 음성 응답을 제공하거나, 음악 제작을 위해 노래에 지원 악기를 추가하거나, 참조 녹음에서 사용자의 원래 음성을 재현할 수 있습니다.
코드 생성
일부 생성 AI 애플리케이션은 자연어 입력에서 코드를 생성합니다. 애플리케이션 및 해당 모델에 따라 사용자는 다음 코드를 생성할 수 있습니다.
- 그들이 선택한 언어로
- 특정 입력 및 출력 구조를 허용합니다.
- 참조 설명서에 따라 특정 기술 사용
코드 생성은 데이터 정렬 또는 필터링과 같은 일반적인 작업의 빠른 구현을 제공하거나, 코드를 한 언어에서 다른 언어로 빠르게 변환하거나, 지정된 참조 설명서를 기반으로 기술에 대한 질문에 답변할 수 있습니다. 예를 들어 "C#으로 tic-tac-toe 게임을 코딩하는 방법 표시" 입력이 제공되면 생성 AI 애플리케이션에서 다음 출력을 생성할 수 있습니다.
다음은 C#에서 tic-tac-toe 게임을 코딩하는 방법의 간단한 예입니다.
using System;
namespace TicTacToe
{
class Program
{
static char[] board = { '1', '2', '3', '4', '5', '6', '7', '8', '9' };
static int player = 1; // Player 1 will start
static int choice; // The number the player chooses
static int flag = 0; // Set the flag value to 0
// Check if the position is already marked or not
private static int CheckPosition(char mark)
{
for (int i = 0; i < 9; i++)
{
if (board[i] == mark)
{
return 1;
}
}
return 0;
}
// The rest of the generated code has been omitted for brevity
// ...
}
}
이 코드는 C#에서 간단한 콘솔 기반 tic-tac-toe 게임을 만듭니다. 1차원 배열을 사용하여 보드를 나타내고 각 이동 후 승리 또는 무승부를 확인합니다.
LLM 작동 방식
LLM을 학습할 때 학습 텍스트는 먼저 토큰으로 세분화 됩니다. 각 토큰은 고유한 텍스트 값을 식별합니다. 토큰은 고유한 단어, 부분 단어 또는 단어와 문장 부호의 조합일 수 있습니다. 각 토큰에는 ID가 할당되어 텍스트를 토큰 ID 시퀀스로 나타낼 수 있습니다.
텍스트가 토큰으로 세분화된 후 포함이라고 하는 상황별 벡터가 각 토큰에 할당됩니다. 이러한 포함 벡터는 토큰 벡터의 각 요소가 토큰의 의미 체계 특성을 나타내는 다중값 숫자 데이터입니다. 토큰 벡터의 요소는 토큰이 함께 또는 유사한 컨텍스트에서 사용되는 빈도에 따라 결정됩니다.
목표는 이전 토큰을 기반으로 시퀀스에서 다음 토큰을 예측하는 것입니다. 가중치는 다음 토큰에 대한 상대적 영향을 나타내는 기존 시퀀스의 각 토큰에 할당됩니다. 그런 다음 이전 토큰의 가중치와 포함을 사용하여 다음 벡터 값을 예측하는 계산이 수행됩니다. 그런 다음, 모델은 가장 가능성이 큰 토큰을 선택하여 예측된 벡터에 따라 시퀀스를 계속합니다.
이 프로세스는 시퀀스의 각 토큰에 대해 반복적으로 계속되며 출력 시퀀스는 다음 반복에 대한 입력으로 회귀적으로 사용됩니다. 출력은 한 번에 하나의 토큰으로 빌드됩니다. 이 전략은 자동 완성이 작동하는 방식과 유사합니다. 여기서 제안은 지금까지 입력된 내용을 기반으로 하고 각 새 입력으로 업데이트됩니다.
학습 중에는 전체 토큰 시퀀스가 알려져 있지만 현재 고려 중인 토큰 이후에 오는 모든 토큰은 무시됩니다. 다음 토큰의 벡터에 대해 예측된 값이 실제 값과 비교되고 손실이 계산됩니다. 그런 다음, 손실을 줄이고 모델을 개선하기 위해 가중치를 증분 방식으로 조정합니다.
관련 콘텐츠
.NET