Dibuat di Vancouver, Kanada oleh Picovice
picoLLM Inference Engine adalah SDK lintas platform yang sangat akurat dan dioptimalkan untuk menjalankan model bahasa besar terkompresi. Mesin Inferensi picoLLM adalah:
Demo Langsung — Bekerja offline!
picoLLM Compression adalah algoritma kuantisasi model bahasa besar (LLM) baru yang dikembangkan dalam Picovoice. Dengan adanya fungsi biaya khusus tugas, Kompresi picoLLM secara otomatis mempelajari strategi alokasi bit optimal di seluruh dan dalam bobot LLM. Teknik yang ada memerlukan skema alokasi bit tetap, yang di bawah standar.
Misalnya, Kompresi picoLLM memulihkan penurunan skor MMLU dari GPTQ yang diadopsi secara luas sebesar 91%, 99%, dan 100% pada pengaturan 2, 3, dan 4-bit. Gambar di bawah menggambarkan perbandingan MMLU antara picoLLM dan GPTQ untuk Llama-3-8b [1].
picoLLM Inference Engine mendukung model bobot terbuka berikut. Modelnya ada di Konsol Pivoice.
gemma-2b
gemma-2b-it
gemma-7b
gemma-7b-it
llama-2-7b
llama-2-7b-chat
llama-2-13b
llama-2-13b-chat
llama-2-70b
llama-2-70b-chat
llama-3-8b
llama-3-8b-instruct
llama-3-70b
llama-3-70b-instruct
mistral-7b-v0.1
mistral-7b-instruct-v0.1
mistral-7b-instruct-v0.2
mixtral-8x7b-v0.1
mixtral-8x7b-instruct-v0.1
phi2
phi3
AccessKey adalah token autentikasi dan otorisasi Anda untuk menerapkan SDK Picovoice, termasuk picoLLM. Siapa pun yang menggunakan Picovoice harus memiliki AccessKey yang valid. Anda harus menjaga rahasia AccessKey Anda. Anda memerlukan konektivitas internet untuk memvalidasi AccessKey Anda dengan server lisensi Picovoice meskipun inferensi LLM berjalan 100% offline dan sepenuhnya gratis untuk model bobot terbuka. Setiap orang yang mendaftar ke Konsol Pivoice menerima AccessKey unik.
Instal paket demo:
pip3 install picollmdemo
Jalankan perintah berikut di terminal:
picollm_demo_completion --access_key ${ACCESS_KEY} --model_path ${MODEL_PATH} --prompt ${PROMPT}
Ganti ${ACCESS_KEY}
dengan milik Anda yang diperoleh dari Konsol Picovoice, ${MODEL_PATH}
dengan jalur ke file model yang diunduh dari Konsol Picovoice, dan ${PROMPT}
dengan string prompt.
Untuk informasi lebih lanjut tentang demo Python, buka demo/python.
Instal paket demo:
yarn global add @picovoice/picollm-node-demo
Jalankan perintah berikut di terminal:
picollm-completion-demo --access_key ${ACCESS_KEY} --model_path ${MODEL_PATH} --prompt ${PROMPT}
Ganti ${ACCESS_KEY}
dengan milik Anda yang diperoleh dari Konsol Picovoice, ${MODEL_PATH}
dengan jalur ke file model yang diunduh dari Konsol Picovoice, dan ${PROMPT}
dengan string prompt.
Untuk informasi selengkapnya tentang demo Node.js, buka demo Node.js.
Menggunakan Android Studio, buka demo Penyelesaian sebagai proyek Android, salin AccessKey Anda ke MainActivity.java, dan jalankan aplikasi.
Untuk mempelajari cara menggunakan picoLLM dalam aplikasi obrolan, cobalah demo Obrolan.
Untuk informasi lebih lanjut tentang demo Android, buka demo/android.
Untuk menjalankan demo penyelesaian, buka demo/ios/Completion dan jalankan:
pod install
Ganti let ACCESS_KEY = "${YOUR_ACCESS_KEY_HERE}"
di file VieModel.swift dengan AccessKey yang Anda peroleh dari Konsol Picovoice.
Kemudian, dengan menggunakan Xcode, buka PicoLLMCompletionDemo.xcworkspace
yang dihasilkan dan jalankan aplikasi.
Untuk mempelajari cara menggunakan picoLLM dalam aplikasi obrolan, cobalah demo Obrolan.
Untuk informasi lebih lanjut tentang demo iOS, kunjungi demo/ios.
Dari demo/web jalankan perintah berikut di terminal:
yarn
yarn start
(atau)
npm install
npm run start
Buka http://localhost:5000
di browser Anda untuk mencoba demo.
Buat demonya:
cmake -S demo/c/ -B demo/c/build && cmake --build demo/c/build
Jalankan demonya:
./demo/c/build/picollm_demo_completion -a ${ACCESS_KEY} -l ${LIBRARY_PATH} -m ${MODEL_FILE_PATH} -p ${PROMPT}
Ganti ${ACCESS_KEY}
dengan milik Anda yang diperoleh dari Konsol Picovoice, ${LIBRARY_PATH}
dengan jalur ke file perpustakaan bersama yang terletak di direktori lib, ${MODEL_FILE_PATH}
dengan jalur ke file model yang diunduh dari Konsol Picovoice, dan ${PROMPT}
dengan string cepat.
Untuk informasi lebih lanjut tentang demo C, kunjungi demo/c.
Instal SDK Python:
pip3 install picollm
Buat instance mesin dan hasilkan penyelesaian cepat:
import picollm
pllm = picollm . create (
access_key = '${ACCESS_KEY}' ,
model_path = '${MODEL_PATH}' )
res = pllm . generate ( '${PROMPT}' )
print ( res . completion )
Ganti ${ACCESS_KEY}
dengan milik Anda yang diperoleh dari Konsol Picovoice, ${MODEL_PATH}
ke jalur ke file model yang diunduh dari Konsol Picovoice, dan ${PROMPT}
ke string prompt. Terakhir, setelah selesai, pastikan untuk melepaskan sumber daya secara eksplisit menggunakan pllm.release()
.
Instal SDK Node.js:
yarn add @picovoice/picollm-node
Buat instance kelas picoLLM:
const { PicoLLM } = require ( "@picovoice/picollm-node" ) ;
const pllm = new PicoLLM ( '${ACCESS_KEY}' , '${MODEL_PATH}' ) ;
const res = await pllm . generate ( '${PROMPT}' ) ;
console . log ( res . completion ) ;
Ganti ${ACCESS_KEY}
dengan milik Anda yang diperoleh dari Konsol Picovoice, ${MODEL_PATH}
ke jalur ke file model yang diunduh dari Konsol Picovoice, dan ${PROMPT}
ke string prompt. Terakhir, setelah selesai, pastikan untuk melepaskan sumber daya secara eksplisit menggunakan pllm.release()
.
Buat instance mesin inferensi dan hasilkan penyelesaian cepat:
import ai . picovoice . picollm .*;
try {
PicoLLM picollm = new PicoLLM . Builder ()
. setAccessKey ( "${ACCESS_KEY}" )
. setModelPath ( "${MODEL_PATH}" )
. build ();
PicoLLMCompletion res = picollm . generate (
"${PROMPT}" ,
new PicoLLMGenerateParams . Builder (). build ());
} catch ( PicoLLMException e ) { }
Ganti ${ACCESS_KEY}
dengan AccessKey
Anda dari Konsol Picovoice, ${MODEL_PATH}
ke jalur ke file model yang diunduh dari Konsol Picovoice, dan ${PROMPT}
ke string prompt. Terakhir, setelah selesai, pastikan untuk melepaskan sumber daya secara eksplisit menggunakan picollm.delete()
.
Buat instance mesin dan hasilkan penyelesaian cepat:
import PicoLLM
let pllm = try PicoLLM (
accessKey : " ${ACCESS_KEY} " ,
modelPath : " ${MODEL_PATH} " )
let res = pllm . generate ( prompt : " ${PROMPT} " )
print ( res . completion )
Ganti ${ACCESS_KEY}
dengan milik Anda yang diperoleh dari Konsol Picovoice, ${MODEL_PATH}
ke jalur ke file model yang diunduh dari Konsol Picovoice, dan ${PROMPT}
ke string prompt.
Instal SDK web menggunakan benang:
yarn add @picovoice/picollm-web
atau menggunakan npm:
npm install --save @picovoice/picollm-web
Buat instance mesin menggunakan PicoLLMWorker
dan transkripsikan file audio:
import { PicoLLMWorker } from "@picovoice/picollm-web" ;
const picoLLMModel = {
modelFile : '${MODEL_FILE}'
}
const picoLLM = await PicoLLMWorker . create (
"${ACCESS_KEY}" ,
picoLLMModel
) ;
const res = await picoLLM . generate ( ` ${ PROMPT } ` ) ;
console . log ( res . completion ) ;
Ganti ${ACCESS_KEY}
dengan milik Anda yang diperoleh dari Konsol Picovoice, ${MODEL_FILE}
dengan konten file model dalam format File
, Blob
, atau URL (path to model file)
dan ${PROMPT}
dengan string prompt. Terakhir, setelah selesai, lepaskan sumber daya menggunakan picoLLM.release()
.
Buat instance mesin dan hasilkan penyelesaian cepat:
pv_picollm_t * pllm = NULL ;
pv_picollm_init (
"${ACCESS_KEY}" ,
"${MODEL_PATH}" ,
"best" ,
& pllm );
pv_picollm_usage_t usage ;
pv_picollm_endpoint_t endpoint ;
int32_t num_completion_tokens ;
pv_picollm_completion_token_t * completion_tokens ;
char * output ;
pv_picollm_generate (
pllm ,
"${PROMPT}" ,
-1 , // completion_token_limit
NULL , // stop_phrases
0 , // num_stop_phrases
-1 , // seed
0.f , // presence_penalty
0.f , // frequency_penalty
0.f , // temperature
1.f , // top_p
0 , // num_top_choices
NULL , // stream_callback
NULL , // stream_callback_context
& usage ,
& endpoint ,
& completion_tokens ,
& num_completion_tokens ,
& output );
printf ( "%sn" , output );
Ganti ${ACCESS_KEY}
dengan milik Anda yang diperoleh dari Konsol Picovoice, ${MODEL_PATH}
ke jalur ke file model yang diunduh dari Konsol Picovoice, dan ${PROMPT}
ke string prompt.
Terakhir, setelah selesai, pastikan untuk melepaskan sumber daya secara eksplisit:
pv_picollm_delete ( pllm );
interrupt()
untuk menghentikan pembuatan penyelesaian lebih awal