brunch

You can make anything
by writing

C.S.Lewis

by 박송이 Oct 14. 2024

LLM 기반 인공지능 제품 개발을 위한 가이드라인

나만의 인공지능 서비스 개발을 위해 필요한 모델 성능 개선 방법

2024.08.12 |  vol. 48  |  구독하기  |  지난호 보기


미래에 할 수 있는 경험을 사전 예약하신 퓨처드릴 구독자, 드릴러 여러분 안녕하세요! AI와 UX의 알쏭달쏭한 점들을 시원하게 알려드릴 에디터 쏭입니다~!      


오늘은 Patterns for Building LLM-based Systems & Products 아티클을 바탕으로 여러분이 만들고자 하는 인공지능 서비스의 모델 성능 개선 방법들을 정리해서 알려드릴게요~! 이 글은 데이터 측면과 사용자 측면에서 LLM을 기반으로 하는 인공지능 제품을 만드는 데 어떤 방법들이 있는지 소개하고 있습니다.


오늘은 데이터 측면에 집중해서 각 방법에 대한 소개부터 언제 이 기술이 필요한지 그리고 적용하는 방법까지 모두 알려 drill게요~!


모두 follow me ~ 



시작하기 - Turning On the Drill



파인튜닝? RAG?
우리 서비스에 들어가는 LLM 성능개선에 필요한 테크닉은 무엇일까?


안녕하세요! 여러분~ 지금까지 프롬프트 엔지니어링부터 RAG까지 인공지능에 필요한 기술들을 몇 가지 소개해 드렸는데요, 오늘은 기술에 대한 내용이라기보다는 이것들을 어떻게 우리 서비스에 적용할 것인가? 에 대한 내용을 다루려고 합니다. 


Chat-GPT와 같은 LLM을 이용한 서비스가 크게 성공하면서 많은 인공지능 서비스가 시장에 나오고 있습니다. 드릴러분들 중에서도 LLM을 이용한 인공지능 서비스를 기획하고 계신 분들이 있을 것 같은데요, 이것저것 성능을 높이기 위한 방법들은 있는데 기획하고 있는 서비스에 필요한 방법은 무엇인지 고민해 보신 적 있으신가요?



그렇다면 오늘 내용은 여러분에게 딱 필요한 내용입니다!


이번 뉴스레터는 총 2회에 걸쳐 데이터 측면과 사용자 측면을 다루고 있습니다. 오늘은 데이터 측면에서 어떻게 인공지능 성능을 개선할 수 있을지 살펴보겠습니다. 아래의 그림을 보시면 총 2개의 축이 있습니다. 하나는 데이터 / 사용자 축이고 또 하나는 공격적인 / 방어적인 축이 있습니다. 공격적인 의미는 성능을 개선하는 것을 의미합니다. 반대로 방어적인 건 비용이나 위험을 줄이는 것을 의미합니다.


오늘 다룰 데이터 측면에서는 어떻게 성능을 개선할 것인가를 위주로 살펴보겠습니다. 내가 만들 인공지능 서비스의 성능을 적극적으로 높이고 싶으신 분이 계신다면 끝까지 읽어주세요~!



오늘 내용은 아래와 같은 순서로 진행됩니다.


1. 해당 기술에 대한 소개
2. 기술의 종류에 대한 소개
3. 언제 해당 기술을 사용하면 좋을지 설명
4. 해당 기술을 우리 서비스에 적용하는 방법 소개 


출처 : https://eugeneyan.com/writing/llm-patterns/#conclusion



RAG : 

외부 지식을 이용해 더 정확한 답변을 제공해 주고 성능을 개선시키자.



1️⃣ RAG는 무엇인가요?


혹시 Chat-GPT를 사용하면서 지금 시점과 동떨어진 답변을 받아보신 적 있으신가요? 24년 8월 11월 기준으로 Chat-GPT는 23년도 9월까지의 정보만을 학습한 상태입니다. 그러니까 현재 일어나고 있는 사건에 관해 물어본다면 대답을 못 하겠죠.


이런 식으로 최신 데이터를 학습하지 못한 인공지능은 사용에 한계가 있는데요, 매번 새로운 데이터가 생성될 때마다 인공지능을 다시 학습시키는 게 아니라 답변을 만드는 데 보조로 이용할 수 있다면 어떨까요?


