- PVSM.RU - https://www.pvsm.ru -
[1]Некоторые программисты настолько хорошо известны, что не нуждаются в особом представлении. Наверное, Фабрис Беллар — самая яркая звезда современности. Автор мультимедийного комбайна FFmpeg, эмулятора QEMU и десятков других полезных программ — абсолютный гений и пример программиста 100х, который в одиночку принёс больше пользы миру, чем многие корпорации с сотнями разработчиков. В общем, все знают Фабриса — про него ещё была статья на Хабре [2] двенадцать лет назад…
… Но по просьбам молодых читателей [3] мы решили вернуться к этой теме. Оно и к лучшему, ведь Фабрис многое сделал за это десятилетие, особенно в области нейросетей.
Напомним список основных разработок Фабриса. Список выглядит очень впечатляюще. Как мы уже говорили в 2011 году, многие из этих программ достойны стать венцом карьеры программиста. А он сделал их все. И продолжает работать. Вот небольшая часть его проектов [4] (ещё пара десятков в архиве [5]):
int m=1811939329,N=1,t[1<<26]={2},a,*p,i,e=73421233,s,c,U=1;g(d,h){for(i=s;i<1<<
25;i*=2)d=d*1LL*d%m;for(p=t;p<t+N;p+=s)for(i=s,c=1;i;i--)a=p[s]*(h?c:1LL)%m,p[s]
=(m*1U+*p-a)*(h?1LL:c)%m,*p=(a*1U+*p)%m,p++,c=c*1LL*d%m;}main(){while(e/=2){N*=2
;U=U*1LL*(m+1)/2%m;for(s=N;s/=2;)g(136,0);for(p=t;p<t+N;p++)*p=*p*1LL**p%m*U%m;
for(s=1;s<N;s*=2)g(839354248,1);for(a=0,p=t;p<t+N;)a+=*p<<(e&1),*p++=a%10,a/=10;
}while(!*--p);for(t[0]--;p>=t;)putchar(48+*p--);}



А вот дополнение к этому списку с момента публикации прошлой статьи:
hello world, очень быстрый интерпретатор, почти полная поддержка ES2020 [28]. Судя по результатам тестов [29], он практически не уступает V8 (Chrome) и SpiderMonkey (Firefox):

This lossless compressor achieves a much higher compression rate on English texts than general purpose compressors (116 символов)
Сжималось в 10 символов:
猟慴䅭铕袢珏寻䡷䁞꽱
Средний уровень компрессии составлял 15 %.
Сейчас для эффективной работы архиватора нужен хороший GPU. В зависимости от размера модели, эффективная скорость сжатия варьируется от нескольких килобайт в секунду до нескольких сотен килобайт. Ещё одно важное условие — для архивирования и разархивирования должны использоваться одни и те же модели GPU и LLM, причём видеоускоритель желательно с большим количеством памяти. Например, для разархивирования файлов с моделью rwkv_169M нужно, 0,38 ГБ видеопамяти, с моделью pythia_deduped_70M — 6,61 ГБ, с falcon_7B_q4 — 8,44 ГБ.
Уровень сжатия ts_zip с разными LLM по сравнению с CMIX v19 (один из лучших в мире программ для сжатия без потерь) и стандартным xz [31], которым все пользуются как более эффективной альтернативой gzip и bzip2. Уровень сжатия указан в битах на байт:
| Файл | Оригинальный размер (байт) | xz [31] (bpb) |
CMIX v19 [32] (bpb) |
pythia_deduped_70M [33] (bpb) |
rwkv_169M [34] (bpb) |
rwkv_430M [35] (bpb) |
falcon_7B_q4 [36] (bpb) |
rwkv_7B_q4 [37] (bpb) |
|---|---|---|---|---|---|---|---|---|
| alice29.txt [38] | 152089 | 2.551 | 1.645 | 1.335 | 1.166 | 1.028 | 0.718 | 0.411 |
| book1 [39] | 768771 | 2.717 | 1.816 | 1.569 | 1.426 | 1.311 | 1.104 | 1.115 |
| enwik8 [40] | 100000000 | 1.989 | 1.187 | - | 1.098 | 0.948 | - | - |
| linux-1.2.13.tar [41] | 9379840 | 1.441 | - | 1.010 | 0.991 | 0.837 | - | - |

