AI.zip
  • AI 모델
  • 방법론
  • AI 서비스
  • 가격 비교
  • 블로그

AI.zip

AI 모델, 서비스, 방법론을 큐레이션하는 에디토리얼 플랫폼

탐색

  • AI 모델
  • AI 서비스
  • 방법론
  • 블로그

커뮤니티

  • 소개
  • 디스코드 참여
  • 문의

법적고지

  • 이용약관
  • 개인정보처리방침

© 2026 ai.zip. All rights reserved.

Discord 커뮤니티
서비스Google AI Studio

Google AI Studio

소프트웨어개발개발/인프라
Google AI Studio logo
종합 평점
—
리뷰
—
가격 플랜
1개 플랜
사용 모델
4개
요약: Google AI Studio은(는) AI 서비스. 주요 Task: Text Generation (텍스트 생성), Code Generation (코드 생성).

Google AI Studio는 Gemini 모델을 웹 브라우저에서 바로 프로토타이핑하고 테스트할 수 있는 무료 개발자 도구입니다. API 키 발급부터 프롬프트 설계, 실제 코드 생성까지 몇 분 안에 시작할 수 있어 Gemini API를 처음 시작하는 개발자에게 최적입니다.

핵심 기능

  • 무료 사용: Gemini 1.5 Flash는 무료 티어에서 분당 15 요청
  • Prompt Gallery: 다양한 사용 사례별 프롬프트 예제 라이브러리
  • 구조화된 출력: JSON 스키마로 일관된 형식의 응답 받기
  • 코드 내보내기: 테스트한 프롬프트를 Python/JavaScript 코드로 즉시 변환
  • 멀티모달 테스트: 텍스트·이미지·오디오·비디오를 조합한 프롬프트 실험
  • 시스템 지침: 모델 동작을 커스터마이징하는 시스템 프롬프트 설정

다른 AI 스튜디오 대비

OpenAI Playground, Anthropic Console과 유사하지만, 무료 사용 한도가 가장 넉넉하고 1M 토큰 컨텍스트를 무료로 테스트할 수 있다는 게 강점입니다.

한계

  • 프로덕션 배포는 Google Cloud Vertex AI로 이관 필요
  • UI가 직관적이지 않다는 평가 있음
  • 한국어 지원이 영어 대비 부족

기술 스택

사용 모델

Google: Gemini 2.5 Flash

Google

Google: Gemini 2.0 Flash

Google

Google: Gemini 2.5 Pro

Google

Google: Gemma 4

Google

Google AI Studio

서비스 정보

웹사이트

바로가기

Task

Text Generation (텍스트 생성)Code Generation (코드 생성)

가격 플랜

Free

무료

모델 접근

관련 블로그 글

비교2026년 4월 4일

AI 모델 평가 완전 가이드: RAGAS, LangSmith, Promptfoo 실전 비교