그렇다면 인공지능 학습에 들어가는 비용도 줄일 수 있고 사용자가 데이터를 제공할 수 있다면 더 만족할 만한 답변을 만들 수 있을 것입니다. 이렇게 외부 데이터를 이용해서 지식을 증강하고 이를 바탕으로 답변을 생성하는 방식을 RAG라고 합니다. 



2️⃣ RAG 종류 알아보기

출처 : Retrieval-Augmented Generation for Large Language Models: A Survey 논문에서 발췌

기본 RAG (Naive RAG)      

전통적인 RAG 모델로, 인덱싱검색생성의 세 단계로 구성됩니다. 초기의 간단한 접근 방식으로, 문서 검색과 생성된 응답의 품질을 기반으로 작동합니다.



고급 RAG (Advanced RAG)

기본 RAG의 한계를 극복하기 위해 개발된 방법론입니다. 사전 검색과 후속 검색을 도입하여 검색과 생성의 품질을 향상합니다. 검색 전 과정과 검색 후 과정에서 추가적인 조정과 최적화를 통해 성능을 개선합니다.


모듈형 RAG (Modular RAG)

기본 RAG의 인덱싱, 검색, 생성 프레임워크를 넘어, 모듈화 된 접근 방식을 사용합니다. 이 구조는 과정의 각 단계를 독립적으로 조정할 수 있어 더 높은 다양성과 유연성을 제공합니다.


* 각 RAG에 대한 더 자세한 설명은 뉴스레터 45호 [RAG 완벽 가이드: 세 가지 패러다임으로 보는 RAG 변천사]를 확인해 주세요:)



3️⃣  어떤 상황에서 RAG가 우리 서비스에 필요할까?


질문이나 요청에 대한 응답이 특정 정보에 기반해야 할 때.

복잡한 기술적 질문이나 특정 데이터에 대한 답변이 필요할 때, RAG는 대량의 정보를 검색하고 그 정보를 기반으로 정확한 응답을 생성하는 데 유용합니다.


대규모 지식 베이스나 데이터베이스에서 정보를 검색하고 활용해야 할 때.

RAG는 대규모 문서나 데이터베이스에서 필요한 정보를 검색하고, 그 검색된 정보를 바탕으로 응답을 생성할 수 있습니다. 예를 들어, 특정 제품의 기술 사양이나 역사적 데이터를 조회할 때.


최신 정보나 정확한 데이터를 제공해야 할 때.

최근 뉴스 기사나 최신 연구 결과를 기반으로 정보를 제공해야 하는 경우, RAG는 실시간으로 정보를 검색하고 적절히 생성할 수 있습니다.


특정 도메인에 대한 깊이 있는 지식이 필요한 경우

의료, 법률, 과학 등 특정 도메인에서의 깊이 있는 정보 제공이 필요할 때, RAG는 관련 문서를 검색하여 높은 정확도로 응답을 생성합니다.


사용자의 특정 요구에 맞춘 맞춤형 정보를 제공해야 할 때.

RAG는 사용자의 질문을 기반으로 관련 정보를 검색하고, 이를 바탕으로 개인화된 응답을 생성할 수 있습니다.


4️⃣ RAG를 어떻게 우리 서비스에 적용할까?


[STEP 1] 적절한 검색 도구 선택하기

RAG는 우리가 기존에 사용하던 검색 엔진(Google)을 이용해서 내용을 증강할 수도 있고, 아니면 외부 데이터를 직접 정제해서 이 데이터셋에 검색을 해서 내용을 증강할 수도 있습니다. 어떤 방법이 더 적절한 검색 도구일지 고민해 보세요.



[STEP 2] 검색 결과 개선하기

1단계에서 적절한 검색 도구를 선택했다면 이 검색 도구를 이용한 결과를 어떻게 더 개선할 수 있을지 고민해 보세요. 외부 데이터셋에 메타데이터를 추가해 검색 결과를 개선할 수 있습니다. 혹은 검색 결과에 추가로 필터를 적용하여 결과 범위를 좁혀 성능을 개선할 수도 있습니다.


[STEP 3] 효율적인 검색 기술 사용하기

