Pure Go สำหรับ RWKV และรองรับข้ามแพลตฟอร์ม
rwkv.go เป็น wrapper รอบ RWKV.CPP ซึ่งเป็นการปรับ GGML.CPP
go get github.com/seasonjs/rwkv ดูโฟลเดอร์ deps สำหรับความเข้ากันได้ของ Dylib หรือคุณสามารถสร้างห้องสมุดด้วยตัวเองและยินดีต้อนรับคำขอพุช
NewRwkvAutoModel ทั้ง GPU รองรับ AMD และ NVIDIA บน Windows
NewRwkvModel ต้องการให้คุณโหลดไลบรารีแบบไดนามิกด้วยตนเองและไลบรารีแบบไดนามิกขึ้นอยู่กับแพลตฟอร์ม
ผู้ใช้ Windows AMD GPU อาจต้องตรวจสอบสถาปัตยกรรม ROCM เพื่อรับข้อมูลเพิ่มเติม
ผู้ใช้ Windows Nvidia GPU อาจต้องตรวจสอบสถาปัตยกรรม CUDA เพื่อรับข้อมูลเพิ่มเติม
| แพลตฟอร์ม | x32 | x64 | แขน | AMD/ROCM | nvidia/cuda |
|---|---|---|---|---|---|
| หน้าต่าง | ไม่สนับสนุน | รองรับ avx/avx2/avx512 | ไม่สนับสนุน | การสนับสนุน ROCM5.5 | การสนับสนุน CUDA12 |
| ลินเวกซ์ | ไม่สนับสนุน | สนับสนุน | ไม่สนับสนุน | ไม่สนับสนุน | ไม่สนับสนุน |
| ดาร์วิน | ไม่สนับสนุน | สนับสนุน | สนับสนุน | ไม่สนับสนุน | ไม่สนับสนุน |
ไลบรารีแบบไดนามิกเหล่านี้มาจากรีลีส RWKV.CPP รุ่นไลบรารีแบบไดนามิกสามารถรับได้โดยการดูไฟล์ rwkv.version ทุกคนสามารถตรวจสอบความสอดคล้องของไฟล์โดยตรวจสอบ MD5 ของไฟล์
ทั้งหมดที่ฉันสามารถพูดได้คือการสร้างห้องสมุดไดนามิกเป็นสาธารณะและไม่มีตรรกะที่เป็นอันตรายใด ๆ หากคุณกังวลเกี่ยวกับความปลอดภัยของไลบรารีไดนามิกในระหว่างกระบวนการใช้งานคุณสามารถสร้างมันเองได้
ฉันและผู้เขียนใด ๆ ที่เกี่ยวข้องกับห้องสมุดไดนามิกไม่ถือว่ามีปัญหาความรับผิดชอบหรือความรับผิดทางกฎหมายระหว่างการใช้งาน
คุณสามารถค้นหาตัวอย่างที่สมบูรณ์ในโฟลเดอร์ตัวอย่าง
นี่คือตัวอย่างง่ายๆ:
package main
import (
"fmt"
"github.com/seasonjs/rwkv"
)
func main () {
model , err := rwkv . NewRwkvAutoModel (rwkv. RwkvOptions {
MaxTokens : 500 ,
StopString : " n n " ,
Temperature : 0.8 ,
TopP : 0.5 ,
TokenizerType : rwkv . World , //or World
PrintError : true ,
CpuThreads : 10 ,
GpuEnable : false ,
})
if err != nil {
fmt . Print ( err . Error ())
return
}
defer model . Close ()
err = model . LoadFromFile ( "./models/RWKV-5-World-0.4B-v2-20231113-ctx4096-F16.bin" )
if err != nil {
fmt . Print ( err . Error ())
return
}
prompt := `The following is a coherent verbose detailed conversation between a Chinese girl named Alice and her friend Bob.
Alice is very intelligent, creative and friendly.
Alice likes to tell Bob a lot about herself and her opinions.
Alice usually gives Bob kind, helpful and informative advices.
Bob: lhc
Alice: LHC是指大型强子对撞机(Large Hadron Collider),是世界最大最强的粒子加速器,由欧洲核子中心(CERN)在瑞士日内瓦地下建造。
LHC的原理是加速质子(氢离子)并让它们相撞,让科学家研究基本粒子和它们之间的相互作用,并在2012年证实了希格斯玻色子的存在。
Bob: 企鹅会飞吗
Alice: 企鹅是不会飞的。企鹅的翅膀短而扁平,更像是游泳时的一对桨。企鹅的身体结构和羽毛密度也更适合在水中游泳,而不是飞行。
`
user := `Bob: 请介绍北京的旅游景点?
Alice: `
ctx , err := model . InitState ( prompt )
if err != nil {
print ( err . Error ())
return
}
out , err := ctx . Predict ( user )
if err != nil {
print ( err . Error ())
return
}
print ( out )
}ในการจัดส่งโปรแกรมการทำงานที่มี AI นี้คุณจะต้องรวมไฟล์ต่อไปนี้:
แพ็คเกจนี้ยังมี API ระดับต่ำซึ่งเหมือนกับ RWKV-CPP ดูรายละเอียดที่ RWKV-DOC
ขอขอบคุณเป็นพิเศษสำหรับการสนับสนุน Jetbrains สำหรับการสนับสนุน
ลิขสิทธิ์ (c) seasonjs สงวนลิขสิทธิ์ ได้รับใบอนุญาตภายใต้ใบอนุญาต MIT ดู license.txt ในรูทโครงการสำหรับข้อมูลใบอนุญาต