개념글 모음

[링크가 안되서 그냥 본문 자체를 끌어올림했습니다.]



안녕하세요. 

언어모델에 대해 처음 공부를 시작하려거나, 비전공자 혹은 컴알못 분들이
조금이라도 더 효율적으로 언어모델과 관련된 내용들을 쉽게 익히는 것을 목적으로

언어모델에 관련된 용어집을 만들어보고자 합니다.

저도 아직 초보라서 많이 아는 것이 없지만
댓글이나 추가/수정이 필요한 내용이나 분류 상의 수정이 필요한 부분이 있다면 적어주시면 좋을 것 같습니다. 본문은 계속해서 (제 공부와 맞춰) 수정 및 업데이트 될 예정입니다.


[24.04.06]
오늘은 본문은 대략 느낌을 전달하기 위해서 거칠게 분류한 카테고리와 용어들을 예시로 배치하였습니다. 용어의 카테고리 구체화 및 추가되어야 할 용어들 적어주시면 확인 후 반영하겠습니다.


[24.04.12]

처음에 나열했던 단어들을 1차적으로 정리해보았습니다.

수정이 필요한 부분 알려주시거나

추가해야 될 자주 쓰이는 용어 있다면 댓글로 부탁드립니다.


[대규모 언어 모델 (LLM)과 관련된 용어 모음집]


1. LLM, LLM 학습과 관련된 용어들


LLM
Large Langauge Model(거대 언어모델)의 약자.


파라미터(Parameter)

머신러닝 모델에서 학습을 통해 최적화되는 변수로, 모델의 예측 결과에 영향을 미치는 값입니다.


하이퍼파라미터(HyperParameter)

모델 학습 과정을 제어하는 사용자 지정 변수로, 학습률, 배치 크기, 에포크 수 등이 있습니다. 최적의 모델 성능을 위해 조정됩니다.


온도(Temperature) 

언어 모델에서 생성된 단어의 다양성을 조절하는 하이퍼파라미터입니다. 온도가 높을수록 다양하고 창의적인 출력을, 낮을수록 안정적이고 일관된 출력을 생성합니다.


TOP-P / TOP-K 

언어 모델의 출력을 제어하는 기법입니다. TOP-P는 누적 확률이 P가 되는 상위 단어들 중에서, TOP-K는 확률이 높은 상위 K개의 단어 중에서 선택합니다.


패널티(Penalty) 

모델 학습 시 특정 행동이나 예측에 대해 불이익을 주는 것으로, 규제(regularization)의 한 형태입니다.


RAG(Retrieval-Augmented Generation)

질의에 관련된 문서를 검색하여 언어 모델의 생성 성능을 향상시키는 기법입니다.


PPO(Proximal Policy Optimization)

강화학습에서 사용되는 정책 최적화 알고리즘으로, 기존 정책과 새로운 정책 사이의 차이를 제한하고, 클리핑과 Advantage 추정을 사용하여 안정적이고 효과적인 학습을 가능하게 합니다. 연속적/이산적 행동 공간에 적용 가능하며, 구현이 간단하고 하이퍼파라미터 튜닝에 덜 민감하다.



DPO(Direct Preference Optimization) 
PPO(Proximal Policy Optimization)의 학습 불안정성을 개선해, 선호-비선호 데이터셋을 준비해 보상 함수 없이 모델을 선호하는 데이터셋의 방향으로 바로 업데이트하는 강화학습 방법론.


RLHF(Reinforcement Learning with Human Feedback)
사람의 피드백을 통해 AI를 강화학습 훈련시키는 방법론입니다.


DeepSpeed

대규모 딥러닝 모델의 학습을 가속화하고 최적화하는 오픈소스 라이브러리입니다.


NLP(Natural Language Processing) 

컴퓨터를 사용하여 인간의 언어를 이해, 해석 및 생성하는 인공지능의 한 분야입니다.


파인 튜닝(Fine-tuning) 
사전 학습된 모델을 특정 작업에 맞게 추가적으로 학습시키는 과정으로, 모델의 성능을 향상시킵니다.


딥러닝(Deep Learning) 
인공신경망을 사용하여 데이터의 복잡한 패턴을 학습하는 기계학습의 한 분야로, 이미지 인식, 자연어 처리 등 다양한 영역에서 활용됩니다.


