소소한 컴퓨터 이야기

[LLM] Aya23

by Cori

캐나다 AI 기업 Cohere는 2024년 5월 23일, 새로운 다국어 언어 모델 Aya23을 발표했다.


Aya 8B & 35B, https://huggingface.co/spaces/CohereForAI/aya-23

[관련 소식]

Aya 23 모델 패밀리는 Aya에 기반을 두고 있다. Aya는 전 세계 3,000명의 협력자를 모아 현재까지 가장 큰 다국어 교육 미세 조정 데이터셋과 최첨단 대규모 다국어 모델을 구축한 오픈 사이언스 움직임이다. Aya 101은 101개의 언어를 다루며 폭넓은 적용에 중점을 두었지만, Aya 23에서는 최근에 발표된 Aya 데이터셋 컬렉션과 성능이 뛰어난 사전 학습 모델을 결합하여 깊이에 중점을 두고 있다. 그 결과로, 23개 언어를 지원하는 강력한 다국어 대형 언어 연구 모델이 탄생하여 전 세계 인구의 거의 절반에 달하는 사람들에게 최첨단 언어 모델링 기능을 확장하게 되었다. 대부분의 고성능 언어 모델은 소수의 언어만을 지원하는 반면, Aya 23은 더 많은 언어가 주요 언어로 대우받을 수 있다는 것을 입증하고, 이 임무에 동참하는 연구자들을 지원하는 모델을 출시하는 데 기여한다. Aya 23과 Aya 모델 및 데이터셋 전체는 다국어 AI 연구에 대한 기계 학습 커뮤니티의 접근 방식을 근본적으로 변화시키고 있다.  - Cohere

 

Aya 23은 지난 2월 공개한 101개 언어 지원 모델 Aya 101을 발전시킨 버전으로, 119개국 3,000여 명의 연구자가 참여한 Aya 프로젝트를 통해 대규모 다국어 데이터 세트를 구축하고, 이를 학습한 결과물이다. 이번 모델의 가장 큰 특징은 AI 모델의 학습된 매개변수, 즉 가중치(Weights)를 오픈소스로 공개했다는 점이다. Aya23 모델은 구글의 Gemma, Mistral 등 오픈 소스 모델보다 우수한 결과를 보였으며, 특히 23개 언어에 대해 이전 모델 대비 판별 작업 14%, 생성 작업 20%, 수학 추론 6.6배 향상을 달성했다.  - 클리앙

 

벤처비트는 23일(현지시간) 캐나다 스타트업 코히어가 소속 비영리 연구 기관 C4AI를 통해 '아야 23(Aya 23)'을 출시했다고 보도했다. 매개변수 8B 및 35B 두가지로 개발했으며, 한국어를 비롯해 중국어, 일본어, 아랍어, 힌디어, 인도네시아, 베트남어 등 아시아권과 영어, 독일어, 프랑스어, 이탈리아어, 스페인어, 포르투갈어, 네덜란드어, 체코어, 페르시아어, 터키어, 러시아어, 우크라이나어 등이 포함됐다. 이전 모델 아야 101은 119개 국가에서 3000명 이상의 연구자가 지난해 1월부터 자발적으로 참여한 '아야 프로젝트'를 바탕으로 한다. 이들은 5억1300만개의 프롬프트로 구성된 데이터셋으로 101개 언어를 포괄하는 LLM을 개발했다. 이후 몇개월이 지나며 지식과 성능을 끌어 올리기 위해 내놓은 것이 이번 모델이다. 너무 많은 언어를 다루다 보니, 특정 언어에서 성능이 떨어지는 단점을 보완했다. 즉 범위를 좁히고 대신, 해당 언어의 성능을 높였다는 설명이다.  - AI타임스

 

[학습 데이터세트]

Aya 23 모델 시리지는 전 세계 3,000명의 협력자를 모아 현재까지 가장 큰 다국어 교육 미세 조정 데이터셋과 최첨단 대규모 다국어 모델을 구축한 Aya에 기반을 두고 있다. Aya 101은 101개의 언어를 다루며 폭넓은 적용에 중점을 두었지만, Aya 23에서는 성능이 뛰어난 사전 학습 모델과 최근에 발표된 Aya 데이터세트 컬렉션을 결합하여 깊이에 중점을 두고 있다.

 