적절한 검색 도구를 사용하고 결과를 개선하기 위한 방법도 찾아보았지만, 애초에 외부 데이터셋의 크기 자체가 너무 커서 검색을 하는 데 시간이 오래 걸릴 수도 있습니다. 아무리 정확한 정보를 제공한다고 해도 결과가 나오는 데 시간이 너무 오래 걸린다면 사용자가 좋아하지 않겠죠? 이때는 엔지니어와 같이 대량의 문서에서 더 빠르게 검색할 수 있는 방법을 찾아보는 것도 좋은 방법입니다.



평가 (Evaluation) : 

평가 지표를 통해 우리 인공지능 모델의 성능을 개선하자.



1️⃣ 평가(Evaluation)는 무엇인가요?


인공지능을 학습시킨 후 평가를 잘못한다면 다시 학습시킬 때 어떤 방향으로 학습시켜야 할지 알 수 없겠죠? 인간이 공부하고 시험을 통해 평가하는 것처럼 인공지능도 학습 후에 학습이 잘 되었는지 평가가 필요합니다. 인공지능은 여러 종류의 일을 할 수 있는데 각 태스크에 맞는 평가 지표들이 존재합니다.

엔지니어가 아니어도 평가 지표에 대한 이해는 필요합니다. 평가 지표를 이해하게 되면 효과적인 의사결정을 할 수 있습니다. 평가 결과를 통해 모델이 잘 작동하는지 여부를 파악하고, 비즈니스에 필요한 정보를 제공받을 수 있습니다. 
평가 지표에는 어떤 것들이 있는지 아래에서 설명해 드릴게요!



2️⃣ LLM에 사용되는 평가(Evaluation) 메트릭에는 어떤 것들이 있을까요?  

ROUGE(Recall-Oriented Understudy for Gisting Evaluation): BLEU와 달리, ROUGE는 재현율에 중점을 둔 메트릭입니다. 정답에서 출력에 나타나는 단어의 수를 계산합니다. 주로 자동 요약 작업을 평가하는 데 사용됩니다.


BLEU(Bilingual Evaluation Understudy)는 생성된 출력에서 정답과 일치하는 n-그램의 개수를 세고, 이를 출력의 총 단어 수로 나눈 값을 계산합니다. 주로 기계 번역에서 사용되며, 비용 효율성으로 인해 여전히 인기 있는 평가 방법입니다.


  

그러나 이러한 메트릭을 사용하는 데는 몇 가지 함정이 있습니다.


첫째, 이러한 메트릭과 인간의 평가 간의 상관관계가 낮습니다.


BLEU, ROUGE 등은 인간이 평가하는 유창성과의 상관관계가 부정적이었습니다. 또한 인간의 적절성 점수와는 중간에서 낮은 상관관계를 보였습니다. 특히, BLEU와 ROUGE는 창의성과 다양성이 필요한 작업과는 낮은 상관관계를 보입니다.


둘째, 이러한 메트릭은 다양한 작업에 대한 적응력이 부족합니다.

특정 작업에 제안된 메트릭을 다른 작업에 적용하는 것은 항상 신중하지 않을 수 있습니다. 예를 들어, BLEU와 ROUGE와 같은 정확한 일치 메트릭은 추상적 요약이나 대화와 같은 작업에는 적합하지 않습니다. 


3️⃣ 평가(Evaluation)가 우리 서비스에 꼭 필요한 이유


성능 평가는 기획, 모델 개발, 실제 배포까지 모든 단계에서 항상 염두에 두어야 합니다. 제품을 기획할 때 적절한 지표를 선택하여 가설을 설정하는 데 사용할 수 있습니다. 모델 개발에서는 우리 서비스의 목표에 따라 어떤 지표로 평가할지 결정할 수 있습니다. 배포 단계에서는 실제 고객들의 피드백을 통해 지표를 어떻게 개선해야 할지 확인할 수 있습니다. 그렇기에 평가 지표에 대해 잘 이해하고 엔지니어들과 충분히 소통하는 것이 중요합니다.


또한, 정량적인 성능 평가뿐만 아니라 모델이 편향적인 결과를 만들어내지 않는지 확인하는 것도 중요합니다. 고객으로부터 부정적인 피드백이나 구체적인 문제가 발생하지 않더라도, 인공지능이 생성한 결과물에 혐오나 차별적인 표현이 없는지 적극적으로 점검해 주세요.



