티스토리 뷰

728x90
반응형

GPT 모델을 활용한 투자 자동화 시스템을 구축하려면, 일반적인 프롬프트 엔지니어링만으로는 한계가 있을 수 있습니다. 특히, 특정한 투자 전략을 학습시키고 이를 일관된 방식으로 적용하려면 **Fine-tuning(파인튜닝)**을 활용하는 것이 효과적입니다. 이번 글에서는 OpenAI의 Fine-tuning 기능을 이용해 투자 전략을 학습시키는 방법을 코드 예제와 함께 소개하겠습니다.


1. Fine-tuning이란?

Fine-tuning은 GPT 모델을 특정 도메인 데이터에 맞게 추가 학습시키는 과정입니다. OpenAI의 기본 모델은 다양한 텍스트 데이터를 학습했지만, 개별적인 투자 전략을 반영하는 것은 어려울 수 있습니다. Fine-tuning을 통해, GPT가 특정 투자 패턴, 시장 분석 방법, 트레이딩 전략을 학습할 수 있도록 조정할 수 있습니다.

 

📌 Fine-tuning이 필요한 이유

  • 특정 투자 전략 반영: 일반 GPT 모델은 보편적인 투자 조언만 제공할 수 있습니다. Fine-tuning을 하면 개별적인 투자 전략을 학습시킬 수 있습니다.
  • 일관된 응답 제공: 동일한 입력에 대해 일관된 응답을 얻을 수 있어, 자동화된 투자 시스템에 적합합니다.
  • 프롬프트 길이 단축: Fine-tuning을 통해 모델이 사전 학습한 내용을 기억하기 때문에, 매번 긴 프롬프트를 입력할 필요가 없습니다.

2. Fine-tuning을 위한 사전 준비

Fine-tuning을 진행하기 위해서는 투자 전략 데이터가 필요합니다. 우리는 투자 데이터를 다음과 같은 형식으로 준비할 것입니다.

JSONL 데이터 형식

OpenAI Fine-tuning에서는 JSONL(JSON Lines) 형식을 사용합니다. 데이터는 prompt(입력)와 completion(출력) 두 가지 요소로 구성됩니다.

예제 데이터:

{
    "prompt": "투자 전략: 현재 BTC/USDT 가격은 27000 USD, 거래량은 1200. 어떤 전략을 취해야 할까?\n\n###\n\n",
    "completion": "매수 전략 추천: 현재 시장 상황과 상승 모멘텀을 고려할 때, 매수하는 것이 적절합니다.\n"
}
{
    "prompt": "투자 전략: 현재 BTC/USDT 가격은 29000 USD, 거래량은 800. 어떤 전략을 취해야 할까?\n\n###\n\n",
    "completion": "매도 전략 추천: 가격이 고점을 형성하고 있으므로 일부 청산을 고려하는 것이 좋습니다.\n"
}

위 데이터셋에서는 비트코인(BTC/USDT)의 가격과 거래량을 기준으로 투자 결정을 내리는 방법을 학습합니다.


3. Fine-tuning을 위한 코드 작성

이제 Python을 사용하여 Fine-tuning을 진행하는 코드를 실행해보겠습니다.

(1) Fine-tuning 데이터 생성 및 저장

다음 코드에서는 투자 전략 데이터셋을 JSONL 형식으로 저장합니다.

 
import json

# Fine-tuning 데이터 생성
training_data = [
    {
        "prompt": "투자 전략: 현재 BTC/USDT 가격은 27000 USD, 거래량은 1200. 어떤 전략을 취해야 할까?\n\n###\n\n",
        "completion": "매수 전략 추천: 현재 시장 상황과 상승 모멘텀을 고려할 때, 매수하는 것이 적절합니다.\n"
    },
    {
        "prompt": "투자 전략: 현재 BTC/USDT 가격은 29000 USD, 거래량은 800. 어떤 전략을 취해야 할까?\n\n###\n\n",
        "completion": "매도 전략 추천: 가격이 고점을 형성하고 있으므로 일부 청산을 고려하는 것이 좋습니다.\n"
    }
]