## 왜 AI 평가가 어려운가? 전통적인 소프트웨어는 입력-출력이 결정적입니다. 하지만 LLM은 같은 프롬프트에도 매번 다른 출력을 냅니다. "이 답변이 좋은가?"를 자동으로 측정하는 것 자체가 하나의 AI 문제입니다. 2025년 현재 세 가지 주요 접근법이 있습니다: 1. **규칙 기반 평가**: 정규식, 키워드 매칭, JSON 스키마 검증 2. **참조 기반 평가**: ROUGE, BLEU 등 참조 답변과 비교 3. **LLM-as-Judge**: 더 강한 LLM이 다른 LLM 출력을 평가 --- ## 평가 프레임워크 비교 | 항목 | RAGAS | LangSmith | Promptfoo | |------|-------|-----------|-----------| | 특화 분야 | RAG 품질 평가 | LLM 앱 전반 | 프롬프트 테스트 | | 오픈소스 | ✓ | 부분 | ✓ | | 가격 | 무료 | 무료 티어 + 유료 | 무료 | | 셀프호스팅 | ✓ | ✓ (Enterprise) | ✓ | | CI/CD 통합 | ✓ | ✓ | ✓ | | 한국어 지원 | △ | △ | △ | --- ## RAGAS: RAG 시스템 전문 평가 RAGAS(Retrieval Augmented Generation Assessment)는 RAG 파이프라인의 각 단계를 독립적으로 평가합니다. ```mermaid flowchart LR Query[사용자 질문] --> Retriever[검색기] Retriever --> Contexts[검색된 문서들] Contexts --> LLM[LLM] Query --> LLM LLM --> Answer[최종 답변] Answer --> F1[Faithfulness<br/>답변이 문서에 근거하는가] Contexts --> F2[Context Recall<br/>관련 문서를 잘 찾았는가] Answer --> F3[Answer Relevancy<br/>질문에 답하는가] Query --> F3 F1 --> Score[종합 점수] F2 --> Score F3 --> Score ``` ### 핵심 지표 **Faithfulness (충실도)**: 생성된 답변이 검색된 문서에 근거하는지 측정. 환각(hallucination) 탐지에 핵심. ```python from ragas import evaluate from ragas.metrics import faithfulness, answer_relevancy, context_recall from datasets import Dataset # 테스트 데이터셋 data = { "question": ["RAG란 무엇인가?", "벡터 DB의 장점은?"], "answer": ["RAG는 검색 증강 생성입니다...", "벡터 DB는 유사도 검색이 빠릅니다..."], "contexts": [ [["RAG(Retrieval-Augmented Generation)는..."]], [["벡터 데이터베이스는 고차원 벡터를..."]], ], "ground_truth": ["RAG는 검색과 생성을 결합한 방법입니다", "빠른 유사도 검색이 가능합니다"], } dataset = Dataset.from_dict(data) result = evaluate(dataset, metrics=[faithfulness, answer_relevancy, context_recall]) print(result) # {'faithfulness': 0.92, 'answer_relevancy': 0.87, 'context_recall': 0.85} ``` ### RAG 품질 개선 사이클 ```mermaid flowchart TD A[RAG 시스템 실행] --> B[RAGAS 평가] B --> C{점수 분석} C --> D[Faithfulness 낮음] C --> E[Context Recall 낮음] C --> F[Answer Relevancy 낮음] D --> G[프롬프트 수정<br/>출처 강조 지시 추가] E --> H[청크 크기 조정<br/>임베딩 모델 교체] F --> I[시스템 프롬프트 수정<br/>관련성 강조] G --> A H --> A I --> A ``` --- ## Promptfoo: CI/CD에 통합하는 프롬프트 테스트 Promptfoo는 프롬프트를 코드처럼 테스트합니다. YAML로 테스트 케이스를 정의하고 CLI로 실행합니다. ### 설정 예시 ```yaml # promptfoo.yaml providers: - openai:gpt-4o - anthropic:claude-sonnet-4-6 - openai:gpt-4o-mini # 비용 비교용 prompts: - file://prompts/customer_support_v1.txt - file://prompts/customer_support_v2.txt tests: - description: "환불 요청 처리" vars: customer_message: "3일 전 구매한 상품을 환불하고 싶습니다" assert: - type: contains value: "환불" - type: llm-rubric value: "응답이 공감적이고 구체적인 처리 절차를 포함하는가" - type: latency threshold: 3000 # 3초 이내 - description: "욕설 포함 메시지 처리" vars: customer_message: "씨X 이게 뭐야 진짜" assert: - type: not-contains value: "죄송합니다" # 과도한 사과 금지 - type: llm-rubric value: "침착하게 문제 해결에 집중하는가" ``` ```bash # 실행 npx promptfoo eval # CI/CD에서 실패 기준 설정 npx promptfoo eval --fail-threshold 0.8 # 80% 미만이면 빌드 실패 ``` ### 모델 비교 결과 예시 ``` ┌─────────────────────────┬──────────┬──────────┬──────────┐ │ Prompt / Model │ gpt-4o │ claude │ mini │ ├─────────────────────────┼──────────┼──────────┼──────────┤ │ customer_support_v1 │ 85% │ 88% │ 71% │ │ customer_support_v2 │ 91% │ 93% │ 78% │ ├─────────────────────────┼──────────┼──────────┼──────────┤ │ 평균 레이턴시 │ 1.2s │ 1.4s │ 0.6s │ │ 예상 월 비용 (10K 호출) │ $25 │ $30 │ $3 │ └─────────────────────────┴──────────┴──────────┴──────────┘ ``` → v2 프롬프트 + Claude가 가장 높은 점수. 비용이 중요하면 v2 + gpt-4o-mini도 78%로 준수. --- ## LangSmith: 종합 관찰 플랫폼 LangSmith는 LangChain 팀이 만든 LLM 앱 관찰 플랫폼입니다. 추적, 평가, 데이터셋 관리를 통합합니다. ```python from langsmith import Client from langsmith.evaluation import evaluate client = Client() # 데이터셋 생성 dataset = client.create_dataset("customer-support-qa") client.create_examples( inputs=[{"question": "환불 정책이 어떻게 되나요?"}], outputs=[{"answer": "구매 후 7일 이내 환불 가능합니다"}], dataset_id=dataset.id, ) # 평가 실행 def my_app(inputs): return {"output": llm.invoke(inputs["question"])} def correctness_evaluator(run, example): score = llm_judge(run.outputs["output"], example.outputs["answer"]) return {"key": "correctness", "score": score} results = evaluate( my_app, data=dataset.name, evaluators=[correctness_evaluator], experiment_prefix="v2-prompt-test", ) ``` --- ## 어떤 도구를 선택할까? ```mermaid flowchart TD Start[평가 필요] --> Q1{RAG 시스템인가?} Q1 -- Yes --> RAGAS[RAGAS<br/>+ Langfuse 조합] Q1 -- No --> Q2{CI/CD 통합 필요?} Q2 -- Yes --> Promptfoo[Promptfoo<br/>+ GitHub Actions] Q2 -- No --> Q3{LangChain 사용 중?} Q3 -- Yes --> LangSmith[LangSmith] Q3 -- No --> Q4{예산?} Q4 -- 무료/오픈소스 --> Langfuse[Langfuse<br/>+ RAGAS] Q4 -- 유료 허용 --> LangSmith ``` --- ## 최소한의 시작: 직접 구현 도구를 바로 도입하기 어렵다면 간단한 평가 루프부터 시작합니다: ```python import json from openai import OpenAI client = OpenAI() TEST_CASES = [ {"input": "환불 정책?", "expected_keywords": ["7일", "환불", "영업일"]}, {"input": "배송 기간?", "expected_keywords": ["3~5일", "영업일", "배송"]}, ] def simple_eval(prompt_template: str) -> float: scores = [] for case in TEST_CASES: response = client.chat.completions.create( model="gpt-4o-mini", messages=[ {"role": "system", "content": prompt_template}, {"role": "user", "content": case["input"]}, ] ).choices[0].message.content # 키워드 포함 여부로 기본 점수 hit = sum(1 for kw in case["expected_keywords"] if kw in response) scores.append(hit / len(case["expected_keywords"])) return sum(scores) / len(scores) v1_score = simple_eval(open("prompts/v1.txt").read()) v2_score = simple_eval(open("prompts/v2.txt").read()) print(f"v1: {v1_score:.2f}, v2: {v2_score:.2f}") ``` --- ## 결론AI 평가는 "한 번 설정하고 끝"이 아니라 **지속적인 파이프라인**입니다. - **시작**: Promptfoo로 프롬프트 A/B 테스트 - **RAG 시스템**: RAGAS로 검색 품질 측정 - **프로덕션**: Langfuse로 실시간 품질 모니터링 평가 없이 프롬프트를 수정하는 것은 눈 감고 운전하는 것과 같습니다. 테스트 케이스 10개라도 갖추고 시작하세요.

