Языковая модель ДНК на 14.8B параметров от Hugging Face и других организаций, включенная в каталог 24 10: вставьте последовательность ДНК в обычный чат, и модель на английском языке определит, является ли мутация доброкачественной или патогенной, какие регуляторные области присутствуют в последовательности, к какому типу организмов она относится, а также может продолжить генерацию нуклеотидов. Повторное включение в каталог связано с тем, что ранее в карточке модели было указано «не поддерживается llama.cpp / GGUF», теперь же вышла официальная версия GGUF, которую можно запускать локально с помощью llama.cpp.
Рост рейтинга на 75 · Лайков 285 · Загрузок 3719
Причины
- Новое по сравнению с версией от 24 10: опубликован официальный репозиторий HuggingFaceBio/Carbon-X-GGUF, предлагающий пять вариантов квантования: BF16, Q8_0, Q6_K, Q5_K_M и Q4_K_M; поддержка гибридного токенизатора ДНК Carbon в llama.cpp добавлена начиная с сборки b11742 (PR #30825). 29 10 в основной карточке модели фраза «llama.cpp и другие среды выполнения GGUF не поддерживаются» была заменена ссылкой на репозиторий GGUF.
- По официальным данным, токенизатор в версии для llama.cpp полностью идентичен оригинальной версии на Python: на 1,000 тестовых запросах (общий объем 1.13M токенов) и 36 граничных случаях для последовательностей ДНК идентификаторы токенов, декодированный текст и рендеринг шаблона чата совпадают. Во всех вариантах квантования K слои эмбеддингов и выходной слой, хранящие токены ДНК, сохраняются в формате Q8_0.
- Официально протестированы все варианты квантования на двух бенчмарках ДНК с использованием сервера llama.cpp: FrontierVEP (оригинальная версия на vLLM) — 70.4, BF16 — 69.6, Q8_0 — 69.1, Q4_K_M — 67.8; NextBase (оригинальная версия) — 39.4, Q8_0 — 39.7, Q4_K_M — 38.6. По официальным данным, результаты от BF16 до Q5_K_M находятся в пределах примерно одной стандартной ошибки от оригинальной версии, а Q4_K_M показывает наименьшие результаты по обоим бенчмаркам.
Использование
- Загрузите или обновите llama.cpp до версии b11742 или выше (десктопная версия с llama.app или предварительно собранные пакеты из GitHub releases), выполните команду llama serve -hf HuggingFaceBio/Carbon-X-GGUF:Q8_0, что одновременно запустит веб-интерфейс чата и интерфейс, совместимый с OpenAI; в терминале используйте llama cli -hf HuggingFaceBio/Carbon-X-GGUF:Q8_0.
- Файл GGUF уже содержит шаблон чата и параметры сэмплирования по умолчанию, дополнительная настройка не требуется; для соответствия официальным условиям обучения и оценки добавьте --chat-template-kwargs '{"enable_thinking": false}', чтобы отключить режим размышлений.
- Размеры файлов: Q8_0 — 15.8 ГБ (официально рекомендованный вариант, по оценкам сопоставимый с BF16), Q6_K — 12.6 ГБ, Q5_K_M — 11.1 ГБ, Q4_K_M — 9.6 ГБ (для использования при нехватке памяти), BF16 — 29.7 ГБ. При задаче вопросов помещайте референсную и мутантную последовательности в одно сообщение, указывая известную информацию, такую как ген, направление цепи и координаты; последовательности из 6 и более символов A/C/G/T автоматически обрабатываются как ДНК.
Риски
- Старые версии llama.cpp (включая v0.7.0) могут загрузить эти файлы, но будут ошибочно токенизировать ДНК без вывода ошибок; убедитесь, что версия не ниже b11742.
- Для квантованных версий протестированы только два из пяти бенчмарков (FrontierVEP и NextBase), каждый с однократным сэмплированием; стандартная ошибка составляет примерно 1.5 и 1 баллов соответственно. Официальные данные о производительности GenomeQA и BioReason после квантования не предоставлены.
- Модель не прошла клиническую валидацию, и официально указано, что она не может использоваться для принятия медицинских решений; модель изначально слабо справляется с задачами, связанными с сайтами сплайсинга и гистоновыми метками, а качество генерации длинных последовательностей ДНК снижается. Вывод модели содержит теги ДНК в формате <dna>…</dna>, которые llama.cpp сохраняет как есть; при необходимости получения чистой последовательности удаляйте их самостоятельно.
Примечание редактора: преимущество локального запуска заключается в том, что чувствительные и неопубликованные последовательности не передаются сторонним сервисам, что является именно тем риском, о котором предупреждают разработчики в разделе ограничений.