4️⃣ 평가(evaluation)를 어떻게 제품 개발에 적용할까요?


[STEP1] 작업에 맞는 평가 세트 만들기


설명: 평가를 위해 특정 작업에 적합한 질문과 답변 예제를 준비합니다. 예를 들어, 번역 작업을 평가하려면 번역할 문장과 정답 번역을 준비합니다.


목적: 이렇게 준비된 평가 세트는 모델의 성능을 정확하게 측정하고 개선하는 데 도움이 됩니다.


방법: 작업에 적합한 질문과 기대하는 답변을 모아서 테스트를 진행합니다. 이 평가를 통해 모델이 얼마나 잘 작동하는지 확인할 수 있습니다.



[STEP2] 적절한 평가 지표 선택하기


설명: 평가 결과를 숫자로 간단히 나타낼 수 있는 지표를 선택합니다. 예를 들어, 문서의 정확성을 평가할 때는 '정확도'를 사용할 수 있습니다.


방법: 작업에 맞는 기본적인 지표를 선택하고, 평가 결과를 이 지표를 통해 분석합니다. 예를 들어, 문서 분류 작업에는 정확도(정답의 비율)를 사용할 수 있습니다.



[STEP3] 편향 문제 해결하기


설명: 평가 결과가 편향되지 않도록 주의합니다. 예를 들어, LLM이 길고 자세한 답변을 더 좋다고 생각할 수 있으니, 이런 편향을 고려합니다.


방법: 평가할 때 동일한 질문에 대해 여러 답변을 비교하고, 편향이 있는지 확인합니다. 예를 들어, 긴 답변이 항상 더 좋은 것이 아니므로, 짧고 간결한 답변도 고려합니다. 



엔지니어와 협업을 위한 꿀팁! - 우리 서비스에 맞는 평가 지표 찾아보기

인공지능 TASK + Evalution Metric으로 검색해서 내가 만들고자 하는 서비스에 맞는 평가 방법 알아보기


아래는 LLM에서 사용되는 대표적인 태스크와 평가 방법입니다. 
  

문서 요약 / ROUGE, BLEU

질문 답변 / EM,F1 Score

감정 분석 / Accuracy,F1 Score

기계 번역 / BLEU, METEOR

텍스트 생성 / Perplexity

혹은 Chat-GPT에 아래와 같은 프롬프트를 넣어서 태스크 + 평가 방법을 찾을 수도 있습니다. 
내가 [ * ]와 같은 기능이 있는 인공지능 서비스를 만들려고 하는데 이 서비스에 핵심 태스크는 무엇이고, 여기에 사용되는 인공지능 모델의 성능을 평가하기 위한 핵심 평가 메트릭은 무엇인지 알려줘


* : 괄호 안에 여러분이 만들고 싶은 서비스의 핵심 기능을 적어주세요. 





파인튜닝 (Fine-tuning) : 

특정 서비스나 작업에 맞게 추가로 훈련시켜서 성능을 개선하자.



1️⃣ 파인튜닝(Fine-tuning)은 무엇인가요?


파인튜닝은 이미 학습된 인공지능 모델을 특정 작업이나 목적에 맞게 추가로 조정하는 과정입니다. 이를 통해 모델이 특정 태스크를 더 효과적으로 수행할 수 있도록 성능을 개선합니다. 파인튜닝에는 두 가지 주요 측면이 있습니다: 첫 번째는 이미 파인튜닝된 모델을 활용하는 것이고, 두 번째는 파인튜닝 방법을 직접 적용하는 것입니다.


데이터를 구해서 직접 파인튜닝하기 

모델을 추가로 학습시켜 특정 태스크에 적합하게 조정하는 다양한 기법입니다. 이러한 기법은 모델의 파라미터를 세밀하게 조정하거나, 새로운 데이터로 학습하여 성능을 높이는 방법을 포함합니다. 주요 기법으로는 soft-prompting, adapters, additive, selective, reparameterization-based 기법 등이 있습니다.


이미 파인튜닝된 모델 가져와 사용하기

