/ Модель

Характеристики

Контекст
131 072 токена
Параметры
1,5 млрд
Лицензия
Apache 2.0
Архитектура
upcycling-qwen2-moe · MoE
Базовая модель
Phi-3-mini-4k-instruct
Опубликована
14 окт 2024

Apollo-MoE-1.5B

Генерация текстаТекст → текст

Производная модели FreedomIntelligence/Apollo2-3.8B. Многоязычная модель FreedomIntelligence на базе Phi-3 для ответов на вопросы по медицинским знаниям.

135скачиваний за 30 дней1лайквеса обновлены20 ноя 2024

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Карточка модели FreedomIntelligence/Apollo-MoE-1.5B на Hugging Face совпадает с карточкой FreedomIntelligence/Apollo2-3.8B, поэтому описание составлено по ней.

Apollo2-3.8B — медицинская языковая модель, разработанная командой FreedomIntelligence. Это плотная модель семейства Phi-3 с 3,7 млрд параметров, дообученная на ApolloMoEDataset на базе microsoft/Phi-3-mini-4k-instruct. Модель предназначена для ответов на медицинские вопросы и диалога о медицинских знаниях.

Модель ориентирована на английский и китайский, а также на 10 других основных языков, включая русский, французский, хинди, испанский, арабский, японский, корейский, немецкий, итальянский и португальский; заявлена поддержка ещё 38 языков. Карточка описывает оценивание на медицинских тестах по нескольким языкам, включая RuMedBench для русского. Контекст составляет до 4096 токенов, формат весов — safetensors. Модель распространяется по лицензии Apache-2.0.

Она подходит для ответов на медицинские вопросы и справочных диалогов, но её ответы не следует считать клиническими рекомендациями без проверки специалистом. README не приводит конкретных численных результатов для этой версии.

Сценарии применения

  • ответы на медицинские вопросы на русском языке
  • ответы на вопросы о клинических знаниях на английском языке
  • подготовка и проверка знаний по медицинским тестам
  • справочный диалог по медицинским темам на китайском языке

Ограничения

Медицинские ответы могут содержать ошибки и требуют проверки квалифицированным специалистом. В README не приведены численные результаты для этой версии модели.

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Democratizing Medical LLMs For Much More Languages

Covering 12 Major Languages including English, Chinese, French, Hindi, Spanish, Arabic, Russian, Japanese, Korean, German, Italian, Portuguese and 38 Minor Languages So far.

Apollo

🌈 Update

  • [2024.10.15] ApolloMoE repo is published!🎉

Languages Coverage

12 Major Languages and 38 Minor Languages

ApolloMoE

Architecture

ApolloMoE

Results

Dense

🤗 Apollo2-0.5B • 🤗 Apollo2-1.5B • 🤗 Apollo2-2B

🤗 Apollo2-3.8B • 🤗 Apollo2-7B • 🤗 Apollo2-9B

ApolloMoE

Post-MoE

🤗 Apollo-MoE-0.5B • 🤗 Apollo-MoE-1.5B • 🤗 Apollo-MoE-7B

ApolloMoE

Usage Format

Apollo2
  • 0.5B, 1.5B, 7B: User:{query}\nAssistant:{response}<|endoftext|>
  • 2B, 9B: User:{query}\nAssistant:{response}<eos>
  • 3.8B: <|user|>\n{query}<|end|><|assisitant|>\n{response}<|end|>
Apollo-MoE
  • 0.5B, 1.5B, 7B: User:{query}\nAssistant:{response}<|endoftext|>

