Nazywam się Yuichi i jestem badaczem w Turing Inc. („X/Twitter @inoichan»)
Z radością ogłaszamy wydanie naszej wielkoskalowej multimodalnej biblioteki edukacyjnej „Heron”, która obsługuje wiele języków, w tym japoński, oraz kolekcję modeli o parametrach do 70B.
Opublikowany przez nas model multimodalny składa się z trzech głównych komponentów; Koder wizyjny, model wielkojęzykowy (LLM) i adapter. Został zaprojektowany w taki sposób, że można przeszkolić sam adapter lub dalej szkolić LLM i koder wizyjny.
Możesz łatwo dostosować warunki uczenia modelu, modyfikując plik config. Więcej szczegółów na temat szkoleń znajdziesz tutaj.
Obecnie nasze adaptery obsługują dwa typy: BLIP i GIT. W przypadku Vision Encoder BLIP jest kompatybilny z WVA-CLIP, a GIT obsługuje kilka wersji CLIP OpenAI. LLM jest przeznaczony do szkolenia z następującymi modelami językowymi.
Poniżej znajduje się przykładowy wynik po przeszkoleniu GIT-Llama2 przy użyciu M3IT, a następnie dostrojeniu go za pomocą zestawu danych dostrajania instrukcji LLaVA.
Możesz wypróbować to poprzez nasze demo:
Możesz także uruchomić wnioskowanie w ten sposób;
import requests from PIL import Image import torch from transformers import AutoProcessor from heron.models.git_llm.git_llama import GitLlamaForCausalLM device_id = 0 # prepare a pretrained model model = GitLlamaForCausalLM.from_pretrained( 'turing-motors/heron-chat-git-Llama-2-7b-v0', torch_dtype=torch.float16 ) model.eval() model.to(f"cuda:{device_id}") # prepare a processor processor = AutoProcessor.from_pretrained('turing-motors/heron-chat-git-Llama-2-7b-v0') # prepare inputs url = "https://www.barnorama.com/wp-content/uploads/2016/12/03-Confusing-Pictures.jpg" image = Image.open(requests.get(url, stream=True).raw) text = f"##human: What is this picture?\n##gpt: " # do preprocessing inputs = processor( text, image, return_tensors="pt", truncation=True, ) inputs = {k: v.to(f"cuda:{device_id}") for k, v in inputs.items()} # set eos token eos_token_id_list = [ processor.tokenizer.pad_token_id, processor.tokenizer.eos_token_id, ] # do inference with torch.no_grad(): out = model.generate(**inputs, max_length=256, do_sample=False, temperature=0., eos_token_id=eos_token_id_list) # print result print(processor.tokenizer.batch_decode(out)[0])
Stworzyliśmy także zbiór danych umożliwiający dostrajanie instrukcji w języku japońskim. To japońskie tłumaczenie Instruct-150k firmy LLaVA. Jest to pierwszy zbiór danych w języku japońskim zawierający obrazy z dialogami. Oto przykładowy wynik;
Możesz wypróbować także tę wersję demonstracyjną, klikając poniższy link.
Modele, które upubliczniliśmy, obejmują:
- heron-chat-blip-ja-stablelm-base-7b-v0 (japoński)
- heron-chat-git-ja-stablelm-base-7b-v0 (japoński)
- heron-chat-git-ELYZA-fast-7b-v0 (japoński)
- heron-chat-git-Llama2–7b-v0 (angielski)
- heron-preliminary-git-Llama-2–70b-v0 (angielski)
Model parametrów 70B jest wciąż w fazie wstępnej. Będziemy kontynuować szkolenia i w miarę opracowywania nowych modeli będziemy je konsekwentnie przesyłać. Chętnie dzielimy się także naszymi metodykami szkoleniowymi.
Ponadto planujemy w przyszłości zaktualizować Heron, włączając:
- Dodaj metryki oceny
- Opracuj wieloetapowe metody uczenia się
- Uwzględnij inne zbiory danych
- Opracuj modele, które będą w stanie jednocześnie obsługiwać treści wielojęzyczne
- Ulepsz modele wideo
Wypróbujmy Czaplę! Jeśli jesteś zainteresowany, śledź nasze posty. Aby uzyskać aktualizacje i najnowsze informacje, śledź X/Twitter.