


Добро пожаловать в Libllm, проект с открытым исходным кодом, разработанный для эффективного вывода крупных языковых моделей (LLM) на обычных персональных компьютерах и мобильных устройствах. Ядро реализовано в C ++ 14, без каких-либо сторонних зависимостей (таких как BLA или предложение), что позволяет беспрепятственно работать на различных устройствах.
Добро пожаловать в Libllm, проект с открытым исходным кодом, предназначенный для эффективного вывода крупных языковых моделей (LLM) на средних персональных компьютерах и мобильных устройствах. Ядро записано в C ++ 14, и у него нет сторонних зависимостей (BLA, предложение и т. Д.), И может легко работать на различных устройствах.
| Модель | Скачать | команда LLM |
|---|---|---|
| Index-1.9b-character (ролевая игра) | [? HF] [MS] | LLM чат -m Индекс: персонаж |
| Индекс-1,9B-чат | [? HF] [MS] | LLM чат -m индекс |
| Qwen2-1.5b-instruct | [? HF] [MS] | LLM Chat -m Qwen: 1,5B |
| Qwen2-7b-instruct | [? HF] [MS] | LLM Chat -m Qwen: 7b |
| Llama3.2-1b-instruct | [? HF] [MS] | LLM Chat -m llama3.2: 1b |
| Llama3.2-3b-instruct | [? HF] [MS] | LLM Chat -m llama3.2 |
| Шепот-широкий V3 | [? HF] [MS] | LLM транскрибибель |
HF = huggingface, MS = modelcope
| ОС | Платформа | Куда | AVX2 | AVX512 | asimdhp |
|---|---|---|---|---|---|
| Linux | x64 | ✅ | ✅ | ✅ | |
| Окна | x64 | ✅ | ✅ | ✅ | |
| macOS | ARM64 | ✅ |
llm chat -model index-character автоматически загружает модель index-character из? HuggingFace. Запускать и общаться с билибили-индекс-1,9B-Шарактер:
$ llm chat -m index-character Он автоматически загрузит Bilibili-Index-1.9B-Character с Huggingface или Modelcope (в Китае) и начнет CHAT CLI в LLM.
Общайтесь с моделью Bilibili-Index-1.9B-Character :
$ llm chat -m index-character llm автоматически загрузит модель Bilibili-Index-1.9B-Character от huggingface или modelcope (если это китайский IP) и начнет говорить с ним.
$ src/libllm/llm chat -m index-character
INFO 2024-07-30T12:02:28Z interface.cc:67] ISA support: AVX2=1 F16C=1 AVX512F=1
INFO 2024-07-30T12:02:28Z interface.cc:71] Use Avx512 backend.
INFO 2024-07-30T12:02:30Z matmul.cc:43] Use GEMM from cuBLAS.
INFO 2024-07-30T12:02:30Z cuda_operators.cc:51] cuda numDevices = 2
INFO 2024-07-30T12:02:30Z cuda_operators.cc:52] cuda:0 maxThreadsPerMultiProcessor = 2048
INFO 2024-07-30T12:02:30Z cuda_operators.cc:54] cuda:0 multiProcessorCount = 20
INFO 2024-07-30T12:02:30Z thread_pool.cc:73] ThreadPool started. numThreads=20
INFO 2024-07-30T12:02:30Z llm.cc:204] read model package: /home/xiaoych/.libllm/models/bilibili-index-1.9b-character-q4.llmpkg
INFO 2024-07-30T12:02:30Z model_for_generation.cc:43] model_type = index
INFO 2024-07-30T12:02:30Z model_for_generation.cc:44] device = cuda
INFO 2024-07-30T12:02:31Z state_map.cc:66] 220 tensors read.
Please input your question.
Type ' :new ' to start a new session (clean history).
Type ' :sys <system_prompt> ' to set the system prompt and start a new session .
> hi
您好!我是Index,请问有什么我可以帮助您的吗?
(12 tokens, time=0.76s, 63.47ms per token)
> $ mkdir build && cd build
$ cmake ..
$ make -jПожалуйста, заваривайте установить OpenMP перед Cmake. Примечание. В настоящее время ожидается, что MacOS Libllm будет очень медленным, поскольку для него нет ядра Aarch64.
% brew install libomp
% export OpenMP_ROOT= $( brew --prefix ) /opt/libomp
% mkdir build && cd build
% cmake ..
% make -j Примечание. Укажите -DCUDAToolkit_ROOT=<CUDA-DIR> , если в вашей ОС есть несколько версий CUDA.
Рекомендовать версии:
$ mkdir build && cd build
$ cmake -DWITH_CUDA=ON [-DCUDAToolkit_ROOT =< CUDA-DIR > ] ..
$ make -j from libllm import Model , ControlToken
model = Model ( "tools/bilibili_index.llmpkg" )
prompt = [ ControlToken ( "<|reserved_0|>" ), "hi" , ControlToken ( "<|reserved_1|>" )]
for chunk in model . complete ( prompt ):
print ( chunk . text , end = "" , flush = True )
print ( " n Done!" ) package main
import (
"fmt"
"log"
"github.com/ling0322/libllm/go/llm"
)
func main () {
model , err := llm . NewModel ( "../../tools/bilibili_index.llmpkg" , llm . Auto )
if err != nil {
log . Fatal ( err )
}
prompt := llm . NewPrompt ()
prompt . AppendControlToken ( "<|reserved_0|>" )
prompt . AppendText ( "hi" )
prompt . AppendControlToken ( "<|reserved_1|>" )
comp , err := model . Complete ( llm . NewCompletionConfig (), prompt )
if err != nil {
log . Fatal ( err )
}
for comp . IsActive () {
chunk , err := comp . GenerateNextChunk ()
if err != nil {
log . Fatal ( err )
}
fmt . Print ( chunk . Text )
}
fmt . Println ()
}Вот пример экспорта модели индекса-1,9B из HuggingFace.
$ cd tools
$ python bilibili_index_exporter.py
-huggingface_name IndexTeam/Index-1.9B-Character
-quant q4
-output index.llmpkg
Тогда все необходимые модули, реализованные для IndexTeam/Index-1.9B-Character , включая модель, токенизатор и конфигурации, будут записаны на index.llmpkg .