본문 바로가기

AI/자연어처리(NLP)

(11)
LLM 실습 1) dolly with langchain Intro llama 언어모델이 공개된 후 Opensource와 상업용으로 이용이 가능한 많은 언어모델이 출시되고 있다. 오늘은 이 중 Databricks에서 공개한 dolly 사용법에 대해 알아보자 Dolly는 pythia 모델에 15,000개의 databricks-dolly-15k(instruction/response 데이터셋)으로 fine-tuning한 모델이다. databricks-dolly-15k 데이터셋은 Databricks 직원들이 InstructGPT paper를 참고하여 brainstorming, classification, closed QA, generation, information extraction, open QA and summarization들을 포함하는 데이터셋을 만들었다. ..
GPT3 3편) HyperCLOVA(한국어 GPT3), CLOVA Studio 사용후기 안녕하세요 자연어처리를 연구하고 있는 고우영입니다. 최근 네이버에서 한국어 초대규모 AI HyperCLOVA 언어모델을 개발하여 직접 사용해보면서 인공지능의 가능성과 한계를 체험해보고자 네이버 HyperCLOVA 에반젤리스트로 지원하여 크로버 스튜디오 클로즈 베타에 참여했습니다. 오늘은 한국어 초대규모 AI HyperCLOVA의 언어모델을 활용할 수 있는 No Code AI 도구인 CLOVA Studio 사용후기를 공유합니다. 0. GPT3 관련 지난 글 - GPT3 1편) GPT3 이론 파헤치기 https://keep-steady.tistory.com/52 GPT3 1편) GPT3 이론 파헤치기 최근 인공지능 기반 자연어처리는 거대 언어모델 개발로 큰 성공을 거두고 있습니다. 오늘은 GPT3에 대해 알..
GPT3 2편) OpenAI API로 chatbot을 만들어보자! 거대 언어모델 GPT3가 화재다. 수많은 데이터를 엄청 큰 Transformer decoder 모델로 이루어진 GPT 모델로 학습한 GPT3. 지금까지 언어모델은 Pretrain을 통해 학습한 후 많진 않지만 적지 않은 꽤 많은 데이터를 수집하여 fine-tuning을 해서 언어모델의 parameter weights 값들을 업데이트해야 동작했다. 하지만 GPT3 모델은 weight 업데이트 없이 언어모델의 입력인 prompt에 정보를 잘 담으면 학습 없이도 많은 task가 가능하다. GPT3로 할수있는 task는 자연어처리의 모든 task이다. 분류/요약/번역/챗봇 등등 수많은 task가 학습 없이 prompt 입력 만으로 가능하다. 본 글에선 1) OpenAI의 API를 이용해 GPT3를 이용하는 방법..
GPT3 1편) GPT3 이론 파헤치기 최근 인공지능 기반 자연어처리는 거대 언어모델 개발로 큰 성공을 거두고 있습니다. 오늘은 GPT3에 대해 알아봅시다. 1. 언어모델(Language Model) 언어모델은 크게 Auto encoding 모델과 Auto regressive 모델 두 종류로 나눌 수 있습니다. 1.1. Auto-Encoding Auto-Encoding 모델은 임의로 문장에서 빈칸([MASK])을 만든 후 주변 단어를 통해 문맥상 빈칸을 맞추는 방식입니다.을 위한 BERT, Electra, RoBerta가 이 방식에 속합니다. 동일 문장이라도 random masking 위치에 따라 서로 다른 정보 학습할 수 있고, Downstream task에 Fine-tuning 시 [MASK] 토큰이 등장하지 않으므로 Pre-trainin..
XLM, 다언어 임베딩 및 비지도학습 기반 번역 XLM(Cross-lingual Language Model Pre-training) code : https://github.com/facebookresearch/XLM paper: https://arxiv.org/abs/1901.07291 정리 : https://yhdosu.tistory.com/entry/Cross-lingual-Language-Model-Pre-training https://yhdosu.github.io/2018/11/05/XLM.html TransCoder는 XLM을 기반으로 한다. 저자인 Facebook AI Research의 Guillaume Lample는 비지도학습 기반 번역 기술의 대가이다. 다 언어간 Cross-linguality를 높이기 위해 XLM 모델을 개발하기도 했다..
TransCoder, 비지도학습 기반 프로그래밍 언어 번역기 TransCoder(Unsupervised Translation of Programming Languages) Link : https://arxiv.org/pdf/2006.03511.pdf github: https://github.com/facebookresearch/TransCoder 참고 : https://www.facebook.com/monthly.nlp/posts/258096098955595/ 5월 Facebook AI Research에서 Transcoder Transcoder라는 별칭의 코드 번역기가를 공개했다. 비지도 학습 기반 번역 기법을 프로그래밍 언어 간 변환에 적용한 연구이다. 아래 그림은 TransCoder 예시이다. 본 글에서는 Transcoder에 대해 다룬다. Abstract 1..
한국어 자연어처리 1편_서브워드 구축(Subword Tokenizer, Mecab, huggingface VS SentencePiece) 실습 코드(jupyter notebook) : github.com/keep-steady/NLP_for_korean.git 자연어처리를 오랫동안 하다 보니 나만의 한글 데이터셋에 Bert, Transformer 등 새로운 모델의 입력을 만들어야 할 일이 많다. 하지만 길고 긴 Pretraining을 수행 전 subword vocab을 만드는 건 정말 중요하다. 아무리 Pretraining을 잘 수행했어도 subword의 품질이 최종 성능에 많은 영향을 미친다. 특히 vocab은 중간에 바꿀 수 없어서 몇 달간 학습한 Pretraining 결과도 쓸모없어지는 수가 있다. 필자 이전 구글의 sentencepiece를 쭉 이용해와서 새롭고 빠른 tokenizer가 나왔다 해도 별 생각이없었다. 얼마나 빠르길래?..
서브워드 분절하기(sentencepiece, bpe, sub-word, bpe-droupout) 자연어처리를 오랫동안 하다보니 나만의 한글 데이터셋에 Bert, Transformer 등 새로운 모델의 입력을 만들어야 할 일이 많다. 한국어 자연어처리를 하는사람들이라면 매번 데이터셋에 맞는 sub-word 모델을 학습하고 vocab 사전을 만들어야한다 본 글에서는 내 데이터를 서브워드 분절하는 방법을 다루고자 한다 서브워드를 만드는 알고리즘은 사실 너무 많다. 1) 구글의 sentencepiece 2) opennmt 3) rust로 짜여 속도가 빠른 huggingface의 tokenizers 4) bpe 기법을 고안한 rsennrich의 코드 본 글에서는 구글의 sentencepiece 사용법을 다루고 다음글에서 huggingface의 tokenizers와 비교해 보려 한다 자연어 처리 시 모든 단어..