


일반 개인용 컴퓨터 및 모바일 장치에서 대형 언어 모델 (LLM)의 효율적인 추론을 위해 설계된 오픈 소스 프로젝트 인 Libllm에 오신 것을 환영합니다. 코어는 타사 종속성 (예 : BLAS 또는 SentencePiece)없이 C ++ 14로 구현되므로 다양한 장치에서 원활한 작동이 가능합니다.
평균 개인용 컴퓨터 및 모바일 장치에서 LLM (Large Language Model)의 효율적인 추론을 위해 설계된 오픈 소스 프로젝트 인 Libllm에 오신 것을 환영합니다. 핵심은 C ++ 14로 작성되며 타사 종속성 (BLAS, 문장 등)이 없으며 다양한 장치에서 완벽하게 실행할 수 있습니다.
| 모델 | 다운로드 | LLM 명령 |
|---|---|---|
| Index-1.9B-Character (롤 플레잉) | [? HF] [MS] | LLM 채팅 -M 인덱스 : 문자 |
| 인덱스 -1.9B-chat | [? HF] [MS] | LLM 채팅 -M 인덱스 |
| QWEN2-1.5B 비축 | [? HF] [MS] | LLM 채팅 -M Qwen : 1.5B |
| QWEN2-7B- 강조 | [? HF] [MS] | LLM 채팅 -M Qwen : 7B |
| llama3.2-1b-비 구조 | [? HF] [MS] | llm 채팅 -M llama3.2 : 1b |
| LLAMA3.2-3B-비 구조 | [? HF] [MS] | LLM 채팅 -M llama3.2 |
| Whisper-Large-V3 | [? HF] [MS] | LLM 전사 -M Whisper |
HF = huggingface, MS = modelscope
| OS | 플랫폼 | 쿠다 | AVX2 | AVX512 | Asimdhp |
|---|---|---|---|---|---|
| 리눅스 | x64 | ✅ | ✅ | ✅ | |
| 창 | x64 | ✅ | ✅ | ✅ | |
| 마코스 | ARM64 | ✅ |
llm chat -model index-character huggingface에서 index-character 모델을 자동으로 다운로드합니다. Bilibili-index-1.9B-character와 실행하고 채팅하려면 :
$ llm chat -m index-character Huggingface 또는 Modelscope (중국에서)에서 Bilibili-Index-1.9B-Character 자동으로 다운로드하고 LLM에서 채팅 CLI를 시작합니다.
Bilibili-Index-1.9B-Character 모델과 채팅 :
$ llm chat -m index-character llm Huggingface 또는 ModelScope (중국 IP 인 경우)에서 모델 Bilibili-Index-1.9B-Character 모델을 자동으로 다운로드하여 대화를 시작합니다.
$ 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 -jcmake 전에 OpenMP를 설치하십시오. 참고 : 현재 Libllm MacOS는 Aarch64 커널이 없기 때문에 매우 느리게 예상됩니다.
% brew install libomp
% export OpenMP_ROOT= $( brew --prefix ) /opt/libomp
% mkdir build && cd build
% cmake ..
% make -j 참고 : OS에 여러 CUDA 버전이있는 경우 -DCUDAToolkit_ROOT=<CUDA-DIR> 지정하십시오.
권장 버전은 다음과 같습니다.
$ 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 ()
}다음은 Huggingface에서 Index-1.9b 모델을 내보내는 예입니다.
$ 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 에 기록됩니다.