|
--- |
|
library_name: transformers |
|
tags: [] |
|
license: llama3.2 |
|
--- |
|
|
|
|
|
<a href="https://github.com/MLP-Lab/Bllossom"> |
|
<img src="https://cdn-uploads.huggingface.co/production/uploads/64a90711c05da19ca834f690/a0VE5UCY1HCEhaHtp3mGa.png" alt="image" width="30%" height="30%"> |
|
</a> |
|
|
|
# Update! |
|
* [2024.12.12] 추가설명: KMMLU, KoBEST, LogicKor 등 벤치 관련 학습/테스트/유사 데이터를 전혀 사용하지 않았습니다. 벤치데이터 증강해가 쓰까서 학습하면 SOTA 성능 근접하게 나옵니다 모델위에 해보세요! |
|
* [2024.12.06] Bllossom-AICA-5B 모델 최초 업데이트! |
|
|
|
|
|
# Bllossom [추론코드예제](https://drive.google.com/file/d/1AoxfoV0TSN-pGdc9fa3dRv3-NLZknHlJ/view?usp=sharing) | [학습코드예제](https://drive.google.com/file/d/1E_fYV-tUhl1LExm2piaIhvXfuOcNaZmP/view?usp=sharing) | [튜토리얼 영상](https://youtu.be/4lAUVwTN608) |
|
|
|
```bash |
|
저희 Bllossom 팀에서 llama3.2-3B 기반의 한국어-영어 언어모델 Bllossom-AICA-5B를 공개합니다. |
|
이번 Bllossom-AICA는 다음과 같은 특징을 보입니다. |
|
- 일반 언어모델, 시각-언어모델 양방향으로 활용이 가능한 최초의 llama기반 3B확장 모델입니다. (코랩 무료 GPU에서 사용가능한 유일한 시각-언어 한국어 ) |
|
- 이미지를 넣으면 시각-언어모델, 넣지 않으면 언어모델로 작동하며 시각-언어, 그냥 언어모델 양방향모두 학습 및 추론이 가능합니다. |
|
- 시각 정보의 이해를 바탕으로 언어모델의 성능이 대폭 향상되었습니다. (정성평가 기준 Bllossom-3.2-3B모델 대비 20%이상) |
|
- 한국어 OCR, 표, 그래프 해석에 최적화 되어있습니다. |
|
- 외부지식에 대한 선택적 추론 기능이 학습되었습니다. RAG를 활용할 때 질문과 관련 없는 오류가 섞인 정보의 경우 모델 스스로 활용하지 않습니다. |
|
|
|
해당 모델에 활용된 데이터는 다음과 같습니다. |
|
- Huggingface에 공개된 한국어 LLM 사전학습 데이터를 거의 모두 활용해 Full tuning 했습니다. |
|
- AI-Hub, KISTI AI데이터, Huggingface에 공개된 거의 모든 한국어 시각-언어 관련 학습데이터를 활용해 시각-언어모델 사전학습을 했습니다. (다 나열하기 너무 많아요...) |
|
- 저희 연구실에서 자체 제작한 한국어 시각-언어 Instruction Tuning데이터를 활용했습니다. |
|
|
|
언제나 그랬듯 해당 모델은 상업적 이용이 가능합니다. |
|
|
|
1. Bllossom-AICA의 외부지식 지식추론 기능은 COLING2025에 발표될 예정입니다. |
|
2. 3B기반 모델이 이정도면 8B기반 모델은 어느정도인지 궁금하지 않으세요? 좋은 언어모델 계속 업데이트 하겠습니다!! |
|
``` |
|
|
|
```bash |
|
We, the Bllossom team, are pleased to announce the release of Bllossom-Vision, a Korean-English vision-language model based on llama3.2. This Bllossom-Vision is a preview version and features the following: |
|
- It can be utilized both as a general language model and as a vision-language model. |
|
- It operates as a vision-language model when an image is provided, and as a language model when no image is provided. It is capable of both training and inference in both directions, whether as a vision-language or just a language model. |
|
- We have put significant effort into ensuring it remains faithful to the role of a vision-language model while maintaining the performance of a traditional language model as much as possible. |
|
- It is a fully bilingual model that does not compromise English performance at all. |
|
``` |
|
**Bllossom is developed by [MLPLab at Seoultech](http://mlp.seoultech.ac.kr), [Teddysum](http://teddysum.ai/) and [Yonsei Univ](https://sites.google.com/view/hansaemkim/hansaem-kim)** |
|
|
|
|
|
## Demo Video |
|
|
|
<div style="display: flex; justify-content: space-between;"> |
|
<!-- 두 번째 컬럼 --> |
|
<div style="width: 100%;"> |
|
<a> |
|
<img src="https://cdn-uploads.huggingface.co/production/uploads/64a90711c05da19ca834f690/BJu5VT_llvYkWk_mkF4x6.gif" style="width: 100%; height: auto;"> |
|
</a> |
|
<p style="text-align: center;">Bllossom-AIC Demo</p> |
|
</div> |
|
</div> |
|
|
|
|
|
## LogicKor Score |
|
| Category | Single turn | Multi turn | |
|
|---|---|---| |
|
| 추론(Reasoning) | 6.57 | 5.29 | |
|
| 수학(Math) | 6.43 | 6.29 | |
|
| 글쓰기(Writing) | 9.14 | 8.71 | |
|
| 코딩(Coding) | 8.00 | 9.14 | |
|
| 이해(Understanding) | 8.14 | 9.29 | |
|
| 문법(Grammar) | 6.71 | 4.86 | |
|
|
|
| Category | Score | |
|
|---|---| |
|
| Single turn | 7.50 | |
|
| Multi turn | 7.26 | |
|
| Overall | 7.38 | |
|
|
|
## Example code |
|
|
|
### Python code (Use Vision-language Model) |
|
```python |
|
from transformers import MllamaForConditionalGeneration,MllamaProcessor |
|
import torch |
|
from PIL import Image |
|
import requests |
|
|
|
model = MllamaForConditionalGeneration.from_pretrained( |
|
'Bllossom/llama-3.2-Korean-Bllossom-AICA-5B', |
|
torch_dtype=torch.bfloat16, |
|
device_map='auto' |
|
) |
|
processor = MllamaProcessor.from_pretrained('Bllossom/llama-3.2-Korean-Bllossom-AICA-5B') |
|
|
|
url = "https://t1.daumcdn.net/cfile/tistory/21527E4A543DCABE1D" |
|
image = Image.open(requests.get(url, stream=True).raw) |
|
|
|
messages = [ |
|
{'role': 'user','content': [ |
|
{'type':'image'} |
|
{'type': 'text','text': '이 문서를 마크다운으로 바꿔줘'} |
|
]}, |
|
] |
|
|
|
input_text = processor.apply_chat_template(messages,tokenize=False,add_generation_prompt=True) |
|
|
|
inputs = processor( |
|
image, |
|
input_text, |
|
add_special_tokens=False, |
|
return_tensors="pt", |
|
).to(model.device) |
|
|
|
output = model.generate(**inputs, max_new_tokens=256,temperature=0.1,eos_token_id=processor.tokenizer.convert_tokens_to_ids('<|eot_id|>'),use_cache=False) |
|
print(processor.decode(output[0])) |
|
``` |
|
|
|
### Python code (Use Language Model) |
|
```python |
|
from transformers import MllamaForConditionalGeneration,MllamaProcessor |
|
import torch |
|
from PIL import Image |
|
import requests |
|
|
|
model = MllamaForConditionalGeneration.from_pretrained( |
|
'Bllossom/llama-3.2-Korean-Bllossom-AICA-5B', |
|
torch_dtype=torch.bfloat16, |
|
device_map='auto' |
|
) |
|
processor = MllamaProcessor.from_pretrained('Bllossom/llama-3.2-Korean-Bllossom-AICA-5B') |
|
|
|
url = "https://cdn.discordapp.com/attachments/1156141391798345742/1313407928287494164/E18489E185B3E1848FE185B3E18485E185B5E186ABE18489E185A3E186BA202021-11-1620E1848BE185A9E18492E185AE2011.png?ex=675005f4&is=674eb474&hm=fc9c4231203f53c27f6edd2420961c182dd4a1ed14d4b73e04127f11393729af&" |
|
image = Image.open(requests.get(url, stream=True).raw) |
|
|
|
messages = [ |
|
{'role': 'user','content': [ |
|
{'type': 'text','text': '자연어처리 15주치 커리큘럼을 짜줘'} |
|
]}, |
|
] |
|
|
|
input_text = processor.apply_chat_template(messages,tokenize=False,add_generation_prompt=True) |
|
|
|
inputs = processor( |
|
images=None, |
|
text=input_text, |
|
add_special_tokens=False, |
|
return_tensors="pt", |
|
).to(model.device) |
|
|
|
output = model.generate(**inputs,max_new_tokens=256,temperature=0.1,eos_token_id=processor.tokenizer.convert_tokens_to_ids('<|eot_id|>'),use_cache=False) |
|
print(processor.decode(output[0])) |
|
``` |
|
|
|
|
|
## Supported by |
|
|
|
- AICA <img src="https://aica-gj.kr/images/logo.png" width="20%" height="20%"> |
|
|
|
## Citation |
|
|
|
**Vision-Language Model** |
|
```text |
|
@misc{VLR-Bench, |
|
author = {Hyeonseok Lim, Dongjae Shin, Seohyun Song, Inho Won, Minjun Kim, Junghun Yuk, Hangyeol Yoo, Haneol Jang, Kyungtae Lim}, |
|
title = {VLR-Bench: Multilingual Benchmark Dataset for Vision-Language Retrieval Augmented Generation}, |
|
year = {2025}, |
|
publisher = {GitHub}, |
|
journal = {COLING 2025}, |
|
paperLink = {\url{https://arxiv.org/abs/2412.10151}}, |
|
}, |
|
} |
|
``` |
|
|
|
```text |
|
@misc{bllossom-V, |
|
author = {Dongjae Shin, Hyeonseok Lim, Inho Won, Changsu Choi, Minjun Kim, Seungwoo Song, Hangyeol Yoo, Sangmin Kim, Kyungtae Lim}, |
|
title = {X-LLaVA: Optimizing Bilingual Large Vision-Language Alignment}, |
|
year = {2024}, |
|
publisher = {GitHub}, |
|
journal = {NAACL 2024 findings}, |
|
paperLink = {\url{https://arxiv.org/pdf/2403.11399}}, |
|
}, |
|
} |
|
``` |
|
**Language Model** |
|
```text |
|
@misc{bllossom, |
|
author = {ChangSu Choi, Yongbin Jeong, Seoyoon Park, InHo Won, HyeonSeok Lim, SangMin Kim, Yejee Kang, Chanhyuk Yoon, Jaewan Park, Yiseul Lee, HyeJin Lee, Younggyun Hahm, Hansaem Kim, KyungTae Lim}, |
|
title = {Optimizing Language Augmentation for Multilingual Large Language Models: A Case Study on Korean}, |
|
year = {2024}, |
|
journal = {LREC-COLING 2024}, |
|
paperLink = {\url{https://arxiv.org/pdf/2403.10882}}, |
|
}, |
|
} |
|
``` |
|
|
|
## Contact |
|
- 임경태(KyungTae Lim), Professor at Seoultech. `[email protected]` |
|
- 함영균(Younggyun Hahm), CEO of Teddysum. `[email protected]` |
|
- 김한샘(Hansaem Kim), Professor at Yonsei. `[email protected]` |
|
|
|
## Contributor |
|
- **신동재(Dongjae Shin)**, [email protected] |
|
- **유한결(Hangyeol Yoo)**, [email protected] |
|
- **임현석(Hyeonseok Lim)**, [email protected] |