国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

基于LLM的Unity游戲開發(fā)利器——LLMUnity

譯文 精選
人工智能
本文將向您介紹如何將Unity引擎中的大型語言模型與LLMUnity集成到一起以進(jìn)行更高效的Unity游戲開發(fā)。

在本文中,我們將向您展示如何在Unity引擎中使用LLM(大型語言模型)。我們將使用LLMUnity包(https://github.com/undreamai/LLMUnity)展示如何僅用幾行代碼即可搭建一個(gè)交互對話的實(shí)例!

免責(zé)聲明:我本人是LLMUnity開源包的作者。如果您有任何意見或者建議,請通過打開GitHub網(wǎng)址https://github.com/undreamai/LLMUnity/issues多多留言!

為什么在游戲中使用LLM?

目前,幾乎所有的電腦游戲互動都是基于多選擇對話形式。這是自早期PC游戲時(shí)代以來建立的一種非常原始的互動類型。游戲中的LLM可以構(gòu)建更令人身臨其境的體驗(yàn),因?yàn)樗鼈兛梢栽试S與PC游戲元素或角色(NPC)進(jìn)行智能交互。

以《天際線》這款游戲?yàn)槔悄壳白畛晒Φ腞PG游戲之一。當(dāng)你第一次遇到莉迪亞——一個(gè)你可能會在游戲的大部分時(shí)間里作為同伴一起度過的NPC時(shí),你將遇到三種可能的對話選項(xiàng)。那么,如果你想了解更多的關(guān)于她的信息或想討論其他相關(guān)事情,該怎么辦呢?

與Skyrim(《天際線》)游戲中的NPC Lydia互動(這是從游戲中獲得的屏幕截圖)

這正是LLM的優(yōu)越點(diǎn)所在。由你來指定人工智能的角色和它們的知識世界(你已經(jīng)將其作為游戲敘事的一部分),這些內(nèi)容確實(shí)有助于提升對話的質(zhì)量。

基于對話形式的《天際線》)游戲中的與Lydia互動的示例情形

ChatGPT怎么樣?

大多數(shù)閱讀本文的讀者可能都熟悉OpenAI公司發(fā)布的ChatGPT,并見證了與LLM的互動是多么自然和強(qiáng)大。那么,為什么不在游戲中直接使用ChatGPT呢?這是因?yàn)椋?/span>

  • 需要以大規(guī)模成本使用ChatGPT。雖然每一次交互都花費(fèi)很小的成本,但當(dāng)以大規(guī)模方式進(jìn)行時(shí),對于成千上萬的用戶來說,每一次都有數(shù)千次的交互,此時(shí)成本是不可忽略的。
  • ChatGPT的使用會創(chuàng)建一種依賴性。如果出于任何原因,ChatGPT停止工作,或者價(jià)格上漲,開發(fā)者再也負(fù)擔(dān)不起,此情況下游戲就會崩潰。
  • 開源LLM的準(zhǔn)確性與ChatGPT不相上下。盡管目前我還沒有找到一個(gè)標(biāo)準(zhǔn)化的基準(zhǔn)來證明這一點(diǎn),但Meta(Llama)和Mistral發(fā)布的模型似乎在質(zhì)量上與ChatGPT具有相似的準(zhǔn)確性。
  • LLM的尺寸越來越小。最近的Mistral 7B在許多基準(zhǔn)上擊敗了Llama2 13B,并超過了Llama 34B。量化方法通過將模型大小縮小到可以在任何最近的PC和GPU上使用的程度,進(jìn)一步推動了這一限制。用Q4_K_M方法(模型,量化)量化的Mistral 7B至多需要7GB RAM就能運(yùn)行!

歡迎LLMUnity!

LLMUnity是一個(gè)允許在Unity引擎中運(yùn)行和分發(fā)LLM模型的免費(fèi)開源包。