이미 다양한 데이터와 태스크에 맞게 조정된 모델을 사용하는 방법입니다. 이러한 모델은 특정 작업에 최적화되어 있으며, 특정 도메인에 맞는 성능을 발휘합니다. 예를 들어, 고객 서비스나 법률 문서 분석에 맞게 조정된 모델이 여기에 해당합니다.


2️⃣ - 1️⃣ 파인튜닝(Fine-tuning) 테크닉 종류 알아보기


출처 : https://www.signalfire.com/blog/comparing-llm-fine-tuning-methods

1. Soft-Prompt
Soft-Prompt는 모델이 문제를 이해하는 방식에 도움을 주기 위해, 입력 데이터에 추가적인 ‘프롬프트’를 더하는 방법입니다. 예를 들어, 모델에 특정 지침을 제공하여 원하는 결과를 얻을 수 있도록 합니다. 모델의 기본 구조를 변경하지 않고, 필요한 정보만 추가해 조정할 수 있습니다.


2. Adapters
Adapters 기법은 기본 모델의 구조를 그대로 두고, 작은 별도의 네트워크를 추가하여 조정하는 방법입니다. 이 네트워크는 모델의 성능을 개선하는 데 필요한 추가적인 정보를 처리합니다. 기본 모델은 그대로 유지되며, 새로운 네트워크만 학습시키므로 자원을 절약할 수 있습니다.


3. Additive
Additive 기법은 기존 모델의 파라미터(설정값)에 새로운 파라미터를 덧붙여서 모델을 개선하는 방법입니다. 기본 모델의 기능에 새로운 기능을 추가하는 방식으로, 전체 모델을 다시 훈련하지 않고도 성능을 향상할 수 있습니다.


4. Selective
Selective 기법은 모델의 일부만 선택적으로 조정하는 방법입니다. 전체 모델을 훈련하는 대신, 특정 레이어나 설정만 변경하여 효율적으로 성능을 개선합니다. 이렇게 하면 더 적은 자원으로도 원하는 결과를 얻을 수 있습니다.


5. Reparameterization-Based
Reparameterization-Based 기법은 모델의 파라미터를 새롭게 구성하거나 변형하여 조정하는 방법입니다. 기존의 파라미터를 다른 형태로 바꾸어 모델의 성능을 개선합니다. 이 기법은 모델의 기존 구조를 재구성하여 새로운 방법으로 개선할 수 있게 해 줍니다.


2️⃣ - 2️⃣ 파인튜닝(Fine-tuning) 모델 종류 알아보기


출처 : A Survey of Large Language Models 논문에서 발췌


1. GPT-J

GPT-J는 EleutherAI가 개발한 언어 모델로, OpenAI의 GPT-3의 오픈소스 버전입니다. 이 모델은 6억 개의 파라미터를 가지고 있으며, 자연어 처리 작업에서 높은 성능을 발휘합니다. GPT-J는 다양한 파인튜닝 사례가 있으며, 텍스트 생성, 번역, 요약 등 여러 작업에 활용됩니다. 

링크: GPT-J 

파인튜닝 기법: Soft-Prompting 및 Adapters


2. DistilBERT

DistilBERT는 Google의 BERT 모델을 경량화한 버전으로, 성능을 유지하면서 모델의 크기를 줄인 것입니다. DistilBERT는 더 빠르고 효율적인 학습과 추론을 가능하게 하며, 문장 분류, 질문 답변, 감정 분석 등 다양한 NLP 작업에서 사용됩니다. 오픈소스로 공개되어 여러 작업에 맞게 파인튜닝할 수 있습니다.  

링크: DistilBERT

파인튜닝 기법: Additive 및 Selective


3. T5 (Text-To-Text Transfer Transformer)


T5는 Google이 개발한 모델로, 모든 NLP 작업을 "텍스트를 텍스트로 변환"하는 방식으로 처리합니다. T5는 텍스트 요약, 번역, 질문 답변 등 다양한 작업을 수행할 수 있으며, 오픈소스로 제공되어 파인튜닝을 통해 특정 도메인에 맞게 조정할 수 있습니다. 모델의 성능을 유지하면서 다양한 태스크에 적합하게 조정 가능합니다.

링크: T5

