ROS2 部署大語言模型節點

4GB GPU的DeepSeek-Coder 1.3B模型,并且它已經被量化或優化過。以下是具體的步驟:

安裝必要的依賴項:

pip install transformers torch grpcio googleapis-common-protos

創建一個新的ROS 2包:

cd ~/ros2_ws/src
ros2 pkg create --build-type ament_python llm_ros2_node --dependencies rclpy std_msgs grpcio googleapis-common-protos torch transformers

編輯setup.py文件以包含所需的依賴項:

from setuptools import setuppackage_name = 'llm_ros2_node'setup(name=package_name,version='0.0.0',packages=[package_name],data_files=[('share/ament_index/resource_index/packages', ['resource/' + package_name]),('share/' + package_name, ['package.xml']),],install_requires=['setuptools'],zip_safe=True,maintainer='your_name',maintainer_email='your_email@example.com',description='TODO: Package description',license='Apache License 2.0',tests_require=['pytest'],entry_points={'console_scripts': ['llm_node = llm_ros2_node.llm_node:main',],},
)

編寫ROS 2節點代碼:在這個節點中,我們將訂閱一個話題并發送消息到本地的大語言模型,然后將結果發布到另一個話題。

import rclpy
from rclpy.node import Node
from std_msgs.msg import String
from transformers import AutoModelForCausalLM, AutoTokenizer
import torchclass LLMNode(Node):def __init__(self):super().__init__('llm_node')self.subscription = self.create_subscription(String,'input_text',self.listener_callback,10)self.publisher_ = self.create_publisher(String, 'output_text', 10)# Load the DeepSeek-Coder model and tokenizerself.model_name_or_path = "path/to/deepseek-coder-1.3b-optimized"self.device = torch.device("cuda" if torch.cuda.is_available() else "cpu")self.tokenizer = AutoTokenizer.from_pretrained(self.model_name_or_path)self.model = AutoModelForCausalLM.from_pretrained(self.model_name_or_path).to(self.device)self.model.eval()def listener_callback(self, msg):self.get_logger().info(f'Received input text: {msg.data}')response = self.call_llm(msg.data)self.publisher_.publish(String(data=response))def call_llm(self, prompt):inputs = self.tokenizer.encode(prompt, return_tensors="pt").to(self.device)outputs = self.model.generate(inputs, max_length=50, num_return_sequences=1)reply = self.tokenizer.decode(outputs[0], skip_special_tokens=True)return replydef main(args=None):rclpy.init(args=args)llm_node = LLMNode()rclpy.spin(llm_node)llm_node.destroy_node()rclpy.shutdown()if __name__ == '__main__':main()

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/75513.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/75513.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/75513.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

本人設計的最完全的光壓發電機模型

雙螺旋轉子光壓發電機結構模型 作者:龔仕成 單位:四川水利職業技術學院電力工程系 日期:2024年3月25日 摘要 本文提出了一種基于梯形螺旋溝槽多層復合材料轉子的光壓發電機結構模型,通過光-機-電協同設計實現高效能量轉換。通…

六十天Linux從0到項目搭建(第五天)(file、bash 和 shell 的區別、目錄權限、默認權限umask、粘滯位、使用系統自帶的包管理工具)

1. file [選項] 文件名 用于確定文件類型的實用工具。它會通過分析文件內容(而不僅僅是文件擴展名)來判斷文件的實際類型 示例輸出解析 $ file /bin/bash /bin/bash: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, i…

基于大模型預測的初治菌陽肺結核診療方案研究報告

目錄 一、引言 1.1 研究背景與意義 1.2 研究目的 二、初治菌陽肺結核概述 2.1 疾病定義與病理機制 2.2 流行病學特征 2.3 傳統診療方法與局限性 三、大模型在初治菌陽肺結核預測中的應用原理 3.1 大模型技術簡介 3.2 數據收集與預處理 3.3 模型構建與訓練 3.4 模型…

常見中間件漏洞之一 ----【Tomcat】

中間件Tomcat介紹: tomcat是?個開源?且免費的jsp服務器,默認端? : 8080,屬于輕量級應?服務器。它可以實現 JavaWeb程序的裝載,是配置JSP(Java Server Page)和JAVA系統必備的?款環境。 在歷史上也披露…

GoogleNet的簡易實現

這里使用GooleNet對MNIST手寫數據集進行分類,最后的效果達到了在測試集98%的準確率。這里關于該網絡的細節可以在網絡上搜索到,相關原理也可以搜索到,這里僅展示網絡的代碼實現,這里是基于pytorch實現的,詳細的代碼如下…

javaweb自用筆記:Mybatis

目錄 mybatis 配置sql書寫提示 JDBC 數據庫連接池 lombok mybatis 只需要定義Mapper接口就好,不需要有實現類,因為框架底層會自動生成實現類 配置sql書寫提示 JDBC 數據庫連接池 lombok XML映射文件 動態SQL

Rust從入門到精通之精通篇:22.Unsafe Rust 詳解

Unsafe Rust 詳解 在 Rust 的設計哲學中,安全性是核心原則之一。Rust 的所有權系統、借用檢查器和類型系統共同保證了內存安全和線程安全。然而,有些底層操作無法通過 Rust 的安全檢查機制進行驗證,這就是 unsafe Rust 存在的原因。在本章中,我們將深入探討 unsafe Rust,…