Dataset & Evaluation

  • Dataset 🤗 ApolloMoEDataset

    ApolloMoE

  • Evaluation 🤗 ApolloMoEBench

    • EN:

      • MedQA-USMLE
      • MedMCQA
      • PubMedQA: Because the results fluctuated too much, they were not used in the paper.
      • MMLU-Medical
        • Clinical knowledge, Medical genetics, Anatomy, Professional medicine, College biology, College medicine
    • ZH:

      • MedQA-MCMLE
      • CMB-single: Not used in the paper
        • Randomly sample 2,000 multiple-choice questions with single answer.
      • CMMLU-Medical
        • Anatomy, Clinical_knowledge, College_medicine, Genetics, Nutrition, Traditional_chinese_medicine, Virology
      • CExam: Not used in the paper
        • Randomly sample 2,000 multiple-choice questions
    • ES: Head_qa

    • FR:

      • Frenchmedmcqa
      • [MMLU_FR]
        • Clinical knowledge, Medical genetics, Anatomy, Professional medicine, College biology, College medicine
    • HI: MMLU_HI

      • Clinical knowledge, Medical genetics, Anatomy, Professional medicine, College biology, College medicine
    • AR: MMLU_AR

      • Clinical knowledge, Medical genetics, Anatomy, Professional medicine, College biology, College medicine
    • JA: IgakuQA

    • KO: KorMedMCQA

    • IT:

      • MedExpQA
      • [MMLU_IT]
        • Clinical knowledge, Medical genetics, Anatomy, Professional medicine, College biology, College medicine
    • DE: BioInstructQA: German part

    • PT: BioInstructQA: Portuguese part

    • RU: RuMedBench

Model Download and Inference

We take Apollo-MoE-0.5B as an example

  1. Login Huggingface

    huggingface-cli login --token $HUGGINGFACE_TOKEN
    
  2. Download model to local dir

    from huggingface_hub import snapshot_download
    import os
    
    local_model_dir=os.path.join('/path/to/models/dir','Apollo-MoE-0.5B')
    snapshot_download(repo_id="FreedomIntelligence/Apollo-MoE-0.5B", local_dir=local_model_dir)
    
  3. Inference Example

    from transformers import AutoTokenizer, AutoModelForCausalLM, GenerationConfig
    import os
    
    local_model_dir=os.path.join('/path/to/models/dir','Apollo-MoE-0.5B')
    
    model=AutoModelForCausalLM.from_pretrained(local_model_dir,trust_remote_code=True)
    tokenizer = AutoTokenizer.from_pretrained(local_model_dir,trust_remote_code=True)
    generation_config = GenerationConfig.from_pretrained(local_model_dir, pad_token_id=tokenizer.pad_token_id, num_return_sequences=1, max_new_tokens=7, min_new_tokens=2, do_sample=False, temperature=1.0, top_k=50, top_p=1.0)
    
    inputs = tokenizer('Answer direclty.\nThe capital of Mongolia is Ulaanbaatar.\nThe capital of Iceland is Reykjavik.\nThe capital of Australia is', return_tensors='pt')
    inputs = inputs.to(model.device)
    pred = model.generate(**inputs,generation_config=generation_config)
    print(tokenizer.decode(pred.cpu()[0], skip_special_tokens=True))
    

Results reproduction

We take Apollo2-7B or Apollo-MoE-0.5B as example

  1. Download Dataset for project:

    bash 0.download_data.sh  
    
  2. Prepare test and dev data for specific model:

    • Create test data for with special token
    bash 1.data_process_test&dev.sh
    
  3. Prepare train data for specific model (Create tokenized data in advance):

    • You can adjust data Training order and Training Epoch in this step
    bash 2.data_process_train.sh
    
  4. Train the model

    • If you want to train in Multi Nodes please refer to ./src/sft/training_config/zero_multi.yaml
    bash 3.single_node_train.sh
    
  5. Evaluate your model: Generate score for benchmark

    bash 4.eval.sh
    

Citation

Please use the following citation if you intend to use our dataset for training or evaluation:

@misc{zheng2024efficientlydemocratizingmedicalllms,
      title={Efficiently Democratizing Medical LLMs for 50 Languages via a Mixture of Language Family Experts}, 
      author={Guorui Zheng and Xidong Wang and Juhao Liang and Nuo Chen and Yuping Zheng and Benyou Wang},
      year={2024},
      eprint={2410.10626},
      archivePrefix={arXiv},
      primaryClass={cs.CL},
      url={https://arxiv.org/abs/2410.10626}, 
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм

Нельзя запустить

Модели нужен код из репозитория; автор пока не в списке доверенных организаций.

Класс архитектуры
UpcyclingQwen2MoeForCausalLM
Ревизия весов
42d23c6

0 моделей