Large language model
(이해할 수 있는 규칙 생성을 기반으로 하는 기계 학습 방법은 Logic learning machine 항목 참조)
대형 언어 모델(Large language model, LLM) 또는 거대 언어 모델은 수많은 파라미터(보통 수십억 웨이트 이상)를 보유한 인공 신경망으로 구성되는 언어 모델이다. 자기 지도 학습이나 반자기지도학습을 사용하여 레이블링되지 않은 상당한 양의 텍스트로 훈련된다. LLM은 2018년 즈음에 모습을 드러냈으며 다양한 작업을 위해 수행된다. 이전의 특정 작업의 특수한 지도 학습 모델의 훈련 패러다임에서 벗어나 자연어 처리 연구로 초점이 옮겨졌다.
대규모 언어 모델(LLM) 은 AI 챗봇 기술을 가능하게 하는 요소이며 많은 화제를 불러일으키고 있는 주제 중 하나다. 대규모 언어 모델(LLM)의 작동 방식은 크게 3가지로 나뉘고 있다. 토큰화, 트랜스포머 모델, 프롬프트 등. 토큰화는 자연어 처리의 일부로 일반 인간 언어를 저수준 기계 시스템(LLMS)가 이해할 수 있는 시퀀스로 변환하는 작업을 말하며 여기에는 섹션에 숫자 값을 할당하고 빠른 분석을 위해 인코딩하는 작업이 수반된다. 이는 음성학의 AI 버전과 같으며 토큰화의 목적은 인공지능이 문장의 구조를 예측하기 위한 학습 가이드 또는 공식과 같은 컨텍스트 백터를 생성하는 것이 목적. 언어를 더 많이 연구하고 문장이 어떻게 구성되는지 이해할수록 특정 유형의 문장에서 다음 언어에 대한 예측이 더 정확 해진다. 이로 인해 온라인에서 사람들이 사용하는 다양한 커뮤니케이션 스타일을 재현하는 모델을 개발할 수 있다.
트랜스포머 모델은 순차적 데이터를 검사하여 어떤 단어가 서로 뒤따를 가능성이 높은지 관련 패턴을 식별하는 신경망의 일종으로 각각 다른 분석을 수행하여 어떤 단어가 호환되는지 결정하는 계층으로 구성된다. 이러한 모델은 언어를 학습하지 않고 알고리즘에 의존하여 사람이 쓴 단어를 이해하고 예를들어, 힙스터 커피 블로그를 제공함으로써 커피에 대한 표준 글을 작성하도록 학습 시킨다. 이 트랜스포머 모델이 대규모 언어 모델 LLM 언어 생성의 기초.
프롬프트는 개발자가 정보를 분석하고 토큰화하기 위해 대규모 언어 모델 LLM에 제공하는 정보로 프롬프트는 기본적으로 다양한 사용 사례에서 LLM에 도움이 되는 학습 데이터 입니다. 더 정확한 프롬프트를 받을수록 LLM은 다음 단어를 더 잘 예측하고 정확한 문장을 구성할 수 있습니다. 따라서 딥러닝 AI의 적절한 학습을 위해서는 적절한 프롬프트를 선택하는 것이 중요하다.
Categories
- 인공 일반 지능 (Artificial general intelligence; AGI)
- Language model - 상위 분류인 언어 모델 (LM)
- Intelligent agent (AI Agent)
- Generative Pre-trained Transformer#Store - GPTs 스토어의 분야별 추천 모델 모음
- Artificial intelligence#Projects - AI 관련 온라인 도구들 추천 모음
- Retrieval-Augmented Generation (RAG; 검색 증강 생성) - 데이터를 대규모 언어 모델(LLM)의 컨텍스트로 가져와 관련성을 개선하는 아키텍처 접근 방식
- Groundedness Check - LLM이 생성한 답변의 신뢰도를 체킹 (LLM의 환각 현상 해결을 위함)
- LLaMA - Meta가 공개한 65b 파라미터 LLM
- 아직도 '랭체인'을 모른다고 해서 5분 설명해드림 - YouTube - 노마드 코더 Nomad Coders
- ChatGPT 플러스 결제를 중단하는 이유? - YouTube - 노마드 코더 Nomad Coders
한국어 오픈소스 LLM
- NomaDamas/awesome-korean-llm: Awesome list of Korean Large Language Models - 한국어 오픈소스 LLM 정보를 모아놓은 awesome list입니다.
- rtzr/Awesome-Korean-Speech-Recognition: 한국어 음성인식 STT API 리스트. 각 성능 벤치마크. - Awesome 한국어 음성인식
- 한국어 음성인식을 사용해볼 수 있는 개발자 사이트의 API로 AI-Hub에서 공개한 다양한 테스트셋의 에러율(Character Error Rate) 을 음성인식 API별로 측정한 리포지토리입니다. 본 리포지토리는 다음과 같은 내용을 다루고 있습니다.
- 본 프로젝트는 다양한 음성인식 API들의 성능을 객관적으로 평가하기 위해 공개되었습니다. 현재 시장에서 제공되는 다양한 음성인식 서비스의 성능 차이를 분석하고, 이를 통해 사용자와 개발자에게 더 나은 접근성을 제공하고자 합니다.
모든 LLM 개발자가 알아야 하는 숫자
LLM을 사용할 때 중요한 숫자에 대한 정리.
- "간결하게"를 프롬프트에 넣으면 비용을 40~90% 절약 가능.
- GPT-4에 비해 GPT-3.5 Turbo는 가격이 50배 저렴함.
- 벡터 검색을 위해 OpenAI 임베딩을 사용하면 GPT-3.5 Turbo보다 20배 저렴함.
- LLaMa급 LLM을 교육하는 데에는 백만 달러(약 13억 원)가 들어감.
- GPU별 메모리 크기 - V100: 16GB, A10G: 24GB, A100: 40/80GB H100: 80GB
- 보통 모델 크기의 2배의 메모리가 필요함 - 7B = 14GB
- 임베딩 모델은 보통 1GB 이하의 메모리를 사용함
- LLM 요청을 일괄 처리하면 10배 이상 빨라질 수 있음.
- 13B 모델은 토큰당 약 1MB가 필요하여, 요청을 일괄 처리하면 메모리 요구가 크게 증가함.
Language Model Stack
Sequoia가 투자한 모든 거의 모든 회사가 제품에 ChatGPT와 같은 LLM을 도입중. 자신들 네트워크내의 회사들을 조사한 내용을 통해 2개의 AI 스택을 정리
LLM API Stack
- LLM APIs : OpenAI, Anthropic, Cohere
- Vector DB: AWS, pgvector, Pinecone, Qdrant, Weaviate, Chroma
- Frameworks: LangChain, LlamaIndex, Anarchy
- Text-To-Speech: Resemble.AI, ElevenLabs, Wellsaid
- Monitoring: DISTYL, Guardrails, Helicone, HoveHive, Autoblocks
Custom Model Training / Tuning Stack
- Compute: AWS, Azure, Google Cloud, Foundary, Lamba, MosaicML, Modal, Fireworks.ai
- Model Hub: Hugging Face, Replicate
- Frameworks: PyTorch, TensorFlow
- Experimentation: Weights & Biases
- Monitoring/Observability: Robust Intelligence, Gantry, Arthur, arise, Whylabs
- Hosting: Replicate, HuggingFace
키포인트
- 대부분의 회사가 LLM을 제품에 구축중
- 언어 모델 API, 검색 및 오케스트레이션에 중점. 오픈소스 사용이 증가
- 회사들은 언어 모델을 자신의 컨텍스트에 맞고 커스터마이징 하고 싶어함
- 현재는 LLM API 스택과 모델 트레이닝 스택이 분리된 것처럼 보이지만 점점 합쳐질 것
- 스택은 점점 더 개발자 친화적이 되어감
- 언어 모델이 완전히 채택되려면 언어 모델의 신뢰성(품질, 데이터 프라이버시, 보안)을 높여야 함
- 언어 모델 어플리케이션은 점 점 더 멀티 모달이 되어갈 것
- 아직 극 초반임
파인 튜닝 방법
nanoGPT 기반의 오픈소스 구현체인 Lit-Parrot 으로 LoRA 와 Adapter 를 이용해서 파인 튜닝하기
- StableLM, Pythia, RedPajama 같은 LLM을 지원
- PyTorch의 FlashAttention 이용
- 예제에서는 Databricks의 Dolly 2.0 인스트럭션 데이터셋으로 RedPajama-INCITE 모델을 튜닝
See also
- ChatGPT - OpenAI 의 그것!
- Natural language processing (NLP)
- Logic learning machine (LLM in Machine Learning)
- Large Multimodal Model (LMM)
Favorite site
- Large language model - Wikipedia
- 대규모 언어 모델을 효과적으로 사용하기 | GeekNews
- [원문] Using Large Language Models Effectively
- LLM 기반으로 AI기능을 만들어본 10명의 창업자/경영진들을 통해 정리한 교훈들
- GitHub Copilot, Canva Magic Write, Sourcegraph Cody, Neeva AI,..
- 공동 제작에 사용자 참여 유도
- 위험도가 낮은 작업부터 시작
- 신뢰 및 안전 계층 추가
- 임베딩 활용하기
- 모델에 더 많은 컨텍스트 제공하기
- 새로운 도구로 모델의 성능을 강화
- 하이브리드 접근법 사용
- 더 큰 모델로 작은 모델을 훈련
- [원문] Building LLM applications for production
- LLM으로 쿨한 것을 만드는 것은 쉽지만, 프로덕션 수준으로 만드는 것은 매우 어려움
- LLM 어플리케이션을 제품화 하기 위해 풀어야 하는 주요 과제들, 여러 태스크를 제어흐름내에 통합하는 방법 및 도구의 사용방법, 유망한 사례들을 살펴보는 글
Tutorials
Guide
- LLM 프롬프트 튜닝 플레이북 | GeekNews
- [원문] varungodbole/prompt-tuning-playbook: A playbook for effectively prompting post-trained LLMs
- 이 문서는 누구를 위한 것인가?
- Post-Trained LLM의 프롬프트 작성 능력을 향상시키고자 하는 사람들을 위한 문서
- 기술적 배경이 부족하더라도, 기본적인 LLM 사용 경험이 있는 사람을 대상으로 함
- 전반부: 사후 학습과 프롬프트에 대한 직관적 이해를 제공
- 후반부: 구체적인 프롬프트 작성 절차 및 팁 제공
- LLM 프롬프트 작성은 경험적이고 지속적으로 학습과 수정이 필요한 작업
- 이 문서는 효과적인 프롬프트 작성 전략을 체계적으로 공유하고자 함
- Gemini와 같은 후교육 모델을 중심으로 작성되었으나 다른 모델에도 적용 가능
References
-
What_Weve_Learned_From_A_Year_of_Building_with_LLMs_-_GeekNews.pdf ↩