사용자 정의 모델 범위 설정하기
문제에 대한 해결책이 사용자 정의 훈련된 모델인지 아직 명확하지 않을 때 여기서 시작하세요. 대부분의 경우 누군가는 이미 파인튜닝을 원하거나, 오프라인으로 실행하거나, 비용을 절감하고 싶다고 확신한 채로 도착하지만, 그 요청 뒤에 있는 실제 제약 조건을 명명하지는 않습니다. 이 스킬은 한 단계 속도를 늦추기 위해 존재합니다: 제약 조건을 명명하고, 더 저렴한 수정 방법을 배제한 후에야 훈련이 제공해야 할 것을 정의합니다.
먼저 제약 조건을 명명하세요
사람들은 거의 제약 조건을 먼저 말하지 않습니다. 대신 해결책을 먼저 말합니다: "모델을 파인튜닝하고 싶어요," "이걸 오프라인에서 실행하고 싶어요," "제 모델을 갖고 싶어요." 각각은 다섯 가지 실제 제약 조건 중 하나를 대신하는 표현입니다. 더 나아가기 전에 실제로 어떤 것인지 파악하세요. 왜냐하면 이 스킬의 나머지 부분과 다음에 갈 다른 8개 스킬 중 어느 것이 답에 따라 달라지기 때문입니다.
| 누군가 말하는 것 | 그것이 일반적으로 의미하는 것 |
|---|---|
| "비용이 너무 많이 들어요" | 비용 |
| "너무 느려요" 또는 "왕복 시간이 문제예요" | 지연 시간 |
| "데이터가 밖으로 나갈 수 없어요" | 프라이버시 |
| "연결 없이도 작동해야 해요" | 오프라인 작동 |
| "계속해서 이걸 틀려요" 또는 "일관성이 없어요" | 행동 일관성 |
이 중 어느 것도 해당하지 않으면 직접 물어보세요. "제 모델을 갖고 싶다"는 말에 그 밑에 제약 조건이 없다면, 보통 요구 사항이라기보다는 열정에 가깝고, 열정을 보고 훈련하면 아무도 실제로 요구하지 않은 모델이 만들어집니다.
훈련에 동의하기 전에 시도할 네 가지
훈련은 모델의 동작을 변경하는 가장 느리고 가장 비용이 많이 드는 방법입니다. 먼저 더 저렴한 옵션을 배제하세요. 자세한 내용, 각각의 대략적인 비용, 그리고 그것이 더 이상 충분하지 않다는 정확한 신호는 references/alternatives-to-training.md에 있습니다. 간단한 버전:
- 더 나은 프롬프트. 모델이 이미 답을 알고 있고 단지 표현, 형식화 또는 일관성 없이 적용하는 경우에 충분합니다. 잘 고려된 프롬프트가 실제 입력의 상당 부분에서 여전히 틀릴 때 충분하지 않습니다.
- 검색. 문제가 지식 부족이나 오래된 지식(행동이 아닌)일 때 충분합니다. 올바른 사실이 이미 컨텍스트에 있고 모델이 여전히 그것을 무시하거나 잘못 적용할 때 충분하지 않습니다.
- 더 작은 호스팅 모델. 작업이 현재 모델이 구축된 것보다 더 좁고, 동일한 프롬프트를 가진 더 작은 호스팅 모델이 더 적은 비용이나 지연 시간으로 동일한 품질 기준을 충족할 때 충분합니다. 어떤 크기의 호스팅 모델도 기준을 전혀 충족하지 못할 때 충분하지 않습니다.
- 모델 간 라우팅. 작업 부하가 쉬운 요청과 어려운 요청이 섞여 있고 저렴한 모델이 이미 쉬운 부분을 올바르게 처리할 때 충분합니다. 어려운 부분이 실제로 비용, 지연 시간 또는 품질 불만을 유발할 때 충분하지 않습니다.
이 순서대로 진행하세요. 각각은 훈련보다 시도해보고 배제하기에 더 저렴하고 빠릅니다.
훈련이 잘못된 답일 때
이것은 이 스킬에서 가장 중요한 단락입니다. 사용자 정의 모델을 훈련하는 것은 단지 비용이 조금 더 드는 기본적으로 좋은 아이디어가 아닙니다. 그것은 종종 잘못된 답이며, 여기서 그것을 명확히 말하면 이후의 많은 낭비되는 노력을 절약할 수 있습니다. 다음 중 하나라도 해당되면 훈련하지 마세요:
- 작업은 행동이 아니라 지식 검색입니다. 모델이 이미 올바른 사실을 컨텍스트에 넣으면 올바르게 행동한다면, 차이는 가중치가 아니라 검색에 있습니다. 훈련은 실행이 끝난 후에 변경되는 사실을 모델에게 가르치지 않으며, 데이터가 변경될 때마다 재훈련하는 것은 검색보다 훨씬 느리고 비쌉니다.
- 수백 개 미만의 예제만 사용할 수 있습니다. 모델은 소수의 예제로 새로운 행동을 안정적으로 학습할 수 없습니다. 그 임계값 미만에서는 먼저 더 많은 레이블이 지정된 데이터를 생산하는 데 투자하거나,それが 필요하지 않은 접근 방식(더 나은 프롬프트, 퓨샷 예제 세트 또는 검색)을 사용하세요.
- 품질 기준이 최첨단 수준의 개방형 추론입니다. 진정으로 개방된 추론, 새로운 문제 해결 또는 광범위한 일반 지식은 더 작은 오픈 모델 위에 훈련이 제공하는 것이 아닙니다. 훈련은 모델을 특정 작업과 형식으로 좁힙니다. 개방형 추론에서 작은 모델을 최첨단 모델로 바꾸지 않습니다.
이 중 하나라도 해당된다면 명확히 말하고 "어떤 기본 모델을 파인튜닝해야 할까"라는 대화로 빠져들지 말고 실제로 맞는 대안으로 다시 라우팅하세요.
훈련이 옳다면, 대상을 정의하세요
위의 어떤 것도 훈련을 배제하지 않고, 네 가지 대안 중 어느 것도 품질 기준을 유지하지 못한다면, 훈련은 합리적인 다음 단계입니다. 기본 모델이나 데이터셋을 건드리기 전에 다섯 가지를 적어 두세요:
| 정의 | 내용 |
|---|---|
| 작업 | 한 문장: 모델이 실제로 해야 할 일, 어떤 종류의 입력에 대해 |
| 품질 기준 | 구체적이고 확인 가능한 통과 조건, "좋은" 또는 "최첨단보다 나은"이 아님 |
| 지연 시간 예산 | 숫자와 함께, 그 숫자를 달성해야 하는 런타임 |
| 배포 대상 | 온디바이스, 로컬, 엣지 또는 관리형 GPU 클라우드, 제약 조건이 실제로 있는 위치에 의해 결정 |
| 성공 측정 방법 | 훈련 후, 누군가 작업이 완료되었다고 부르기 전에 실행되는 평가 |
이 단계를 건너뛰는 것은 훈련 프로젝트가 이전보다 실제로 더 나은지 아무도 말할 수 없는 모델을 생산하는 가장 흔한 이유입니다. 해당 평가를 구축하는 방법은 튜닝된-모델-평가하기를 참조하세요.
일단 훈련이 결정되면, references/training-options.md에는 실제로 실행할 위치(자체 GPU부터 여러 호스팅 플랫폼까지)에 대한 정직한 옵션 세트가 있으며, 각각 실제 선택 기준이 있습니다. 기억보다는 그 참고 자료에서 추천하고, 전체 표를 다시 읽는 대신 명시된 기준이 가리키는 하나의 행을 명명하세요. "가장 사용하기 쉬운 것"에 직접 답합니다.
다른 8개 스킬
이것은 나머지 스위트의 진입점입니다.
| 스킬 | 단계 | 다음 경우에 여기로 가세요 |
|---|---|---|
모델-번들-검사하기 | 검사 | 모델 파일이나 디렉토리가 이미 존재하고 그 안에 무엇이 있는지 명확하지 않을 때 |
잘못된-파인튜닝-디버깅하기 | 디버그 | 훈련된 모델이 반복하거나, 멈추지 않거나, 훈련을 무시할 때 |
튜닝된-모델-평가하기 | 평가 | 파인튜닝이 실제로 기준선을 이겼는지 알아야 할 때 |
모델-vs-API-비용-산정하기 | 비용 산정 | 소유가 API를 이기는 사용 수준을 계산해야 할 때 |
React-Native-앱에-모델-배포하기 | 배포 | React Native 또는 Expo에 배포할 때 |
iOS-앱에-모델-배포하기 | 배포 | Swift, MLX 또는 Core ML에 배포할 때 |
Android-앱에-모델-배포하기 | 배포 | Kotlin, MediaPipe 또는 LiteRT에 배포할 때 |
Flutter-앱에-모델-배포하기 | 배포 | Flutter에 배포할 때 |
결정 사항을 작성하세요
사용자 프로젝트 루트에 MODEL-DECISION.md를 작성하여 추론 과정이 이 대화 이후에도 유지되도록 하세요. 다음 섹션을 정확히 이 순서로 사용하세요:
# 모델 결정
## 제약 조건
<비용 | 지연 시간 | 프라이버시 | 오프라인 작동 | 행동 일관성, 이유를 한 줄로>
## 고려된 옵션
<대안(프롬프트, 검색, 더 작은 호스팅 모델, 라우팅) 각각에 대해 한 줄씩, 각각이 충분했거나 충분하지 않았던 이유>
## 결정
<훈련 또는 훈련 안 함. 훈련한다면: 위에서 정의된 대상>
## 어떻게 작동하는지 알 수 있을까
<이를 결정하는 평가 또는 튜닝된-모델-평가하기에 대한 포인터>
결정이 "훈련하지 않음"이더라도 파일을 작성하는 것이 여전히 가치가 있습니다. 그것은 이유에 대한 기록이며, 3주 후에 답에 대한 기억 없이 동일한 질문이 다시 제기되는 것을 막습니다.
다음으로 넘기기
- 결정이 "훈련하지 않음": 여기서 멈추거나, 실제로 맞는 대안으로 돌아가기
- 결정이 "훈련"이고 작업할 모델 파일이 이미 존재함: 모델-번들-검사하기
- 결정이 "훈련"이고 실행할 때가 됨:
references/training-options.md에서 플랫폼 선택 - 훈련이 이미 발생했고 판단이 필요함: 튜닝된-모델-평가하기