Някои програмисти са толкова добре познати, че не се нуждаят

...
Някои програмисти са толкова добре познати, че не се нуждаят
Коментари Харесай

Геният от 21-ви век, който навярно не познавате: С какво сега се занимава Фабрис Белард

Някои програмисти са толкоз добре познати, че не се нуждаят от особено показване. Вероятно Фабрис Белард е най-ярката звезда на нашето време. Авторът на мултимедийния комбайн FFmpeg, емулатора QEMU и десетки други потребни стратегии е безспорен талант и образец за 100x програмист, който собственоръчно е направил повече положително за света от доста корпорации със стотици програмисти. Изобщо всички познават Фабрис – преди дванайсет години медиите започнаха да му обръщат внимание…

… Но в този момент е време да се върнем към тази тематика. Така е за положително, тъй като Фабрис направи извънредно доста през това десетилетие, изключително в региона на невронните мрежи.

Проектите

Нека да си напомним листата с главните разработки на Фабрис. Списъкът наподобява доста впечатляващ. Както стана ясно още през 2011 година, доста от тези стратегии заслужават да се трансфорат във венец на кариерата на един програмист. И той ги е направил всичките напълно независимо. И продължава да работи. Ето една дребна част от неговите планове (плюс още няколко десетки в архива):

1989-1990 година: LZEXE – осъществим файл за DOS за транспарантно архивиране/разрхивиране (компресиране и декомресиране) на файлове. Много хора използваха тази стратегия през 90-те години. Както можете да видите, това е първият важен план на Фабрис за потребителите по целия свят. Той написа LZEXE на асемблерен език за процесора 8086 на едвам на 17-годишна възраст, когато към момента е в учебно заведение, въз основа на логаритъма LZSS. Било е належащо да се напише на асемблер с цел да се получи двоичен файл с най-малък размер, тъй че архивираните файлове дружно с разархиватора да заемат по-малко място от истинските файлове. В противоположен случай концепцията губи смисъл. 1995 година: Реализация на езика C на метода на Полард за ефикасни интервенции за умножение благодарение на бързо превръщане на Фурие (FFT). Това е първото практическо приложение на фундаменталното изобретение на Полард, защото самият той като математик не е можел да написа програмен код. 1996 година: Harissa, виртуалната машина на Java и мощен компилатор за нативен код на Java (транслира кода от Java на C). 1996 година: fbcc, минималистичен компилатор на C, който може да компилира самия себе си. 1997 година: Публикация на формулата на Белар за пресмятане на цифрите на цифрата пи. Тази обява донася на Фабрис международна популярност (в тесни кръгове), защото с формулата си той понижава сложността на изчислението от предходното O(n³(log n)³) до елементарното O(n²). 1999 година: Linmodem е софтуерен модем с отворен код за Linux, аналог на winmodem за Windows. 2000 година: Изчисляване на най-голямото известно просто число (световен връх, цифрата 274207281-1, към 23 милиона цифри). Сорс кодът на C на този логаритъм заема необикновено малко място – едвам 448 байта: 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;)putchar(48+*p--);}

2000: LibBF, дребна библиотека за работа с цифри с плаваща запетая с случайна акуратност. Компилираният размер е към 90 KB x86 код без зависимости. Тя не е нито най-бързата, нито най-малката библиотека, само че се пробва да бъде опростена, като в същото време употребява асимптотично оптимални логаритми. Основните аритметични интервенции имат съвсем линейно време за осъществяване. Примерът TinyPI от тази библиотека пресмята милиарди числа на Пи, като употребява формулата на Чудковски.

2000: FFmpeg. Добре позната стратегия за обработка на мултимедийни файлове, в това число редактиране и прекодиране. Фабрис Белард поддържа независимо поддържа този план (мултимедийна система с отворен код) през първите няколко години, след което го предава на общността.

2001 година: Компилаторът Tiny C (TCC или TinyCC), който разрешава компилиране и осъществяване на стратегии при лимитирано дисково пространство и памет, да вземем за пример на дискети. Препроцесорът, компилаторът, асемблерът и линкерът дружно заемат по-малко от 100 KB в един двоичен файл, като работят към девет пъти по-бързо от GCC.

2002 година: TinyGL, малко, бързо и гратис подмножество на OpenGL.

2002 година: QEmacs (Quick Emacs), клонинг на Emacs, в който Фабрис стартира да учи логаритмите за визуализация на Unicode, работата с текстови буфери и парсинга на XML/HTML/CSS. Тук да вземем за пример можете да видите резултата от рендирането на HTML непосредствено в редактора:

2003 година: QEMU е емулатор с отворен код с динамична транслация на кода от една процесорна архитектура в кода на друга архитектура, не посредством обособени указания, а посредством цели блокове код, което обезпечава висока продуктивност. Това е първият в света емулатор на процесор, който демонстрира продуктивност, близка до тази на истинския процесор.

2004: Зареждащият модул TinyCC, който в действително време компилира и зарежда Linux ядрото непосредствено от неговия сорс код. На остарял Pentium 4 2,4 GHz компилирането на ядрото лишава по-малко от 15 секунди. 2005 година: Предавател на DVB-T сигнал от компютър към тв приемник. 2009 година: Световен връх за пресмятане на пи, подложен на Intel Core i7 с гореспоменатата помощна стратегия TinyPi (софтуер). 2011 година: JSLinux, компютърен емулатор, работещ с Linux на JavaScript. Не единствено Linux, само че и други операционни системи към този момент могат да бъдат стартирани в браузър.

 Ето какво основава този талант през идващите съвсем 10 години

