[{"data":1,"prerenderedAt":553},["ShallowReactive",2],{"post-document:\u002Fdeep_learning\u002Fllm\u002F2026\u002F08\u002F31\u002Fdomain-adaptive\u002F":3},{"id":4,"title":5,"body":6,"categories":533,"date":536,"description":537,"extension":538,"image":539,"key_concepts":539,"last_modified_at":539,"legacyPath":540,"meta":541,"navigation":543,"part":539,"path":544,"published":543,"robots":539,"seo":545,"series":539,"stem":546,"strengths":539,"summary":547,"tags":548,"tradeoffs":539,"__hash__":552},"posts\u002Fposts\u002FDeep_Learning\u002Fdomain_adaptive.md","도메인 적응 방법",{"type":7,"value":8,"toc":526},"minimark",[9,13,150,157,161,164,167,178,181,184,190,193,198,202,205,208,214,217,220,226,229,235,238,241,243,248,251,254,260,263,267,270,275,278,281,284,287,290,293,296,299,303,306,309,312,315,321,324,327,330,333,339,342,345,351,354,360,363,367,370,372,378,381,384,387,391,394,399,401,407,410,416,419,422,425,429,432,438,443,446,452,455,459,462,468,471,475,478,481,485,488,491,494,497,503,506,512,518,521],[10,11,5],"h1",{"id":12},"도메인-적응-방법",[14,15,16,36],"table",{},[17,18,19],"thead",{},[20,21,22,26,29,32],"tr",{},[23,24,25],"th",{},"방법",[23,27,28],{},"바꾸는 것",[23,30,31],{},"주로 해결하는 문제",[23,33,35],{"align":34},"right","비용",[37,38,39,54,68,82,95,109,122,136],"tbody",{},[20,40,41,45,48,51],{},[42,43,44],"td",{},"Prompt \u002F Few-shot",[42,46,47],{},"입력",[42,49,50],{},"답변 형식, 역할, 규칙",[42,52,53],{"align":34},"매우 낮음",[20,55,56,59,62,65],{},[42,57,58],{},"RAG",[42,60,61],{},"Context",[42,63,64],{},"사내 문서, 최신 지식, 근거",[42,66,67],{"align":34},"낮음~중간",[20,69,70,73,76,79],{},[42,71,72],{},"SFT",[42,74,75],{},"모델 가중치",[42,77,78],{},"특정 문제에 답하는 방식",[42,80,81],{"align":34},"중간~높음",[20,83,84,87,90,93],{},[42,85,86],{},"LoRA \u002F PEFT",[42,88,89],{},"일부 가중치",[42,91,92],{},"SFT를 싸게 수행",[42,94,67],{"align":34},[20,96,97,100,103,106],{},[42,98,99],{},"Continued Pretraining",[42,101,102],{},"모델의 기본 지식",[42,104,105],{},"전문용어, 도메인 언어 자체",[42,107,108],{"align":34},"높음",[20,110,111,114,117,120],{},[42,112,113],{},"DPO \u002F RLHF",[42,115,116],{},"답변 선호도",[42,118,119],{},"어떤 답을 더 좋은 답으로 볼지",[42,121,81],{"align":34},[20,123,124,127,130,133],{},[42,125,126],{},"Tool Use \u002F Agent",[42,128,129],{},"외부 시스템",[42,131,132],{},"DB조회, 계산, 검색, API 호출",[42,134,135],{"align":34},"중간",[20,137,138,141,144,147],{},[42,139,140],{},"Constrained Decoding",[42,142,143],{},"출력 과정",[42,145,146],{},"JSON, SQL 등 출력 형태 강제",[42,148,149],{"align":34},"낮음",[151,152,153],"blockquote",{},[154,155,156],"p",{},"지식을 넣는 것과 행동을 가르치는 것은 다르다는 것을 인지해야 한다.",[10,158,160],{"id":159},"_1-prompt-engineering-few-shot","1. Prompt Engineering \u002F Few-shot",[154,162,163],{},"가장 쉽게 구현할 수 있는 도메인 적응 방법이다.",[154,165,166],{},"예를 들어 일반 LLM에게 그냥 \"이 설비의 이상 여부를 판단해줘.\" 라고 말하는 대신",[168,169,175],"pre",{"className":170,"code":172,"language":173,"meta":174},[171],"language-text","너는 반도체 제조 공정 엔지니어다.\n\n판단 기준:\n  - 압력 > 130: 위험\n  - 진동 RMS > 0.8: 이상 가능성\n  - 온도 상승률 > 3°C\u002Fmin: 경고\n\n출력:\n  원인 \u002F 위험도 \u002F 대응방법\n","text","",[176,177,172],"code",{"__ignoreMap":174},[154,179,180],{},"처럼 만드는 것이다.",[154,182,183],{},"그리고 몇 개의 정답 예제를 넣으면 Few-shot이 된다.",[168,185,188],{"className":186,"code":187,"language":173,"meta":174},[171],"입력: 진동 0.9\n출력: Bearing 이상 가능성 높음\n\n입력: 진동 0.3\n출력: 정상\n",[176,189,187],{"__ignoreMap":174},[154,191,192],{},"즉",[151,194,195],{},[154,196,197],{},"모델은 그대로 두고 입력을 잘 설계한다.\n데이터가 적거나 빠르게 프로토타입을 만들어야 할 때 사용한다.",[10,199,201],{"id":200},"_2-supervised-fine-tuning-sft","2. Supervised Fine-Tuning, SFT",[154,203,204],{},"LoRA보다 큰 개념이 Fine-Tuning, 그중 대표적인 것이 SFT다",[154,206,207],{},"학습 데이터가",[168,209,212],{"className":210,"code":211,"language":173,"meta":174},[171],"질문 -> 정답\n",[176,213,211],{"__ignoreMap":174},[154,215,216],{},"형태로 존재한다.",[154,218,219],{},"예를 들어 의료 도메인",[168,221,224],{"className":222,"code":223,"language":173,"meta":174},[171],"Q: 환자의 이런 증상이 나타났습니다.\nA: 가능한 원인은 다음과 같습니다...\n",[176,225,223],{"__ignoreMap":174},[154,227,228],{},"제조업",[168,230,233],{"className":231,"code":232,"language":173,"meta":174},[171],"Q: Furnace 온도가 상승하고 압력이 감소했다.\nA: Gas leakage 가능성을 우선 점검한다.\n",[176,234,232],{"__ignoreMap":174},[154,236,237],{},"이런 데이터 수천만개 학습",[154,239,240],{},"모델  $P(y|x)$",[154,242,192],{},[151,244,245],{},[154,246,247],{},"이 질문 x가 들어왔을 때 정답 y가 나오도록 하습한다.",[154,249,250],{},"여기서 중요한거는 LoRA는 SFT와 경쟁 관계가 아니라는 것",[154,252,253],{},"예를 들어",[168,255,258],{"className":256,"code":257,"language":173,"meta":174},[171],"SFT\n  ├── Full Fine-Tuning\n  └── PEFT\n      ├── LoRA\n      ├── Adapter\n      ├── Prefix Tuning\n      └── IA³\n",[176,259,257],{"__ignoreMap":174},[154,261,262],{},"LoRA는 SFT를 수행하는 효율적인 방법 중 하나라고",[10,264,266],{"id":265},"_3-full-fine-tuning","3. Full Fine-Tuning",[154,268,269],{},"LoRA는",[151,271,272],{},[154,273,274],{},"모델의 일부 변화량만 학습\n한다면, Full Fine Tuning은",[154,276,277],{},"예를 들어 원래 모델 가중치가\n$W$\n라면 LoRA\n$W' = W + BA$\n정도로 작은 변화량을 학습",[154,279,280],{},"반면 Full Fine-Tuning\n$W \\rightarrow W'$",[154,282,283],{},"전체를 직접 변경한다.",[154,285,286],{},"장점은 모델의 행동을 강하게 바꿀 수 있다는 것이다.\n하지만 7B, 70B같은 LLM을 전체 학습하려면 GPU메모리 엄청 필요",[154,288,289],{},"그래서 현실적으로",[154,291,292],{},"작은 모델 → Full Fine-Tuning 가능",[154,294,295],{},"큰 모델 → LoRA \u002F QLoRA 사용",[154,297,298],{},"하는 경우가 많다.",[10,300,302],{"id":301},"_4-continued-pretraining","4. Continued Pretraining",[154,304,305],{},"이게 도메인 적응에서는 상당히 중요\nDomain-Adaptive Pretraining, DAPT라고도 한다.",[154,307,308],{},"이건 질문-답변을 학습하는 게 아님",[154,310,311],{},"그냥 특정 분야의 문서를 엄청 많이 읽힘",[154,313,314],{},"예를 들어 법률 모델을 만들어야 하면",[168,316,319],{"className":317,"code":318,"language":173,"meta":174},[171],"판례\n법령\n계약서\n법률 논문\n법률 교과서\n",[176,320,318],{"__ignoreMap":174},[154,322,323],{},"수십억~수백억 토큰을 계속 학습\n학습 방식은 원래 LLM이 하던 것과 동일",[154,325,326],{},"계약이 성립하기 위해서는 당사자의 ___",[154,328,329],{},"다음 토큰 예측",[154,331,332],{},"그러면서 모델 자체가",[168,334,337],{"className":335,"code":336,"language":173,"meta":174},[171],"일반 LLM\n  ↓\n법률 문서를 계속 읽음\n  ↓\n법률 용어와 표현에 익숙한 LLM\n",[176,338,336],{"__ignoreMap":174},[154,340,341],{},"RAG와는 차이가 있다.",[154,343,344],{},"RAG:",[168,346,349],{"className":347,"code":348,"language":173,"meta":174},[171],"모델\n  ↑\n외부 문서를 읽어서 답함\n",[176,350,348],{"__ignoreMap":174},[154,352,353],{},"Continued Pretraining:",[168,355,358],{"className":356,"code":357,"language":173,"meta":174},[171],"문서를 학습\n  ↓\n모델 자체가 변화\n",[176,359,357],{"__ignoreMap":174},[154,361,362],{},"도메인 언어 자체가 매우 특수하다면 굉장히 효과적",[10,364,366],{"id":365},"_5-dpo-rlhf","5. DPO \u002F RLHF",[154,368,369],{},"\"정답을 아는 것\"이 아니라 \"어떤 답을 좋아할지\"를 가르침",[154,371,253],{},[168,373,376],{"className":374,"code":375,"language":173,"meta":174},[171],"질문:\n  서버 장애 원인을 분석해줘.\n\n답변 A:\n  서버가 고장난 것 같습니다.\n\n답변 B:\n  CPU → Memory → Network → DB 순으로\n  확인하며 다음 로그를 우선 확인하십시오...\n\nB > A\n",[176,377,375],{"__ignoreMap":174},[154,379,380],{},"RLHF\nDPO\nRLAIF\nGRPO",[154,382,383],{},"이 방법은 특히\n\"내가 원하는 스타일의 답변\"",[154,385,386],{},"예를 들어 기업용 AI라면\n근거 없는 추측 금지\n항상 근거 제시\n짧게 답변\n회사 정책 우선\n위험한 조작 명령 거부",[10,388,390],{"id":389},"_6-tool-use-function-calling-중요","6. Tool Use \u002F Function Calling -- 중요",[154,392,393],{},"모델 자체에 지식을 집어넣는 것이 아니라,",[151,395,396],{},[154,397,398],{},"모델이 전문 도구를 사용할 수 있게 만들어줌",[154,400,253],{},[168,402,405],{"className":403,"code":404,"language":173,"meta":174},[171],"사용자\n  \"삼성전자 PER 계산해줘\"\n\n  ↓\n\nLLM\n  \"현재 주가와 EPS가 필요하다\"\n\n  ↓\n\nFinance API\n\n  ↓\n\n계산\n\n  ↓\n\nLLM 답변\n",[176,406,404],{"__ignoreMap":174},[154,408,409],{},"또는 제조 AI",[168,411,414],{"className":412,"code":413,"language":173,"meta":174},[171],"LLM\n  ↓\nMES\n  ↓\n설비 DB\n  ↓\n센서 데이터\n  ↓\nPython 분석\n  ↓\nLLM\n",[176,415,413],{"__ignoreMap":174},[154,417,418],{},"이렇게 할 수 있음",[154,420,421],{},"LLM 자체가 모든 걸 알고 있을 필요가 없음",[154,423,424],{},"그래서 실서비스에서는 LLM + RAG + Tools 가 중요",[10,426,428],{"id":427},"_7-adapter-prefix-tuning-prompt-tuning-ia","7. Adapter \u002F Prefix Tuning \u002F Prompt Tuning \u002F IA³",[154,430,431],{},"LoRA 이외에도 PEFT 방법",[168,433,436],{"className":434,"code":435,"language":173,"meta":174},[171],"Full Fine-Tuning\n  ████████████████████\n  모델 전체 학습\n\nLoRA\n  ██\n\nAdapter\n  ██\n\nPrefix Tuning\n  █\n\nPrompt Tuning\n  █\n",[176,437,435],{"__ignoreMap":174},[439,440,442],"h2",{"id":441},"adapter","Adapter",[154,444,445],{},"Transformer 사이에 작은 Neural Network를 추가한다.",[168,447,450],{"className":448,"code":449,"language":173,"meta":174},[171],"Transformer Layer\n  ↓\nAdapter\n  ↓\nTransformer Layer\n",[176,451,449],{"__ignoreMap":174},[154,453,454],{},"원래 모델은 Freeze하고 Adapter만 학습한다.",[439,456,458],{"id":457},"prefix-tuning","Prefix Tuning",[154,460,461],{},"Attention 앞에 학습 가능한 가상의 Token을 붙인다.",[168,463,466],{"className":464,"code":465,"language":173,"meta":174},[171],"원래:\n  [사용자 질문]\n\n학습 후:\n  [P1][P2][P3][P4][사용자 질문]\n",[176,467,465],{"__ignoreMap":174},[154,469,470],{},"여기서 P들은 사람이 읽는 단어가 아니라 학습되는 Vector",[439,472,474],{"id":473},"prompt-tuning","Prompt Tuning",[154,476,477],{},"Prompt Tuning\n비슷하게\n학습 가능한 Prompt Embedding",[154,479,480],{},"을 만드는 방법이다.\n모델 전체를 수정하지 않으면서 특정 Task에 적응시킨다.",[439,482,484],{"id":483},"_8-knowledge-editing","8. Knowledge Editing",[154,486,487],{},"모델 전체를 다시 학습하지 않고 특정 사실만 수정한다.",[154,489,490],{},"예를 들어 모델이\nA사의 CEO = 김철수\n라고 알고 있는데\nA사의 CEO = 박영희\n로 바뀌었다고 하자.\n전체 Fine-Tuning을 하지 않고 특정 Knowledge만 수정하려는 연구다.\n대표적으로\nROME\nMEMIT\nMEND\n같은 방법들이 있다.\n다만 실서비스에서는 이런 최신 사실 변경은 보통 RAG가 훨씬 관리하기 쉽다.",[154,492,493],{},"-> RAG를 잘 공부하자 ^^",[10,495,496],{"id":496},"결론",[168,498,501],{"className":499,"code":500,"language":173,"meta":174},[171],"                    Domain Adaptation\n\n                           │\n          ┌────────────────┼────────────────┐\n          │                │                │\n      Knowledge         Behavior        Capability\n          │                │                │\n          │                │                │\n      RAG \u002F DAPT        SFT \u002F DPO         Tool Use\n          │                │                │\n          │                │                │\n  \"무엇을 아는가\"  \"어떻게 답하는가\"  \"무엇을 할 수 있는가\"\n",[176,502,500],{"__ignoreMap":174},[154,504,505],{},"뭐 예를 들어.. \"반도체 제도 전문 LLM을 만든다면\" 여러가지를 조합해야 한다..",[168,507,510],{"className":508,"code":509,"language":173,"meta":174},[171],"① Continued Pretraining\n  반도체 논문 \u002F 매뉴얼 \u002F 특허\n    ↓\n  반도체 언어 이해\n\n② SFT + LoRA\n  공정 문제 → 엔지니어 답변\n    ↓\n  답변 방식 학습\n\n③ DPO\n  좋은 엔지니어 답변 > 나쁜 답변\n    ↓\n  답변 품질 정렬\n\n④ RAG\n  설비 매뉴얼 \u002F 최근 로그 \u002F 사내 문서\n    ↓\n  최신 정보 제공\n\n⑤ Tool Use\n  MES \u002F DB \u002F Python \u002F 센서 API\n    ↓\n  실제 데이터 분석\n",[176,511,509],{"__ignoreMap":174},[168,513,516],{"className":514,"code":515,"language":173,"meta":174},[171],"Base LLM\n  +\nDomain Pretraining\n  +\nSFT \u002F LoRA\n  +\nPreference Tuning\n  +\nRAG\n  +\nTools\n  ↓\nDomain AI System\n",[176,517,515],{"__ignoreMap":174},[154,519,520],{},"질문을 잘 던저야 할 필요가 있다",[151,522,523],{},[154,524,525],{},"내가 필요한 것은 지식? 행동? 전문가 태도? 도구? 인지 잘 판별하는 게 중요하다.",{"title":174,"searchDepth":527,"depth":527,"links":528},2,[529,530,531,532],{"id":441,"depth":527,"text":442},{"id":457,"depth":527,"text":458},{"id":473,"depth":527,"text":474},{"id":483,"depth":527,"text":484},[534,535],"Deep_Learning","LLM","2026-08-31 00:00:00 +0900","Prompt Engineering, RAG, SFT, LoRA, Continued Pretraining 등 LLM의 도메인 적응 방법을 정리한다.","md",null,"\u002Fdeep_learning\u002Fllm\u002F2026\u002F08\u002F31\u002Fdomain-adaptive\u002F",{"layout":542},"post",true,"\u002Fposts\u002Fdeep_learning\u002Fdomain_adaptive",{"title":5,"description":537},"posts\u002FDeep_Learning\u002Fdomain_adaptive","지식, 행동, 선호도, 도구 관점에서 LLM 도메인 적응 방법의 차이를 정리한다.",[549,535,550,551,58],"Deep Learning","Domain Adaptation","Fine-Tuning","7ckoqoUvHeAJIE1eLA1w2QjBjzZ9HLBBuziTLwSmaPY",1788744788829]