파인튜닝 기법: Soft-Prompting 및 Reparameterization-Base



3️⃣  어떤 상황에서 파인튜닝(Fine-tuning)이 우리 서비스에 필요할까?

모델 성능 부족으로 문제가 발생할 때

현재 사용하는 모델이 특정 작업에서 충분한 성능을 발휘하지 못하고, 결과가 일관되지 않거나 정확도가 낮을 때. 예를 들어, 고객 지원 챗봇이 자주 잘못된 답변을 제공하거나, 추천 시스템이 사용자 선호를 잘못 이해할 때.


특정 도메인의 데이터를 이용해 정확한 답변을 제공해야 할 때

모델이 특정 도메인이나 전문적인 분야에서 문제를 해결해야 할 때. 예를 들어, 의료 관련 질문에 대해 정확한 답변이 필요하거나, 특정 산업의 용어와 개념에 대한 이해가 필요한 경우.


명확한 성능 개선 목표를 가지고 있을 때.

명확한 성능 개선 목표가 설정되어 있고, 이를 달성하기 위해 모델을 추가로 학습시킬 필요가 있을 때. 예를 들어, 현재 모델의 정확도를 10% 향상하려는 목표가 있는 경우.



4️⃣ 파인튜닝(Fine-tuning)을 어떻게 우리 서비스에 적용할까?



방법 1: 이미 파인튜닝된 모델 사용하기

이미 파인 튜닝된 모델을 이용하면 추가 데이터 수집의 부담이 줄어들고 저렴한 비용으로 고품질의 성능을 낼 수 있습니다.


[STEP 1] 모델 선택

시장 조사 : 다양한 파인튜닝된 모델을 제공해 주는 사이트(Hugging Face)를 조사하여 서비스 요구 사항에 가장 적합한 모델을 선택합니다.

모델 평가: 모델의 성능을 평가하기 위해 데이터셋을 사용하여 실제 사용 사례에 대한 적합성을 검토합니다.


[STEP 2] 서비스에 맞는 조정

Fine-tuning (미세 조정): 이미 파인튜닝된 모델이라도 서비스에 맞게 추가적인 조정이 필요할 수 있습니다. 예를 들어, 도메인 특정 용어나 표현을 반영할 수 있도록 소규모의 추가 파인튜닝을 고려합니다.


사용자 피드백: 모델의 실제 사용 사례에서의 성능을 모니터링하고, 필요시 추가적인 미세 조정을 통해 최적화를 진행합니다.


[STEP 3] 테스트 및 검증

성능 검토: 모델이 실제 데이터에서 어떻게 작동하는지를 테스트하고, 성능 지표를 통해 평가합니다.

통합 테스트: 모델을 서비스에 통합하여 시스템 전체의 성능을 점검합니다.




방법 2: 데이터를 구해서 파인튜닝 적용하기

직접 필요한 데이터를 수집하여 파인튜닝까지 진행한다면 비용 측면에서 부담이 생기지만, 우리 서비스에 딱 맞는 인공지능을 만들 수 있다는 점에서 차별점이 생기겠죠?


[STEP 1] 데이터 수집 및 준비  

데이터 요구 사항 정의: 모델이 해결할 문제와 관련된 데이터를 명확히 정의합니다. 예를 들어, 고객 서비스 챗봇의 경우 고객 대화 기록이 필요할 수 있습니다.


데이터 수집: 필요한 데이터를 수집합니다. 공공 데이터셋을 활용하거나, 내부 데이터를 수집할 수 있습니다.


데이터 전처리: 수집한 데이터를 클리닝 하고, 정제하여 모델 학습에 적합한 형태로 가공합니다. 데이터의 품질이 모델 성능에 직접적인 영향을 미칩니다.


[STEP 2] 모델 파인튜닝  

모델 선택: 기본 모델을 선택합니다. 예를 들어, GPT, BERT, T5 등에서 시작할 수 있습니다.

파인튜닝: 수집한 데이터로 모델을 파인튜닝합니다. 이 과정에서는 모델의 하이퍼파라미터를 조정하고, 학습률, 배치 크기 등을 설정하여 최적의 성능을 끌어냅니다.


[STEP 3] 성능 평가 및 검토  

