자유게시판

카카오 멀티모달 언어모델 카나나를 내 맥북에 설치해서 학습시키려면 어떻게 해야하는지 알아봅니다.

작성자 정보

  • 삼둡 작성
  • 작성일

컨텐츠 정보

본문

◻ 실행/추론(Inference)만 하려는 경우

Apple Silicon (M1/M2/M3) 기반 맥북이면 가능은 함

3B 모델8GB RAM 이상에서 실행 가능 (최소)

15.7B 모델은 로컬에서 실행하기 매우 어렵고, 분산 환경 or 클라우드 GPU가 필요

◻ 학습(fine-tuning)까지 하려는 경우

3B 모델 fine-tuning: 가능하지만 RAM 16GB 이상, 8GB VRAM 이상 GPU 필요

맥북 내장 GPU(M1/M2)는 성능이 제한적이라 full fine-tuning은 비효율적

LoRA(Low-Rank Adaptation) 방식의 경량 학습 방법 사용 추천

 

 

 

 

brew install git python pyenv
pyenv install 3.10.13  # 권장 버전
pyenv global 3.10.13
pip install --upgrade pip
pip install torch transformers accelerate peft
 

 

M1/M2 맥북이라면 PyTorch는 아래처럼 설치:

pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cpu

 

 


✅ 필요한 툴 설치 (M1/M2 맥북 기준 정리)

1. Python 설치 (권장: pyenv 사용)

bash

복사편집

brew install pyenv pyenv install 3.10.13 pyenv global 3.10.13

2. 가상환경 만들기 (선택사항, 권장)

bash

복사편집

python -m venv venv source venv/bin/activate

3. pip 업그레이드

bash

복사편집

pip install --upgrade pip

4. PyTorch 설치 (M1/M2 맞춤 버전)

◻ 방법 1: Metal 가속 버전 (GPU 활용 가능)

bash

복사편집

pip install torch torchvision torchaudio

※ 이 경우는 macOS + M1/M2 칩을 자동 인식해서 Metal 가속 버전 설치됨 (pip 최신 버전 사용 시)

◻ 방법 2: CPU-only 경량 버전 (GPU 미사용)

bash

복사편집

pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cpu

이건 GPU 안 쓰는 환경에서 메모리 아끼려고 쓰는 버전이에요.

✅ 그 외 필수 패키지 설치 (둘 다 공통)

bash

복사편집

pip install transformers accelerate peft datasets

 

 

 

 

 

◻ Fine-tuning (파인튜닝)이란?

이미 사전 학습(pretrained)된 대형 언어모델(예: Kanana-1.5-v-3b)을,

내가 원하는 특정 목적에 맞게 추가 학습하는 것을 말합니다.

예: 의료 데이터, 한의학 문장, 특정 도메인 질문응답 등

사용자가 보유한 데이터셋으로 "조금 더" 훈련

 

 

◻ 경량 학습이란?

GPT류 모델들은 수억~수천억 개 파라미터가 있어서 전체를 학습하려면 GPU 메모리가 수십 GB 필요합니다.

하지만 대부분의 사용자는 그렇게 큰 자원을 못 쓰기 때문에,

일부 레이어만 업데이트하는 식으로 경량화된 학습 방식을 사용합니다.

 

✅ LoRA란?

**LoRA (Low-Rank Adaptation)**는 경량 Fine-tuning 방식의 하나로:

원래 모델의 파라미터는 고정(=동결)해 두고,

**매우 작은 수의 추가 파라미터(저랭크 행렬)**만 학습합니다.

성능은 거의 비슷하게 나오는데, GPU 메모리 사용량이 대폭 줄어듭니다.

 

예:

원래 모델이 3B 파라미터라고 해도,
LoRA로 학습하는 건 수백만 개 수준의 파라미터만 조정하는 것에 그칩니다.

 

✅ 그래서 LoRA 기반 Fine-tuning은 어떤 의미?

"대형 모델 전체를 학습하지 않고, 작은 조각만 추가로 학습해서 원하는 결과를 얻을 수 있다"
라는 의미입니다.

 

예를 들어

내가 한의학 상담 데이터를 가지고 있음

이를 Kanana 모델에 적용하고 싶다면,

LoRA를 활용해 저렴한 리소스로도 학습이 가능

 

792cfabde161a3393606dfc6312d669b989f49e7t6hd.png

 

녹취 한 것을 JSON으로 전환해주는 툴이 있나?

 

ChatGPT의 말:

네, **녹취(음성)**를 자동으로 텍스트로 전사하고, 이를 JSON 형태로 구조화해주는 도구들이 존재합니다. 목적에 따라 다양한 접근이 가능한데, 아래에 현실적인 방법들을 카테고리별로 정리해드릴게요.

✅ 1. 녹음 파일 → 텍스트 (음성 인식)

우선 음성을 자동으로 텍스트로 바꾸는 음성 인식(ASR: Automatic Speech Recognition) 단계가 필요합니다.

◻ 주요 툴

도구

장점

특징

Whisper (OpenAI)

매우 정확

로컬 사용 가능, 한의학 용어도 잘 인식

Naver CLOVA Note

한국어에 특화

발화자 분리, 웹 기반, 무료 요금제 있음

 

**네이버 클로바 노트(CLOVA Note)**는 기본적으로 텍스트 전사 + 발화자 분리 + 타임라인을 제공하지만,
JSON 파일로 직접 다운로드하는 기능은 기본적으로 제공하지 않습니다.

하지만 다음과 같은 방식으로 JSON 구조로 변환하는 것이 가능합니다.

 

 

 

[00:00:01.00] 화자1: 요즘 자꾸 배가 아프고 설사를 해요.
[00:00:06.50] 화자2: 식사 후에 증상이 더 심해지시나요?
[00:00:09.30] 화자1: 네, 특히 점심 먹고 나면 그렇습니다.
 

위와 같이 네이버 클로바로 추출을 하고

 

다음 파이썬으로 정리

 

import re, json

lines = open("clova_note.txt", encoding="utf-8").read().splitlines()
result = []

for line in lines:
   match = re.match(r"\[(.*?)\] (화자\d+): (.+)", line)
   if match:
       time, speaker, text = match.groups()
       result.append({
           "speaker": speaker,
           "timestamp": time,
           "text": text
       })

with open("clova_note.json", "w", encoding="utf-8") as f:
   json.dump(result, f, ensure_ascii=False, indent=2)
 

[
 { "speaker": "화자1", "text": "요즘 자꾸 배가 아프고 설사를 해요." },
 { "speaker": "화자2", "text": "식사 후에 증상이 더 심해지시나요?" }
]

관련자료

댓글 0
등록된 댓글이 없습니다.

인기검색어


최근글


새댓글