학습(Training) 
머신러닝 모델이 데이터를 통해 패턴을 인식하고 최적의 파라미터를 찾아가는 과정입니다.


추론(Inference) 
학습된 모델을 사용하여 새로운 데이터에 대한 예측을 수행하는 과정입니다.


가중치(Weight) 
신경망에서 입력 데이터와 곱해지는 값으로, 해당 입력의 중요도를 나타냅니다.


편향(Bias) 
신경망의 각 뉴런에 더해지는 상수 값으로, 뉴런의 활성화 임계값을 조정하는 역할을 합니다.


ReLU(Rectified Linear Unit) 
입력이 0보다 크면 입력 값을 그대로 출력하고, 0 이하면 0을 출력하는 활성화 함수입니다. 신경망에서 비선형성을 도입하는 데 사용됩니다.


소프트맥스(SoftMax) 
다중 클래스 분류 문제에서 사용되는 활성화 함수로, 출력 값을 확률 분포로 변환합니다. 이를 통해 각 클래스에 속할 확률을 계산할 수 있습니다.


크로스 엔트로피(Cross-Entropy) 
분류 문제에서 모델의 예측 값과 실제 값 사이의 차이를 측정하는 손실 함수입니다. 모델의 예측이 실제 값과 얼마나 다른지를 나타내며, 이를 최소화하는 방향으로 모델을 학습시킵니다.


과적합(Overfitting) 
모델이 학습 데이터에 지나치게 맞추어져 새로운 데이터에 대한 일반화 성능이 떨어지는 현상입니다. 모델이 학습 데이터의 노이즈까지 학습하게 되어 발생합니다.


과소적합(Underfitting) 
모델이 학습 데이터의 패턴을 충분히 학습하지 못해 학습 데이터와 새로운 데이터 모두에 대해 성능이 좋지 않은 현상입니다. 모델의 용량이 부족하거나 학습이 불충분할 때 발생합니다.


차원의 저주(Curse of Dimensionality) 
데이터의 차원(특성의 수)이 증가할수록 데이터 공간이 기하급수적으로 커져 모델 학습에 필요한 데이터량이 급격히 증가하는 현상입니다. 이로 인해 모델의 성능이 저하될 수 있습니다.


그래디언트 소멸/폭발(Vanishing/Exploding Gradient) 
신경망의 깊이가 깊어질수록 역전파 과정에서 그래디언트가 점차 작아지거나(소멸) 커지는(폭발) 문제입니다. 이로 인해 모델의 학습이 어려워질 수 있습니다. 이를 해결하기 위해 ReLU, 배치 정규화, 잔차 연결 등의 기법이 사용됩니다.


텐서플로우(TensorFlow) 

구글에서 개발한 오픈소스 머신러닝 라이브러리로, 데이터 플로우 그래프를 사용하여 수치 연산을 수행합니다. 딥러닝 모델을 설계, 훈련, 배포하는 데 널리 사용됩니다.


Transformer 

"Attention is All You Need" 논문에서 제안된 모델로, RNN을 사용하지 않고 어텐션 메커니즘만을 이용하여 높은 성능을 달성한 NLP 모델입니다. 인코더와 디코더 구조로 되어 있으며, 번역, 요약, 질문 응답 등 다양한 자연어 처리 작업에 사용됩니다.


Vector 

수학에서, 벡터는 크기와 방향을 가진 양입니다. 컴퓨터 과학에서는 데이터의 배열 또는 리스트를 의미하며, 딥러닝에서는 특성(feature)을 나타내는데 사용됩니다.


Matrix 

행렬은 수 또는 기타 기호들을 직사각형 격자로 배열한 것입니다. 딥러닝에서는 데이터를 표현하거나, 신경망의 가중치를 저장하는 데 사용됩니다.


CNN (Convolutional Neural Network) 

이미지 인식, 비디오 분석, 이미지 분류 등의 컴퓨터 비전 작업에 주로 사용되는 딥러닝 모델입니다. 합성곱 계층(convolutional layers)과 풀링 계층(pooling layers)을 통해 이미지의 특징을 추출합니다.


Encoder 