LLMUnity建立在功能強(qiáng)大的llama.cpp庫(https://github.com/ggerganov/llama.cpp)基礎(chǔ)之上——該庫允許在沒有外部軟件依賴的情況下使用LLM;還依賴llamafile——以跨平臺的方式部署llama.cpp。

歸納起來看,LLMUnity提供以下功能:

  • 跨平臺!支持Windows、Linux和macOS
  • 在本地運(yùn)行,無需訪問互聯(lián)網(wǎng),但也支持遠(yuǎn)程服務(wù)器
  • 基于CPU和GPU的快速推理
  • 支持主流的LLM模型
  • 易于設(shè)置,只需一行代碼即可調(diào)用
  • 免費(fèi)用于個(gè)人和商業(yè)目的

LLMUnity的工作原理

LLMUnity架構(gòu)

LLMUnity在后臺使用llama.cpp服務(wù)器。服務(wù)器接收POST請求,在LLM上運(yùn)行推理并返回回復(fù)。該服務(wù)器由llamafile編譯成可執(zhí)行文件,可在基于國際化庫的不同操作系統(tǒng)(Windows、Linux、MacOS)中使用。

LLMUnity實(shí)現(xiàn)了一個(gè)客戶端,該客戶端發(fā)送POST請求并將結(jié)果傳遞給Unity應(yīng)用程序。

使用前的設(shè)置準(zhǔn)備

LLMUnity包可以使用GitHub URL的方式以自定義包形式進(jìn)行安裝,也可以作為Unity資源文件的形式進(jìn)行安裝(在資源商店中將顯示等待審批狀態(tài))。鏈接https://github.com/undreamai/LLMUnity?tab=readme-ov-file#setup提供了詳細(xì)的安裝說明

開發(fā)人員可以創(chuàng)建LLM或LLMClient對象來使用LLM功能。注意,LLMClient類僅能夠處理客戶端功能,而LLM類在繼承自LLMClient類的基礎(chǔ)上還能夠處理服務(wù)器端功能。

接下來,開發(fā)人員可以指定LLMClient/LLM的如下屬性:

  • prompt(提示詞):用于指定AI的角色。
  • player / AI name(一個(gè)可選用屬性):可以為角色定義玩家和AI名稱。
  • streaming functionality(流功能,也是一個(gè)可選用屬性)。流功能允許Unity應(yīng)用程序?qū)崟r(shí)接收模型產(chǎn)生的輸出。如果禁用,Unity應(yīng)用程序?qū)诨貜?fù)內(nèi)容完全生成時(shí)收到模型的回復(fù)。
  • 其他模型選項(xiàng)(可選)。通過llama.cpp服務(wù)器直接使用的專家級用戶可以指定更多的模型選項(xiàng)。

下面列舉的僅是LLM類提供的屬性:

  • model模型):個(gè)屬性指定了要使用的LLM。經(jīng)TheBloke量化的Mistral 7B Instruction v0.2模型(https://huggingface.co/mistralai/Mistral-7B-Instruct-v0.2)可以作為默認(rèn)模型直接在Unity Inspector中下載使用當(dāng)然可以加載llama.cpp支持的任何LLM。注意,llama.cpp使用gguf格式,并為HuggingFace模型提供轉(zhuǎn)換腳本(https://github.com/ggerganov/llama.cpp/tree/master?tab=readme-ov-file#prepare-data--run)。如果你想避免安裝llama.cpp并自己進(jìn)行轉(zhuǎn)換,那么你可以使用TheBloke已經(jīng)轉(zhuǎn)換現(xiàn)成的模型

llama.cpp支持的所有模型列表

l running resources(運(yùn)行資源,可選用屬性)。您可以指定用戶應(yīng)用程序可以使用的CPU線程數(shù)和/或GPU將運(yùn)行的模型層數(shù)。如果不支持使用用戶的GPU功能;則將默認(rèn)使用CPU。

除非你使用一切默認(rèn)設(shè)置;否則,你可以簡單地按下按鈕“Download model(下載模型)”并定義提示詞!

可以在LLM腳本中參數(shù)化的不同選項(xiàng)

如何使用LLMUnity

現(xiàn)在,讓我們進(jìn)入有趣的部分!

LLMUnity的開發(fā)使得它可以與最少的代碼一起使用。您所要做的就是構(gòu)造一個(gè)LLM對象,然后與它交互:

_ = llm.Chat(message, HandleReply, ReplyCompleted);

其中的各個(gè)參數(shù)含義如下:

  • message:包含用戶輸入的字符串對象
  • HandleReply:以字符串類型的模型回復(fù)作為輸入的方法。在這個(gè)函數(shù)中,您可以指定如何處理回復(fù)。如果啟用了流媒體功能(默認(rèn)行為),該函數(shù)將在模型生成時(shí)接收實(shí)時(shí)回復(fù);否則,將接收一次完整回復(fù)。
  • ReplyCompleted(可選參數(shù)):不帶參數(shù)的方法。當(dāng)模型完成生成回復(fù)內(nèi)容時(shí),即會調(diào)用此函數(shù)。

基本功能

下面顯示了一個(gè)最小的示例。在這里,我們僅發(fā)送一條消息“Hello bot!”,并在控制臺中顯示模型的回復(fù):

using UnityEngine;
using LLMUnity;

public class MyGame : MonoBehaviour{
  public LLM llm;

  void HandleReply(string reply){
    Debug.Log(reply);
  }

  void Start(){
    _ = llm.Chat("Hello bot!", HandleReply);
  }
}

上述代碼中調(diào)用了LLM的Chat函數(shù),在HandleReply函數(shù)中完成回復(fù)(以流式或非流式方式)后以異步方式接收回復(fù)。

要在Unity中創(chuàng)建應(yīng)用程序,您需要使用以下內(nèi)容創(chuàng)建一個(gè)場景:

  • 一個(gè)對應(yīng)于LLM腳本的游戲?qū)ο驡ameObject。LLM對象的屬性顯示在Unity Inspector中,可以按照上一節(jié)中的描述進(jìn)行設(shè)置。
  • 還有一個(gè)對應(yīng)于MyGame腳本的GameObject。在此處實(shí)現(xiàn)中,您需要鏈接上面在Unity Inspector的LLM屬性中創(chuàng)建的LLM GameObject。

