運行
安裝上面的步驟,到這里就全部安裝好了,體驗LLM有兩種方式,一個是直接在shell窗口中以聊天的方式使用,還有一個是通過topic的訂閱和發布來使用,前者適合體驗,后者適用于實際開發中。
1. 以聊天窗口運行
新開一個shell窗口,執行以下命令:
source /opt/tros/setup.bash
ros2 run hobot_llm hobot_llm_chat
下面是我的實際執行情況:
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
> >> 用戶:
可以看到最后已經可以在shell窗口中進行聊天了
下面幾段內容是我跟這個LLM實際對話的過程,還是挺有意思的,可以仔細看一下
>> > 用戶:介紹一下自己
>> > 機器人:我是一名AI語言模型,可以回答各種問題。我能夠理解并回答各種語言問題,包括中文、英文、法語、德語、日語、韓語、俄語、西班牙語、中文等。我能夠處理各種類型的問題,包括事實、情感、邏輯、問題答案等。我能夠根據用戶輸入的問題進行回答,并提供相關信息和建議。我是一臺智能機器,可以不斷學習和進步。我能夠幫助用戶解決各種問題,提供幫助和
>> > 用戶:你現在是一名機器人開發工程師 ,請你完成我給你的任務
>> > 機器人:好的!我會盡力完成您的任務。請問您的任務是什么呢?
>> > 用戶:ros2 topic pub --once /text_query std_msgs/msg/String "{data: ""中國的首都是哪里""}" ;這是 一行ros2中想一個topic發布消息的命令,請你改寫成Python代碼
>> > 機器人:好的!請看以下Python代碼:```pythonimport reimport stringprint("
這段對話里面,一開始的自我介紹還是挺好的,很有調理,也挺“擬人”的。
后面我希望它充當一個機器人開發工程師并給出一個實際任務的時候,它也有嘗試回答,但是沒有回答完整,看起來像是上下文達到了限制,被終止了
下面是第二段對話
用戶:中國的首都在哪里?
機器人:北京。
用戶:安徽的省會在哪里
機器人:安徽的省會位于六安市。
用戶:中國的首都在哪里?請你把這句話翻譯成英文
機器人:What is the capital of the Chinese People's Republic?
用戶:你覺得你翻譯的準確 嗎?
機器人:The capital of the Chinese People's Republic is Beijing.
我先是問中國首都在哪里,這個問題回答是正確的,但是問到安徽的省會的時候就開始“瞎編”了,
后面讓它翻譯“中國的首都在哪里?”這句話,應該用where問句還是不what問句。
總得來說,目前情況下,不能指望這個LLM充當生產力工具,只能當一個玩具,但是,隨著算法和硬件的發展,不久的將來,很可能出現這種可以在端側部署和運行且效果很好的大模型,到時候真的就是人手一個大模型了。
2. 通過topic訂閱來運行
前面提到過hobot_llm有可以通過topic訂閱和發布的方式來使用,我這里給出Python通過topic訂閱和發布的代碼:
發布消息的代碼:
import rclpy
from std_msgs.msg import String
def main():
# 初始化ROS節點
rclpy.init()
# 創建一個節點,節點名為"simple_publisher"
node = rclpy.create_node('simple_publisher')
# 創建publisher, 指定主題名稱為"/text_query", 數據類型為std_msgs/String,隊列長度為10
publisher = node.create_publisher(String, '/text_query', 10)
# 準備要發送的數據
msg = String()
msg.data = "中國的首都是哪里"
# 發布該數據
publisher.publish(msg)
# 清理并關閉節點
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節點
rclpy.init()
# 創建一個節點,節點名為"simple_subscriber"
node = rclpy.create_node('simple_subscriber')
# 創建subscriber, 指定主題名稱為"/text_result", 數據類型為std_msgs/String,并綁定回調函數callback
subscriber = node.create_subscription(String, '/text_result', callback, 10)
# 在 ROS 內部循環處理消息,并等待新消息到來
rclpy.spin(node)
# 清理并關閉節點
node.destroy_node()
rclpy.shutdown()
if __name__ == '__main__':
main()
-
數據
+關注
關注
8文章
7193瀏覽量
89769 -
LLM
+關注
關注
0文章
302瀏覽量
434
發布評論請先 登錄
相關推薦
評論