인코더는 입력 데이터를 고정된 크기의 벡터로 변환하는 구조입니다. Transformer 모델에서는 입력 시퀀스를 처리하여 컨텍스트를 이해하는 데 사용됩니다.


Decoder 

디코더는 인코더에서 처리된 정보를 바탕으로 최종 출력을 생성하는 구조입니다. Transformer 모델에서는 인코더로부터의 출력을 받아 번역, 요약 등의 작업을 수행합니다.


Embedding 

단어, 문장 등의 자연어를 컴퓨터가 이해할 수 있는 벡터 형태로 변환하는 과정입니다. 단어 임베딩(word embedding)은 자연어 처리에서 중요한 기술 중 하나입니다.


MultiModal

멀티모달은 여러 종류의 데이터(텍스트, 이미지, 소리 등)를 처리할 수 있는 모델을 의미합니다. 이를 통해 다양한 형태의 입력으로부터 정보를 추출하고 학습할 수 있습니다.


CLIP

OpenAI가 개발한 멀티모달 모델로, 이미지와 텍스트를 동시에 이해할 수 있습니다. 이미지와 관련된 텍스트를 연결하는 능력을 통해 다양한 비전과 언어 작업에서 뛰어난 성능을 보입니다.


LLaMA

Facebook에서 개발한 대규모 언어 모델로, 다양한 자연어 처리 작업에 사용됩니다. GPT와 유사한 구조를 가지며, 효율적인 학습과 높은 성능을 목표로 합니다.



GPT (Generative Pre-trained Transformer) 

OpenAI에 의해 개발된 자연어 처리를 위한 대규모 변형 모델입니다. 사전 학습된 지식을 바탕으로 텍스트 생성, 번역, 요약 등 다양한 작업을 수행할 수 있습니다.


Claude

Anthropic에서 개발한 대화형 AI 모델로, 자연어 이해와 생성에 초점을 맞추고 있습니다. 사용자와의 상호작용을 통해 정보를 제공하거나 대화를 진행할 수 있습니다. 이러한 용어들은 딥러닝과 자연어 처리 기술의 발전을 대표하는 중요한 개념들입니다.


BERT


BART


Chain of Thought


2. LLM과 관련된 프로그래밍, 소프트웨어와 관련된 용어

Python 

파이썬은 초보자부터 전문가까지 널리 사용되는 프로그래밍 언어입니다. 그 이유는 문법이 간결하고 읽기 쉬우며, 다양한 분야에서 활용될 수 있는 라이브러리와 프레임워크가 풍부하기 때문입니다. 특히 머신러닝과 데이터 과학 분야에서 많이 사용됩니다.


Anaconda 

아나콘다는 데이터 과학과 머신러닝을 위한 파이썬과 R 언어의 배포판입니다. 다양한 라이브러리와 도구들을 포함하고 있어, 복잡한 설치 과정 없이 필요한 환경을 쉽게 구축할 수 있습니다. 


Pandas

판다스는 파이썬에서 데이터 분석을 위해 사용되는 라이브러리입니다. 테이블 형태의 데이터를 쉽게 조작하고 분석할 수 있는 다양한 기능을 제공합니다. Linux 리눅스는 오픈소스 운영 체제로, 서버와 클라우드 환경에서 널리 사용됩니다. 개발자들 사이에서는 안정성과 유연성 때문에 선호되며, 머신러닝 개발 환경을 구축하는 데에도 자주 사용됩니다.


Numpy 

넘파이는 파이썬에서 과학 계산을 위해 사용되는 핵심 라이브러리입니다. 다차원 배열을 효율적으로 처리할 수 있으며, 수학적 연산을 위한 다양한 함수를 제공합니다. 


Pytorch

파이토치는 페이스북에서 개발한 오픈소스 머신러닝 라이브러리입니다. 동적 계산 그래프를 지원하여, 딥러닝 모델을 유연하게 설계하고 빠르게 실험할 수 있습니다. 


Anaconda

데이터 과학, 머신러닝, 대규모 데이터 처리를 위한 파이썬과 R의 배포판입니다. 다양한 과학 계산 및 데이터 분석 라이브러리를 포함하고 있으며, 특히 LLM과 같은 머신러닝 모델을 개발하고 실험하는 데 유용한 환경을 제공합니다. Anaconda를 통해 LLM 관련 라이브러리와 도구들을 쉽게 설치하고 관리할 수 있습니다.


