728x90

런타임-런타임유형변경-GPU 설정 #GPU 사용하기

 

google drive를 mount하기

방법 1) 파일 폴더 - 우측의 구글 드라이브 아이콘 클릭 (Google Drive에 연결 클릭)

방법 2)

from google.colab import drive

drive.mount('/content/drive')

 

 

.py 파일 수정하기

왼쪽 디렉토리 목록에서 원하는 파일 더블클릭 - 파일 수정

 

.py 파일 실행하기

%cd /content/drive/Mydrive.... #파일이 위치한 경로로 변경
!python ____.py #특정 파일 실행

 

터미널 기본 명령어

ls 현재 디렉토리의 파일 목록 출력
cd 디렉토리를 이동
pwd 현재 경로를 보여줌
rm 파일이나 디렉토리 삭제
cp 파일이나 디렉토리 복사
mv 이름 변경 or 다른 디렉토리로 이동시킴
mkdir 새로운 디렉토리 생성
rmdir 디렉토리 삭제

 

https://www.youtube.com/watch?v=lGUVXXRlpyU&list=PLZjIfJn3RN8uuQcxfAKIrYOCXfcWCBXMC 

728x90

'개발' 카테고리의 다른 글

[Numpy, Tensorflow] axis, dim (shape, ndim, size...)  (0) 2022.07.23
728x90

gpt2 활용 한국어 언어 생성 모델 (한국어 기반)

 

- 원하는 주제에 맞게 한국어 문장 생성 (by fine tuning)

    이때 주제의 범주는 구체적으로 무엇?

- 학습 대상이 될 텍스트를 여러 개 입력 가능.

- 문제점: 데이터에 무조건 그 단어와 일치하는 단어가 포함되어야 함.

- 대강의 솔루션: 데이터 내 표현을 직접 임베딩해서 유사도 비슷한 것까지 유연하게 활용. 

 

- 활용 라이브러리

1) 허깅페이스의 transformers 라이브러리

https://github.com/huggingface/transformers

- GPT2 모델 클래스인 TFGPT2LMHeadModel 등

2) gluonnlp의 SentencepieceTokenizer & nlp 모듈

https://nlp.gluon.ai/

3) SKT KoGPT2 모델 리소스 기반

 

- 난이도: keytotext < gpt2 < kgpt

 

- 출처: 텐서플로 2와 머신러닝으로 시작하는 자연어 처리

728x90

'AI > NLP' 카테고리의 다른 글

ChatGPT란?  (0) 2022.12.11
[라이브러리] gpt-2-keyword-generation  (1) 2022.04.07
728x90

gpt-2-keyword-generation


https://github.com/minimaxir/gpt-2-keyword-generation

Usage

keyword_encode.py : 비지도 방식으로 키워드 추출, 직접 우리만의 키워드 제공도 가능

• Manual keywords may work better if you have them, which you can set with the keywords_field parameter to encode_keywords().

  • 생성한 keywords와 파일의 title을 포함하는 txt 파일을 출력함.
  1. 각 문서로부터 키워드 “keywords” 추출 (spaCy 활용)
    → 키워드 토큰화 & 품사 태깅
    • 명사, 동사, 형용사, 부사만 추출 가능
    • 명사는 그대로, 다른 품사는 lemmatizd된 버전으로
    • 고유명사, named-entities, 합성어 모두 개별 명사로 취급
    • 대명사와 불용어는 키워드에서 제외
    • 키워드 추출 시 중복 제거
  2. 키워드 추출 시, 해당 키워드를 기반으로 새로운 텍스트가 생성되기 쉽도록 해야 함.
    • 키워드 정규화 (전처리), 대소문자 구분
    • 키워드 섞기 (모델이 키워드 간 순서를 학습하여 텍스트 생성에 활용하는 것을 막음)
    • 문서의 키워드 셋이 만들어지면 → repeat random combination을 생성
      : data augmentation of sorts & 해당 키워드에의 과적합 방지
    • 각 combination에 대해, max_keywords 이하로 랜덤 숫자 지정 → 섞기
      : 신경망이 키워드 개수를 기반으로 텍스트 길이를 추측한다거나 키워드의 순서를 학습하는 것을 방지
  3. Write the keywords, then the document for each generated set of keywords

keyword_decode.py

  • bulk-generated encoded texts를 decode하는 함수 포함.
  • decode_texts() : 제공된 텍스트에 대해, specify된 분류 섹션으로부터 텍스트를 추출
  • decode_file(): 모든 텍스트를 추출, 디코딩하고 file로 작성해줌.

Taxanomy

category, keywords, title, body

category : 가장 넓은 범위
body: blog post처럼 title에 의존하는 큰 규모의 텍스트가 있을 때 사용

~로 섹션 구분

<|startoftext>~ `키워드 ~ ^타이틀 ~ @body <|endoftext>


Notes

  • There should be an equal amount of all unique category documents to prevent sampling bias.
  • 텍스트 분량 제한: The scope of the text document(s) plus the keywords must be within GPT-2's max 1023 token scope (e.g. should only be a few paragraphs max).

오답노트

(keyword2) C:\Users\동그리\Desktop\gpt-2-keyword-generation-master>
  • git clone
  • 반드시 가상환경에서!
  • 파이썬 버전 여러 개 깔 수 있음
  • 가상환경에서 특정 파이썬 버전 지정 (특정 버전 이상만 요구 or 이하만 요구하는 게 있음, 내가 사용하는 것은 무슨 버전 요구하는지 파악하기)

pip3 install -r requirements.txt의 특정 spacy 설치의 문제점.


Parts-of-speech = POS = 품사
taxonomic: 분류의
taxonomy: 분류학, 분류
delimit: 구분선을 만들다, 구분짓다

728x90

'AI > NLP' 카테고리의 다른 글

ChatGPT란?  (0) 2022.12.11
키워드 기반 텍스트 생성  (0) 2022.04.07

+ Recent posts