성능 지표 설정: 평가 메트릭을 설정하고, 파인튜닝된 모델의 성능을 측정합니다. 데이터셋의 적절한 분할 (훈련/검증/테스트)을 통해 평가합니다.

사용자 피드백 반영: 실제 사용자 피드백을 통해 모델의 실용성을 평가하고, 필요에 따라 추가적인 조정을 진행합니다.


[STEP 4] 배포 및 모니터링  

모델 배포: 파인튜닝된 모델을 실제 서비스 환경에 배포합니다.

지속적 모니터링: 모델의 성능을 지속적으로 모니터링하고, 필요시 업데이트 및 재훈련을 진행합니다.


꿀팁: 파인튜닝 과정에서 데이터를 주기적으로 업데이트하고, 모델이 최신 정보를 반영할 수 있도록 합니다. 데이터의 변화에 따라 모델을 주기적으로 재훈련하는 것도 중요합니다.



엔지니어와 협업을 위한 꿀팁! - 모델과 데이터셋 찾기 


파인튜닝된 모델 찾기

1. 허깅페이스 모델 라이브러리 : https://huggingface.co/models
2. 캐글 모델 모음 : https://www.kaggle.com/models



데이터셋 찾기   

1. 허깅페이스 데이터셋 라이브러리 : https://huggingface.co/datasets

2. 캐글 데이터셋 모음 : https://www.kaggle.com/datasets
3. AI Hub 데이터셋 모음 : https://www.aihub.or.kr/aihubdata/data/list.do?currMenu=115&topMenu=100 (한국어 데이터 있음)
4. 한국 공공데이터 포털 : https://www.data.go.kr/  
5. 통합 데이터 정보 : https://www.bigdata-map.kr/

6. Github Awesome public datasets 모음 : https://github.com/awesomedata/awesome-public-datasets (전 세계 데이터 모음)





Fine-tuning vs RAG vs Prompt-Engineering

언제 사용해야 할지 비교해서 보기




Rag 연구 타임라인  (출처:arVix)


저희 뉴스레터를 통해서 프롬프트 엔지니어링과 RAG까지 다루었는데요, 이번 기회를 통해서 각 기술들을 어떤 상황에서 써야 하는지 한번 정리하고 가겠습니다. 



Fine-tuning 모델 조정 필요 정도(높음) + 외부 지식 필요 정도(낮음)  

특정 산업(예: 의료, 금융)의 전문 용어와 문맥을 반영하기 위해 기존 고객 지원 모델을 파인튜닝합니다. 고객이 자주 묻는 질문이나 고유의 비즈니스 요구사항에 맞춰 모델을 조정하여 더 정확하고 관련성 높은 답변을 제공할 수 있습니다.



Prompt Engineering 모델 조정 필요 정도(낮음) + 외부 지식 필요 정도(낮음)

고객의 질문에 대해 더욱 명확하고 유용한 답변을 얻기 위해 질문을 구성하는 방식을 조정합니다. 예를 들어, “제품 정보”를 묻는 대신 “X 제품의 가격과 사용 방법”을 묻는 프롬프트를 설정하여 더 구체적인 답변을 유도합니다.
 * 뉴스레터 39호 [프롬프트 엔지니어링 가이드 A to Z (기초 편)]를 참고해 주세요:)



RAG 모델 조정 필요 정도(낮음) + 외부 지식 필요 정도(높음) 

고객이 특정 제품의 기술 사양이나 최근 업데이트에 대해 문의할 때, 회사의 제품 데이터베이스나 FAQ 문서에서 필요한 정보를 검색하고, 이를 바탕으로 상세한 답변을 생성합니다. 또는 고객의 질문이 복잡하거나 다각적인 정보를 필요로 할 때, 관련 문서를 검색하여 종합적인 답변을 제공하는 경우에 활용됩니다.

 * 뉴스레터 45호 [RAG 완벽 가이드: 세 가지 패러다임으로 보는 RAG 변천사]를 참고해 주세요:)




마무리하기 - Turning Off the Drill