Github

깃허브는 소프트웨어 개발 프로젝트를 위한 버전 관리 및 협업 플랫폼입니다. 코드를 저장하고 관리할 수 있으며, 전 세계의 개발자들과 함께 프로젝트를 진행할 수 있습니다. 


HuggingFace

허깅페이스는 자연어 처리를 위한 다양한 사전 훈련된 모델과 도구를 제공하는 플랫폼입니다. GPT, BERT 등의 모델을 쉽게 사용할 수 있어, 자연어 처리 프로젝트에 널리 활용됩니다. 



cpp C++
은 고성능을 요구하는 소프트웨어 개발에 널리 사용되는 프로그래밍 언어입니다. 시스템 프로그래밍, 게임 개발, 실시간 처리 등 다양한 분야에서 사용됩니다. WSL2 Windows Subsystem for Linux 2는 윈도우에서 리눅스 바이너리를 네이티브로 실행할 수 있게 해주는 기능입니다. 윈도우에서 리눅스 개발 환경을 구축하고 싶은 개발자들에게 유용합니다. 


VSCode Visual Studio Code

마이크로소프트에서 개발한 소스 코드 편집기입니다. 다양한 프로그래밍 언어를 지원하며, 확장 프로그램을 통해 기능을 추가할 수 있습니다. 


CUDA

CUDA는 엔비디아에서 개발한 병렬 컴퓨팅 플랫폼 및 프로그래밍 모델입니다. GPU를 사용하여 고성능 컴퓨팅 작업을 처리할 수 있게 해줍니다. 


CUDNN 

cuDNN은 CUDA 위에 구축된 딥러닝 GPU 가속 라이브러리입니다. 딥러닝 프레임워크의 성능을 향상시키기 위해 최적화된 함수들을 제공합니다. VM 가상 머신은 물리적 하드웨어 위에 가상의 컴퓨터 시스템을 생성하는 소프트웨어입니다. 다양한 운영 체제를 동시에 실행할 수 있게 해주며, 개발 및 테스트 환경을 구축하는 데 유용합니다. 


Runpod

Runpod는 클라우드 기반의 가상 머신을 제공하는 서비스입니다. 사용자는 웹 브라우저를 통해 가상 머신에 접속하여, 개발 환경을 구축하고 사용할 수 있습니다. 


Colab

구글 코랩은 브라우저에서 파이썬 코드를 작성하고 실행할 수 있는 무료 Jupyter 노트북 환경입니다. GPU와 TPU를 무료로 사용할 수 있어, 머신러닝과 데이터 분석 프로젝트에 널리 사용됩니다. 이러한 용어들은 머신러닝 및 딥러닝 개발에 필요한 다양한 도구와 기술을 대표합니다. 초보자들은 이러한 도구들을 이해하고 사용함으로써, 머신러닝 프로젝트를 더 효율적으로 진행할 수 있습니다.


3. LLM과 관련된 하드웨어, 컴퓨터 기기 등과 관련된 용어

LLM(Large Language Model) 학습은 대규모 언어 모델을 훈련하는 과정으로, 이를 위해 고성능 컴퓨팅 리소스가 필요합니다. 여기서 언급된 용어들은 LLM 학습에 있어 중요한 역할을 하는 하드웨어 구성 요소들입니다. 


CPU (Central Processing Unit) 

CPU는 컴퓨터의 두뇌로, 모든 종류의 계산을 처리합니다. LLM 학습에서 CPU는 데이터 전처리, 학습 파이프라인의 조정, 그리고 일부 학습 작업을 수행하는 데 사용됩니다. 그러나 LLM 학습은 대부분 GPU에 의존하기 때문에 CPU는 보조적인 역할을 하게 됩니다 


RAM (Random Access Memory) 

RAM은 컴퓨터의 주 메모리로, 현재 실행 중인 프로세스와 데이터를 일시적으로 저장합니다. LLM 학습에서는 대량의 데이터와 모델 파라미터를 빠르게 읽고 쓰는 데 필요하므로, 충분한 RAM 용량이 중요합니다 


HDD (Hard Disk Drive) & SSD (Solid State Drive) 