而且…僅此而已!

實(shí)現(xiàn)一個(gè)簡單的交互界面

現(xiàn)在,我們來看一個(gè)基本交互的演示示例:

簡單的交互示例

本實(shí)例中,我們創(chuàng)建了這樣的一個(gè)場景:

  • 一個(gè)對應(yīng)于LLM腳本的游戲?qū)ο驡ameObject(如前所述)
  • 一個(gè)對應(yīng)于SimpleInteraction腳本的游戲?qū)ο驡ameObject
  • 一個(gè)允許用戶輸入文本的InputField(綠色)
  • 一個(gè)從模型獲取答復(fù)的文本字段(藍(lán)色)

SimpleInteraction腳本的完整內(nèi)容如下:

using UnityEngine;
using LLMUnity;
using UnityEngine.UI;

public class SimpleInteraction : MonoBehaviour
{
    public LLM llm;
    public InputField playerText;
    public Text AIText;

    void Start()
    {
        playerText.onSubmit.AddListener(onInputFieldSubmit);
        playerText.Select();
    }

    void onInputFieldSubmit(string message)
    {
        playerText.interactable = false;
        AIText.text = "...";
        _ = llm.Chat(message, SetAIText, AIReplyComplete);
    }

    public void SetAIText(string text)
    {
       AIText.text = text;
    }

    public void AIReplyComplete()
    {
        playerText.interactable = true;
        playerText.Select();
        playerText.text = "";
    }
}

該腳本定義了以下函數(shù):

  • Start:在場景開始時(shí)選擇playerText輸入字段,以便用戶可以輸入文本。一個(gè)監(jiān)聽器被附加到playerText,當(dāng)文本被提交時(shí),它調(diào)用onInputFieldSubmit函數(shù)。
  • onInputFieldSubmit:當(dāng)用戶提交輸入時(shí),playerText將被禁用,直到模型回復(fù)。清空模型輸出字段AIText,然后調(diào)用LLM聊天函數(shù)。
  • SetAIText:當(dāng)模型生成一些回復(fù)并將AIText文本設(shè)置為回復(fù)內(nèi)容時(shí),會調(diào)用此函數(shù)。
  • AIReplyComplete:當(dāng)模型完成回復(fù)時(shí),會調(diào)用此函數(shù)。playerText輸入字段再次啟用并清空,以便玩家可以輸入下一個(gè)輸入。

