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:

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”.