Aya 데이터세트 컬렉션은 다양한 작업을 다루는 5억 1,300만 개의 프롬프트와 완성을 포함한다. 이 컬렉션은 유창한 화자로부터 지시 스타일의 템플릿을 통합하고 이를 신중하게 선택된 데이터셋 목록에 적용하며, 지시 스타일 데이터셋의 번역본을 101개 언어로 포함하고 있다. Aya Dataset, 즉 사람이 신중하게 만든 다국어 지시와 응답 데이터셋도 이 컬렉션의 일부이다.

 

Aya Dataset Collection

Aya dataset

사람이 미세 조정, 주석 작업한 204,000개 이상의 다중 언어 데이터세트 (65개 언어로 구성되어 있음) 

https://huggingface.co/datasets/CohereForAI/aya_dataset

Aya collection

유창한 발화자들의 대화 스타일 템플릿을 44개의 데이터세트에 적용하여 만들었으며, 19개의 지시 스타일 데이터셋을 101개 언어로 번역한 내용이 포함되어 있다

https://huggingface.co/datasets/CohereForAI/aya_collection

Aya collection language split

Aya Collection은 언어별 하위 집합으로 구성되어 있다

https://huggingface.co/datasets/CohereForAI/aya_collection_language_split

Aya evaluation suite

다양한 다국어 개방형 생성 평가 세트로, 7개 언어로 된 250개의 문화적 기반 프롬프트, 24개 언어로 번역된 200개의 프롬프트, 그리고 6개 언어로 영어 Dolly에서 문화 간 관련성을 고려하여 선택된 사람이 편집한 버전이 포함되어 있다

https://huggingface.co/datasets/CohereForAI/aya_collection_language_split

(Opt) [데모]

https://huggingface.co/spaces/CohereForAI/aya-23

[모델 추론 (feat. python)]

Aya23 모델은 gated 모델이어서 Hugging Face에서 사용 신청을 해야 한다.

승인이 나면, 우리는 Hugging Face에 로그인하여 해당 모델을 사용할 수 있다. 

모델 다운로드

from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

model_id = "CohereForAI/aya-23-8B"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id)

device = torch.device("cuda:0") if torch.cuda.is_available() else torch.device("cpu")
model.to(device)

사용자 입력 발화 생성

messages = [{"role": "user", "content": "좋은 아침"}]
input_ids = tokenizer.apply_chat_template(messages, tokenize=True,
			add_generation_prompt=True, return_tensors="pt")
## <BOS_TOKEN><|START_OF_TURN_TOKEN|><|USER_TOKEN|>좋은 아침<|END_OF_TURN_TOKEN|><|START_OF_TURN_TOKEN|><|CHATBOT_TOKEN|>
input_ids = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors="pt").to(device)

응답 발화 생성

gen_tokens = model.generate(
    input_ids, 
    max_new_tokens=100, 
    do_sample=True, 
    temperature=0.3,
)
gen_text = tokenizer.decode(gen_tokens[0])

응답 발화는 다음과 같이 나온다.

"<BOS_TOKEN><|START_OF_TURN_TOKEN|><|USER_TOKEN|>좋은 아침<|END_OF_TURN_TOKEN|><|START_OF_TURN_TOKEN|><|CHATBOT_TOKEN|>좋은 아침입니다! 오늘은 어떤 계획을 하고 계신가요?<|END_OF_TURN_TOKEN|>"

 

참고자료

https://huggingface.co/spaces/CohereForAI/aya-23

https://huggingface.co/datasets/CohereForAI/aya_collection_language_split

Aya Dataset: An Open-Access Collection for Multilingual Instruction Tuning (Arxiv, 2024)

Aya 23: Open Weight Releases to Further Multilingual Progress (Arxiv, 2024)

https://www.nowadais.com/coheres-aya-23-models-llm-in-23-languages/

블로그의 정보

코딩하는 오리

Cori

활동하기