# JSONL 파일로 저장
with open("training_data.jsonl", "w", encoding="utf-8") as f:
    for entry in training_data:
        json.dump(entry, f, ensure_ascii=False)
        f.write("\n")

print("훈련 데이터 파일 생성 완료: training_data.jsonl")

출력 결과:
훈련 데이터 파일 생성 완료: training_data.jsonl


(2) OpenAI API를 이용한 Fine-tuning 실행

Fine-tuning을 진행하려면 OpenAI API 키가 필요합니다. 환경 변수로 API 키를 설정하거나 코드 내에서 직접 입력하세요.

import openai

# OpenAI API 키 설정
openai.api_key = "YOUR_API_KEY"

# JSONL 파일 업로드
upload_response = openai.File.create(
    file=open("training_data.jsonl", "rb"),
    purpose="fine-tune"
)
file_id = upload_response["id"]
print("업로드된 파일 ID:", file_id)
 

출력 예시:
업로드된 파일 ID: file-abc123xyz456


(3) Fine-tuning 작업 시작

파일이 업로드되면, 해당 파일을 이용하여 Fine-tuning을 실행할 수 있습니다.

fine_tune_response = openai.FineTune.create(
    training_file=file_id,
    model="text-davinci-003"
)
job_id = fine_tune_response["id"]
print("Fine-tuning 작업 생성됨, 작업 ID:", job_id)

출력 예시:
Fine-tuning 작업 생성됨, 작업 ID: ft-xyz789abc456


(4) Fine-tuning 작업 모니터링

Fine-tuning 작업이 완료될 때까지 상태를 확인하는 코드를 실행합니다.

import time

while True:
    status_response = openai.FineTune.retrieve(id=job_id)
    status = status_response["status"]
    print("현재 작업 상태:", status)
    if status in ["succeeded", "failed"]:
        break
    time.sleep(30)  # 30초 후 다시 확인

print("최종 작업 상태:", status)
 

출력 예시:
현재 작업 상태: succeeded
최종 작업 상태: succeeded


(5) Fine-tuning 완료 후 모델 사용

Fine-tuning이 완료되면, 새로운 모델이 생성됩니다. 이를 확인하고 API를 호출하는 방법은 다음과 같습니다.

fine_tuned_model = status_response.get("fine_tuned_model")
if fine_tuned_model:
    print("생성된 Fine-tuned 모델:", fine_tuned_model)
else:
    print("모델 생성에 실패하였습니다.")

출력 예시:
생성된 Fine-tuned 모델: ft-your-custom-model-id

이제 ft-your-custom-model-id를 API 호출 시 model 파라미터로 사용하면 Fine-tuned 모델을 사용할 수 있습니다.

response = openai.Completion.create(
    model="ft-your-custom-model-id",
    prompt="투자 전략: 현재 BTC/USDT 가격은 27500 USD, 거래량은 1000. 어떤 전략을 취해야 할까?\n\n###\n\n",
    max_tokens=150
)

print(response.choices[0].text.strip())
 

예상 응답 예시:
매수 전략 추천: 현재 시장 변동성이 낮고 거래량이 안정적이므로, 보수적으로 매수 전략을 고려할 수 있습니다.


4. Fine-tuning의 장점과 한계

✅ 장점

  • 일관된 투자 전략 반영 가능
  • 프롬프트 입력 길이 단축으로 비용 절감
  • 맞춤형 응답 제공

⚠ 한계

  • 실시간 학습이 아님: Fine-tuning 모델은 학습된 데이터만 반영되므로, 실시간 시장 변동을 반영하려면 프롬프트 엔지니어링과 병행해야 함
  • 추가 비용 발생: Fine-tuning 작업 자체는 비용이 들며, API 호출 시에도 비용이 부과됨

5. 결론

Fine-tuning을 활용하면 투자 전략을 포함한 맞춤형 AI 모델을 구축할 수 있습니다. 이 방법을 활용하면 일반 GPT 모델보다 더 정밀하고 일관된 투자 전략을 자동화할 수 있습니다.

👉 이제 직접 여러분만의 Fine-tuned 투자 AI를 만들어보세요! 🚀

728x90
반응형