0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

大語言模型的兩種運行方法

麥辣雞腿堡 ? 來源:古月居 ? 作者:葉夏 ? 2023-11-20 15:52 ? 次閱讀

運行

安裝上面的步驟,到這里就全部安裝好了,體驗LLM有兩種方式,一個是直接在shell窗口中以聊天的方式使用,還有一個是通過topic的訂閱和發(fā)布來使用,前者適合體驗,后者適用于實際開發(fā)中。

1. 以聊天窗口運行

新開一個shell窗口,執(zhí)行以下命令:

source /opt/tros/setup.bash
ros2 run hobot_llm hobot_llm_chat

下面是我的實際執(zhí)行情況:

root@ubuntu:~# source /opt/tros/setup.bash
root@ubuntu:~# ros2 run hobot_llm hobot_llm_chat
[EasyDNN]: EasyDNN version = 1.6.1_(1.18.6 DNN)
[BPU_PLAT]BPU Platform Version(1.3.3)!
[HBRT] set log level as 0. version = 3.15.25.0
[DNN] Runtime version = 1.18.6_(3.15.25 HBRT)
[A][DNN][packed_model.cpp:234][Model](2023-10-28,13:22:15.818.513) [HorizonRT] The model builder version = 1.20.1
[A][DNN][packed_model.cpp:234][Model](2023-10-28,13:22:31.97.703) [HorizonRT] The model builder version = 1.20.1
[A][DNN][packed_model.cpp:234][Model](2023-10-28,13:22:48.727.231) [HorizonRT] The model builder version = 1.20.1
[A][DNN][packed_model.cpp:234][Model](2023-10-28,13:23:06.393.996) [HorizonRT] The model builder version = 1.20.1
[A][DNN][packed_model.cpp:234][Model](2023-10-28,13:23:24.4.230) [HorizonRT] The model builder version = 1.20.1
[A][DNN][packed_model.cpp:234][Model](2023-10-28,13:23:31.997.90) [HorizonRT] The model builder version = 1.20.1
None of PyTorch, TensorFlow >= 2.0, or Flax have been found. Models won't be available and only tokenizers, configuration and file/data utilities can be used.
這是一個地平線RDK平臺大模型聊天程序,請輸入你的問題并按下回車,如需重新開始請輸入reset,如需退出請輸入exit
> >> 用戶:

可以看到最后已經(jīng)可以在shell窗口中進(jìn)行聊天了

下面幾段內(nèi)容是我跟這個LLM實際對話的過程,還是挺有意思的,可以仔細(xì)看一下