比手動備份快 Iperius全自動加密備份,NAS/云盤/磁帶機全兼容

IperiusBackupFull是一款專為服務器和工作站設計的備份解決方案,它同時也是一款針對Windows 7/8/10/11/Server系統的簡潔且可靠的備份軟件。該軟件支持增量備份、數據同步以及驅動器鏡像,確保能夠實現完全的系統恢復。在備份存儲方面,Iperius…

deepseek實戰教程-第六篇查找源碼之倉庫地址與deepseek-R1、deepseek-LLM倉庫內容查看

上一篇講了支持deepseek的模型應用的本地安裝和部署以及使用。再上一篇講解了deepseek提供的開放api,便于開發者基于deepseek提供的接口來編寫屬于自己的業務應用程序。但是前面幾篇我們都是在用模型,我們知道deepseek是開源的,那么deepseek的源碼在哪里,具體源碼是什么樣的…

ES 加入高亮設置

searchTextQueryOne new MatchQuery.Builder().field(searchFieldOne).query(searchText).build();// 幫助中心文檔切分 只查詢6條Integer finalTopK 10;List<String> newReturnFileds returnFields;newReturnFileds.add("kid"); // 需要返回kidHighlight h…

mapbox進階,添加鷹眼圖控件

????? 主頁: gis分享者 ????? 感謝各位大佬 點贊?? 收藏? 留言?? 加關注?! ????? 收錄于專欄:mapbox 從入門到精通 文章目錄 一、??前言1.1 ??mapboxgl.Map 地圖對象1.2 ??mapboxgl.Map style屬性1.3 ??mapboxgl-minimap 鷹眼控件二、??添加…

亮數據爬取API爬取亞馬遜電商平臺實戰教程

前言 在當今數據驅動的商業環境中&#xff0c;企業需要快速、精準地獲取互聯網上的公開數據以支持市場分析、競品調研和用戶行為研究。然而&#xff0c;傳統的手動網頁爬取方式面臨著諸多挑戰&#xff1a;IP封鎖、驗證碼干擾、網站結構頻繁變更&#xff0c;以及高昂的運維成本…

「Unity3D」使用C#獲取Android虛擬鍵盤的高度

原理是&#xff1a;利用getWindowVisibleDisplayFrame方法&#xff0c;獲取Android窗口可見區域的Rect&#xff0c;這個Rect剔除了狀態欄與導航欄&#xff0c;并且在有虛擬鍵盤遮擋的時候&#xff0c;會剔除這個遮擋區域。 接著&#xff0c;Unity的safeArea也剔除了狀態欄與導…

“城市超級智能體”落地,聯想智慧城市4.0“功到自然成”

作者 | 曾響鈴 文 | 響鈴說 交通攝像頭捕捉到車流量數據&#xff0c;進入一套“自動化”的城市整體管理體系中&#xff0c;交通路況信息、天氣變化情況以及城市大型活動安排等看似分散的數據被整合&#xff0c;根據預測的路況精準調控交通信號燈&#xff0c;讓自動駕駛清掃車…

每日總結3.24

第十屆藍橋杯大賽軟件賽省賽C/C 大學 B 組 183.完全二叉樹的權值&#xff08;找規律&#xff0c;臨界值&#xff09; #include <bits/stdc.h> using namespace std; int a[1000005]; int main() { int m;int d; cin>>m; int sum;int maxn0; for(int i1;i&…

計算機復試面試

數據庫 1.設計過程/設計步驟 1.需求分析&#xff1a;明確客戶需求&#xff0c;確定系統邊界&#xff0c;生成數據字典 2.概念結構設計&#xff1a;將用戶需求抽象為概念模型&#xff0c;繪制e-r圖 3.邏輯結構設計&#xff1a;將e-r圖轉化為dbms相符合的邏輯結構&#xff0c;db…

模型 拆屋效應

系列文章分享模型&#xff0c;了解更多&#x1f449; 模型_思維模型目錄。先過分后合理&#xff0c;易被接受。 1 拆屋效應的應用 1.1 高端手表銷售案例 一、案例背景 在高端手表銷售領域&#xff0c;銷售人員面臨顧客對價格敏感且購買決策謹慎的挑戰。如何引導顧客接受較高…

Windows系統下Pycharm+Minianaconda3連接教程【成功】

0.引言 PycharmMinianaconda3開發組合的好處 優點類別具體優點描述環境管理便捷獨立環境創建 環境復制與共享Miniconda3可創建多獨立Python環境&#xff0c;支持不同版本與依賴&#xff0c;避免沖突。 能復制、分享環境配置&#xff0c;方便團隊搭建相同開發環境。依賴管理高…

4、pytest常用插件

pytest 是一個功能非常強大的測試框架&#xff0c;支持豐富的插件系統。插件可以擴展 pytest 的功能&#xff0c;從而使測試過程更加高效和便捷。以下是一些常用的 pytest 插件及其作用&#xff1a; pytest-cov: 作用: 提供測試覆蓋率報告&#xff0c;幫助你了解代碼的表現情況…

python每日十題(10)

在Python語言中&#xff0c;源文件的擴展名&#xff08;后綴名&#xff09;一般使用.py。 保留字&#xff0c;也稱關鍵字&#xff0c;是指被編程語言內部定義并保留使用的標識符。Python 3.x有35個關鍵字&#xff0c;分別為&#xff1a;and&#xff0c;as&#xff0c;assert&am…