就這么簡單,我們可以進(jìn)行成熟的LLM交互(功能方面已經(jīng)成熟,只是那么漂亮您可以在SimpleInteraction示例(https://github.com/undreamai/LLMUnity/tree/main/Samples~/SimpleInteraction)中找到此示例的完整代碼

多種AI功能

到目前為止,我們已經(jīng)看到了與單個(gè)人工智能的交互。在實(shí)際開發(fā)中,我們往往會在一個(gè)游戲中創(chuàng)建多個(gè)NPC。解決方案是,按上面的辦法創(chuàng)建一個(gè)LLM對象,該對象處理服務(wù)器功能,但還具有創(chuàng)建另外幾個(gè)LLMClient對象,以便使用不同的提示詞為AI定義額外的行為。

ServerClient示例(https://github.com/undreamai/LLMUnity/tree/main/Samples~/ServerClient)中提供了展示此功能的示例。其實(shí),這僅是上面基礎(chǔ)代碼的擴(kuò)展,它為第一個(gè)AI使用LLM對象,為第二個(gè)AI使用具有不同提示詞的LLMClient對象(使用與第一個(gè)AI相同的服務(wù)器)。

多種AI功能

聊天機(jī)器人

創(chuàng)建更像真實(shí)游戲內(nèi)容的最后一步是增強(qiáng)UI展示,因?yàn)槟阆M鼈兂霈F(xiàn)在你的游戲中如果你對更復(fù)雜的UI感興趣,我推薦你可以看看ChatBot示例(https://github.com/undreamai/LLMUnity/tree/main/Samples~/ChatBot),它可以創(chuàng)建一個(gè)類似于消息應(yīng)用程序的更令人愉快的交互。

消息應(yīng)用程序風(fēng)格的互動

小結(jié)

僅此而已!在本文中,我們看到了如何使用LLMUnity包在Unity應(yīng)用中集成LLM,以及一些實(shí)際示例。

譯者介紹

朱先忠,51CTO社區(qū)編輯,51CTO專家博客、講師,濰坊一所高校計(jì)算機(jī)教師,自由編程界老兵一枚。

責(zé)任編輯:姜華 來源: 51CTO
相關(guān)推薦

2024-05-06 08:44:25

FrugalGPT大型語言模型LLM

2023-12-27 08:00:00

SQL數(shù)據(jù)庫LMQL

2013-04-27 16:14:33

Corona

2011-06-13 10:54:20

JAVA

2012-12-24 09:04:04

iOSUnity3D

2012-03-06 10:56:32

HTML 5

2013-04-25 13:12:16

unity3D手機(jī)游戲引擎

2024-11-27 16:17:00

2022-12-27 14:39:38

2023-01-03 15:16:27

2015-04-22 20:33:06

寶德云游戲蠻牛unity

2016-06-14 15:33:47

SpriteKitSwift開發(fā)

2023-10-16 16:05:44

PythonPyCharm編程語言

2023-02-15 14:02:52

HutoolMapProxy工具包

2021-09-02 07:04:44

Go 開發(fā)利器

2024-03-04 00:05:00

人工智能LLM 評估

2025-02-14 00:00:35

2020-04-23 14:50:22

游戲DLSS2.0英偉達(dá)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

欧美成人高清在线| 一本色道久久99精品综合| 香蕉影院在线| 国产69精品久久久久777| 91传媒视频在线观看| 日韩欧美天堂| 最近2019免费中文字幕视频三| 成人看av片| 欧美男生操女生| 在线免费观看av网站| 综合久久久久久久| 99re精彩视频| 久久久99精品免费观看| 免费特级黄色片| 国产在线视频精品一区| 亚洲精品成人自拍| 日本aⅴ免费视频一区二区三区| 国产一区二区无遮挡| 韩国亚洲精品| 国产女人水真多18毛片18精品 | 国产日韩成人精品| 国内精品视频一区二区三区| 国产乱子伦一区二区三区国色天香| 久久久久久久久一区二区| 狠狠噜噜久久| 免费久久一级欧美特大黄| 亚洲三级国产| 日韩国产一区久久| 国内精品久久久久影院薰衣草| 亚洲人成77777| 国产成人在线视频网址| 欧美性久久久久| 国产精品国产馆在线真实露脸 | 久久久久久夜| 一区二区av| 国产一区三区三区| aa视频在线播放| 成人中文字幕在线| 小泽玛利亚视频在线观看| 日本一区二区动态图| 欧美xx网站| 欧美日韩在线免费观看| 成人综合影院| 日韩成人av在线| 成人免费视频观看| 国模视频一区二区| 久久综合国产| 欧美污视频久久久| 国产成人av一区二区三区在线| 人人妻人人做人人爽| 中文字幕精品—区二区四季| 国产精品久久久久白浆| 欧美日韩一级二级三级| 成人看片在线观看| 国产成人精品在线播放| 一区视频在线| 久久久久久久久久久99| 亚洲国产成人91porn| 欧美另类tv| 日韩视频一二区| 国产专区精品视频| 亚洲欧美日韩国产| 国产精品久久久久久久av大片| 激情五月***国产精品| 久久国产精品免费观看| 亚洲欧美视频在线观看视频| 免费在线观看黄色| 亚洲一级免费视频| 日产午夜精品一线二线三线| 欧美在线播放一区二区| 国产欧美日韩另类一区| 国产免费视频在线| 日韩中文字幕欧美| 极品中文字幕一区| 久久精品99国产| 精品视频123区在线观看| 欧美9999| 久久久久久久久一区| 国产欧美一区二区在线| huan性巨大欧美| 久久久天堂国产精品女人| 亚洲永久视频| 男男gay免费网站| 国产视频欧美视频| 欧美成人一区二免费视频软件| 免费在线观看视频a| 欧美亚洲精品一区| 北条麻妃一区二区三区在线观看| 欧美一区1区三区3区公司 | 懂色中文一区二区在线播放| 中文在线а√在线| 精品国产一区二区三区久久狼黑人| 午夜视频一区| 色琪琪原网站亚洲香蕉| 日韩久久精品电影| 欧美精品午夜| 波多野吉衣av| 日韩小视频在线| 久久综合图片| 91成人福利在线观看| 日韩中文字幕亚洲| 视频一区二区中文字幕| 国产导航在线| 欧美激情videos| 韩国午夜理伦三级不卡影院| 国产人成在线观看| 国产精品18久久久久久麻辣| 91丨九色丨尤物| 国产另类xxxxhd高清| 欧美三级华人主播| 欧美日韩日日摸| 午夜日韩激情| 日本护士...精品国| 国产精品日韩久久久久| 国产精品美女久久久久高潮| 激情视频亚洲| 丝袜老师办公室里做好紧好爽| 日韩高清欧美高清| 日本亚洲三级在线| 污污网站在线看| 欧美日韩一区二区三| 欧美视频一区在线| 欧美午夜视频| 男操女在线观看| 国产精品一区二区三区久久久| 亚洲欧洲无码一区二区三区| 超碰成人在线免费| 视频二区在线播放| 97精品国产aⅴ7777| 国产精品国产三级国产aⅴ入口 | 欧美日韩一区二区欧美激情 | 国内自拍亚洲| 欧美日韩亚洲免费| 91精品国产福利| 伊人精品在线| 麻豆网站在线免费观看| 欧美日韩一区二区三区在线观看免| 欧美美女一区二区在线观看| 最新成人av网站| 免费av在线网址| 天天综合狠狠精品| 亚洲男人天堂2023| 99re这里只有精品视频首页| 欧洲精品99毛片免费高清观看 | 日本在线视频观看| 欧美性大战久久久久| 日韩欧美在线一区二区三区| 日本不卡中文字幕| 久久人体大尺度| 日日摸天天爽天天爽视频| 久久频这里精品99香蕉| 亚洲成人在线观看视频| 亚洲一级网站| 高清电影在线免费观看| 免费无码毛片一区二三区| 国外成人在线视频| 日韩欧美在线网址| 日韩成人av影视| 外国成人毛片| 免费人成短视频在线观看网站| 97人人澡人人爽| 亚洲精品按摩视频| 久久久九九九九| 秋霞影视一区二区三区| 免费福利在线观看| 欧美一区二区三区电影在线观看 | 男男视频亚洲欧美| 色综合视频一区二区三区日韩| 国产精品视频一区二区三区四区五区| 久久久久久久久久久人体 | 超碰在线公开97| 国产精品亚洲一区二区三区| 欧美亚洲高清一区二区三区不卡| 日韩经典中文字幕一区| 欧美视频第一| 中文字幕高清在线| 免费在线成人av电影| 久久精品视频导航| 欧美日韩亚洲网| 韩国视频一区二区| 最新亚洲精品| 黄页网站大全在线免费观看| 天天操天天摸天天爽| 国产91视觉| 久久久极品av| 色综合色综合色综合| 国产一区福利在线| 中文字幕亚洲影视| 亚洲色图制服丝袜| 欧美人牲a欧美精品| 亚洲一区中文日韩| 国产专区一区| 本网站久久精品| 欧美色18zzzzxxxxx| 一级黄色录像免费看| 日本精品性网站在线观看| 日韩你懂的在线播放| 综合久久久久综合| 久久精品国产在热久久| 美女网站一区|