Sunt Yuichi, cercetător la Turing Inc. (X/Twitter @inoichan)
Suntem încântați să anunțăm lansarea bibliotecii noastre de învățare multimodală la scară largă, „Heron”, care acceptă mai multe limbi, inclusiv japoneză, și o colecție de modele cu până la 70B parametri.
Modelul multimodal pe care l-am lansat cuprinde trei componente principale; Vision Encoder, Large Language Model (LLM) și adaptor. Este conceput astfel încât să puteți antrena doar adaptorul sau să antrenați în continuare LLM și Vision Encoder.
Puteți ajusta cu ușurință condițiile de antrenament ale modelului prin modificarea config. Consultați „aici” pentru mai multe detalii despre antrenament.
În prezent, adaptoarele noastre acceptă două tipuri: BLIP și GIT. Pentru Vision Encoder, BLIP este compatibil cu WVA-CLIP, iar GIT acceptă mai multe versiuni ale OpenAI’s CLIP. LLM este conceput pentru a se instrui cu următoarele modele lingvistice.
- „LLama-2”
- MPT
- "OPTA"
- „GPT-NeoX”
- „StableLM japonez”
- „ELYZA-lama-japoneză-2”
Următorul este un exemplu de rezultat, după ce a antrenat GIT-Llama2 folosind M3IT și l-am reglat ulterior cu setul de date de reglare a instrucțiunilor LLaVA.
Puteți încerca prin intermediul demonstrației noastre:
„Heron Chat Git - un spațiu pentru față îmbrățișat de turing-motors
Descoperiți aplicații ML uimitoare create de comunitatehuggingface.co”
De asemenea, puteți rula inferențe astfel;
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])
De asemenea, am creat un set de date pentru a efectua reglarea instrucțiunilor în japoneză. Este o traducere japoneză a Instruct-150k de la LLaVA. Acesta este primul set de date în japoneză care include imagini cu dialoguri. Iată un exemplu de rezultat;
Puteți încerca și acest demo la următorul link.
„Heronチャットデモ - un spațiu îmbrățișat al feței de către motoare-turing
Descoperiți aplicații ML uimitoare create de comunitatehuggingface.co”
Modelele pe care le-am făcut publice includ:
- heron-chat-blip-ja-stablelm-base-7b-v0 (japoneză)
- heron-chat-git-ja-stablelm-base-7b-v0 (japoneză)
- heron-chat-git-ELYZA-fast-7b-v0 (japoneză)
- heron-chat-git-Llama2–7b-v0 (engleză)
- heron-preliminary-git-Llama-2–70b-v0 (engleză)
Modelul parametrilor 70B este încă în fazele sale preliminare. Vom continua antrenamentele și, pe măsură ce se dezvoltă noi modele, le vom încărca constant. De asemenea, suntem dornici să împărtășim metodologiile noastre de formare.
În plus, intenționăm să actualizăm Heron în viitor, încorporând:
- Adăugați valori de evaluare
- Stabiliți metode de învățare în mai multe etape
- Încorporați alte seturi de date
- Dezvoltați modele care pot gestiona simultan conținut multilingv
- Îmbunătățiți modelele video
Să încercăm Heron! Dacă ești interesat, fii atent la postările noastre. Pentru actualizări și cele mai recente evoluții, vă rugăm să urmați „X/Twitter”.