0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

大语言模型的两种运行方法

麦辣鸡腿堡 来源:古月居 作者:叶夏 2023-11-20 15:52 次阅读

运行

安装上面的步骤,到这里就全部安装好了,体验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

    文章

    7085

    浏览量

    89214
  • LLM
    LLM
    +关注

    关注

    0

    文章

    294

    浏览量

    354
收藏 人收藏

    评论

    相关推荐

    电池电量的两种测试方法

    电池电量的两种测试方法 检测普通锌锰干电池的电量是否充足,通常有两种方法。第一种方法是通过测量电池瞬时短路电流来估算电池的内阻,进
    发表于 01-16 10:35 4128次阅读

    两种LED驱动模式的功能及使用方法

    中颖MCU普通LED模块(非恒流)提供了两种LED驱动模式:亮灭模式、调光模式。两种模式的功能及使用方法简介如下。
    发表于 08-26 11:18 3622次阅读

    请问这两种机械手模型哪种实验性能更好,可扩展性更好

    `我打算买个六轴机械手模型用来验证自动运行算法,但不知道从机械角度上来来说哪种实验性能更好,可扩展性更好,这两种都是数字舵机带动的。麻烦给出为什么的理由,谢谢!左上角那种好像是工业机械手的模型
    发表于 07-15 17:00

    SQL语句的两种嵌套方式

    一般情况下,SQL语句是嵌套在宿主语言(如C语言)中的。有两种嵌套方式:1.调用层接口(CLI):提供一些库,库中的函数和方法实现SQL的调用2.直接嵌套SQL:在代码中嵌套SQL语句
    发表于 05-23 08:51

    两种图形嵌入方法有什么优缺点?

    基于COM组件的Matlab与C++混合编程方式因拥有独立的运行环境和两种语言的互补优势而被众多科研人员和编程人员所接受,同时也是MathWorks公司推荐使用的混编方式。
    发表于 08-19 07:19

    了解实际电源的两种模型及其等效变换

    。 2 .了解实际电源的两种模型及其等效变换。 3 .了解非线性电阻元件的伏安特性和静态电阻、动态电阻的概念以及简单的非线性电阻电路的图解分析法。第1章电路的分析方法、1.3.3电压源和电流源的等效变换、图...
    发表于 09-06 07:57

    SQL语言两种使用方式

    SQL语言两种使用方式在终端交互方式下使用,称为交互式SQL嵌入在高级语言的程序中使用,称为嵌入式SQL―高级语言如C、Java等,称为宿主语言
    发表于 12-20 06:51

    1.3 两种运行 Python 程序方法

    1.3 两种运行 Python 程序方法节我们安装好了 CPython 解释器,有了解释器,就可以运行 Python 程序了。Pytho
    发表于 02-16 18:31

    机器人运动控制的两种模型

    以六自由度模块化机器人为对象,利用D-H坐标变换方法进行运动学分析,计算出各杆之间的齐次坐标变换矩阵,建立求解机器人逆运动学问题的两种模型。并根据两种
    发表于 08-05 11:34 14次下载

    机器人运动控制的两种模型

    以六自由度模块化机器人为对象,利用D-H坐标变换方法进行运动学分析,计算出各杆之间的齐次坐标变换矩阵,建立求解机器人逆运动学问题的两种模型。并根据两种
    发表于 07-20 15:33 24次下载

    两种基于测量的微波非线性电路频域黑箱模型

    大信号网络分析和建模是射频微波电路测量和设计中的关键技术。论文研究了两种微波非线性电路频域黑箱建模的新方法, X 参数和非线性散射函数模型。推出了两种
    发表于 09-01 16:11 18次下载

    常用的hdl语言有哪两种

    Verilog HDL和VHDL是目前两种最常用的硬件描述语言,同时也都是IEEE标准化的HDL语言
    发表于 08-25 09:14 9323次阅读

    如何比较两种截然不同的编程语言的性能

    问题: 如何比较两种截然不同的编程语言的性能。为了进行有意义的比较,我们必须使用两种编程语言实现一系列测试程序,运行基准测试,然后再比较最后
    的头像 发表于 09-02 14:55 2130次阅读

    能够直接翻译两种语言间语音的模型

    和非语言信息)丢失,以及各子系统之间的错误叠加等问题。 2019 年,我们推出了 Translatotron,这是首款能够直接翻译两种语言间语音的模型。此款直接 S2ST
    的头像 发表于 10-26 15:57 2143次阅读

    C语言获取文件长度的两种方法

    C语言中没有直接获取文件长度的接口,但是我们可以使用标准库提供的函数来间接的获取文件长度。这里提供两种方法
    的头像 发表于 10-10 16:15 1381次阅读
    C<b class='flag-5'>语言</b>获取文件长度的<b class='flag-5'>两种方法</b>