2014-2018 година: форматът за компресиране на изображения Better Portable Graphics (BPG) се базира на подмножество логаритми от видеокодека HEVC. Новият формат е препоръчан като сурогат на JPEG. Неговото преимущество пред всички останали формати (JPEG, JPEG 2000, JPEX XR, WebP) може да се следи при образна проява, като разликите са доста огромни. 2019-2023 година: QuickJS – дребен вграден JavaScript енджин единствено от няколко C файла, без външни зависимости, 210 KB код за семплата стратегия hello world, доста бърз тълковник, съвсем цялостна поддръжка на ES2020. Съдейки по резултатите от тестванията, той е съвсем толкоз добър, колкото V8 (Chrome) и SpiderMonkey (Firefox):

2020-2023: Помощната стратегия ts_zip за компресиране без загуби на англоезични известия в езиков модел (в първата версия това беше GPT-2). По създание това е ефикасен архиватор на текстове, който взема поради вероятността за идната дума. Например, известието:

This lossless compressor achieves a much higher compression rate on English texts than general purpose compressors (116 символа)

Се компресира до следните 10 признака:

猟慴䅭铕袢珏寻䡷䁞꽱

Средното равнище на компресия е 15%.

В днешно време за ефикасната работа на архиватора е нужен добър графичен процесор. В взаимозависимост от размера на модела ефикасната степен на компресия варира от няколко килобайта в секунда до няколкостотин килобайта. Друго значимо изискване е, че за архивиране и разархивиране би трябвало да се употребяват едни и същи GPU и LLM модели, а видеоускорителят е желателно да има огромно количество памет. Така да вземем за пример, за разархивиране на файлове с модела rwkv_169M са нужни 0,38 GB видеопамет, с модела pythia_deduped_70M – 6,61 GB, а с falcon_7B_q4 – 8,44 GB.

Нивото на компресия на ts_zip с разнообразни LLM спрямо CMIX v19 (една от най-хубавите стратегии за компресия без загуби в света) и общоприетия xz, който всички употребяват като по-ефективна опция на gzip и bzip2. По-долу равнището на компресия е обещано в битове на байт:

Файл Оригинален размер (байтове) xz
(bpb) CMIX v19
(bpb) pythia_deduped_70M
(bpb) rwkv_169M
(bpb) rwkv_430M
(bpb) falcon_7B_q4
(bpb) rwkv_7B_q4
(bpb) alice29.txt 152089 2.551 1.645 1.335 1.166 1.028 0.718 0.411 book1 768771 2.717 1.816 1.569 1.426 1.311 1.104 1.115 enwik8 100000000 1.989 1.187 – 1.098 0.948 – – linux-1.2.13.tar 9379840 1.441 – 1.010 0.991 0.837 – –
2021: LibNC – библиотека с отворен код за манипулиране на тензори. 2021: NNCP – архиватор на текст, основан на невронни мрежи (базиран на LibNC), завоюва първото място в интернационалния бенчмарк за компресиране на огромни текстове и към момента го държи (декември 2023 г.):

Помощната стратегия ts_zip е трансформирана в онлайн услугата TextSynth за допълнение на текст, основана на езиковите модели GPT-J 6B и GPT-NeoX 20B. Сега точно посредством тази услуга се получава достъп до разнообразни езикови модели и генератори на картини от невронни мрежи, като Llama2, Falcon, GPT-J, GPT-NeoX, Flan-T5, M2M100, CodeGen и Stable Diffusion. Достъпът се обезпечава посредством REST API и уеб. 2023: TextSynth Server. Гореспоменатият уебсайт TextSynth е основан през 2020 година и е един от първите, които дават достъп до езиковия модел GPT-2. През 2023 година TextSynth Server е показан в настоящия си тип, с HTML графичен интерфейс, REST API и други

Основната услуга е безвъзмездна, а за по-интензивно потребление на REST API е разполагаем заплатен абонамент. Изглежда, че спрямо други сходни услуги това са много скромни цени:

Сред най-новите актуализации на TextSynth Server през октомври са поддръжката на CUDA за версията за Windows, поддръжка на новия Mistral 7B и нова версия на ts_zip за дейно компресиране на текстови файлове благодарение на LLM. През август версията на сървъра за графични процесори беше пусната в общественото пространство. Включени са помощните стратегии за команден ред ts_zip, ts_test, ts_sd, ts_chat за елементарно тестване на другите модели. За елементарни операции с тензори се употребява гореспоменатата библиотека LibNC. Като цяло личната оптимизация на сървъра на Белар обезпечава доста висока продуктивност на езиковите модели на дребни и огромни клъстери от CPU и GPU. Едва ли някой може да напише нещо по-производително, като се изключи Жюстин Тани, който преди месец опакова LLM в един двоичен файл (модел Llama с всички тегла, изпълнимия файл llama.cpp).

Безплатната версия на сървъра TextSynth може да бъде изтеглена във версии за Linux и Windows. Това е елементарна двоична стратегия, която е лесна за инсталиране и пускане. На същата страница има лист на наличните езикови модели и скоростта на генериране на токени в секунда на Epyc 7313 (до 21), RTX A6000 (до 132) и RTX 4090 (до 164). Безплатната версия на сървъра има редица ограничавания спрямо комерсиалната версия.

Очевидно Фабрис към момента работи по този план. Това не е изненадващо, защото невронните мрежи (особено LLM) са най-интересната област на проучване за доста разработчици в днешно време. Всеки желае да взе участие във вероятната поява на мощен изкуствен интелект. Други герои от нашата графа „ Най-големите програмисти на 21 век “ също работят по него: Джон Кармак, Джеф Дийн и упоменатият Джъстин Тъни. И освен те, несъмнено.

Източник: kaldata.com

СПОДЕЛИ СТАТИЯТА


Промоции

КОМЕНТАРИ
НАПИШИ КОМЕНТАР