ts_zip трансформировалась в онлайновый сервис по дополнению текста TextSynth [45] на основе языковых моделей GPT-J 6B и GPT-NeoX 20B. Сейчас через этот сервис предоставляется доступ к разным языковым моделям и нейросетевым генераторам картинок, таким как Llama2, Falcon, GPT-J, GPT-NeoX, Flan-T5, M2M100, CodeGen и Stable Diffusion. Доступ предоставляется через REST API [46] и веб [47].
Модель Mistral 7B
Нейросети можно использовать для завершения текста, ответов на вопросы, классификации, общения, перевода, создания изображений. Например, функция завершения текста [48] использует языковые модели Mistral 7B, Llama2 7B и Falcon 7B, которые считаются одними из лучших в этом размере, а также настроенную специально для ответов на вопросы модель Flan-T5-XXL. Больше информации см. в документации [49].
Базовый сервис бесплатен, для более интенсивного использования REST API можно оформить платную подписку [51]. Кажется, что по сравнению с другими аналогичными сервисами это довольно скромные тарифы:

Из последних обновлений TextSynth Server в октябре — поддержка CUDA для версии Windows, поддержка новой модели Mistral 7B, новая версия ts_zip [30] для эффективного сжатия текстовых файлов с помощью LLM. В августе версия сервера для GPU была опубликована в открытом доступе. В комплекте утилиты командной строки ts_zip, ts_test, ts_sd, ts_chat для удобного тестирования разных моделей. Для простых тензорных манипуляций используется вышеупомянутая библиотека LibNC. В общем, оптимизация сервера собственными разработками Беллара обеспечивает очень высокую производительность языковых моделей на маленьких или больших кластерах CPU и GPU. Вряд ли кто-то сможет написать что-то более производительное, разве что Джастин Танни [52], которая месяц назад упаковала LLM в один бинарник [53] (модель Llama со всеми весами, исполняемый файл llama.cpp [54]).
Бесплатную версию сервера TextSynth можно скачать в версиях под Linux и Windows [50]. Это простой бинарник, который удобно установить и запустить. На той же страничке указан список доступных языковых моделей и скорость генерации токенов в секунду на Epyc 7313 (до 21), RTX A6000 (до 132) и RTX 4090 (до 164). В бесплатной версии сервера действует ряд ограничений [55], по сравнению с коммерческой версией.
Судя по всему, Фабрис занимается этим проектом до сих пор. Оно и неудивительно, ведь нейросети (особенно LLM) сейчас самая интересная область исследования для многих разработчиков. Каждый хочет быть причастным к возможному появлению сильного ИИ. Над этим работают и другие герои нашей рубрики «Величайшие программисты 21 века»: Джон Кармак [56], Джефф Дин [57] и упомянутая Джастин Танни [52]. Ну и не только они, конечно.
Фабрис Беллар родился в 1972 году в Гренобле на юге Франции, в возрасте девяти лет начал программировать на научном калькуляторе TI-59. Когда ему было 11 лет, семья купила первый компьютер TI-99/4A с интерпретатором для TI BASIC, довольно простым языком для изучения школьником: по одной команде в каждой строке, как в калькуляторе.

Amstrad PC1512
В пятнадцать лет купил собственный персональный компьютер Amstrad PC1512 и начал программировать по-серьёзному. Ещё в школе написал LZEXE [6], первый в мире популярный архиватор под DOS (на том самом домашнем компьютере) и закачал его на несколько BBS, откуда программа разошлась по миру.
В 18 лет поступил в Политехническую школу Парижа [58] (Ecole Polytechnique), это ведущий в стране инженерный вуз, который ставит главной целью развитие критического , а не трудоустройство выпускников. В 1996 году (24 года) продолжил обучение в Télécom Paris [60], тоже крупнейший инженерный университет и научно-исследовательский институт. В 1997 году открыл формулу Беллара [61] для вычисления числа пи.
Фабрис также проходил стажировку в IRISA [62], одной из крупнейших научно-исследовательских лабораторий Франции в области компьютерных технологий. Там он написал Harissa [8] (быстрая виртуальная машина Java) и некоторые другие проекты.
Многие из его лучших проектов сделаны в рамках студенческих работ или на их основе. Например, выпущенный в 2002 году графическая платформа TinyGL [16] (40 КБ, замена OpenGL) ведёт своё начало из 3D-движка VReng Virtual Reality Engine, над которым Беллар начал работу в 1998 году.
Значительным годом для Фабриса стал 2000-й, когда он начал писать FFmpeg [14], универсальную утилиту для обработки мультимедийных файлов и потоков. Теперь эта программа по сути незаменима в опенсорсных проектах.
В последующие годы трижды выигрывал конкурс минималистичного и обфусцированного кода на C: в 2000 году за вычисление наибольшего известного простого числа [63] с помощью FFT, в 2001 году за самый маленький компилятор размером 3 КБ [64] (в категории «Наилучший обход правил конкурса», эта разработка стала базой для TinyCC), а в 2018 году за лучшее сжатие изображения [65].
Сейчас Фабрис Беллар ведёт скромный образ жизни, не имеет страниц в соцсетях (даже в LinkedIn его нет), редко показывается на публике, за всю жизнь дал только одно интервью [66] (зеркало [67]). Одно из его редких появлений случилось в 2007 году на конференции MIX 07, где он сфотографировался с Мигелем де Икаса, основателем проектов GNOME и Mono:

