Skip to content

hanjm-github/2025-digital-twin

Repository files navigation

소개

2025년 1학기 울산광역시교육청 공동교육과정 울산여자고등학교 인공지능과 미래사회의 인공지능프로젝트 수행평가 제작물입니다.

제작물을 한 문장으로 요약하면 카카오톡과 음성 데이터를 학습해서 말을 걸면 특정 인물의 목소리와 대사로 대답하는 기계입니다.

엔비디아 젯슨(NVIDIA Jetson)에서 작동하는 것을 전제로 제작되었습니다.

jaramirami님의 내 카톡 데이터로 배우는 데이터 과학을 참고하였습니다.

파일


Digital Twin: 컴퓨터 속 또다른 나

1. 연구 목적

- 현재 AI 스피커의 개인화 한계
- 맞춤화 된 인공지능의 부상
- 꾸준히 성장하고 있는 LLM

* 이 연구는 컴퓨터 속 또다른 나를 구축하여 인공지능의 새로운 사용례를 제시하고 인공지능의 이해도를 높이고자 한다.

2. 이론적 배경

- Wakeword
    - Wakeword란 음성 인식 시스템이 명령을 듣기 시작하도록 깨우는 특정 단어를 의미한다. “오케이 구글”, “하이 빅스비“ 등이 이에 해당한다.
- STT(Speech-to-Text)
    - 사람의 음성을 컴퓨터가 인식하여 텍스트로 변환하는 기술
    - Whisper 모델은 품질이 떨어지는 데이터를 대량으로 학습하여 성능을 극대화한다.
- VAD(Voice Activity Detection (음성 활동 감지))
    - 통신이나 음성 처리에서 사람의 음성(말소리) 유무를 감지하는 기술이다.
- Transformer
    - 트랜스포머는 시퀀스 데이터 처리를 위해 고안된 구조로 문장 전체를 한 번에 파악하고 각 단어 간의 관계를 ‘어텐션' 매커니즘을 통해 파악하는 모델이다.
- Fine-Tuning(파인튜닝)
    - 이미 대규모 데이터로 사전 학습된 인공지능 모델을 특정 작업 또는 도메인에 더욱 잘 맞도록 추가적으로 학습시키는 과정을 의미한다.
- LoRA(Low-Rank Adaptation)
    - 모델 전체의 가중치를 다시 학습하지 않고, 필요한 부분만 저차원(저랭크) 행렬을 통해 선택적으로 학습한다.
- 양자화(Quantization)
    - 모델의 가중치 값과 같은 주요 파라미터를 고정밀 데이터 표현(예)16비트 부동소수점 fp16) 저정밀 데이터 표현(예)8비트 정수 INT8)으로 변환하는 모델 압축 기술
- TTS(Text-to-Speech(텍스트 음성 변환))
    - 텍스트(문자)를 사람의 음성처럼 들리는 소리로 변환해 주는 기술

3. 연구 방법

- Wakeword 모델 학습
    - Wakeword로 사용될 음성을 TTS로 생성
    - DNN을 사용하여 모델을 학습
- 텍스트 모델 파인 튜닝
    - 카카오톡 데이터 다운로드 후 전처리
    - LLaMA-Factory 이용 파인튜닝
    - llama-cpp 이용 양자화
- TTS 모델 학습
    - 학습용 샘플 목소리 녹음
    - 상용 소프트웨어(elevenlabs) 이용 학습

4. 연구 결과

- Wakeword & STT
    - Wakeword가 아예 작동하지 않는 것은 아니었으나 기대에 미치지 못하는 수준의 인식률을 보였다. 
    - STT는 한국어를 꽤 잘 이해할 수 있었다.
- 텍스트 모델 학습
    - 카카오톡 데이터 약 21만건을 다운로드 후 전처리를 거쳐 약 4만 5천쌍의 학습 데이터를 만들었다,
    - exaone3.5:2.4b 모델을 기반으로 LoRA를 사용해 파인 튜닝을 진행하였다, A100을 약 11시간 가동하여 40 에포크 학습할 수 있었다,
    - Training Loss는 점점 떨어지는 모습을 보였지만 Valdation Loss를 계산하지 않아 과적합 여부를 판단할 수 없었다. 
    - 실제 내가 자주 사용하는 표현을 잘 사용했다. 카카오톡 데이터만을 학습해서는 알 수 없는 지식도 이해하고 있었다. 개인정보를 술술 부는 문제점이 있었다.
    - llama.cpp를 이용해 16비트 부동소수점 형식인 bf16에서 8비트 정수 기반의 Q8_0으로 양자화했다.
- TTS
    - 25년 고2 국어 15번 문제를 녹음한 데이터를 학습했다.
    - 주변인들에게 물어본 결과 눈감고 들으면 비슷하다는 평을 얻을 수 있었다.
- Train/Loss

train/loss graph

5. 결론

본 연구에서는 컴퓨터 속 또 다른 나를 구축하여보았다. 그러나 정확도가 꽤 떨어졌다. 이는 Valdation Loss를 계산하지 않아 과적합 여부를 판단할 수 없었던 것, 카카오톡 대화 데이터가 규칙성을 띄지 않았던 것, 기존에 이미 나와있는 프로그램을 그대로 사용한 것. 등의 다양한 요소가 복합적으로 작용한 결과인 것으로 추정된다. 향후 연구에서는 품질 좋은 데이터, 기존 프로그램 사용 최소화, Val Loss 계산 등을 통해 정확도를 높이는 방안을 고려해야 할 것이다.

6. 참고 문헌

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors