2024. 12. 23. 17:43ㆍAI
1. Agent 학습 및 Tool 호출
Agent는 기본적으로 함수와 유사한 개념입니다. 하지만 핵심은 도구 호출에 있습니다. Agent의 모델은 성능이 중요한 요소입니다. 성능이 떨어지면 제대로 된 tool을 찾기 어려워지기 때문에, Agent에는 성능 좋은 모델을 사용해야 합니다.
- Tool 호출: 도구를 호출하는 부분이 핵심입니다. 이를 위해 Agent Executor를 활용하여 도구를 실행하고, 그 결과를 받아옵니다.
- Tool 구현: Tool을 만드는 것은 다소 어려운 작업일 수 있습니다. 대부분의 경우, Tool은 함수로 구현됩니다.
- Tool 설명: 각 Tool의 입력 및 출력값에 대한 타입과 기능을 명확히 정의해야 합니다.
2. RAG (Retrieval-Augmented Generation)
RAG는 검색과 생성의 결합 방식으로, 모델이 문서를 검색한 후 그에 맞는 정보를 생성합니다. 이를 평가하는 방법은 다음과 같습니다:
- Generation 평가:
- Faithfulness: 모델이 생성한 문장이 주어진 문맥에서 추론 가능한 주장인지 확인합니다. (모델이 주장한 문장과 문맥의 일치도)
- Answer Relevancy: 생성된 답변을 바탕으로 새로운 질문을 만들고, 해당 질문과의 코사인 유사성으로 답변의 관련성을 평가합니다.
- Retrieval (검색) 평가:
- Context Precision: 검색된 개별 문서의 정확도와 질문과의 관련성을 평가합니다. (정확한 문서가 얼마나 관련이 있는지)
- Context Recall: 정답과 관련된 주장들이 얼마나 일치하는지 확인하고, 해당 스코어를 계산합니다.
이 과정에서 Ground Truth (정답)은 중요한 역할을 하며, 성능이 좋은 모델을 사용하여 평가해야 합니다.
3. Fine-Tuning과 Quantization
Deep Learning 모델이 커짐에 따라 Fine-Tuning이 어려워지고 있습니다. Fine-Tuning은 특정 요구에 맞춰 모델을 조정하는 방식입니다. 이를 통해 성능을 향상시킬 수 있지만, 모델 크기가 커지면 조정이 어려워지는 문제가 있습니다. 이를 해결하기 위한 방법 중 하나가 Quantization입니다.
- Quantization: 모델의 크기를 줄이기 위해, 파라미터의 정보를 최대한 유지하면서 데이터 타입을 줄이는 기법입니다. 이를 통해 모델의 연산량을 줄이고 속도를 향상시킬 수 있습니다. 예를 들어, 4-bit NormalFloat Quantization과 같은 방식이 있습니다.
- LoRA (Low-Rank Adaptation): 어댑터 튜닝 기법으로, 모델에 작은 파라미터를 추가하여 Fine-Tuning을 효율적으로 수행할 수 있습니다.
- PEFT (Parameter-Efficient Fine-Tuning): 파라미터 효율적인 튜닝을 통해 모델의 성능을 최적화하는 기법입니다.
4. RunPod 사용법
RunPod는 클라우드 기반의 계산 자원 제공 서비스로, GPU 리소스를 활용한 모델 학습을 지원합니다. 이를 통해 A100 GPU와 PyTorch 2.1 환경에서 모델을 학습할 수 있습니다. 중요한 점은 비용 관리입니다. 사용 후 저장할 필요가 없다면 자료를 삭제하여 비용을 줄이는 것이 좋습니다.
5. CNN 모델링 (Computer Vision)
CNN(Convolutional Neural Networks)의 기초와 모델링 실습을 진행했습니다. CNN은 합성곱을 통해 특징을 추출하는 방식입니다.
- Convolution: 이미지에서 특정 특징을 추출하는 방식으로, 필터를 사용해 이미지의 패턴을 인식합니다.
- Subsampling: 이미지를 축소하여 강인한 특징만을 추출하는 방법입니다.
이 과정에서는 Image Classification, Object Detection, Image Segmentation, Image Captioning, Super Resolution 등 다양한 컴퓨터 비전 문제를 다뤘습니다.
- 전이학습 (Transfer Learning): 기존의 Pretrained 모델을 활용하여, 새로운 데이터셋에 맞게 모델을 재학습하는 방식입니다. PyTorch에서는 다양한 pretrained 모델을 제공합니다.
6. 기타 학습 내용
- Itemgetter 함수: 주어진 key/index로 자료구조에서 값을 추출하는 함수입니다. 이를 사용하면 데이터에서 원하는 정보를 효율적으로 뽑아낼 수 있습니다.
- JSON Output Parser: 모델의 출력값을 JSON 형식으로 파싱하여 처리하는 기술입니다.
- Schema Build: JSON 형식의 데이터를 처리하기 위한 스키마 구축 과정입니다.
- PapersWithCode: 최신 SOTA (State-of-the-Art) 모델을 확인할 수 있는 사이트로, 현재 최고의 성능을 자랑하는 모델들을 찾아볼 수 있습니다.
한주 동안 배운 내용을 다 담아내지는 못하지만 그래도 개념을 훑어볼 수 있는 정리라고 생각이 든다.
RAG에 대해서 중점적으로 배웠다. 수업에서 다루지는 않았지만, RIG라는 방법이 있다는 것도 최근 신문을 보면서 알게 되었다.
RIG는 Retrieval-Integrated Generation의 준말로, RAG가 단순 정보 검색 및 활용이었다면, RIG는 입력된 문서들의 내용을 통합하여 더 정확하고 풍부한 답변을 생성하는 방식이다. 따라서, RIG 방법을 활용하면 조금 더 자연스러운 답변이 가능하고, 통합적인 답변을 얻을 수 있다는 장점이 있다.
활발하게 연구되고 있는 분야라고 하는데, 3개월 간의 여정을 통해 이렇게 빨리 최신기술에 다가갈 수 있구나 하며 새삼 놀라게 된다. 물론, 그 기술을 활용할 줄 아는 것은 다른 문제이지만 말이다.
챗봇이 진화됨에 따라서 많은 분야에서 사람들은 도움을 받을 수 있을 것이다. 지금 나만 해도 글을 요약하고 정리하는 데에 도움을 받고 있다. 그러나 정보의 최신화를 이루기 위해서는 지속적인 사람의 상호작용이 업데이트되어야 할 것이다. 사람들은 자신이 경험한 것을 기초로 생각하기 때문이다.
챗봇을 만들고, 사용하고, 경험하고, 느낀 점을 공유하는 문화가 생기고 있다. 더 활발히 이 주제 안에서 활동하면 더 많은 이야기를 나눌 수 있게 될 것 같다.
'AI' 카테고리의 다른 글
[플레이데이터 SK네트웍스 Family AI 캠프 6기] 16주차 회고 (01/6~01/10) (0) | 2025.01.13 |
---|---|
[플레이데이터 SK네트웍스 Family AI 캠프 6기] 11주차 회고 (12/02~12/06) (0) | 2024.12.16 |
[플레이데이터 SK네트웍스 Family AI 캠프 6기] 12주차 회고 (12/09~12/13) (1) | 2024.12.16 |
[플레이데이터 SK네트웍스 Family AI 캠프 6기] 10주차 회고 (11/25~11/29) (1) | 2024.12.02 |
[플레이데이터 SK네트웍스 Family AI 캠프 6기] 9주차 회고 (11/18~11/22) (2) | 2024.11.25 |