แผนงาน / สถานะโครงการ / แถลงการณ์ / ggml
การอนุมานโมเดล LLaMA ของ Meta (และอื่น ๆ ) ใน C/C++ ล้วนๆ
บันทึกการเปลี่ยนแปลงสำหรับ libllama
API
บันทึกการเปลี่ยนแปลงสำหรับ REST API llama-server
ขอแนะนำ GGUF-my-LoRA #10123
ตอนนี้ Hugging Face Inference Endpoints รองรับ GGUF ทันที! #9669
บรรณาธิการ Hugging Face GGUF: การสนทนา | เครื่องมือ
เป้าหมายหลักของ llama.cpp
คือการเปิดใช้งานการอนุมาน LLM ด้วยการตั้งค่าขั้นต่ำและประสิทธิภาพที่ล้ำสมัยบนฮาร์ดแวร์ที่หลากหลาย - ภายในเครื่องและในระบบคลาวด์
การใช้งาน C/C++ ธรรมดาโดยไม่มีการขึ้นต่อกันใดๆ
Apple Silicon เป็นพลเมืองชั้นหนึ่ง - ปรับให้เหมาะสมผ่านเฟรมเวิร์ก ARM NEON, Accelerate และ Metal
รองรับ AVX, AVX2, AVX512 และ AMX สำหรับสถาปัตยกรรม x86
การหาปริมาณจำนวนเต็ม 1.5 บิต, 2 บิต, 3 บิต, 4 บิต, 5 บิต, 6 บิต และ 8 บิตเพื่อการอนุมานที่รวดเร็วขึ้นและลดการใช้หน่วยความจำ
เคอร์เนล CUDA แบบกำหนดเองสำหรับการรัน LLM บน NVIDIA GPU (รองรับ AMD GPU ผ่าน HIP และ Moore Threads MTT GPUs ผ่าน MUSA)
รองรับแบ็กเอนด์ Vulkan และ SYCL
การอนุมานแบบไฮบริดของ CPU+GPU เพื่อเร่งโมเดลบางส่วนที่มีขนาดใหญ่กว่าความจุ VRAM ทั้งหมด
นับตั้งแต่ก่อตั้ง โครงการได้รับการปรับปรุงให้ดีขึ้นอย่างมากด้วยการมีส่วนร่วมมากมาย เป็นสนามเด็กเล่นหลักสำหรับการพัฒนาคุณสมบัติใหม่สำหรับไลบรารี ggml
รุ่นที่รองรับ:
โดยทั่วไปแล้วการปรับแต่งอย่างละเอียดของรุ่นพื้นฐานด้านล่างก็ได้รับการรองรับเช่นกัน
ลามะ ?
ลามา 2 ??
ลามา 3 ???
มิสทรัล 7B
มิกซ์ทรัล MoE
ดีบีอาร์เอ็กซ์
เหยี่ยว
LLaMA จีน / Alpaca และ LLaMA-2 / Alpaca-2 ของจีน
วิโกญ (ฝรั่งเศส)
เบิร์ต
โคอาล่า
Baichuan 1 & 2 + อนุพันธ์
อากีลา 1 และ 2
โมเดลสตาร์โคเดอร์
สะท้อนกลับ
MPT
บลูม
ยี่รุ่น
รุ่น LM ที่เสถียร
โมเดล Deepseek
โมเดลเควน
ปลาโม-13B
พี่รุ่น
GPT-2
กลุ่มดาวนายพราน 14B
ฝึกงานLM2
รหัสเชลล์
เจมม่า
แมมบ้า
กร็อก-1
เอ็กซ์เวิร์ส
รุ่น Command-R
สิงโตทะเล
GritLM-7B + GritLM-8x7B
โอลโม
โอลโมอี
โมเดลหินแกรนิต
GPT-NeoX + ไพเธีย
สโนว์เฟลก-อาร์กติก MoE
สม็อก
โพโร 34B
Bitnet รุ่น b1.58
ประหม่า T5
เปิดรุ่นเอล์ม
ChatGLM3-6b + ChatGLM4-9b
สมอลแอลเอ็ม
EXAONE-3.0-7.8B-คำสั่ง
โมเดลฟอลคอนแมมบา
ใจ
บีลิค-11B-v2.3
RWKV-6
(คำแนะนำสำหรับการรองรับรุ่นเพิ่มเติม: HOWTO-add-model.md)
โมเดลต่อเนื่องหลายรูปแบบ:
รุ่น LLaVA 1.5, รุ่น LLaVA 1.6
บัคลาวา
ออบซิเดียน
แชร์GPT4V
รุ่น MobileVLM 1.7B/3B
ยี่-VL
CPM มินิ
มูนดรีม
กระต่าย
การผูก:
Python: abetlen/llama-cpp-python
ไป: go-skynet/go-llama.cpp
Node.js: withcatai/node-llama-cpp
JS/TS (ไคลเอ็นต์เซิร์ฟเวอร์ llama.cpp): lgrammel/modelfusion
JS/TS (CLI ของโปรแกรมพรอมต์เอ็นจิ้นพร้อมท์): ออฟไลน์-ai/cli
JavaScript/Wasm (ทำงานในเบราว์เซอร์): tangledgroup/llama-cpp-wasm
Typescript/Wasm (API ที่ดีกว่า มีให้ในเวลา npm): ngxson/wllama
รูบี้: yoshoku/llama_cpp.rb
สนิม (คุณสมบัติเพิ่มเติม): edgenai/llama_cpp-rs
สนิม (API ที่ดีกว่า): mdrokz/rust-llama.cpp
สนิม (การผูกโดยตรงเพิ่มเติม): utilityai/llama-cpp-rs
C#/.NET: SciSharp/LLamaSharp
C#/VB.NET (คุณสมบัติเพิ่มเติม - ใบอนุญาตชุมชน): LM-Kit.NET
สกาล่า 3: ดอนเดอรอม/llm4s
Clojure: phronmophobic/llama.clj
ตอบสนองพื้นเมือง: mybigday/llama.rn
ชวา: kherud/java-llama.cpp
ซิก: deins/llama.cpp.zig
กระพือ/โผ: netdur/llama_cpp_dart
PHP (การเชื่อมโยง API และฟีเจอร์ที่สร้างขึ้นบน llama.cpp): Distancemagic/resonance (ข้อมูลเพิ่มเติม)
โครงการ Guile: guile_llama_cpp
Swift srgtuszy/llama-cpp-swift
Swift ShenghaiWang/SwiftLlama
UI:
เว้นแต่จะระบุไว้เป็นอย่างอื่น โครงการเหล่านี้เป็นโอเพ่นซอร์สพร้อมใบอนุญาตที่ได้รับอนุญาต:
MindWorkAI/AI-สตูดิโอ (FSL-1.1-MIT)
ไอโอฮับ/คอลลามา
มกราคม/มกราคม (AGPL)
แนท/openplayground
ฟาราเดย์ (กรรมสิทธิ์)
LMStudio (กรรมสิทธิ์)
ไลลา (กรรมสิทธิ์)
รามาลมา (MIT)
LocalAI (เอ็มไอที)
LostRuins/โคโบลด์ซีพีพี (AGPL)
Mozilla-Ocho/llamafile
nomic-ai/gpt4all
โอลามะ/โอลามะ
oobabooga/ข้อความ-รุ่น-webui (AGPL)
สึกิฮาระ/FreeChat
ทอมซิก/เอวา (MIT)
ptsochantaris/อิเมลทอล
ไพธอป/เทเนเร (AGPL)
RAGNA Desktop (กรรมสิทธิ์)
RecurseChat (กรรมสิทธิ์)
เซมเพอไร/อามิกา
withcatai/catai
มือถือ-ปัญญาประดิษฐ์/แม่บ้าน (MIT)
มิสตี้ (กรรมสิทธิ์)
LMFarm (เอ็มไอที)
KanTV (Apachev2.0 หรือใหม่กว่า)
ดอท (GPL)
MindMac (กรรมสิทธิ์)
KodiBot (GPL)
อีวา (เอ็มไอที)
ปลั๊กอินข้อความ AI Sublime (MIT)
เอไอคิต (MIT)
LARS - LLM และโซลูชันการอ้างอิงขั้นสูง (AGPL)
LLMยูนิตี้ (MIT)
ผู้ช่วยลามะ (GPL)
PocketPal AI - แอป iOS และ Android (MIT)
(หากต้องการมีโครงการแสดงไว้ที่นี่ ควรระบุให้ชัดเจนว่าขึ้นอยู่กับ llama.cpp
)
เครื่องมือ:
akx/ggify – ดาวน์โหลดโมเดล PyTorch จาก HuggingFace Hub และแปลงเป็น GGML
akx/ollama-dl – ดาวน์โหลดโมเดลจากไลบรารี Ollama เพื่อใช้กับ llama.cpp โดยตรง
crashr/gppm – เรียกใช้อินสแตนซ์ llama.cpp โดยใช้ NVIDIA Tesla P40 หรือ P100 GPUs พร้อมลดการใช้พลังงานขณะไม่ได้ใช้งาน
gpustack/gguf-parser - ตรวจสอบ/ตรวจสอบไฟล์ GGUF และประเมินการใช้งานหน่วยความจำ
Styled Lines (มีลิขสิทธิ์เฉพาะ wrapper แบบ async ของส่วนอนุมานสำหรับการพัฒนาเกมใน Unity3d พร้อมด้วย wrapper แพลตฟอร์มมือถือและเว็บที่สร้างไว้ล่วงหน้า และตัวอย่างโมเดล)
โครงสร้างพื้นฐาน:
Paddler - ตัวโหลดบาลานเซอร์แบบมีสถานะปรับแต่งสำหรับ llama.cpp
GPUStack - จัดการคลัสเตอร์ GPU สำหรับการรัน LLM
llama_cpp_canister - llama.cpp เป็นสัญญาอัจฉริยะบนคอมพิวเตอร์อินเทอร์เน็ตโดยใช้ WebAssembly
เกม:
Lucy's Labyrinth - เกมเขาวงกตง่ายๆ ที่เจ้าหน้าที่ควบคุมโดยโมเดล AI จะพยายามหลอกคุณ
$ make -j && ./llama-cli -m models/llama-13b-v2/ggml-model-q4_0.gguf -p "Building a website can be done in 10 simple steps:nStep 1:" -n 400 -e I llama.cpp build info: I UNAME_S: Darwin I UNAME_P: arm I UNAME_M: arm64 I CFLAGS: -I. -O3 -std=c11 -fPIC -DNDEBUG -Wall -Wextra -Wpedantic -Wcast-qual -Wdouble-promotion -Wshadow -Wstrict-prototypes -Wpointer-arith -Wmissing-prototypes -pthread -DGGML_USE_K_QUANTS -DGGML_USE_ACCELERATE I CXXFLAGS: -I. -I./common -O3 -std=c++11 -fPIC -DNDEBUG -Wall -Wextra -Wpedantic -Wcast-qual -Wno-unused-function -Wno-multichar -pthread -DGGML_USE_K_QUANTS I LDFLAGS: -framework Accelerate I CC: Apple clang version 14.0.3 (clang-1403.0.22.14.1) I CXX: Apple clang version 14.0.3 (clang-1403.0.22.14.1) make: Nothing to be done for `default'. main: build = 1041 (cf658ad) main: seed = 1692823051 llama_model_loader: loaded meta data with 16 key-value pairs and 363 tensors from models/llama-13b-v2/ggml-model-q4_0.gguf (version GGUF V1 (latest)) llama_model_loader: - type f32: 81 tensors llama_model_loader: - type q4_0: 281 tensors llama_model_loader: - type q6_K: 1 tensors llm_load_print_meta: format = GGUF V1 (latest) llm_load_print_meta: arch = llama llm_load_print_meta: vocab type = SPM llm_load_print_meta: n_vocab = 32000 llm_load_print_meta: n_merges = 0 llm_load_print_meta: n_ctx_train = 4096 llm_load_print_meta: n_ctx = 512 llm_load_print_meta: n_embd = 5120 llm_load_print_meta: n_head = 40 llm_load_print_meta: n_head_kv = 40 llm_load_print_meta: n_layer = 40 llm_load_print_meta: n_rot = 128 llm_load_print_meta: n_gqa = 1 llm_load_print_meta: f_norm_eps = 1.0e-05 llm_load_print_meta: f_norm_rms_eps = 1.0e-05 llm_load_print_meta: n_ff = 13824 llm_load_print_meta: freq_base = 10000.0 llm_load_print_meta: freq_scale = 1 llm_load_print_meta: model type = 13B llm_load_print_meta: model ftype = mostly Q4_0 llm_load_print_meta: model size = 13.02 B llm_load_print_meta: general.name = LLaMA v2 llm_load_print_meta: BOS token = 1 '<s>' llm_load_print_meta: EOS token = 2 '</s>' llm_load_print_meta: UNK token = 0 '<unk>' llm_load_print_meta: LF token = 13 '<0x0A>' llm_load_tensors: ggml ctx size = 0.11 MB llm_load_tensors: mem required = 7024.01 MB (+ 400.00 MB per state) ................................................................................................... llama_new_context_with_model: kv self size = 400.00 MB llama_new_context_with_model: compute buffer total size = 75.41 MB system_info: n_threads = 16 / 24 | AVX = 0 | AVX2 = 0 | AVX512 = 0 | AVX512_VBMI = 0 | AVX512_VNNI = 0 | FMA = 0 | NEON = 1 | ARM_FMA = 1 | F16C = 0 | FP16_VA = 1 | WASM_SIMD = 0 | BLAS = 1 | SSE3 = 0 | VSX = 0 | sampling: repeat_last_n = 64, repeat_penalty = 1.100000, presence_penalty = 0.000000, frequency_penalty = 0.000000, top_k = 40, tfs_z = 1.000000, top_p = 0.950000, typical_p = 1.000000, temp = 0.800000, mirostat = 0, mirostat_lr = 0.100000, mirostat_ent = 5.000000 generate: n_ctx = 512, n_batch = 512, n_predict = 400, n_keep = 0 Building a website can be done in 10 simple steps: Step 1: Find the right website platform. Step 2: Choose your domain name and hosting plan. Step 3: Design your website layout. Step 4: Write your website content and add images. Step 5: Install security features to protect your site from hackers or spammers Step 6: Test your website on multiple browsers, mobile devices, operating systems etc… Step 7: Test it again with people who are not related to you personally – friends or family members will work just fine! Step 8: Start marketing and promoting the website via social media channels or paid ads Step 9: Analyze how many visitors have come to your site so far, what type of people visit more often than others (e.g., men vs women) etc… Step 10: Continue to improve upon all aspects mentioned above by following trends in web design and staying up-to-date on new technologies that can enhance user experience even further! How does a Website Work? A website works by having pages, which are made of HTML code. This code tells your computer how to display the content on each page you visit – whether it’s an image or text file (like PDFs). In order for someone else’s browser not only be able but also want those same results when accessing any given URL; some additional steps need taken by way of programming scripts that will add functionality such as making links clickable! The most common type is called static HTML pages because they remain unchanged over time unless modified manually (either through editing files directly or using an interface such as WordPress). They are usually served up via HTTP protocols – this means anyone can access them without having any special privileges like being part of a group who is allowed into restricted areas online; however, there may still exist some limitations depending upon where one lives geographically speaking. How to llama_print_timings: load time = 576.45 ms llama_print_timings: sample time = 283.10 ms / 400 runs ( 0.71 ms per token, 1412.91 tokens per second) llama_print_timings: prompt eval time = 599.83 ms / 19 tokens ( 31.57 ms per token, 31.68 tokens per second) llama_print_timings: eval time = 24513.59 ms / 399 runs ( 61.44 ms per token, 16.28 tokens per second) llama_print_timings: total time = 25431.49 ms
และนี่คือการสาธิตการใช้งานทั้ง LLaMA-7B และ Whisper.cpp บน M1 Pro MacBook เครื่องเดียว:
ต่อไปนี้เป็นขั้นตอนการแปลงโมเดลและการสร้างไบนารีตั้งแต่ต้นจนจบสำหรับโมเดลที่รองรับส่วนใหญ่
ประการแรก คุณต้องได้รับไบนารี่ มีวิธีการต่าง ๆ ที่คุณสามารถปฏิบัติตามได้:
วิธีที่ 1: โคลนที่เก็บนี้และสร้างในเครื่อง ดูวิธีการสร้าง
วิธีที่ 2: หากคุณใช้ MacOS หรือ Linux คุณสามารถติดตั้ง llama.cpp ผ่าน brew, flox หรือ nix
วิธีที่ 3: ใช้อิมเมจ Docker ดูเอกสารประกอบสำหรับ Docker
วิธีที่ 4: ดาวน์โหลดไบนารีที่สร้างไว้ล่วงหน้าจากรุ่นต่างๆ
คุณสามารถดำเนินการเสร็จสิ้นขั้นพื้นฐานได้โดยใช้คำสั่งนี้:
llama-cli -m your_model.gguf -p "ฉันเชื่อว่าความหมายของชีวิตคือ" -n 128# ผลลัพธ์:# ฉันเชื่อว่าความหมายของชีวิตคือการค้นหาความจริงของคุณเองและดำเนินชีวิตตามนั้น สำหรับฉัน นี่หมายถึงการซื่อสัตย์ต่อตนเองและทำตามความปรารถนา แม้ว่าสิ่งเหล่านั้นจะไม่สอดคล้องกับความคาดหวังของสังคมก็ตาม ฉันคิดว่านั่นคือสิ่งที่ฉันชอบเกี่ยวกับโยคะ ไม่ใช่แค่การฝึกทางกายภาพเท่านั้น แต่ยังเป็นการฝึกจิตวิญญาณด้วย มันเกี่ยวกับการเชื่อมต่อกับตัวคุณเอง ฟังเสียงภายในของคุณ และให้เกียรติกับการเดินทางที่ไม่เหมือนใครของคุณเอง
ดูหน้านี้สำหรับรายการพารามิเตอร์ทั้งหมด
หากคุณต้องการประสบการณ์ที่คล้ายกับ ChatGPT มากขึ้น คุณสามารถทำงานในโหมดการสนทนาโดยส่ง -cnv
เป็นพารามิเตอร์:
llama-cli -m your_model.gguf -p "คุณเป็นผู้ช่วยที่เป็นประโยชน์" -cnv# เอาท์พุต:# > สวัสดี คุณเป็นใคร?# สวัสดี! ฉันเป็นผู้ช่วยที่เป็นประโยชน์ของคุณ! ฉันเป็นแชทบอตที่ขับเคลื่อนด้วย AI ซึ่งออกแบบมาเพื่อช่วยเหลือและให้ข้อมูลแก่ผู้ใช้เช่นคุณ ฉันอยู่ที่นี่เพื่อช่วยตอบคำถามของคุณ ให้คำแนะนำ และให้การสนับสนุนในหัวข้อต่างๆ ที่หลากหลาย ฉันเป็น AI ที่เป็นมิตรและรอบรู้ และยินดีช่วยเหลือทุกสิ่งที่คุณต้องการเสมอ คุณคิดอะไรอยู่ และวันนี้ฉันจะช่วยคุณได้อย่างไร## > 1+1 คืออะไร?# ง่ายๆ เลย! คำตอบของ 1+1 คือ... 2!
ตามค่าเริ่มต้น เทมเพลตการแชทจะถูกนำมาจากโมเดลอินพุต หากคุณต้องการใช้เทมเพลตการแชทอื่น ให้ส่ง --chat-template NAME
เป็นพารามิเตอร์ ดูรายการเทมเพลตที่รองรับ
./llama-cli -m your_model.gguf -p "คุณเป็นผู้ช่วยที่เป็นประโยชน์" -cnv --chat-template chatml
คุณยังสามารถใช้เทมเพลตของคุณเองผ่านพารามิเตอร์ในคำนำหน้า ในคำต่อท้าย และพร้อมท์ย้อนกลับ:
./llama-cli -m your_model.gguf -p "คุณเป็นผู้ช่วยที่เป็นประโยชน์" -cnv --in-prefix 'ผู้ใช้: ' --reverse-prompt 'ผู้ใช้:'
เว็บเซิร์ฟเวอร์ llama.cpp เป็นเซิร์ฟเวอร์ HTTP ที่เข้ากันได้กับ OpenAI API น้ำหนักเบา ซึ่งสามารถใช้เพื่อให้บริการโมเดลท้องถิ่นและเชื่อมต่อกับไคลเอนต์ที่มีอยู่ได้อย่างง่ายดาย
ตัวอย่างการใช้งาน:
./llama-server -m your_model.gguf --port 8080# UI เว็บพื้นฐานสามารถเข้าถึงได้ผ่านเบราว์เซอร์: http://localhost:8080# จุดสิ้นสุดการแชทเสร็จสิ้น: http://localhost:8080/v1/chat/completions
บันทึก
หากคุณต้องการการใช้งานขั้นพื้นฐาน โปรดพิจารณาใช้โหมดการสนทนาแทนโหมดโต้ตอบ
ในโหมดนี้ คุณสามารถขัดจังหวะการสร้างได้ตลอดเวลาโดยกด Ctrl+C แล้วป้อนข้อความหนึ่งบรรทัดขึ้นไป ซึ่งจะถูกแปลงเป็นโทเค็นและต่อท้ายบริบทปัจจุบัน คุณยังสามารถระบุ พร้อมท์ย้อนกลับ ด้วยพารามิเตอร์ -r "reverse prompt string"
ซึ่งจะส่งผลให้อินพุตของผู้ใช้ได้รับพร้อมต์ทุกครั้งที่พบโทเค็นที่แน่นอนของสตริงพร้อมต์ย้อนกลับในการสร้าง การใช้งานทั่วไปคือการใช้ข้อความเตือนที่ทำให้ LLaMA จำลองการแชทระหว่างผู้ใช้หลายคน เช่น Alice และ Bob และส่งผ่าน -r "Alice:"
นี่คือตัวอย่างของการโต้ตอบสองสามช็อตที่เรียกใช้ด้วยคำสั่ง
# อาร์กิวเมนต์เริ่มต้นโดยใช้โมเดล 7B./examples/chat.sh# การแชทขั้นสูงด้วยโมเดล 13B./examples/chat-13B.sh# อาร์กิวเมนต์ที่กำหนดเองโดยใช้โมเดล 13B./llama-cli -m ./models/13B/ ggml-model-q4_0.gguf -n 256 --repeat_penalty 1.0 --color -i -r "ผู้ใช้:" -f พร้อมท์/แชทกับ-bob.txt
สังเกตการใช้ --color
เพื่อแยกความแตกต่างระหว่างอินพุตของผู้ใช้และข้อความที่สร้างขึ้น พารามิเตอร์อื่นๆ ได้รับการอธิบายโดยละเอียดใน README สำหรับโปรแกรมตัวอย่าง llama-cli
พรอมต์ อินพุตของผู้ใช้ และการสร้างโมเดลสามารถบันทึกและดำเนินการต่อในการเรียก ./llama-cli
llama-cli โดยใช้ประโยชน์จาก --prompt-cache
และ --prompt-cache-all
สคริปต์ ./examples/chat-persistent.sh
สาธิตสิ่งนี้โดยรองรับเซสชันแชทที่ใช้เวลานานและกลับมาทำงานต่อได้ หากต้องการใช้ตัวอย่างนี้ คุณต้องจัดเตรียมไฟล์เพื่อแคชพรอมต์การแชทเริ่มต้นและไดเร็กทอรีเพื่อบันทึกเซสชันการแชท และอาจจัดเตรียมตัวแปรเดียวกันกับ chat-13B.sh
หรือไม่ก็ได้ แคชพร้อมท์เดียวกันสามารถนำมาใช้ซ้ำได้สำหรับเซสชันการแชทใหม่ โปรดทราบว่าทั้งแคชของพรอมต์และไดเร็กทอรีการแชทจะเชื่อมโยงกับพรอมต์เริ่มต้น ( PROMPT_TEMPLATE
) และไฟล์โมเดล
# เริ่มแชทใหม่ PROMPT_CACHE_FILE=chat.prompt.bin CHAT_SAVE_DIR=./chat/default ./examples/chat-persistent.sh# ดำเนินการต่อ chatPROMPT_CACHE_FILE=chat.prompt.bin CHAT_SAVE_DIR=./chat/default ./examples/chat- ถาวร.sh# เริ่มแชทอื่นด้วยสิ่งเดียวกัน prompt/modelPROMPT_CACHE_FILE=chat.prompt.bin CHAT_SAVE_DIR=./chat/another ./examples/chat-persistent.sh# prompt cache ที่แตกต่างกันสำหรับ prompt/modelPROMPT_TEMPLATE=./prompts/chat-with-bob.txt PROMPT_CACHE_FILE=bob prompt.bin CHAT_SAVE_DIR=./chat/bob ./examples/chat-persistent.sh
llama.cpp
รองรับไวยากรณ์เพื่อจำกัดเอาต์พุตของโมเดล ตัวอย่างเช่น คุณสามารถบังคับให้โมเดลส่งออก JSON เท่านั้น:
./llama-cli -m ./models/13B/ggml-model-q4_0.gguf -n 256 --grammar-file grammars/json.gbnf -p 'คำขอ: กำหนดเวลาการโทรเวลา 20.00 น.; สั่งการ:'
grammars/
โฟลเดอร์ประกอบด้วยตัวอย่างไวยากรณ์จำนวนหนึ่ง หากต้องการเขียนของคุณเอง โปรดดู GBNF Guide
สำหรับการเขียนไวยากรณ์ JSON ที่ซับซ้อนยิ่งขึ้น คุณสามารถดู https://grammar.intrinsiclabs.ai/ ซึ่งเป็นแอปเบราว์เซอร์ที่ให้คุณเขียนอินเทอร์เฟซ TypeScript ซึ่งจะคอมไพล์เป็นไวยากรณ์ GBNF ที่คุณสามารถบันทึกไว้เพื่อใช้ในเครื่องได้ โปรดทราบว่าแอปนี้สร้างและดูแลโดยสมาชิกของชุมชน โปรดยื่นปัญหาหรือ FRs ใน repo ของตน ไม่ใช่ปัญหานี้
โปรดดูที่ Build llama.cpp ในเครื่อง
แบ็กเอนด์ | อุปกรณ์เป้าหมาย |
---|---|
โลหะ | แอปเปิ้ลซิลิคอน |
บลาส | ทั้งหมด |
บลิส | ทั้งหมด |
SYCL | Intel และ NVIDIA GPU |
มูซา | มัวร์เธรด MTT GPU |
CUDA | จีพียู NVIDIA |
ฮิปบลาส | เอเอ็มดีจีพียู |
วัลแคน | จีพียู |
แคนน์ | ขึ้น NPU |
บันทึก
คุณสามารถใช้พื้นที่ GGUF-my-repo บน Hugging Face เพื่อหาจำนวนน้ำหนักโมเดลของคุณโดยไม่ต้องตั้งค่าใดๆ เช่นกัน จะมีการซิงค์จาก llama.cpp
main ทุก 6 ชั่วโมง
หากต้องการรับตุ้มน้ำหนัก LLaMA 2 อย่างเป็นทางการ โปรดดูส่วนการรับและการใช้โมเดล Facebook LLaMA 2 นอกจากนี้ยังมีโมเดล gguf
ที่กำหนดไว้ล่วงหน้าให้เลือกมากมายบน Hugging Face
หมายเหตุ: convert.py
ถูกย้ายไปยัง examples/convert_legacy_llama.py
แล้ว และไม่ควรใช้สำหรับสิ่งอื่นใดนอกจากโมเดล Llama/Llama2/Mistral
และอนุพันธ์ของโมเดลเหล่านั้น ไม่รองรับ LLaMA 3 คุณสามารถใช้ convert_hf_to_gguf.py
กับ LLaMA 3 ที่ดาวน์โหลดจาก Hugging Face
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับแบบจำลองเชิงปริมาณ โปรดอ่านเอกสารประกอบนี้
คุณสามารถใช้ตัวอย่าง perplexity
เพื่อวัดความฉงนสนเท่ห์ในพรอมต์ที่กำหนด (ความฉงนสนเท่ห์ที่ต่ำกว่าจะดีกว่า) สำหรับข้อมูลเพิ่มเติม โปรดดู https://huggingface.co/docs/transformers/perplexity
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับวิธีวัดความฉงนสนเท่ห์โดยใช้ llama.cpp โปรดอ่านเอกสารนี้
ผู้ร่วมให้ข้อมูลสามารถเปิดประชาสัมพันธ์ได้
ผู้ทำงานร่วมกันสามารถพุชไปยังสาขาใน repo llama.cpp
และรวม PR เข้ากับสาขา master
ได้
ผู้ทำงานร่วมกันจะได้รับเชิญตามการมีส่วนร่วม
ความช่วยเหลือในการจัดการปัญหา ประชาสัมพันธ์ และโครงการต่างๆ จะได้รับการชื่นชมอย่างมาก!
ดูประเด็นแรกที่ดีสำหรับงานที่เหมาะสมสำหรับการมีส่วนร่วมครั้งแรก
อ่าน CONTRIBUTING.md สำหรับข้อมูลเพิ่มเติม
อย่าลืมอ่านสิ่งนี้: การอนุมานที่ขอบ
เรื่องราวเบื้องหลังเล็กน้อยสำหรับผู้ที่สนใจ: Changelog podcast
หลัก (cli)
เซิร์ฟเวอร์
อันตราย
ไวยากรณ์ GBNF
เอกสารการพัฒนา
วิธีการสร้าง
ทำงานบนนักเทียบท่า
สร้างบน Android
การแก้ไขปัญหาประสิทธิภาพ
เคล็ดลับและเทคนิค GGML
เอกสารรองและความเป็นมาของแบบจำลอง
หากปัญหาของคุณอยู่ที่คุณภาพการสร้างโมเดล อย่างน้อยโปรดสแกนลิงก์และเอกสารต่อไปนี้เพื่อทำความเข้าใจข้อจำกัดของโมเดล LLaMA นี่เป็นสิ่งสำคัญอย่างยิ่งเมื่อเลือกขนาดโมเดลที่เหมาะสม และคำนึงถึงความแตกต่างที่สำคัญและละเอียดอ่อนระหว่างโมเดล LLaMA และ ChatGPT:
ลามา:
ขอแนะนำ LLaMA: โมเดลภาษาขนาดใหญ่พื้นฐานที่มีพารามิเตอร์ 65 พันล้านพารามิเตอร์
LLaMA: โมเดลภาษาพื้นฐานแบบเปิดและมีประสิทธิภาพ
GPT-3
โมเดลภาษาเป็นผู้เรียนเพียงไม่กี่คน
GPT-3.5 / InstructGPT / ChatGPT:
การจัดตำแหน่งโมเดลภาษาให้ทำตามคำแนะนำ
ฝึกอบรมโมเดลภาษาให้ปฏิบัติตามคำแนะนำพร้อมคำติชมของมนุษย์