반응형
SMALL
- 개요
- 필자의 Chat Bot 토이프로젝트를 위한 Django 프로젝트 모델 정의
- 프로젝트 구조
ORM 모델 정의
위치 : fine_tuning_chatbot/models.py
FIneTunedModel
class FineTunedModel(models.Model):
MODEL_CHOICES = [
('ada', 'Ada'),
('babbage', 'Babbage'),
('curie', 'Curie'),
('davinci', 'Davinci'),
]
model_name = models.CharField(max_length=100)
base_model = models.CharField(max_length=100, choices=MODEL_CHOICES)
def __str__(self):
return self.model_name
- Chat Bot 의 세부모델, 쳇봇의 모델 생성 및 명세를 담당
- 쳇봇의 베이스 모델을 튜플로 정의 ( 불변성 보장 ) 하여 초기 생성 시에 모델을 선택할 수 있도록 설정
- __str__을 함수 선언하여 모델을 식별 할 수 있도록 함
TrainingDataModel
class TrainingData(models.Model):
fine_tuned_model = models.ForeignKey(FineTunedModel, on_delete=models.CASCADE, related_name='training_data')
prompt = models.TextField()
completion = models.TextField()
def __str__(self):
return f'{self.fine_tuned_model.model_name}의 훈련 데이터'
- 연결된 세부모델의 훈련 데이터
- FIneTunedModel 과 1:N 관계로 매핑
- related_name 을 통해 외례키 이름 지정
DB 스키마 생성 및 적용
아래 명령어를 통하여 DB 업데이트를 위한 마이그레이션 스키마를 생성
python manage.py makemigrations //명령어 입력 후 터미널 명령줄 //방금 Django 프로젝트에서 생셩한 모델 두개가 정의됨 Migrations for 'fine_tuning_chatbot': fine_tuning_chatbot/migrations/0001_initial.py - Create model FineTunedModel - Create model TraningData
아래 명령어를 통해 방금 만들어진 DB 스키마를 적용
python manage.py migrate //명령어 실행 후 터미널 명령줄 Operations to perform: Apply all migrations: admin, auth, contenttypes, fine_tuning_chatbot, sessions Running migrations: //방금 만들어진 DB 스키마가 적용 되었다. Applying fine_tuning_chatbot.0001_initial... OK
Admin Site 에 Model 등록
from django.contrib import admin
from .models import FineTunedModel, TrainingData
# Register your models here.
@admin.register(FineTunedModel)
class FineTunedModelAdmin(admin.ModelAdmin):
list_display = ('model_name', 'base_model')
search_fields = ('model_name', 'base_model')
@admin.register(TrainingData)
class TrainingDataAdmin(admin.ModelAdmin):
list_display = ('prompt', 'completion', 'fine_tuned_model')
search_fields = ('prompt', 'completion', 'fine_tuned_model__model_name')
list_filter = ('fine_tuned_model',)
- @admin.register : 어드민 사이트에 모델 등록
- list_display : 어드민 사이트에 표시할 항목
- search_fields : 각 모델 항목에서 검색에 사용할 키워드
- list_filter : 특정 키워드로 필터링
적용화면
모델 생성 시 아까 작성했던 베이스 모델을 선택하는 목록을 볼 수 있다.
LIST
'Programming > python' 카테고리의 다른 글
[ python ] pandas DataFrame 사용법 기초 (0) | 2024.05.06 |
---|---|
[ Python ] python 반복문 기본문법 (0) | 2024.05.06 |
[ Django ] DRF 에서 자주 사용되는 API 데코레이션 (0) | 2024.02.15 |
[Django] Local 서버에서 정적 파일과 미디어 파일을 처리 (0) | 2024.02.14 |
[Django] Django 모델, 뷰, 템플릿, 폼을 사용하는 단계별 샘플 (0) | 2024.02.14 |