Да и зачем где-то появляться, если работа говорит сама за себя.
Абсолютно все программы Фабриса Беллара всегда публиковались с открытым исходным кодом, даже такие уникальные вещи как FFmpeg и QEMU. Он не пытался на них никак заработать. Судя по всему, его не интересуют ни слава, ни деньги — только интересная работа и головоломки, желание решать задачи, которые ещё никто не решил, чтобы помочь людям. Вовсе не для славы, а потому что он не может иначе. Нерешённая задача — это как вызов, который у тебя нет возможности не принять. Это как заполнить пустоту, существование которой трудно выносить. Поэтому программы он публикует в опенсорсе и старается сделать так, чтобы они были доступны всем желающим.
На вопрос, откуда решение делать так много разных проектов, он ответил: «Это не решение. Просто мне скучно заниматься одним и тем же, поэтому я стараюсь время от времени менять проект».
Видимо, в рейтинге ныне живущих программистов Фабрис Беллар попал бы в топ, если не на первое место.
Автор: Анатолий Ализар
Источник [79]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/news/389089
Ссылки в тексте:
[1] Image: https://habr.com/ru/companies/ruvds/articles/781922/
[2] статья на Хабре: https://habr.com/ru/articles/119455/
[3] просьбам молодых читателей: https://habr.com/ru/companies/ruvds/articles/710268/comments/#comment_25117800
[4] проектов: https://bellard.org/
[5] в архиве: https://bellard.org/projects.html
[6] LZEXE: http://bellard.org/lzexe.html
[7] Реализация на С: https://bellard.org/pi/pi_salamin.tar.gz
[8] Harissa: http://www.usenix.org/publications/library/proceedings/coots97/full_papers/muller/muller_html/usenix.html
[9] fbcc: https://bellard.org/fbcc/
[10] формулы Беллара: http://en.wikipedia.org/wiki/Bellard%27s_formula
[11] Linmodem: http://bellard.org/linmodem.html
[12] Вычисление самого большого известного простого числа: http://bellard.org/mersenne.html
[13] LibBF: http://numcalc.com/
[14] FFmpeg: http://ffmpeg.org/
[15] компилятор TCC: http://bellard.org/tcc/
[16] TinyGL: http://bellard.org/TinyGL/
[17] QEmacs: http://bellard.org/qemacs/
[18] просматривать результат рендеринга HTML: https://bellard.org/qemacs/screenshots.html
[19] QEMU: http://wiki.qemu.org/Main_Page
[20] Загрузчик TinyCC: https://web.archive.org/web/20130724232327/http://bellard.org/tcc/tccboot.html
[21] Передатчик сигнала в формате DVB-T с компьютера на телевизор: http://bellard.org/dvbt/
[22] Мировой рекорд по вычислению числа пи: http://bellard.org/pi/pi2700e9/
[23] софт: https://bellard.org/pi/pi2700e9/tpi.html
[24] JSLinux: https://bellard.org/jslinux/
[25] Better Portable Graphics: https://bellard.org/bpg/
[26] визуальной демонстрации: https://xooyoozoo.github.io/yolo-octo-bugfixes/#cologne-cathedral&jpg=s&bpg=s
[27] QuickJS: https://bellard.org/quickjs/
[28] ES2020: https://tc39.github.io/ecma262/
[29] результатам тестов: https://test262.fyi/#
[30] ts_zip: https://bellard.org/ts_server/ts_zip.html
[31] xz: https://en.wikipedia.org/wiki/XZ_Utils
[32] CMIX v19: http://www.byronknoll.com/cmix.html
[33] pythia_deduped_70M: https://huggingface.co/fbellard/ts_server/resolve/main/pythia_deduped_70M.bin
[34] rwkv_169M: https://huggingface.co/fbellard/ts_server/resolve/main/rwkv_169M.bin
[35] rwkv_430M: https://huggingface.co/fbellard/ts_server/resolve/main/rwkv_430M.bin
[36] falcon_7B_q4: https://huggingface.co/fbellard/ts_server/resolve/main/falcon_7B_q4.bin
[37] rwkv_7B_q4: https://huggingface.co/fbellard/ts_server/resolve/main/rwkv_7B_q4.bin
[38] alice29.txt: https://en.wikipedia.org/wiki/Canterbury_corpus
[39] book1: https://en.wikipedia.org/wiki/Calgary_corpus
[40] enwik8: http://mattmahoney.net/dc/text.html
[41] linux-1.2.13.tar: https://mirrors.edge.kernel.org/pub/linux/kernel/v1.2/linux-1.2.13.tar.xz
[42] LibNC: https://bellard.org/libnc/
[43] NNCP: https://bellard.org/nncp/
[44] Large Text Compression Benchmark: https://www.mattmahoney.net/dc/text.html
[45] TextSynth: https://textsynth.com/
[46] REST API: https://textsynth.com/documentation.html#api
[47] веб: https://textsynth.com/playground.html
[48] функция завершения текста: https://textsynth.com/completion.html
[49] документации: https://textsynth.com/documentation.html
[50] TextSynth Server: https://bellard.org/ts_server/
[51] платную подписку: https://textsynth.com/pricing.html
[52] Джастин Танни: https://habr.com/ru/company/ruvds/blog/682150/
[53] LLM в один бинарник: https://twitter.com/justinetunney/status/1729940628098969799
[54] llama.cpp: https://github.com/mozilla-Ocho/llamafile
[55] ограничений: https://bellard.org/ts_server/ts_server.html
[56] Джон Кармак: https://habr.com/ru/company/ruvds/blog/721150/
[57] Джефф Дин: https://habr.com/ru/companies/ruvds/articles/752206/
[58] Политехническую школу Парижа: https://www.polytechnique.edu/en
[59] мышления: http://www.braintools.ru
[60] Télécom Paris: https://www.telecom-paris.fr/
[61] формулу Беллара: https://en.wikipedia.org/wiki/Bellard%27s_formula
[62] IRISA: https://www.irisa.fr/en/umr-6074
[63] вычисление наибольшего известного простого числа: https://web.archive.org/web/20130720083807/http://www0.us.ioccc.org/2000/bellard.hint
[64] самый маленький компилятор размером 3 КБ: https://web.archive.org/web/20120503192252/http://www1.us.ioccc.org/2001/bellard.hint
[65] за лучшее сжатие изображения: https://www.ioccc.org/2018/whowon.html
[66] только одно интервью: https://www.scribd.com/document/511765517/Fabrice-Bellard-Interview
[67] зеркало: http://depositfiles.com/files/th5xt1yo8
[68] Джей Фриман (saurik): https://habr.com/ru/company/ruvds/blog/688716/
[69] Михал Залевски: https://habr.com/ru/company/ruvds/blog/695386/
[70] 1: https://habr.com/ru/company/ruvds/blog/701556/
[71] Марк Руссинович: https://habr.com/ru/company/ruvds/blog/710268/
[72] Юрки Алакуйяла: https://habr.com/ru/company/ruvds/blog/713648/
[73] Андрей Карпаты: https://habr.com/ru/companies/ruvds/articles/728056/
[74] Даниэль Стенберг, автор curl: https://habr.com/ru/companies/ruvds/articles/733002/
[75] Колин Персиваль, автор tarsnap: https://habr.com/ru/companies/ruvds/articles/739392/
[76] antirez, автор СУБД Redis: https://habr.com/ru/companies/ruvds/articles/758112/
[77] Оскар Толедо: потомственный волшебник: https://habr.com/ru/companies/ruvds/articles/765074/
[78] Ральф Меркл: криптограф, крионик и теоретик молекулярной инженерии: https://habr.com/ru/companies/ruvds/articles/770556/
[79] Источник: https://habr.com/ru/companies/ruvds/articles/781922/?utm_source=habrahabr&utm_medium=rss&utm_campaign=781922
Нажмите здесь для печати.