Skip to main content

DeepSeek Large Language Model

Feature Introduction

This section describes how to experience on-device Large Language Models (LLMs) on the RDK S100 series platform.

Code repository: (https://github.com/D-Robotics/hobot_xlm.git)

Supported Platforms

PlatformRuntime EnvironmentExample Functionality
RDK S100, RDK S100PUbuntu 22.04 (Humble)On-device LLM Experience

Algorithm Details

ModelParametersToken LengthQuantizationPlatformPrefill eval (tokens/s)Eval (tokens/s)
Deepseek-R11.5B1024Q8S100635.2417.05
Deepseek-R17B1024Q8S100279.173.72
Deepseek-R11.5B1024Q8S100P1326.4026.52
Deepseek-R17B1024Q8S100P468.866.68

Preparation

System Setup

  1. The RDK has been flashed with the Ubuntu 22.04 system image.
  2. TogetheROS.Bot has been successfully installed on the RDK.

Model Download

Before running the program, you need to download the model files using the following commands:

DeepSeek_R1_Distill_Qwen_1.5B

wget -c ftp://oeftp@sdk.d-robotics.cc/oe_llm/model/DeepSeek_R1_Distill_Qwen_1.5B_1024.hbm --ftp-password=Oeftp~123$%

DeepSeek_R1_Distill_Qwen_7B

wget -c ftp://oeftp@sdk.d-robotics.cc/oe_llm/model/DeepSeek_R1_Distill_Qwen_7B_1024.hbm --ftp-password=Oeftp~123$%

System Configuration

  • Maximize ION memory allocation to meet large-model inference requirements:
/usr/hobot/bin/hb_switch_ion.sh bpu_first
reboot
  • Set performance mode (Note: Only RDK S100P supports performance mode):
devmem 0x2b047000 32 0x99
devmem 0x2b047004 32 0x99

Usage

Currently, two interaction methods are provided:

  1. Direct terminal-based text chat.
  2. Subscribing to text messages and publishing results as text topics.

Terminal Interaction

# Configure tros.b environment
source /opt/tros/humble/setup.bash
lib=/opt/tros/humble/lib/hobot_xlm/lib
export LD_LIBRARY_PATH=${lib}:${LD_LIBRARY_PATH}
# config contains example model configuration files
cp -r /opt/tros/humble/lib/hobot_xlm/config/ .
ros2 run hobot_xlm hobot_xlm --ros-args -p feed_type:=0 -p model_name:="DeepSeek_R1_Distill_Qwen_1.5B"

After launching the program, you can directly chat with the robot in the current terminal.

Supported model types are "DeepSeek_R1_Distill_Qwen_1.5B" and "DeepSeek_R1_Distill_Qwen_7B". Note that the 7B model is only compatible with RDK S100P.

Subscription/Publishing Interaction

  1. Launch hobot_llm:

    # Configure tros.b environment
    source /opt/tros/humble/setup.bash
    lib=/opt/tros/humble/lib/hobot_xlm/lib
    export LD_LIBRARY_PATH=${lib}:${LD_LIBRARY_PATH}
    # config contains example model configuration files
    cp -r /opt/tros/humble/lib/hobot_xlm/config/ .
    ros2 run hobot_xlm hobot_xlm --ros-args -p feed_type:=1 -p ros_string_sub_topic_name:="/prompt_text" -p model_name:="DeepSeek_R1_Distill_Qwen_1.5B"

    Supported model types are "DeepSeek_R1_Distill_Qwen_1.5B" and "DeepSeek_R1_Distill_Qwen_7B". Note that the 7B model is only compatible with RDK S100P.

  2. Open a new terminal and subscribe to the output topic:

    # Configure tros.b environment
    source /opt/tros/humble/setup.bash
    ros2 topic echo /tts_text
  3. Open another new terminal and publish a message:

    # Configure tros.b environment
    source /opt/tros/humble/setup.bash
    ros2 topic pub --once /prompt_text std_msgs/msg/String "{data: \"Briefly describe the development of artificial intelligence\"}"

After sending the message, you can view the output in the terminal subscribed to the result topic.

Example Output

[UCP]: log level = 3
[UCP]: UCP version = 3.7.3
[VP]: log level = 3
[DNN]: log level = 3
[HPL]: log level = 3
[UCPT]: log level = 6
[WARN] [1757949703.788157149] [xlm_node]: This is hobot xlm node!
[WARN] [1757949703.800199173] [xlm_node]: Parameter:
feed_type(0:local, 1:sub): 0
model_name: DeepSeek_R1_Distill_Qwen_1.5B
ai_msg_pub_topic_name: /generation/lanaguage/deepseek
text_msg_pub_topic_name: /tts_text
ros_string_sub_topic_name: /prompt_text
[WARN] [1757949703.800428372] [xlm_node]: Model Parameter:
model_path: ./DeepSeek_R1_Distill_Qwen_1.5B_4096.hbm
token_path: ./config/DeepSeek_R1_Distill_Qwen_1.5B_config/
k_cache_int8: 0
model_type: 3
context_size: 1024
prompt_file:
path_prompt_cache:
sampling: {
top_k: 3
top_p: 0.95
min_p: 0.1
temp: 0.1
typ_p: 1
min_keep: 5
}
[BPU][[BPU_MONITOR]][281473285378048][INFO]BPULib verison(2, 1, 2)[0d3f195]!
[DNN] HBTL_EXT_DNN log level:6
[DNN]: 3.6.1_(4.2.7post0.dev202307211111+6aaae37 HBRT)
[WARN] [1757949705.795194210] [xlm_node]: model init successed!
On-device large language model multi-turn dialogue demo. Please enter your question and press Enter.
- Press Ctrl+C to exit.
- Type "reset" to clear conversation history.
[User] <<< Briefly describe the development of artificial intelligence
[Assistant] >>> ...


The development of Artificial Intelligence (AI) can be divided into several key stages:

1. **Early AI**:
- **Artificial Intelligence**: Initially applied to specific tasks such as gaming and customer service.
- **Machine Learning**: In the 1950s, computers began learning tasks like automatic recognition and speech recognition.
- **Expert Systems**: In the 1970s, systems like "MYCIN" simulated human experts.

2. **Computer Vision**:
- **Image Recognition**: In the 1980s, computers recognized simple images, such as handwritten digits.
- **Natural Language Processing**: In the 1990s, systems enabled automated search and editing (e.g., early Wikipedia bots).

3. **Deep Learning**:
- **Neural Networks**: In the 1980s, neural networks started processing complex data.
- **Convolutional Neural Networks (CNNs)**: In the 1990s, CNNs were used for image recognition, e.g., in autonomous vehicles.
- **Modern Deep Learning**: In the 2010s, models like GPT and BERT revolutionized natural language processing.

4. **Reinforcement Learning**:
- **Robotics Control**: Since the 1980s, robots learned actions through trial and error.
- **Autonomous Driving**: In the 2010s, reinforcement learning powered self-driving cars.

5. **Advanced Deep Learning & Neural Networks**:
- **Image Recognition**: Tasks include classification, segmentation, and generation.
- **Natural Language Processing**: such as text generation, translation, and dialogue.
- **Speech Recognition**: such as transcription and speech synthesis.

6. **AI Applications**:
- **Healthcare**: such as diagnosis and drug discovery.
- **Transportation**: such as autonomous driving and traffic management systems.
- **Education**: such as intelligent learning systems.
- **Finance**: such as automated trading and risk management.

7. **Ethics and Challenges**:
- **Privacy Issues**: data breaches and privacy violations.
- **Ethical Concerns**: such as algorithmic bias and privacy issues.

8. **Future Outlook**:
- **AI Chips**: used for training and inference.
- **Edge AI**: running on devices to reduce data transmission.
- **Multimodal AI**: integrating multimodal data such as vision and audio.
- **Human Assistants**: such as chatbots and life-support systems.

AI will continue to advance across multiple domains, driving technological progress and societal transformation.
Performance prefill: 1113.04 tokens/s decode: 20.22 tokens/s