Разработчик и энтузиаст старых компьютерных технологий Йо Кхэн Мэн успешно портировал модель Llama 2 для работы на DOS-системах. Он использовал упрощённую версию библиотеки llama2.c от Андрея Карпати.
Разработчик адаптировал исходный код Llama 2 для DOS с помощью компилятора Open Watcom 2.0 и расширителя DOS/32A, который позволяет программам работать в 32-битном защищённом режиме. Он работал с Thinkpad T42 (2004) и Toshiba Satellite 315CDT (1996) на процессорах Pentium M 735 1,7 ГГц и Pentium MMX 200 МГц соответственно.
Мэну пришлось решить несколько проблем, в том числе отсутствие поддержки современных функций C99, ограничений памяти и несовместимости с API. В итоге ему пришлось заменить все вызовы отображения памяти, чтобы загрузить в неё файл LLM. Для работы также пришлось использовать макросы, преобразующие функции double во float, так как Open Watcom плохо поддерживает операции с плавающей точкой. Ограничение имён файлов в DOS до формата 8.3 символов потребовало их переименования (например, tokenizer.bin в tokenize.bin).
Энтузиаст протестировал модели на различных системах. На 486 DX-2 (66 МГц, 32 МБ RAM) модель на 260 тыс. параметров генерировала 2.08 токенов/сек. На Pentium MMX 200 МГц (96 МБ RAM) скорость вывода той же модели достигла 15.32 токенов/сек. На Pentium M 1.7 ГГц (2 ГБ RAM) более крупная модель на 110 млн параметров работала со скоростью 1.71 токенов/сек.
При этом современный Ryzen 5 7600 не смог запустить модель на 110 млн параметров из-за ошибок выделения памяти, отметил Мэн.
Энтузиаст выложил все материалы, включая исполняемые файлы и исходный код, на GitHub под лицензией MIT58. Он надеется, что это вдохновит сообщество на эксперименты с LLM на других ретроплатформах, например 16-битных системах или процессорах Motorola 68000.
Разработчик адаптировал исходный код Llama 2 для DOS с помощью компилятора Open Watcom 2.0 и расширителя DOS/32A, который позволяет программам работать в 32-битном защищённом режиме. Он работал с Thinkpad T42 (2004) и Toshiba Satellite 315CDT (1996) на процессорах Pentium M 735 1,7 ГГц и Pentium MMX 200 МГц соответственно.
Мэну пришлось решить несколько проблем, в том числе отсутствие поддержки современных функций C99, ограничений памяти и несовместимости с API. В итоге ему пришлось заменить все вызовы отображения памяти, чтобы загрузить в неё файл LLM. Для работы также пришлось использовать макросы, преобразующие функции double во float, так как Open Watcom плохо поддерживает операции с плавающей точкой. Ограничение имён файлов в DOS до формата 8.3 символов потребовало их переименования (например, tokenizer.bin в tokenize.bin).
Энтузиаст протестировал модели на различных системах. На 486 DX-2 (66 МГц, 32 МБ RAM) модель на 260 тыс. параметров генерировала 2.08 токенов/сек. На Pentium MMX 200 МГц (96 МБ RAM) скорость вывода той же модели достигла 15.32 токенов/сек. На Pentium M 1.7 ГГц (2 ГБ RAM) более крупная модель на 110 млн параметров работала со скоростью 1.71 токенов/сек.
При этом современный Ryzen 5 7600 не смог запустить модель на 110 млн параметров из-за ошибок выделения памяти, отметил Мэн.
Энтузиаст выложил все материалы, включая исполняемые файлы и исходный код, на GitHub под лицензией MIT58. Он надеется, что это вдохновит сообщество на эксперименты с LLM на других ретроплатформах, например 16-битных системах или процессорах Motorola 68000.