이전글

GitHub Copilot

다음글

Grammarly

댓글

0개

댓글을 작성하려면

로그인

해주세요

사용 모델

Google: Gemini 2.5 Flash

Google

Google: Gemini 2.0 Flash

Google

Google: Gemini 2.5 Pro

Google

Google: Gemma 4

Google

사용 방법론

Foundation Model API Strategy

Context Window Management

관련 기사

AI 모델 평가 완전 가이드: RAGAS, LangSmith, Promptfoo 실전 비교

Task

Text Generation (텍스트 생성)

Code Generation (코드 생성)

방법론Foundation Model API StrategyContext Window Management
가이드2026년 3월 28일

AI 프로덕트 관리 가이드: AI 기능 기획부터 출시까지 (2025)

## AI PM이 다른 이유 AI 기능을 기획하는 PM은 일반 소프트웨어 개발과 다른 도전을 마주합니다. AI는 **비결정적**입니다. 같은 입력에 다른 출력이 나올 수 있고, "버그"와 "의도된 동작"의 경계가 모호합니다. ```mermaid flowchart LR Traditional[일반 PM<br/>입력 → 결정적 출력<br/>버그=코드 오류] --> AI_PM AI_PM[AI PM<br/>입력 → 확률적 출력<br/>품질=정도의 문제<br/>실패=명확하지 않음] ``` --- ## AI 기능 기획 프레임워크 ### 1단계: 문제 정의 (AI가 필요한지 먼저 확인) ``` AI가 필요한 경우: ✓ 패턴 인식 (사기 탐지, 감정 분석) ✓ 자연어 이해 (챗봇, 문서 요약) ✓ 대규모 개인화 (추천 시스템) ✓ 비구조적 데이터 처리 (이미지, 음성) AI가 필요 없는 경우: ✗ 규칙이 명확한 계산 로직 ✗ 단순 데이터베이스 조회 ✗ 결정적 워크플로우 자동화 ``` ### 2단계: 성공 지표 정의 AI 기능의 성공 지표는 일반 기능과 다릅니다: | 일반 기능 | AI 기능 | |-----------|---------| | 에러율 0% | 정확도 95% (100%는 불가) | | 응답시간 200ms | p95 레이턴시 2초 이내 | | 가용성 99.9% | 품질 저하율 < 5% | **핵심 AI 지표:** - **정밀도(Precision)**: AI가 맞다고 한 것 중 실제 맞는 비율 - **재현율(Recall)**: 실제 맞는 것 중 AI가 찾아낸 비율 - **F1 Score**: 정밀도와 재현율의 조화 평균 - **사용자 만족도**: 실제 사용자가 AI 응답에 얼마나 만족하는가 ### 3단계: 데이터 전략 ```mermaid flowchart TD A[데이터 필요성 파악] --> B{자체 데이터<br/>있나?} B -- Yes --> C[데이터 품질 감사] B -- No --> D[공개 데이터셋<br/>또는 수집 계획] C --> E{충분한 양?} D --> E E -- 500개 미만 --> F[프롬프트 엔지니어링<br/>Few-shot으로 해결] E -- 500~10K --> G[파인튜닝 고려] E -- 10K 이상 --> H[전용 모델 학습 고려] ``` --- ## AI 기능 PRD 작성 가이드 일반 PRD와 달리 AI 기능 PRD에는 추가 섹션이 필요합니다: ```markdown ## AI 기능 PRD: [기능명] ### 문제 정의 - 해결하려는 사용자 문제 - 기존 방법의 한계 - AI가 이 문제를 해결할 수 있는 이유 ### 성공 기준 (측정 가능하게) - 정확도 목표: 90% 이상 - 레이턴시 목표: p95 3초 이내 - 오남용 방지: 유해 콘텐츠 생성 0% ### 실패 시나리오 (AI 특화) - 틀린 답변을 자신 있게 말할 때 (Hallucination) - 프롬프트 인젝션 공격 시 - API 장애 시 폴백(fallback) 동작 ### 평가 계획 - 테스트 데이터셋: 100개 golden set - 평가 방법: LLM-as-Judge + 사람 검토 - 배포 전 기준치: F1 0.85 이상 ### 윤리/안전 - 편향 위험: [설명] - 개인정보 처리: [설명] - 사용자에게 AI임을 명시하는가 ``` --- ## A/B 테스트: AI 기능의 특수성 AI 기능의 A/B 테스트는 일반 테스트보다 복잡합니다: **주의할 점:** ```python # 잘못된 A/B 테스트: 같은 입력에 다른 모델을 쓰면 # 비결정적 출력 때문에 결과 해석이 어려움 # 올바른 접근: # 1. 충분한 샘플 크기 (비결정성 평균화) # 2. 같은 사용자에게 일관된 variant 배정 # 3. 단기 지표 (클릭, 완료율) + 장기 지표 (재방문, 만족도) 함께 측정 # 4. "좋음/나쁨" 피드백 버튼으로 사용자 직접 피드백 수집 ``` **측정해야 할 지표:** | 지표 | 측정 방법 | |------|-----------| | 작업 완료율 | 사용자가 AI 응답 후 목표 달성 % | | 재생성 요청률 | "다시 시도" 클릭 비율 (낮을수록 좋음) | | 수정 비율 | AI 제안을 그대로 쓰는 vs 수정하는 비율 | | 이탈률 | AI 응답 후 페이지 이탈 비율 | | 명시적 피드백 | 👍/👎 평점 비율 | --- ## 프롬프트를 코드처럼 관리하기 PM이 직접 관여해야 하는 부분: ``` 프롬프트 변경 = 제품 변경 모든 프롬프트 변경은: 1. 버전 관리 (Git) 2. 테스트셋 통과 확인 3. A/B 테스트 또는 단계적 롤아웃 4. 롤백 계획 준비 ``` **프롬프트 변경 이력 관리:** ```json { "version": "2.1.0", "date": "2025-03-15", "author": "product-team", "change": "응답 길이 제한 추가, 불필요한 서두 제거", "test_result": {"f1": 0.91, "latency_p95": "1.8s"}, "rollout": "10% → 50% → 100%" } ``` --- ## AI 기능의 윤리적 고려사항 출시 전 반드시 확인해야 할 것들: **1. AI임을 명시하라** 사용자는 자신이 AI와 대화하고 있음을 알 권리가 있습니다. **2. 편향 테스트** 다양한 성별, 나이, 지역, 문화권에서 공평하게 동작하는지 테스트합니다. **3. 오류 시 인간 에스컬레이션** AI가 확신이 없을 때 사람에게 연결하는 명확한 경로가 있어야 합니다. **4. 데이터 최소화** AI에게 필요 이상의 사용자 데이터를 주지 마세요. --- ## 결론: AI PM의 핵심 역량 2025년 AI PM이 갖춰야 할 것들: 1. **기술 이해**: 모델의 한계, 환각, 레이턴시/비용 트레이드오프 이해 2. **평가 설계**: 정확도 측정, LLM-as-Judge, 사람 검토 워크플로우 3. **점진적 출시**: AI 기능은 10% → 50% → 100% 단계적 롤아웃 4. **피드백 루프**: 사용자 피드백 → 프롬프트/모델 개선 사이클 AI 기능을 기획할 때 "완벽한 AI"를 목표로 하지 마세요. "충분히 좋고, 실패해도 안전하며, 지속적으로 개선되는 AI"가 현실적인 목표입니다.

