LLM for Unity ช่วยให้สามารถผสานรวม Large Language Models (LLM) ภายในกลไก Unity ได้อย่างราบรื่น
ช่วยให้สามารถสร้างตัวละครอัจฉริยะที่ผู้เล่นของคุณสามารถโต้ตอบด้วยเพื่อประสบการณ์ที่ดื่มด่ำ
แพ็คเกจนี้ยังมีระบบการดึงข้อมูล-Augmented Generation (RAG) ที่ช่วยให้ทำการค้นหาเชิงความหมายในข้อมูลของคุณ ซึ่งสามารถใช้เพื่อเสริมความรู้ของตัวละครได้ LLM for Unity สร้างขึ้นจากไลบรารี llama.cpp ที่ยอดเยี่ยม
- ทดสอบบน Unity: 2021 LTS, 2022 LTS, 2023
- การเปิดตัวที่จะเกิดขึ้น
ติดต่อเราเพื่อเพิ่มโครงการของคุณ!
วิธีที่ 1: ติดตั้งโดยใช้ที่เก็บสินทรัพย์
Add to My Assets
Window > Package Manager
Packages: My Assets
จากเมนูแบบเลื่อนลงLLM for Unity
คลิก Download
จากนั้นคลิก Import
วิธีที่ 2: ติดตั้งโดยใช้ GitHub repo:
Window > Package Manager
+
และเลือก Add package from git URL
https://github.com/undreamai/LLMUnity.git
แล้วคลิก Add
ก่อนอื่น คุณจะต้องตั้งค่า LLM สำหรับเกมของคุณ ?:
Add Component
แล้วเลือกสคริปต์ LLMDownload Model
(~GBs)Load model
(ดูการจัดการโมเดล LLM)จากนั้นคุณสามารถตั้งค่าตัวละครแต่ละตัวของคุณได้ดังนี้ ?♀️:
Add Component
แล้วเลือกสคริปต์ LLMCharacterPrompt
คุณสามารถกำหนดชื่อของ AI ( AI Name
) และผู้เล่น ( Player Name
)LLM
หากคุณมี LLM GameObjects มากกว่าหนึ่งรายการคุณยังสามารถปรับการตั้งค่า LLM และอักขระได้ตามความต้องการของคุณ (ดูตัวเลือก)
ในสคริปต์ของคุณคุณสามารถใช้มันได้ดังนี้ ?:
using LLMUnity ;
public class MyScript {
public LLMCharacter llmCharacter ;
void HandleReply ( string reply ) {
// do something with the reply from the model
Debug . Log ( reply ) ;
}
void Game ( ) {
// your game function
.. .
string message = " Hello bot! " ;
_ = llmCharacter . Chat ( message , HandleReply ) ;
.. .
}
}
คุณยังสามารถระบุฟังก์ชันที่จะเรียกใช้เมื่อการตอบกลับแบบจำลองเสร็จสมบูรณ์
สิ่งนี้มีประโยชน์หากเปิดใช้งานตัวเลือก Stream
สำหรับเอาต์พุตต่อเนื่องจากโมเดล (พฤติกรรมเริ่มต้น):
void ReplyCompleted ( ) {
// do something when the reply from the model is complete
Debug . Log ( " The AI replied " ) ;
}
void Game ( ) {
// your game function
.. .
string message = " Hello bot! " ;
_ = llmCharacter . Chat ( message , HandleReply , ReplyCompleted ) ;
.. .
}
หากต้องการหยุดการแชทโดยไม่ต้องรอให้เสร็จสิ้น คุณสามารถใช้:
llmCharacter . CancelRequests ( ) ;
เท่านั้นแหละ ✨!
คุณยังสามารถ:
ในการสร้างแอป Android คุณต้องระบุแบ็กเอนด์สคริปต์ IL2CPP
และ ARM64
เป็นสถาปัตยกรรมเป้าหมายในการตั้งค่าเครื่องเล่น
การตั้งค่าเหล่านี้สามารถเข้าถึงได้จากเมนู Edit > Project Settings
ภายในส่วน Player > Other Settings
เป็นความคิดที่ดีที่จะเปิดใช้งานตัวเลือก Download on Build
ใน LLM GameObject เพื่อดาวน์โหลดโมเดลเมื่อเปิดตัวเพื่อรักษาขนาดแอปให้เล็ก
หากต้องการบันทึก / โหลดประวัติการแชทของคุณโดยอัตโนมัติ คุณสามารถระบุพารามิเตอร์ Save
ของ LLMCharacter ให้กับชื่อไฟล์ (หรือเส้นทางที่เกี่ยวข้อง) ที่คุณเลือกได้ ไฟล์จะถูกบันทึกในโฟลเดอร์ถาวร DataPath ของ Unity นอกจากนี้ยังบันทึกสถานะของ LLM ซึ่งหมายความว่าไม่จำเป็นต้องคำนวณพรอมต์ที่แคชไว้ก่อนหน้านี้ใหม่
หากต้องการบันทึกประวัติการแชทด้วยตนเอง คุณสามารถใช้:
llmCharacter . Save ( " filename " ) ;
และเพื่อโหลดประวัติ:
llmCharacter . Load ( " filename " ) ;
โดยที่ filename ชื่อไฟล์หรือเส้นทางสัมพันธ์ที่คุณเลือก
void WarmupCompleted ( ) {
// do something when the warmup is complete
Debug . Log ( " The AI is nice and ready " ) ;
}
void Game ( ) {
// your game function
.. .
_ = llmCharacter . Warmup ( WarmupCompleted ) ;
.. .
}
อาร์กิวเมนต์สุดท้ายของฟังก์ชัน Chat
คือบูลีนที่ระบุว่าจะเพิ่มข้อความลงในประวัติหรือไม่ (ค่าเริ่มต้น: จริง):
void Game ( ) {
// your game function
.. .
string message = " Hello bot! " ;
_ = llmCharacter . Chat ( message , HandleReply , ReplyCompleted , false ) ;
.. .
}
void Game ( ) {
// your game function
.. .
string message = " The cat is away " ;
_ = llmCharacter . Complete ( message , HandleReply , ReplyCompleted ) ;
.. .
}
สำหรับสิ่งนี้ คุณสามารถใช้ฟังก์ชัน async
/ await
:
async void Game ( ) {
// your game function
.. .
string message = " Hello bot! " ;
string reply = await llmCharacter . Chat ( message , HandleReply , ReplyCompleted ) ;
Debug . Log ( reply ) ;
.. .
}
using UnityEngine ;
using LLMUnity ;
public class MyScript : MonoBehaviour
{
LLM llm ;
LLMCharacter llmCharacter ;
async void Start ( )
{
// disable gameObject so that theAwake is not called immediately
gameObject . SetActive ( false ) ;
// Add an LLM object
llm = gameObject . AddComponent < LLM > ( ) ;
// set the model using the filename of the model.
// The model needs to be added to the LLM model manager (see LLM model management) by loading or downloading it.
// Otherwise the model file can be copied directly inside the StreamingAssets folder.
llm . SetModel ( " Phi-3-mini-4k-instruct-q4.gguf " ) ;
// optional: you can also set loras in a similar fashion and set their weights (if needed)
llm . AddLora ( " my-lora.gguf " ) ;
llm . SetLoraWeight ( 0.5f ) ;
// optional: you can set the chat template of the model if it is not correctly identified
// You can find a list of chat templates in the ChatTemplate.templates.Keys
llm . SetTemplate ( " phi-3 " ) ;
// optional: set number of threads
llm . numThreads = - 1 ;
// optional: enable GPU by setting the number of model layers to offload to it
llm . numGPULayers = 10 ;
// Add an LLMCharacter object
llmCharacter = gameObject . AddComponent < LLMCharacter > ( ) ;
// set the LLM object that handles the model
llmCharacter . llm = llm ;
// set the character prompt
llmCharacter . SetPrompt ( " A chat between a curious human and an artificial intelligence assistant. " ) ;
// set the AI and player name
llmCharacter . AIName = " AI " ;
llmCharacter . playerName = " Human " ;
// optional: set streaming to false to get the complete result in one go
// llmCharacter.stream = true;
// optional: set a save path
// llmCharacter.save = "AICharacter1";
// optional: enable the save cache to avoid recomputation when loading a save file (requires ~100 MB)
// llmCharacter.saveCache = true;
// optional: set a grammar
// await llmCharacter.SetGrammar("json.gbnf");
// re-enable gameObject
gameObject . SetActive ( true ) ;
}
}
คุณสามารถใช้เซิร์ฟเวอร์ระยะไกลเพื่อดำเนินการประมวลผลและใช้อักขระที่โต้ตอบกับเซิร์ฟเวอร์ได้
สร้างเซิร์ฟเวอร์
ในการสร้างเซิร์ฟเวอร์:
LLM
ตามที่อธิบายไว้ข้างต้นRemote
ของ LLM
และกำหนดค่าพารามิเตอร์เซิร์ฟเวอร์เพิ่มเติม: พอร์ต, คีย์ API, ใบรับรอง SSL, คีย์ SSLหรือคุณสามารถใช้ไบนารีเซิร์ฟเวอร์เพื่อการปรับใช้ที่ง่ายขึ้น:
windows-cuda-cu12.2.0
สร้างตัวละคร
สร้างโปรเจ็กต์ที่สองด้วยตัวละครในเกมโดยใช้สคริปต์ LLMCharacter
ตามที่อธิบายไว้ข้างต้น เปิดใช้งานตัวเลือก Remote
และกำหนดค่าโฮสต์ด้วยที่อยู่ IP (เริ่มต้นด้วย "http://") และพอร์ตของเซิร์ฟเวอร์
สามารถใช้ฟังก์ชัน Embeddings
เพื่อรับการฝังวลี:
List < float > embeddings = await llmCharacter . Embeddings ( " hi, how are you? " ) ;
คุณสามารถดู เอกสารโดยละเอียด เกี่ยวกับระดับฟังก์ชันได้ที่นี่:
LLM for Unity ใช้ฟังก์ชันการค้นหาความคล้ายคลึงที่รวดเร็วเป็นพิเศษกับระบบดึงข้อมูล-Augmented Generation (RAG)
ขึ้นอยู่กับฟังก์ชัน LLM และการค้นหา Approximate Nearest Neighbors (ANN) จากไลบรารี usearch
การค้นหาความหมายทำงานดังนี้
การสร้างข้อมูล คุณระบุอินพุตข้อความ (วลี ย่อหน้า เอกสาร) เพื่อเพิ่มลงในข้อมูล
อินพุตแต่ละรายการจะถูกแบ่งออกเป็นส่วนๆ (ไม่บังคับ) และเข้ารหัสเป็นการฝังด้วย LLM
การค้นหา คุณสามารถค้นหาการป้อนข้อความแบบสอบถามได้
อินพุตจะถูกเข้ารหัสอีกครั้ง และอินพุตข้อความหรือชิ้นส่วนที่คล้ายกันมากที่สุดในข้อมูลจะถูกดึงออกมา
วิธีใช้การค้นหาความหมาย:
Add Component
แล้วเลือกสคริปต์ RAG
SimpleSearch
เป็นการค้นหาแบบ brute-force แบบธรรมดา ในขณะที่ DBSearch
เป็นวิธี ANN ที่รวดเร็วซึ่งควรเลือกใช้ในกรณีส่วนใหญ่หรือคุณสามารถสร้าง RAG จากโค้ด (โดยที่ llm คือ LLM ของคุณ):
RAG rag = gameObject . AddComponent < RAG > ( ) ;
rag . Init ( SearchMethods . DBSearch , ChunkingMethods . SentenceSplitter , llm ) ;
ในสคริปต์ของคุณคุณสามารถใช้มันได้ดังนี้ ?:
using LLMUnity ;
public class MyScript : MonoBehaviour
{
RAG rag ;
async void Game ( ) {
.. .
string [ ] inputs = new string [ ] {
" Hi! I'm a search system. " ,
" the weather is nice. I like it. " ,
" I'm a RAG system "
} ;
// add the inputs to the RAG
foreach ( string input in inputs ) await rag . Add ( input ) ;
// get the 2 most similar inputs and their distance (dissimilarity) to the search query
( string [ ] results , float [ ] distances ) = await rag . Search ( " hello! " , 2 ) ;
// to get the most similar text parts (chnuks) you can enable the returnChunks option
rag . ReturnChunks ( true ) ;
( results , distances ) = await rag . Search ( " hello! " , 2 ) ;
.. .
}
}
คุณสามารถบันทึกสถานะ RAG ได้ (จัดเก็บไว้ในโฟลเดอร์ Assets/StreamingAssets
):
rag . Save ( " rag.zip " ) ;
และโหลดจากดิสก์:
await rag . Load ( " rag.zip " ) ;
คุณสามารถใช้ RAG เพื่อป้อนข้อมูลที่เกี่ยวข้องไปยัง LLM ตามข้อความของผู้ใช้:
string message = " How is the weather? " ;
( string [ ] similarPhrases , float [ ] distances ) = await rag . Search ( message , 3 ) ;
string prompt = " Answer the user query based on the provided data. n n " ;
prompt += $" User query: { message } n n " ;
prompt += $" Data: n " ;
foreach ( string similarPhrase in similarPhrases ) prompt += $" n - { similarPhrase } " ;
_ = llmCharacter . Chat ( prompt , HandleReply , ReplyCompleted ) ;
ตัวอย่าง RAG
มีตัวอย่างการใช้งาน RAG เช่นเดียวกับตัวอย่างการรวม RAG-LLM
เท่านั้นแหละ ✨!
LLM for Unity ใช้ตัวจัดการโมเดลที่อนุญาตให้โหลดหรือดาวน์โหลด LLM และจัดส่งโดยตรงในเกมของคุณ
ผู้จัดการโมเดลสามารถพบได้เป็นส่วนหนึ่งของ LLM GameObject:
คุณสามารถดาวน์โหลดโมเดลต่างๆ ได้ด้วยปุ่ม Download model
LLM for Unity มีโมเดลล้ำสมัยต่างๆ ในตัวสำหรับขนาดโมเดลที่แตกต่างกัน โดยวัดปริมาณด้วยวิธี Q4_K_M
สามารถดาวน์โหลดโมเดลทางเลือกได้จาก HuggingFace ในรูปแบบ .gguf
คุณสามารถดาวน์โหลดโมเดลในเครื่องและโหลดโดยใช้ปุ่ม Load model
หรือคัดลอก URL ในช่อง Download model > Custom URL
เพื่อดาวน์โหลดโดยตรง
หากโมเดล HuggingFace ไม่มีไฟล์ gguf ก็สามารถแปลงเป็น gguf ด้วยตัวแปลงออนไลน์นี้ได้
เทมเพลตแชทที่ใช้สำหรับสร้างพร้อมท์จะถูกกำหนดโดยอัตโนมัติจากโมเดล (หากมีรายการที่เกี่ยวข้อง) หรือชื่อโมเดล
หากระบุไม่ถูกต้อง คุณสามารถเลือกเทมเพลตอื่นได้จากเมนูแบบเลื่อนลงเทมเพลตแชท
โมเดลที่เพิ่มในตัวจัดการโมเดลจะถูกคัดลอกไปยังเกมในระหว่างกระบวนการสร้าง
คุณสามารถละเว้นโมเดลไม่ให้มีอยู่แล้วโดยยกเลิกการเลือกช่องทำเครื่องหมาย "สร้าง"
หากต้องการลบโมเดล (แต่ไม่ลบออกจากดิสก์) คุณสามารถคลิกปุ่มถังขยะ
เส้นทางและ URL (หากดาวน์โหลด) ของแต่ละรุ่นที่เพิ่มจะแสดงในมุมมองแบบขยายของการเข้าถึงตัวจัดการโมเดลด้วยปุ่ม >>
:
คุณสามารถสร้างบิลด์ที่เบากว่าได้โดยเลือกตัวเลือก Download on Build
การใช้ตัวเลือกนี้ โมเดลต่างๆ จะถูกดาวน์โหลดในครั้งแรกที่เกมเริ่ม แทนที่จะคัดลอกในบิลด์
หากคุณโหลดโมเดลในเครื่อง คุณจะต้องตั้งค่า URL ของโมเดลผ่านมุมมองแบบขยาย ไม่เช่นนั้นโมเดลจะถูกคัดลอกในบิลด์
❕ ก่อนใช้รุ่นใดๆ โปรด ตรวจสอบใบอนุญาตของพวกเขา ก่อน ❕
โฟลเดอร์ Samples~ มีตัวอย่างการโต้ตอบหลายตัวอย่าง ?:
หากต้องการติดตั้งตัวอย่าง:
Window > Package Manager
LLM for Unity
จากแท็บ Samples
คลิก Import
ถัดจากตัวอย่างที่คุณต้องการติดตั้ง ตัวอย่างสามารถเรียกใช้ด้วยฉาก Scene.unity
ที่มีอยู่ในโฟลเดอร์
ในฉาก ให้เลือก LLM
GameObject แล้วคลิกปุ่ม Download Model
เพื่อดาวน์โหลดโมเดลเริ่มต้นหรือ Load model
เพื่อโหลดโมเดลของคุณเอง (ดูการจัดการโมเดล LLM)
บันทึกฉาก วิ่งและสนุกได้เลย!
Show/Hide Advanced Options
สลับเพื่อแสดง/ซ่อนตัวเลือกขั้นสูงจากด้านล่างLog Level
เลือกว่าข้อความบันทึกละเอียดเพียงใดUse extras
เพื่อติดตั้งและอนุญาตให้ใช้คุณสมบัติพิเศษ (ความสนใจแบบแฟลชและปริมาณ IQ) เลือก Remote
เพื่อให้การเข้าถึง LLM จากระยะไกล
Port
พอร์ตเพื่อรันเซิร์ฟเวอร์ LLM (หากตั้งค่า Remote
)
Num Threads
จำนวนเธรดที่จะใช้ (ค่าเริ่มต้น: -1 = ทั้งหมด)
Num GPU Layers
จำนวนเลเยอร์โมเดลที่จะถ่ายโอนไปยัง GPU หากตั้งค่าเป็น 0 แสดงว่า GPU จะไม่ถูกใช้ ใช้ตัวเลขจำนวนมาก เช่น >30 เพื่อใช้ GPU ให้ได้มากที่สุด โปรดทราบว่าค่าขนาดบริบทที่สูงกว่าจะใช้ VRAM มากกว่า หาก GPU ของผู้ใช้ไม่รองรับ LLM จะถอยกลับไปที่ CPU
เลือก Debug
เพื่อบันทึกเอาต์พุตของโมเดลใน Unity Editor
Parallel Prompts
จำนวน prompts / slot ที่สามารถเกิดขึ้นพร้อมกันได้ (ค่าเริ่มต้น: -1 = จำนวนอ็อบเจ็กต์ LLMCharacter) โปรดทราบว่าขนาดบริบทจะถูกแบ่งตามช่องต่างๆ เช่น การตั้งค่า Parallel Prompts
เป็น 1 และช่อง 0 สำหรับอ็อบเจ็กต์ LLMCharacter ทั้งหมดจะใช้บริบทแบบเต็ม แต่พรอมต์ทั้งหมดจะต้องถูกคำนวณ (ไม่มีการแคช) ทุกครั้งที่ใช้อ็อบเจ็กต์ LLMCharacter สำหรับการแชท
Dont Destroy On Load
เลือกที่จะไม่ทำลาย LLM GameObject เมื่อโหลดฉากใหม่ API key
คีย์ API ที่จะใช้เพื่ออนุญาตการเข้าถึงคำขอจากออบเจ็กต์ LLMCharacter (หากตั้งค่า Remote
)
Load SSL certificate
อนุญาตให้โหลดใบรับรอง SSL สำหรับการเข้ารหัสคำขอจากต้นทางถึงปลายทาง (หากตั้งค่า Remote
) ต้องใช้คีย์ SSL เช่นกันLoad SSL key
อนุญาตให้โหลดคีย์ SSL สำหรับการเข้ารหัสคำขอจากต้นทางถึงปลายทาง (หากตั้งค่า Remote
) ต้องมีใบรับรอง SSL เช่นกันSSL certificate path
ใบรับรอง SSL ที่ใช้สำหรับการเข้ารหัสคำขอจากต้นทางถึงปลายทาง (หากตั้งค่า Remote
)SSL key path
คีย์ SSL ที่ใช้สำหรับการเข้ารหัสคำขอจากต้นทางถึงปลายทาง (หากตั้งค่า Remote
) Download model
คลิกเพื่อดาวน์โหลดหนึ่งในโมเดลเริ่มต้น
Load model
คลิกเพื่อโหลดโมเดลของคุณเองในรูปแบบ .gguf
Download on Start
เปิดใช้งานเพื่อดาวน์โหลดโมเดล LLM ในครั้งแรกที่เริ่มเกม อีกทางหนึ่ง โมเดล LLM จะถูกคัดลอกโดยตรงในบิลด์
Context Size
ขนาดบริบทของพรอมต์ (0 = ขนาดบริบทของโมเดล)Download lora
คลิกเพื่อดาวน์โหลดโมเดล LoRA ในรูปแบบ .ggufLoad lora
คลิกเพื่อโหลดโมเดล LoRA ในรูปแบบ .ggufBatch Size
ขนาดแบทช์สำหรับการประมวลผลพร้อมท์ (ค่าเริ่มต้น: 512)Model
เส้นทางของโมเดลที่ใช้งาน (สัมพันธ์กับโฟลเดอร์ Assets/StreamingAssets)Chat Template
เทมเพลตแชทที่ใช้สำหรับ LLMLora
เส้นทางของ LoRA ที่กำลังใช้งาน (สัมพันธ์กับโฟลเดอร์ Assets/StreamingAssets)Lora Weights
น้ำหนักของ LoRA ที่ใช้Flash Attention
คลิกเพื่อใช้การสนใจแฟลชในโมเดล (หากเปิดใช้งาน Use extras
) Base Prompt
พร้อมท์ฐานทั่วไปเพื่อใช้กับวัตถุ LLMCharacter ทั้งหมดโดยใช้ LLM
Show/Hide Advanced Options
สลับเพื่อแสดง/ซ่อนตัวเลือกขั้นสูงจากด้านล่างLog Level
เลือกว่าข้อความบันทึกละเอียดเพียงใดUse extras
เพื่อติดตั้งและอนุญาตให้ใช้คุณสมบัติพิเศษ (ความสนใจแบบแฟลชและปริมาณ IQ) Remote
ไม่ว่า LLM ที่ใช้จะเป็นระยะไกลหรือในพื้นที่LLM
the LLM GameObject (หากไม่ได้ตั้ง Remote
)Hort
ip ของเซิร์ฟเวอร์ LLM (หากตั้งค่า Remote
)Port
ของเซิร์ฟเวอร์ LLM (หากตั้งค่า Remote
)Num Retries
จำนวนคำขอ HTTP ที่ลองอีกครั้งจากเซิร์ฟเวอร์ LLM (หากตั้งค่า Remote
)API key
คีย์ API ของเซิร์ฟเวอร์ LLM (หากตั้งค่า Remote
)Save
ชื่อไฟล์หรือเส้นทางสัมพันธ์Save Cache
เลือกเพื่อบันทึกสถานะ LLM พร้อมกับประวัติการแชท โดยทั่วไปสถานะ LLM จะอยู่ที่ประมาณ 100MB+Debug Prompt
เลือกเพื่อบันทึกพรอมต์ที่สร้างขึ้นใน Unity Editor Player Name
ชื่อผู้เล่นAI Name
ชื่อของ AIPrompt
Stream
เลือกเพื่อรับการตอบกลับจากแบบจำลองตามที่ผลิต (แนะนำ!)
หากไม่ได้เลือก จะได้รับการตอบกลับแบบเต็มจากโมเดลในครั้งเดียว
Num Predict
จำนวนโทเค็นสูงสุดที่จะทำนาย (ค่าเริ่มต้น: 256, -1 = อนันต์, -2 = จนกระทั่งบริบทเต็ม)Load grammar
คลิกเพื่อโหลดไวยากรณ์ในรูปแบบ .gbnfGrammar
เส้นทางของไวยากรณ์ที่ใช้ (สัมพันธ์กับโฟลเดอร์ Assets/StreamingAssets)Cache Prompt
บันทึกข้อความแจ้งที่กำลังดำเนินอยู่จากการแชท (ค่าเริ่มต้น: จริง)Slot
slot ของเซิร์ฟเวอร์เพื่อใช้ในการคำนวณ สามารถตั้งค่าได้ตั้งแต่ 0 ถึง Parallel Prompts
-1 (ค่าเริ่มต้น: -1 = ช่องใหม่สำหรับอักขระแต่ละตัว)Seed
เพื่อการสืบพันธุ์ เพื่อสุ่มผลลัพธ์ทุกครั้งให้ใช้ -1Temperature
อุณหภูมิ LLM ค่าที่ต่ำกว่าจะให้คำตอบที่กำหนดได้มากกว่า (ค่าเริ่มต้น: 0.2)Top K
top-k (ค่าเริ่มต้น: 40, 0 = ปิดใช้งาน)Top P
top-p (ค่าเริ่มต้น: 0.9, 1.0 = ปิดใช้งาน)Min P
ขั้นต่ำสำหรับโทเค็นที่จะใช้ (ค่าเริ่มต้น: 0.05)Repeat Penalty
ควบคุมการทำซ้ำของลำดับโทเค็นในข้อความที่สร้างขึ้น (ค่าเริ่มต้น: 1.1)Presence Penalty
การลงโทษการแสดงตนของโทเค็นซ้ำ (ค่าเริ่มต้น: 0.0, 0.0 = ปิดใช้งาน)Frequency Penalty
การลงโทษความถี่โทเค็นซ้ำ (ค่าเริ่มต้น: 0.0, 0.0 = ปิดใช้งาน)Tfs_z
: เปิดใช้งานการสุ่มตัวอย่างแบบไม่มีหางด้วยพารามิเตอร์ z (ค่าเริ่มต้น: 1.0, 1.0 = ปิดใช้งาน)Typical P
: เปิดใช้งานการสุ่มตัวอย่างทั่วไปในเครื่องด้วยพารามิเตอร์ p (ค่าเริ่มต้น: 1.0, 1.0 = ปิดใช้งาน)Repeat Last N
: โทเค็น N สุดท้ายที่ต้องพิจารณาสำหรับการลงโทษการทำซ้ำ (ค่าเริ่มต้น: 64, 0 = ปิดการใช้งาน, -1 = ขนาด ctx)Penalize Nl
: ลงโทษโทเค็นการขึ้นบรรทัดใหม่เมื่อใช้การลงโทษซ้ำ (ค่าเริ่มต้น: true)Penalty Prompt
: แจ้งเพื่อวัตถุประสงค์ในการประเมินบทลงโทษ สามารถเป็นได้ทั้ง null
สตริงหรืออาร์เรย์ของตัวเลขที่แสดงถึงโทเค็น (ค่าเริ่มต้น: null
= use original prompt
)Mirostat
: เปิดใช้งานการสุ่มตัวอย่าง Mirostat ควบคุมความฉงนสนเท่ห์ในระหว่างการสร้างข้อความ (ค่าเริ่มต้น: 0, 0 = ปิดใช้งาน, 1 = Mirostat, 2 = Mirostat 2.0)Mirostat Tau
: ตั้งค่าเอนโทรปีเป้าหมาย Mirostat พารามิเตอร์ tau (ค่าเริ่มต้น: 5.0)Mirostat Eta
: ตั้งค่าอัตราการเรียนรู้ Mirostat, พารามิเตอร์ eta (ค่าเริ่มต้น: 0.1)N Probs
: หากมากกว่า 0 การตอบสนองจะมีความน่าจะเป็นของโทเค็น N อันดับแรกสำหรับโทเค็นที่สร้างขึ้นแต่ละรายการด้วย (ค่าเริ่มต้น: 0)Ignore Eos
: เปิดใช้งานเพื่อละเว้นโทเค็นการสิ้นสุดสตรีมและสร้างต่อไป (ค่าเริ่มต้น: false) ใบอนุญาตของ LLM สำหรับ Unity คือ MIT (LICENSE.md) และใช้ซอฟต์แวร์บุคคลที่สามพร้อมใบอนุญาต MIT และ Apache โมเดลบางรุ่นรวมอยู่ในเนื้อหาจะกำหนดเงื่อนไขสิทธิ์การใช้งานของตนเอง โปรดตรวจสอบก่อนใช้งานแต่ละรุ่น ใบอนุญาตของบุคคลที่สามสามารถพบได้ใน (Third Party Notices.md)