HDD와 SSD는 컴퓨터의 저장 장치입니다. SSD는 HDD보다 빠른 읽기 및 쓰기 속도를 제공하기 때문에 LLM 학습에서 선호됩니다. 학습 데이터셋이나 모델의 가중치를 저장하는 데 사용되며, SSD는 특히 학습 애플리케이션이 디스크에 읽기 및 쓰기를 수행할 때 성능 향상에 기여합니다


GPU (Graphics Processing Unit) 

GPU는 병렬 처리에 최적화된 프로세서로, LLM 학습에서 핵심적인 역할을 합니다. GPU는 많은 양의 매트릭스 연산과 복잡한 계산을 빠르게 처리할 수 있어, LLM의 대규모 신경망을 효율적으로 훈련할 수 있게 해줍니다


Nvidia, AMD, Intel 

이들은 GPU 및 CPU를 제조하는 주요 기업들입니다. Nvidia는 특히 GPU 분야에서 강세를 보이며, LLM 학습에 널리 사용되는 GPU를 제공합니다. AMD와 Intel도 각각 GPU와 CPU 시장에서 경쟁력을 가지고 있으며, LLM 학습에 사용되는 하드웨어를 생산합니다 


NVLINK 

NVLINK는 Nvidia가 개발한 고대역폭 통신 인터페이스로, 여러 GPU 간의 데이터 전송 속도를 향상시킵니다. LLM 학습에서는 여러 GPU를 사용하여 분산 학습을 수행할 때 NVLINK를 통해 GPU 간 효율적인 통신을 가능하게 하여 학습 속도를 높일 수 있습니다. 


4. LLM 학습 및 추론 프로그램


Text Generation WebUI 

Gradio 기반의 인터페이스로, LLaMA, llama.cpp, GPT-J, Pythia, OPT, GALACTICA와 같은 대규모 언어 모델을 로컬에서 실행할 수 있게 해주는 웹 사용자 인터페이스(UI)입니다. 사용자는 이 UI를 통해 모델을 다운로드하고, 질문을 하거나 텍스트를 생성하는 등의 상호작용을 할 수 있습니다. 


UnslothAI

대규모 언어 모델(LLMs)의 미세 조정(fine-tuning)을 가속화하는 기술을 내장하여 LLMs를 더 빠르게 미세 조정할 수 있게 해주며, 이는 특히 자연어 처리 분야에서의 모델 개발과 배포에 유용합니다.


Aphrodite-engine

PygmalionAI가 개발한 오픈소스 대규모 추론 엔진으로, 대규모 언어 모델을 효율적으로 실행할 수 있도록 설계되었습니다. 이 엔진은 GPU의 VRAM을 90%까지 사용하며, 다양한 양자화 모델을 지원하고, 분산 추론을 가능하게 합니다. 또한, 사용자가 로컬에서 API 서버를 실행하여 병렬 요청을 보내고 처리할 수 있게 해줍니다. 


Ollama 

LLM 모델을 로컬 환경에서 쉽게 실행할 수 있도록 해주는 프레임워크입니다. 이 프레임워크는 다양한 모델을 지원하며, 사용자가 명령어를 통해 모델을 실행하고 관리할 수 있게 해줍니다. Ollama는 라즈베리 파이와 같은 저전력 장치에서도 LLM 서버를 구성할 수 있게 해주며, NVIDIA GPU가 있는 경우 GPU를 활용할 수 있습니다. 


LM Studio

로컬에서 LLM을 찾고, 다운로드하고, 실행할 수 있게 해주는 도구입니다. 이 도구는 맥, 윈도우, 리눅스(베타)에서 사용할 수 있으며, 내장 채팅 UI 또는 OpenAI 호환 로컬 서버를 통해 모델을 사용할 수 있습니다. LM Studio는 개인정보 보호를 중시하며, 사용자의 데이터를 로컬에만 저장합니다. 


Axolotl

대규모 언어 모델의 미세 조정(fine-tuning) 과정을 최적화하고 향상시키기 위한 다양한 기능과 개선 사항을 제공합니다. Triton Kernels 최적화, Adapter/LoRA 처리 개선, 데이터셋 샘플링 가중치 추가, 데이터셋 슬라이싱 및 최대 샘플 지정이 가능한 특징이 있습니다.