튜토리얼2026년 3월 28일

LLM 파인튜닝 실전 가이드: QLoRA로 나만의 모델 만들기 (2025)

## 파인튜닝을 해야 하는 경우 파인튜닝은 모든 상황에서 필요하지 않습니다. 먼저 파인튜닝이 진짜 필요한지 판단하세요: ```mermaid flowchart TD Start[커스텀 AI 필요] --> Q1{프롬프트만으로<br/>해결 가능?} Q1 -- Yes --> Prompt[System Prompt + Few-shot<br/>충분함] Q1 -- No --> Q2{지식을 추가해야 하나?} Q2 -- Yes --> RAG[RAG 구축<br/>파인튜닝보다 쉬움] Q2 -- No --> Q3{특정 스타일/형식<br/>일관성이 필요?} Q3 -- Yes --> FT[파인튜닝 고려] Q3 -- No --> Q4{응답 속도/비용<br/>극단적 최적화?} Q4 -- Yes --> FT Q4 -- No --> Prompt ``` **파인튜닝이 진짜 필요한 경우:** - 특정 산업 용어, 말투, 형식을 일관되게 써야 할 때 - API 비용을 대폭 줄이고 싶을 때 (소형 파인튜닝 모델 > 대형 범용 모델) - 지연 시간을 극단적으로 줄여야 할 때 - 인터넷 연결 없는 온프레미스 환경 --- ## QLoRA: 저사양에서 파인튜닝하는 방법 QLoRA(Quantized Low-Rank Adaptation)는 RTX 3090(24GB VRAM) 한 장으로도 70B 모델을 파인튜닝할 수 있게 해주는 기법입니다. ### 핵심 개념 **LoRA의 원리:** 모델의 모든 가중치를 업데이트하는 대신, 저랭크(low-rank) 행렬 2개만 학습합니다. ``` 원본 가중치 W (고정) + 델타 = A × B (A: r×d, B: d×r, r << d) ──────────────── 실제 사용 가중치 = W + A × B ``` 전체 파라미터의 0.1~1%만 학습 → 메모리 90% 이상 절감 **QLoRA 추가:** 기본 모델을 4비트로 양자화해 메모리를 더 줄이고, 그 위에 LoRA 어댑터를 학습합니다. --- ## 실전: Llama 3.1 8B 파인튜닝 ### 환경 설정 ```bash pip install transformers datasets peft trl accelerate bitsandbytes ``` ### 데이터 준비파인튜닝 데이터는 **지시-응답 쌍**입니다: ```python # 데이터 형식 (Alpaca 스타일) training_data = [ { "instruction": "다음 고객 리뷰의 감정을 분석하세요", "input": "배송이 3일이나 걸렸어요. 제품은 괜찮은데 배송이 너무 느려요.", "output": "감정: 혼합 (부정적 배송 경험 + 긍정적 제품 평가) 주요 불만: 배송 속도 만족 요인: 제품 품질" }, # 최소 수백~수천 개 필요 ] # HuggingFace Dataset 형식으로 변환 from datasets import Dataset def format_prompt(example): return { "text": f"# ## 지시: {example['instruction']} ### 입력: {example['input']} ### 응답: {example['output']}" } dataset = Dataset.from_list(training_data).map(format_prompt) ``` ### QLoRA 학습 ```python from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig from peft import LoraConfig, get_peft_model, TaskType from trl import SFTTrainer, SFTConfig import torch # 4비트 양자화 설정 bnb_config = BitsAndBytesConfig( load_in_4bit=True, bnb_4bit_quant_type="nf4", bnb_4bit_compute_dtype=torch.float16, bnb_4bit_use_double_quant=True, ) # 모델 로드 model = AutoModelForCausalLM.from_pretrained( "meta-llama/Llama-3.1-8B-Instruct", quantization_config=bnb_config, device_map="auto", ) tokenizer = AutoTokenizer.from_pretrained("meta-llama/Llama-3.1-8B-Instruct") # LoRA 설정 lora_config = LoraConfig( r=16, # 랭크 (작을수록 파라미터 적음, 16~64 권장) lora_alpha=32, # 스케일링 파라미터 (r의 2배 권장) target_modules=["q_proj", "v_proj", "k_proj", "o_proj"], lora_dropout=0.05, bias="none", task_type=TaskType.CAUSAL_LM, ) model = get_peft_model(model, lora_config) model.print_trainable_parameters() # trainable params: 6,815,744 || all params: 8,037,986,304 || trainable%: 0.085 # 학습 trainer = SFTTrainer( model=model, train_dataset=dataset, args=SFTConfig( output_dir="./output", num_train_epochs=3, per_device_train_batch_size=4, gradient_accumulation_steps=4, warmup_steps=100, learning_rate=2e-4, fp16=True, logging_steps=10, save_steps=500, ), dataset_text_field="text", max_seq_length=2048, ) trainer.train() trainer.save_model("./my-finetuned-model") ``` --- ## GPU 메모리 요구사항 가이드 | 모델 | 기법 | 최소 VRAM | 권장 VRAM | |------|------|-----------|-----------| | Llama 3.1 8B | QLoRA | 12GB | 16GB | | Llama 3.1 8B | LoRA (fp16) | 20GB | 24GB | | Llama 3.1 70B | QLoRA | 40GB | 80GB | | Qwen 2.5 14B | QLoRA | 20GB | 24GB | | Mistral 7B | QLoRA | 10GB | 16GB | **클라우드 GPU 옵션:** - RunPod: RTX 3090 (24GB) $0.44/시간 - Lambda Labs: A100 (80GB) $1.10/시간 - Google Colab Pro+: A100 (40GB) 월 $50 무제한 --- ## OpenAI 파인튜닝 API (코딩 없는 방법) 직접 학습 환경을 구축하기 어렵다면 OpenAI의 파인튜닝 API를 사용합니다: ```python from openai import OpenAI client = OpenAI() # 1. 데이터 업로드 with open("training_data.jsonl", "rb") as f: file = client.files.create(file=f, purpose="fine-tune") # 2. 파인튜닝 시작 job = client.fine_tuning.jobs.create( training_file=file.id, model="gpt-4o-mini", # 가장 저렴한 옵션 hyperparameters={"n_epochs": 3} ) # 3. 완료 후 사용 response = client.chat.completions.create( model=job.fine_tuned_model, # ft:gpt-4o-mini:org:custom:id messages=[{"role": "user", "content": "..."}] ) ``` **데이터 형식 (JSONL):** ```json {"messages": [{"role": "system", "content": "당신은 고객서비스 직원입니다"}, {"role": "user", "content": "환불 요청합니다"}, {"role": "assistant", "content": "안녕하세요! 불편을 드려 죄송합니다..."}]} ``` --- ## 파인튜닝 vs 프롬프트 엔지니어링 비용 비교 **시나리오: 하루 10만 건 분류 태스크** | 방법 | 모델 | 월 비용 | 레이턴시 | |------|------|---------|---------| | System Prompt | GPT-4o | ~$750 | 1-2초 | | System Prompt | GPT-4o-mini | ~$60 | 0.5초 | | 파인튜닝 | GPT-4o-mini ft | ~$30 | 0.3초 | | 자체 QLoRA | Llama 3.1 8B | GPU 비용만 | 0.1초 | 파인튜닝으로 비용 50~90% 절감 가능합니다. --- ## 결론파인튜닝 시작 전 체크리스트: 1. ✅ 프롬프트 최적화로 충분하지 않은가? 2. ✅ 학습 데이터가 최소 500개 이상 있는가? 3. ✅ 데이터 품질이 일관적인가? 4. ✅ GPU 또는 클라우드 환경이 준비됐는가? 빠르게 시작하고 싶다면: **OpenAI gpt-4o-mini 파인튜닝** → 코드 최소화, 학습 데이터만 준비 성능과 비용 최적화가 목표라면: **QLoRA + Llama 3.1 8B** → 자체 인프라에서 완전 제어

COMPARISON

AI 프로덕트 관리 가이드: AI 기능 기획부터 출시까지 (2025)

GUIDE

LLM 파인튜닝 실전 가이드: QLoRA로 나만의 모델 만들기 (2025)

TUTORIAL

유사 서비스

Vertex AI

코드 생성

Gamma

텍스트 생성

Mem

문서 요약

ChatGPT

문서 요약

Claude Code

코드 생성