VESSL AI 의 MLOps 관련 세미나 현장 참여는 못하고 유튜브로 확인했다.
연사분은 총 세분이셨고, 각각 VESSL AI CEO분, Pinecone, Sionic CEO분이 발표를 하셨는데 유익했어서 포스팅을 남겨두려함. (내가 들은 순)
실제 업계에서 어떤 이야기들을 하고 고민들을 하는지 들을 수 있는 기회였다.
VESSL AI에서 MLOps Now 시리즈로 몇번 더 세미나 자료가 올라와있는 것 같아서 재밌어 보이는 것들 확인하려고 한다.
세미나 링크는 아래. https://www.youtube.com/playlist?list=PL8MX6vEO4aqYXbulhI0_daiVwZPduf9_q
1. 쉽고 빠르게 커스텀 LLM을 파인튜닝, 배포하는 방법
Vessl AI는 MLOps 플랫폼을 제공, 특히 작은 회사들에서 LLM의 finetuning을 쉽고 빠르게 해볼 수 있도록 인프라와 워크플로우 툴을 서비스로 제공하고, 발표도 주로 회사에서 자체적으로 필요한 Private LLM 을 만드는 것에 대한 내용이었다.
Key takeaways 는 아래와 같음.
1) Private LLM의 목적 : Cost(저비용 고효율), Control(도메인 최적화 및 정확성), Privacy(데이터 보안)
2) Private LLM의 핵심 기술들 : Fine-tuning, RAG, Quantize & Cache (결국 Fine-tuning + RAG 및 효율화 함께 필요)
- A. Fine-tuning의 기술들 : PEFT(LoRA, QLoRA), DoRA, Unsloth
- 형사재판 기록을 JSON 파일화 하는 자체 실험에서, Baseline, GPT4 모델 대비 'Fine-tuned' 모델 정확성이 가장 높았고, 학습 시간 및 메모리 효율성 측면에서는 QloRA, QDoRA 모델 대비 'Unsloth QLoRA' 학습 방법이 가장 좋았음
- B. RAG의 기술들 : Indexing, Retrieval / Modular RAG, HyDE, Reranking
- Indexing(chunking) 및 문서 parsing등 텍스트를 vectorize하는 과정에서, Retrieval은 embedded 된 벡터간 유사도 활용 적절 검색 기술이 필요하다는 점에서 단계별 난이도 있음
- Modular RAG를 활용해서 다양한 기법을 패턴화한 RAG를 활용 가능
- RAG의 퍼포먼스 측정하는 성능 지표 : Ragas 활용
- Improving RAG :
- 질문을 증강하기(query의 가상답변 생성) or 정보를 증강하기(clustering 후 요약 추가) 등의 전략
- Reranking : 가장 유용하고 쓸모있는 정보 순으로 정렬 후 LLM에 전달. 유용한 정보가 context의 상단에 있도록
- >> RAG 로 답변 보완시 (유사도 기반 top-k 모델에 추가 제공) 확실히 정확성 상승했으나 latency, input token 등 올라가면서 cost도 올라가는 것은 불가피
- C. Quantization 기술들 : AWQ, FlashAttention2, PagedAttention(vLLM)
- AWQ(activation-aware weight quantization) : 상대적으로 중요한 weight만 남기고(성능 보존) 나머지는 4bit압축
- FlashAttention : Attention 연산을 최적화하고 병렬화
- PagedAttention : PagedAttention은 KV 캐시를 불연속 블록으로 분할하여 메모리를 더 효율적으로 관리
- >> 실험 결과 AWQ + FlashAttn 적용시 기본 4bit quantize 대비 성능 5배, L4 GPU 로 800token / sec 가능했음
https://www.youtube.com/watch?v=4EY1TP4FrEE&list=PL8MX6vEO4aqYXbulhI0_daiVwZPduf9_q&index=1
2. Building context-augmented LLMs with RAG & Vector DB
Pinecone이 벡터 데이터베이스를 제공하는 관리형 서비스 중에서 가장 일반적으로 사용되는 서비스중 하나라는데, 발표도 주로 product의 원리, 활용에 대한 이야기. Semantic search, Vector DB, RAG, Pinecone 사용에 대한 설명이었음.
가장 흥미로웠던 파트는 RAG 파트, RAG 방식의 종류 및 개선 가능성 부분이었다.
1) Semantic Search for Retrieval : Pinecone 같은 Vector DB 시스템의 원리는, 벡터간 similarity를 기준으로 가장 관련성 높은 relevant 문서를 추출하는 것
2) Vectorizing document : Dense, Sparse vector와 상관없이 embedding -> top-k를 기준으로 query에 대한 정보 추출
3) RAG :
- RAG방법을 쓴다고 해서 모든 문제가 해결되는게 아니라, RAG를 '잘' 하기 위해서 필요한 조건들이 있다. 다음 문제상황들 : question ambiquity, low retrieval accuracy, limited knowledge, context window performance limitaion 등
- RAG 의 종류
- A. RAG Fusion : RAG와 상호 랭크 융합(RRF)을 결합하여, 여러 쿼리를 생성하고 상호 점수로 재랭킹, 문서와 점수를 융합하여 더 정확하고 포괄적인 답변을 제공
- B. Self Reflective RAG : 언어 모델이 생성한 응답을 자체적으로 평가하고 수정하는 과정이 포함됨. 언어 모델의 품질과 사실성을 향상시키기 위해 검색과 자기 성찰하는 방법
- C. Corrective RAG : 검색된 정보의 유효성을 검토하여, 문서의 정제와 대규모 웹 검색을 통한 보강으로 생성의 견고성을 향상시키는 방법
RAG 종류 관해서 pinecone의 블로그에 내용이 잘 정리되어있음 https://www.pinecone.io/learn/advanced-rag-techniques/
https://www.youtube.com/watch?v=z_9tpkXGrSU&list=PL8MX6vEO4aqYXbulhI0_daiVwZPduf9_q&index=2
3. Advancing Vector Search for LLM in Production
마지막 발표에서는 LLM 프로덕트 작업시 연구적으로 고려해야 할 요소 및 LLM을 최종 grade로 상품화 하는 과정에서 고려될 요소들에 대한 설명이었다. key takeaway는 아래와 같음
1) LLM의 단점 : Hallucination, Frozen Knowledge(학습되지 않은 정보에 무지), High cost & latency
2) LLM 활용을 위한 주요 기술 : Prompting, RAG, Finetuning, Retrieval, LoRA, Embedding, Instruction Tuning, RLHF, Reranking, ICL 등 -> 특히 특정 task 성능 극대화를 위해 llm을 원하는 방식으로 '제어'하는 것이 관건
3) 생성 LLM 관련 issue : 생성시 적당히 좋은 생성 후보를 고를 가능성이 높음 - greedy 알고리즘에 따른 token 선택이 더 짧은 답변, 풍부하지 못한 답변을 하는 경향성으로 이어짐 -> temperature 등을 활용한 다양한 답변 선정 -> Hallucination 가능성 또한 증대
4) 해결의 방향? : LLM의 추론 기능 확대 + 대규모 고차원 임베딩 벡터로 성능 향상
5) 남은 문제? : 차원의 저주, multiple 임베딩, 벡터 서치, MLOps, 앙상블 튜닝 (LLM 조합)
6) 추가 issue : ANN 활용 효율의 한계, 벡터 DB 이용시 하드웨어 스펙의 필요성 (recall, latency, 비용 효율성), 쿠버네티스 CSI의 활용, Block/file 스토리지 등
https://www.youtube.com/watch?v=J6_ReznVkzk&list=PL8MX6vEO4aqYXbulhI0_daiVwZPduf9_q&index=3
'NLP | LLM' 카테고리의 다른 글
[주가예측] Lag-Llama Transformers (0) | 2024.06.21 |
---|---|
시계열 SOTA (0) | 2024.06.07 |
[NLP] 자연어처리 기본 개념 (0) | 2024.05.01 |