>> > 用戶:介紹一下自己
 >> > 機器人:我是一名AI語言模型,可以回答各種問題。我能夠理解并回答各種語言問題,包括中文、英文、法語、德語、日語、韓語、俄語、西班牙語、中文等。我能夠處理各種類型的問題,包括事實、情感、邏輯、問題答案等。我能夠根據(jù)用戶輸入的問題進(jìn)行回答,并提供相關(guān)信息和建議。我是一臺智能機器,可以不斷學(xué)習(xí)和進(jìn)步。我能夠幫助用戶解決各種問題,提供幫助和
 >> > 用戶:你現(xiàn)在是一名機器人開發(fā)工程師 ,請你完成我給你的任務(wù)
 >> > 機器人:好的!我會盡力完成您的任務(wù)。請問您的任務(wù)是什么呢?
 >> > 用戶:ros2 topic pub --once /text_query std_msgs/msg/String "{data: ""中國的首都是哪里""}"   ;這是 一行ros2中想一個topic發(fā)布消息的命令,請你改寫成Python代碼
 >> > 機器人:好的!請看以下Python代碼:```pythonimport reimport stringprint("

這段對話里面,一開始的自我介紹還是挺好的,很有調(diào)理,也挺“擬人”的。

后面我希望它充當(dāng)一個機器人開發(fā)工程師并給出一個實際任務(wù)的時候,它也有嘗試回答,但是沒有回答完整,看起來像是上下文達(dá)到了限制,被終止了

下面是第二段對話

用戶:中國的首都在哪里?

機器人:北京。

用戶:安徽的省會在哪里

機器人:安徽的省會位于六安市。

用戶:中國的首都在哪里?請你把這句話翻譯成英文

機器人:What is the capital of the Chinese People's Republic?

用戶:你覺得你翻譯的準(zhǔn)確 嗎?

機器人:The capital of the Chinese People's Republic is Beijing.

我先是問中國首都在哪里,這個問題回答是正確的,但是問到安徽的省會的時候就開始“瞎編”了,

后面讓它翻譯“中國的首都在哪里?”這句話,應(yīng)該用where問句還是不what問句。

總得來說,目前情況下,不能指望這個LLM充當(dāng)生產(chǎn)力工具,只能當(dāng)一個玩具,但是,隨著算法硬件的發(fā)展,不久的將來,很可能出現(xiàn)這種可以在端側(cè)部署和運行且效果很好的大模型,到時候真的就是人手一個大模型了。

2. 通過topic訂閱來運行

前面提到過hobot_llm有可以通過topic訂閱和發(fā)布的方式來使用,我這里給出Python通過topic訂閱和發(fā)布的代碼:

發(fā)布消息的代碼:

import rclpy
from std_msgs.msg import String


def main():
    # 初始化ROS節(jié)點
    rclpy.init()


    # 創(chuàng)建一個節(jié)點,節(jié)點名為"simple_publisher"
    node = rclpy.create_node('simple_publisher')


    # 創(chuàng)建publisher, 指定主題名稱為"/text_query", 數(shù)據(jù)類型為std_msgs/String,隊列長度為10
    publisher = node.create_publisher(String, '/text_query', 10)


    # 準(zhǔn)備要發(fā)送的數(shù)據(jù)
    msg = String()
    msg.data = "中國的首都是哪里"


    # 發(fā)布該數(shù)據(jù)
    publisher.publish(msg)


    # 清理并關(guān)閉節(jié)點
    node.destroy_node()
    rclpy.shutdown()


if __name__ == '__main__':
    main()

訂閱的代碼:

import rclpy
from std_msgs.msg import String


def callback(msg):
    print('Received message: "%s"' % msg.data)


def main():
    # 初始化ROS節(jié)點
    rclpy.init()


    # 創(chuàng)建一個節(jié)點,節(jié)點名為"simple_subscriber"
    node = rclpy.create_node('simple_subscriber')


    # 創(chuàng)建subscriber, 指定主題名稱為"/text_result", 數(shù)據(jù)類型為std_msgs/String,并綁定回調(diào)函數(shù)callback
    subscriber = node.create_subscription(String, '/text_result', callback, 10)


    # 在 ROS 內(nèi)部循環(huán)處理消息,并等待新消息到來
    rclpy.spin(node)


    # 清理并關(guān)閉節(jié)點
    node.destroy_node()
    rclpy.shutdown()


if __name__ == '__main__':
    main()
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6810

    瀏覽量

    88743
  • LLM
    LLM
    +關(guān)注

    關(guān)注

    0

    文章

    264

    瀏覽量

    297
收藏 人收藏

    評論

    相關(guān)推薦

    電池電量的兩種測試方法

    電池電量的兩種測試方法 檢測普通鋅錳干電池的電量是否充足,通常有兩種方法。第一種方法是通過測量電池瞬時短路電流來估算電池的內(nèi)阻,進(jìn)
    發(fā)表于 01-16 10:35 ?4033次閱讀

    兩種LED驅(qū)動模式的功能及使用方法

    中穎MCU普通LED模塊(非恒流)提供了兩種LED驅(qū)動模式:亮滅模式、調(diào)光模式。兩種模式的功能及使用方法簡介如下。
    發(fā)表于 08-26 11:18 ?3042次閱讀

    請問這兩種機械手模型哪種實驗性能更好,可擴展性更好

    `我打算買個六軸機械手模型用來驗證自動運行算法,但不知道從機械角度上來來說哪種實驗性能更好,可擴展性更好,這兩種都是數(shù)字舵機帶動的。麻煩給出為什么的理由,謝謝!左上角那種好像是工業(yè)機械手的模型
    發(fā)表于 07-15 17:00

    SQL語句的兩種嵌套方式

    一般情況下,SQL語句是嵌套在宿主語言(如C語言)中的。有兩種嵌套方式:1.調(diào)用層接口(CLI):提供一些庫,庫中的函數(shù)和方法實現(xiàn)SQL的調(diào)用2.直接嵌套SQL:在代碼中嵌套SQL語句
    發(fā)表于 05-23 08:51

    兩種圖形嵌入方法有什么優(yōu)缺點?

    基于COM組件的Matlab與C++混合編程方式因擁有獨立的運行環(huán)境和兩種語言的互補優(yōu)勢而被眾多科研人員和編程人員所接受,同時也是MathWorks公司推薦使用的混編方式。
    發(fā)表于 08-19 07:19

    了解實際電源的兩種模型及其等效變換

    。 2 .了解實際電源的兩種模型及其等效變換。 3 .了解非線性電阻元件的伏安特性和靜態(tài)電阻、動態(tài)電阻的概念以及簡單的非線性電阻電路的圖解分析法。第1章電路的分析方法、1.3.3電壓源和電流源的等效變換、圖...
    發(fā)表于 09-06 07:57

    SQL語言兩種使用方式

    SQL語言兩種使用方式在終端交互方式下使用,稱為交互式SQL嵌入在高級語言的程序中使用,稱為嵌入式SQL―高級語言如C、Java等,稱為宿主語言
    發(fā)表于 12-20 06:51

    1.3 兩種運行 Python 程序方法

    1.3 兩種運行 Python 程序方法節(jié)我們安裝好了 CPython 解釋器,有了解釋器,就可以運行 Python 程序了。Pytho
    發(fā)表于 02-16 18:31

    機器人運動控制的兩種模型

    以六自由度模塊化機器人為對象,利用D-H坐標(biāo)變換方法進(jìn)行運動學(xué)分析,計算出各桿之間的齊次坐標(biāo)變換矩陣,建立求解機器人逆運動學(xué)問題的兩種模型。并根據(jù)兩種
    發(fā)表于 08-05 11:34 ?14次下載

    機器人運動控制的兩種模型

    以六自由度模塊化機器人為對象,利用D-H坐標(biāo)變換方法進(jìn)行運動學(xué)分析,計算出各桿之間的齊次坐標(biāo)變換矩陣,建立求解機器人逆運動學(xué)問題的兩種模型。并根據(jù)兩種
    發(fā)表于 07-20 15:33 ?24次下載

    兩種基于測量的微波非線性電路頻域黑箱模型

    大信號網(wǎng)絡(luò)分析和建模是射頻微波電路測量和設(shè)計中的關(guān)鍵技術(shù)。論文研究了兩種微波非線性電路頻域黑箱建模的新方法, X 參數(shù)和非線性散射函數(shù)模型。推出了兩種
    發(fā)表于 09-01 16:11 ?18次下載

    常用的hdl語言有哪兩種

    Verilog HDL和VHDL是目前兩種最常用的硬件描述語言,同時也都是IEEE標(biāo)準(zhǔn)化的HDL語言。
    發(fā)表于 08-25 09:14 ?9186次閱讀

    如何比較兩種截然不同的編程語言的性能

    問題: 如何比較兩種截然不同的編程語言的性能。為了進(jìn)行有意義的比較,我們必須使用兩種編程語言實現(xiàn)一系列測試程序,運行基準(zhǔn)測試,然后再比較最后
    的頭像 發(fā)表于 09-02 14:55 ?2063次閱讀

    能夠直接翻譯兩種語言間語音的模型

    和非語言信息)丟失,以及各子系統(tǒng)之間的錯誤疊加等問題。 2019 年,我們推出了 Translatotron,這是首款能夠直接翻譯兩種語言間語音的模型。此款直接 S2ST
    的頭像 發(fā)表于 10-26 15:57 ?2067次閱讀

    C語言獲取文件長度的兩種方法

    C語言中沒有直接獲取文件長度的接口,但是我們可以使用標(biāo)準(zhǔn)庫提供的函數(shù)來間接的獲取文件長度。這里提供兩種方法
    的頭像 發(fā)表于 10-10 16:15 ?1285次閱讀
    C<b class='flag-5'>語言</b>獲取文件長度的<b class='flag-5'>兩種方法</b>