오늘은 인공지능 평가, 파인튜닝, 그리고 RAG와 같은 기술들을 다루면서, 이들이 서비스 개발에 얼마나 중요한지 다시 한번 생각해 보는 시간이었습니다. 비개발직군을 대상으로 복잡한 개념들을 쉽게 풀어쓰고, 실제로 서비스에 어떻게 적용할 수 있을지를 고민하면서, 이런 기술들이 단순히 엔지니어들의 전유물이 아니라, 모두가 이해하고 함께 활용해야 하는 도구임을 실감했습니다.


먼저, 인공지능 모델의 성능 평가가 제품 개발 과정에서 항상 중요한 역할을 한다는 점을 강조할 수 있었어요. 기획 단계에서 적절한 지표를 선택하고, 모델을 개발하면서 이 지표를 통해 성과를 측정하며, 나아가 실제 고객 피드백을 받아 지표를 개선하는 것까지, 평가(Evaluation)는 성공적인 서비스 개발의 필수 요소입니다. 평가 지표는 단순한 성능 측정을 넘어, 모델이 편향되지 않도록 하는 데도 큰 역할을 한다는 점을 다루면서, 이런 부분을 놓치지 말아야겠다고 다시 한번 느꼈습니다.


파인튜닝(Fine-tuning)과 RAG(Retrieval-Augmented Generation) 같은 기술들도 역시 흥미로운 주제였어요. 파인튜닝을 통해 인공지능 모델을 우리 서비스에 맞게 조정하고, RAG를 통해 외부 데이터를 활용해 성능을 높이는 방법을 살펴보면서, 상황에 따라 어떤 기술을 선택하고 적용할지에 대한 이해가 더 깊어졌습니다. 


이 과정을 통해, 복잡한 기술들을 쉽게 설명하고 실무에 적용할 수 있도록 돕는 것이 얼마나 중요한지를 다시 깨달았습니다. 비개발직군이라도 인공지능의 기본 원리와 평가 방법을 이해하면, 엔지니어들과 더 잘 소통할 수 있고, 더 나은 제품을 만드는 데 큰 도움이 될 수 있겠죠.


앞으로도 더 많은 사람들이 인공지능 기술을 이해하고 활용할 수 있도록 돕겠습니다!
오늘도 긴 글 읽어주셔서 감사합니다 




오늘의 단어: 파라미터 (Parameter)


파라미터는 인공지능 모델이 문제를 해결하거나 예측을 할 때 사용되는 설정값입니다. 모델이 데이터에서 의미를 찾아내고, 올바른 결정을 내리기 위해 조정하는 값들이죠. 간단히 말하면, 파라미터는 모델의 ‘성격’이나 ‘방법’을 결정하는 중요한 요소들입니다.



모델이 학습하는 과정에서 파라미터는 계속해서 조정됩니다. 처음에는 파라미터 값이 임의로 설정되어 있지만, 모델이 데이터를 통해 결과를 얻으면서 이 값들은 점점 더 최적화됩니다. 이 과정에서 모델은 데이터의 패턴을 발견하고, 이를 기반으로 파라미터 값을 조정하여 정확한 예측을 하도록 학습합니다.



예를 들어, 사진 편집 프로그램에서 색상 보정 슬라이더를 조절하는 것처럼, 모델의 파라미터도 특정 데이터를 더 잘 분석하고 예측할 수 있도록 조정됩니다. 만약 모델이 특정한 패턴을 제대로 인식하지 못한다면, 파라미터를 조정하여 모델이 그 패턴을 더 잘 인식하도록 할 수 있습니다.


결국, 파라미터는 모델이 다양한 데이터를 효과적으로 처리하고, 정확한 결과를 도출할 수 있도록 돕는 핵심적인 '설정값'들입니다. 이를 통해 모델은 데이터에서 패턴을 학습하고, 더 나은 성능을 발휘할 수 있게 됩니다.




AI Experience (AIX)의 이모저모를 전해드리는 '퓨처드릴'입니다!

퓨쳐드릴은 네 명의 에디터가 매주 돌아가면서 글을 작성하고 있습니다. 


퓨쳐드릴 뉴스레터는 월요일 아침 8시에 발송됩니다. 

새로운 뉴스레터를 받아보고 싶으시다면 https://futuredrill.stibee.com/ 여기서 구독해 주세요:)

매거진의 이전글 RAG 완벽 가이드: 세 가지 패러다임으로 보는 RAG
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari