ai

· ai
Q. 파인튜닝된 언어모델을 어떻게 평가하셨나요?언어 모델을 어떻게 평가했는지를 말씀드리기 전에, 저희가 어떤 언어 모델을 만들려고 했는지 말씀드릴게요.저희가 만들려고 했던 모델은 사용자와 일상 대화가 가능한 언어 모델이었습니다. 일상대화가 가능하다는 것을 쪼개서, ‘먼저 싱글턴에서 대화가 되는 가?’를 평가 목표로 잡았습니다.그리고 2가지 평가를 진행했습니다.일단 첫 번째로는 저희가 직접 손수 프롬프트를 넣어서 테스트했어요. 예를 들어 사용자가 오늘 날씨 어때라고 물어봤을 때 오늘 날씨 추워요 이렇게 대답할 수 있는 지 본거예요. 한번씩 이상하게 기호가 섞여서 나오도라고요. 그런 경우는 전처리를 다시 해서, 오류를 잡았습니다.그리고 이제 두 번째 평가는 자동화된 툴을 사용했어요. 언제까지 수작업으로 테스..
· ai
Q1. 인공지능 학습을 여러번 해보신것 같은데 배치크기가 뭐죠?배치 크기랑 인공지능 학습에서 gpu가 한 번에 몇 개의 시퀀스를 처리할 것인지를 정한 것입니다. GPU 입장에서 한 번에 처리할 시퀀스 묶음 수를 의미하는데요.이제 여기서 시퀀스라고 하는 것이 뭐냐면 이제 언어 모델에서 토큰이 들어올 때 전체 토큰을 GPU가 한 번에 처리할 수 없기 때문에 이 토큰을 맥스 랭스라고 해서 한 번에 GPU가 받아들일 수 있는 토큰 양을 정합니다.그래서 예를 들어 맥스 랭스가 256이라고 한다면 전체 토큰을 256개마다 토막을 내서 처리를 하겠죠.그러면 이제 이 토막 낸 하나를 하나의 단위를 시퀀스라고 부르고요.예를 들어 배치 크기가 1이라고 하면 한번에 하나의 시퀀스를 처리한다는 것이고, 배치 크기가 2라면..
· ai
Q1. 파인튜닝이 뭐고, 왜 필요할까요?파인 튜닝은 대규모 언어 모델을 특정 작업이나 도메인에 맞게 미세 조정하는 기법을 말합니다.사전훈련된 대규모 언어 모델은 문장에서 다음 단어가 어떤 다음 단어가 등장할지 예측하는 데는 우수한 능력을 가지고 있지만 특정 작업 예를 들어 번역,요약,챗봇 등 회사에서 요구하는 특정 작업에 맞춰서 추론을 하는 능력은 떨어집니다.그래서 이런 파인 튜닝 과정이 필요합니다. Q2. 본인 프로젝트에서 어떤 파인튜닝 기법을 사용하셨나요?저희 프로젝트에서는 파인 튜닝 기법 중에서 이제 Lora라는 기법을 사용했는데요.이 로라는 전체 파라미터를 모두 학습시키는 것이 아니라 이제 특정 작은 모듈만 부분적으로 학습을 시키는 것을 말합니다.이 로라는 특히 저차원 행렬이라는 것을 모델 위에 ..
· ai
*작업의 형태로 말해야 한다. 중점적으로 본 것이 아니라**3가지 작업이 연결될 수 있도록, 맥락을 제시하기*저는 자연어 처리 파트를 맡아서 사용자가 가상의 캐릭터와 일상대화를 할 수 있는 캐릭터 챗봇을 개발했습니다.일상대화의 특성상 한번 질문했을때 응답하고 끝나는 형태가 아니라, 질문과 응답이 왔다갔다 하는 형태. 멀티턴 형태를 학습을 시켜야 했어요. 그래서멀티턴 대화 학습에 맞게 최적의 데이터셋 형태로 전처리 하고전처리한 데이터셋으로 적합한 언어모델에 학습을 시키고 검증을 진행했습니다.완성된 모델을 호출할 수 있도록 api를 설계해서, 사용자가 서비스를 사용시 모델이 잘 응답할 수 있도록 만들었습니다.
· ai
멀티턴 대화 학습과정에서 가장 먼저 해야 할 일은 '데이터셋 준비'이다.aihub와 같은 데이터셋 제공 플랫폼에서 멀티턴 대화 데이터를 제공하지만,이 데이터를 어떤 형태로 가공해서 학습시키는 것이 최적일지에 대해서는 정답이 없다.왜냐하면, 이는 모델 구조(gpt,bert,rnn 등), 학습목표(생성, 분류, 요약), 도메인(오픈 도메인 vs 태스크 지향형) 에 따라 달라질 수 있기 때문이다.그래서 이 포스팅에서는 다양한 후보의 대화 데이터셋 형태를 제시해보고자 한다.예를 들어, 대화를 단순히 역할별로 나열할지, 전체 대화를 하나의 시퀀스로 처리할 지에 따라 결과가 달라질 수 있다.참고로, 우리 프로젝트는 라마 3 모델을 사용해서, 사용자의 입력에 맞는 메세지를 생성할 수 있는 것을 목표로 하고,일상대화를..
· ai
인공신경망이란 인간의 뇌를 모방해서 그걸 수학적으로 모델링한 알고리즘입니다. 뇌는 뉴런과 그 연결인 시냅스로 구성되는데, 딥러닝에서는 뉴런이 노드, 노드 사이의 연결 강도를 가중치라고 부릅니다. 인공신경망은 크게 세 가지 층으로 구성이 되는데요.첫 번째로 입력층, 인공 신경망이 데이터를 받는 입력층이 존재합니다.은닉층이 존재하는데, 수많은 노드가 여러 개의 층을 이루면서 그 층을 거치면서 조금 더 복잡하고 비선형적인 문제를 해결할 수 있게 되고요.마지막으로 출력층이 존재하는데 이 출력층은 분류 문제에서 확률을 출력합니다.작동 방식을 살펴보면 먼저 순방향으로 이 입력층부터 출력 층까지 진행을 했다가 다시 이제 이 출력층에서 역전파 과정을 거치게 됩니다.여기서 역전파 과정이란 뒤에서 앞으로 진행하면서 가중치..
· ai
머신러닝과 딥러닝의 가장 큰 차이점은 데이터 처리 방식에 있습니다.머신러닝은 사람이 직접 데이터의 특징을 설계하고 입력하는 과정이 들어갑니다.하지만 딥러닝은 인공 신경망이 자동으로 다량의 데이터여서 특징을 추출합니다.그렇기 때문에 머신러닝은 데이터의 양이 적은 경우에 적합하고, 딥러닝 같은 경우에는 이제 이 다량의 데이터가 확보가 되어야지만 그런 특징을 추출하고 일반화하는 작업이 가능하게 됩니다.
· ai
대규모 언어모델은 일반적인 대화에서  괜찮은 성능을 보여주지만, 회사들은 이 언어모델을 어떻게 특정한 도메인 비즈니스에 적용할 수 있을지 어려움에 직면해 있습니다.따라서 이 포스팅은 Together.ai에서 제공하는 글을 바탕으로 멀티턴 대화를 위해 언어모델을 파인튜닝 하는 방법을 전체적으로 다뤄보려고 한다.Together.ai는 클라우드 기반 학습환경을 기반으로 api를 호출하고 배포하는 형태에 최적화되어 있기 때문에,저와 같이 로컬로 서버 컴퓨터를 세팅해서 학습시키는 분들은 적합하지 않습니다. 그럼에도 불구하고 이것을 포스팅하는 이유는 멀티턴 대화를 학습시키는 전반적인 과정을 이해하기 위함입니다.추후에, 로컬 학습에서 사용할 수 있는 huggingface 상에서 멀티턴 대화 기반으로 파인튜닝하는 방법..
becky(지은)
'ai' 카테고리의 글 목록