{"@attributes":{"version":"2.0"},"channel":{"title":"1zeryu's blog","link":"https:\/\/1zeryu.github.io\/blogs\/","description":"Recent content on 1zeryu's blog","generator":"Hugo -- gohugo.io","language":"en-us","lastBuildDate":"Mon, 13 Apr 2026 10:00:00 +0800","item":[{"title":"Qwen3-Omni\u7684\u6570\u636e\u6d41\u4e0e\u6a21\u6001\u878d\u5408","link":"https:\/\/1zeryu.github.io\/blogs\/p\/qwen3-omni\/","pubDate":"Mon, 13 Apr 2026 10:00:00 +0800","guid":"https:\/\/1zeryu.github.io\/blogs\/p\/qwen3-omni\/","description":"<h2 id=\"\u5f15\u8a00\u5927\u4e00\u7edf\u591a\u6a21\u6001\u5927\u6a21\u578b\">\u5f15\u8a00\uff1a\u5927\u4e00\u7edf\u591a\u6a21\u6001\u5927\u6a21\u578b\n<\/h2><!-- \u80cc\u666f\uff1a\u5355\u6a21\u6001\u5927\u6a21\u578b\u7684\u5c40\u9650 -->\n<p>\u8fc7\u53bb\u51e0\u5e74\uff0c\u5c3d\u7ba1 GPT \u7cfb\u5217\u5728\u95ee\u7b54\u3001\u7f16\u7a0b\u3001\u521b\u4f5c\u4e0a\u4e0d\u65ad\u5237\u65b0\u7eaa\u5f55\uff0c\u4f46\u5b83\u4eec\u90fd\u53ea\u80fd\u5904\u7406\u6587\u672c\u8f93\u5165\uff0c\u65e0\u6cd5\u76f4\u63a5\u611f\u77e5\u89c6\u89c9\u548c\u542c\u89c9\u4fe1\u606f\u3002\u4e0e\u4ec5\u805a\u7126\u6587\u672c\u3001\u5bf9\u58f0\u753b\u201c\u5173\u95e8\u201d\u7684\u5355\u6a21\u6001 GPT \u5927\u6a21\u578b\u4e0d\u540c\uff0c\u4eba\u7c7b\u5929\u7136\u662f\u591a\u6a21\u6001\u667a\u80fd\u4f53\uff0c\u80fd\u540c\u6b65\u611f\u77e5\u89c6\u89c9\u4e0e\u542c\u89c9\u5e76\u501f\u6587\u5b57\u3001\u8bed\u97f3\u6216\u52a8\u4f5c\u5b8c\u6210\u4fe1\u606f\u4ea4\u6d41\u3002<\/p>\n<p>Omni-Model\uff08\u5927\u4e00\u7edf\u591a\u6a21\u6001\u6a21\u578b\uff09\u8bd5\u56fe\u523b\u753b\u4e0d\u540c\u6a21\u6001\u4fe1\u606f\u4e4b\u95f4\u7684\u4e92\u8865\u4e0e\u534f\u540c\u5173\u7cfb\uff0c\u5c06\u6587\u672c\u3001\u56fe\u50cf\u3001\u97f3\u9891\u4e43\u81f3\u89c6\u9891\u4fe1\u53f7\u6620\u5c04\u5230\u7edf\u4e00\u7684\u8bed\u4e49\u7a7a\u95f4\uff0c\u4ece\u800c\u5b9e\u73b0\u8de8\u6a21\u6001\u7684\u8054\u5408\u63a8\u7406\u4e0e\u751f\u6210\u3002\u5176\u76ee\u6807\u4e0d\u4ec5\u662f\u201c\u80fd\u770b\u4f1a\u542c\u201d\uff0c\u66f4\u5728\u4e8e\u8ba9\u6a21\u578b\u50cf\u4eba\u4e00\u6837\uff0c\u5728\u590d\u6742\u573a\u666f\u4e0b\u7075\u6d3b\u8c03\u7528\u591a\u6a21\u6001\u7ebf\u7d22\uff0c\u505a\u51fa\u4e00\u81f4\u4e14\u53ef\u89e3\u91ca\u7684\u51b3\u7b56\u3002<\/p>\n<h2 id=\"qwen3-omni-\u6982\u89c8\">Qwen3-Omni \u6982\u89c8\n<\/h2><p>Qwen3-Omni <sup id=\"fnref:1\"><a href=\"#fn:1\" class=\"footnote-ref\" role=\"doc-noteref\">1<\/a><\/sup> \u6a21\u578b\u67b6\u6784\u91c7\u7528\u201cThinker\uff08\u8bed\u4e49\u6a21\u5757\uff09+ Talker\uff08\u8868\u8ff0\u6a21\u5757\uff09\u201d\u7684\u53cc\u5854\u7ed3\u6784\uff1aThinker \u4e13\u6ce8\u6587\u672c\u7406\u89e3\u4e0e\u751f\u6210\uff0cTalker \u5219\u4f9d\u636e Thinker \u8f93\u51fa\u7684\u8bed\u4e49\u8868\u5f81\u5b9e\u65f6\u5408\u6210\u81ea\u7136\u8bed\u97f3\u3002\u4e0b\u9762\u7684\u67b6\u6784\u56fe\u8fd8\u5305\u542b\u4ee5\u4e0b\u6a21\u5757\uff1a<\/p>\n<ul>\n<li>Vision Encoder\uff1a\u5c06\u89c6\u89c9\u4fe1\u606f\u8f6c\u5316\u4e3a token \u5e8f\u5217<\/li>\n<li>AuT\uff08Audio Transformer\uff09\uff1a\u5c06\u97f3\u9891\u4fe1\u606f\u8f6c\u5316\u4e3a token \u5e8f\u5217<\/li>\n<li>MTP\uff08Multi-Token Prediction\uff09\uff1a\u9884\u6d4b\u540e\u7eed\u8f93\u51fa\u8bed\u97f3\u7684\u79bb\u6563\u7f16\u7801<\/li>\n<li>Streaming Codec Decoder\uff1a\u5c06 MTP \u8f93\u51fa\u7684\u79bb\u6563\u7f16\u7801\u8f6c\u6362\u4e3a\u81ea\u7136\u8bed\u97f3\uff08\u58f0\u6ce2\uff09<\/li>\n<\/ul>\n<figure>\n<img src=\"qwen3-omni-overview.png\" alt=\"Qwen3-Omni \u603b\u4f53\u67b6\u6784\u56fe\" width=\"400\" \/>\n<figcaption>Qwen3-Omni \u603b\u4f53\u67b6\u6784\uff08Thinker-Talker + MTP + \u6d41\u5f0f Codec \u89e3\u7801\uff09<\/figcaption>\n<\/figure>\n<h2 id=\"\u6570\u636e\u6d41\u5168\u94fe\u8def\u4ece\u8f93\u5165\u5230\u8f93\u51fa\u53d1\u751f\u4e86\u4ec0\u4e48\">\u6570\u636e\u6d41\u5168\u94fe\u8def\uff1a\u4ece\u8f93\u5165\u5230\u8f93\u51fa\u53d1\u751f\u4e86\u4ec0\u4e48\n<\/h2><p>\u4e0e\u7eaf\u6587\u672c\u5927\u8bed\u8a00\u6a21\u578b\u7c7b\u4f3c\uff0c\u6a21\u578b\u5728\u63a8\u7406\u65f6\u4f1a\u6784\u9020 messages \u5217\u8868\uff0c\u5176\u4e2d\u6bcf\u6761 message \u627f\u8f7d\u5f53\u524d\u8f6e\u6b21\u4ea4\u4e92\u6240\u643a\u5e26\u7684\u6a21\u6001\u4fe1\u606f\uff1b\u5728 Qwen3-Omni \u4e2d\uff0c\u5355\u6761 message \u53ef\u540c\u65f6\u5305\u542b\u8bed\u97f3\u3001\u56fe\u50cf\u3001\u89c6\u9891\u4e0e\u6587\u672c\u3002<\/p>\n<div class=\"highlight\"><div class=\"chroma\">\n<table class=\"lntable\"><tr><td class=\"lntd\">\n<pre tabindex=\"0\" class=\"chroma\"><code><span class=\"lnt\"> 1\n<\/span><span class=\"lnt\"> 2\n<\/span><span class=\"lnt\"> 3\n<\/span><span class=\"lnt\"> 4\n<\/span><span class=\"lnt\"> 5\n<\/span><span class=\"lnt\"> 6\n<\/span><span class=\"lnt\"> 7\n<\/span><span class=\"lnt\"> 8\n<\/span><span class=\"lnt\"> 9\n<\/span><span class=\"lnt\">10\n<\/span><span class=\"lnt\">11\n<\/span><\/code><\/pre><\/td>\n<td class=\"lntd\">\n<pre tabindex=\"0\" class=\"chroma\"><code class=\"language-python\" data-lang=\"python\"><span class=\"line\"><span class=\"cl\"><span class=\"n\">messages<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"p\">{<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"s2\">&#34;role&#34;<\/span><span class=\"p\">:<\/span> <span class=\"s2\">&#34;user&#34;<\/span><span class=\"p\">,<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"s2\">&#34;content&#34;<\/span><span class=\"p\">:<\/span> <span class=\"p\">[<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"p\">{<\/span><span class=\"s2\">&#34;type&#34;<\/span><span class=\"p\">:<\/span> <span class=\"s2\">&#34;audio&#34;<\/span><span class=\"p\">,<\/span> <span class=\"s2\">&#34;audio&#34;<\/span><span class=\"p\">:<\/span> <span class=\"s2\">&#34;\/path\/to\/audio.wav&#34;<\/span><span class=\"p\">},<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"p\">{<\/span><span class=\"s2\">&#34;type&#34;<\/span><span class=\"p\">:<\/span> <span class=\"s2\">&#34;image&#34;<\/span><span class=\"p\">,<\/span> <span class=\"s2\">&#34;image&#34;<\/span><span class=\"p\">:<\/span> <span class=\"s2\">&#34;\/path\/to\/image.png&#34;<\/span><span class=\"p\">},<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"p\">{<\/span><span class=\"s2\">&#34;type&#34;<\/span><span class=\"p\">:<\/span> <span class=\"s2\">&#34;video&#34;<\/span><span class=\"p\">,<\/span> <span class=\"s2\">&#34;video&#34;<\/span><span class=\"p\">:<\/span> <span class=\"s2\">&#34;\/path\/to\/video.mp4&#34;<\/span><span class=\"p\">},<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"p\">{<\/span><span class=\"s2\">&#34;type&#34;<\/span><span class=\"p\">:<\/span> <span class=\"s2\">&#34;text&#34;<\/span><span class=\"p\">,<\/span> <span class=\"s2\">&#34;text&#34;<\/span><span class=\"p\">:<\/span> <span class=\"s2\">&#34;Describe the audio, image and video.&#34;<\/span><span class=\"p\">},<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"p\">],<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"> <span class=\"p\">},<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"p\">]<\/span>\n<\/span><\/span><\/code><\/pre><\/td><\/tr><\/table>\n<\/div>\n<\/div><p>\u7ecf\u8fc7\u9884\u5904\u7406\u548c\u6a21\u578b\u63a8\u7406\u540e\uff0c\u6700\u7ec8\u4f1a\u751f\u6210\u6587\u672c\u5e8f\u5217\u548c\u8bed\u97f3\u5e8f\u5217\u3002\u4ee5\u4e0b\u5c55\u793a\u6a21\u578b\u63a8\u7406\u7684\u6e90\u4ee3\u7801\u6d41\u7a0b\uff1a<\/p>\n<div class=\"highlight\"><div class=\"chroma\">\n<table class=\"lntable\"><tr><td class=\"lntd\">\n<pre tabindex=\"0\" class=\"chroma\"><code><span class=\"lnt\">1\n<\/span><span class=\"lnt\">2\n<\/span><span class=\"lnt\">3\n<\/span><span class=\"lnt\">4\n<\/span><span class=\"lnt\">5\n<\/span><\/code><\/pre><\/td>\n<td class=\"lntd\">\n<pre tabindex=\"0\" class=\"chroma\"><code class=\"language-python\" data-lang=\"python\"><span class=\"line\"><span class=\"cl\"><span class=\"n\">text<\/span> <span class=\"o\">=<\/span> <span class=\"n\">processor<\/span><span class=\"o\">.<\/span><span class=\"n\">apply_chat_template<\/span><span class=\"p\">(<\/span><span class=\"n\">messages<\/span><span class=\"p\">,<\/span> <span class=\"n\">add_generation_prompt<\/span><span class=\"o\">=<\/span><span class=\"kc\">True<\/span><span class=\"p\">,<\/span> <span class=\"n\">tokenize<\/span><span class=\"o\">=<\/span><span class=\"kc\">False<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">audios<\/span><span class=\"p\">,<\/span> <span class=\"n\">images<\/span><span class=\"p\">,<\/span> <span class=\"n\">videos<\/span> <span class=\"o\">=<\/span> <span class=\"n\">process_mm_info<\/span><span class=\"p\">(<\/span><span class=\"n\">messages<\/span><span class=\"p\">,<\/span> <span class=\"n\">use_audio_in_video<\/span><span class=\"o\">=<\/span><span class=\"n\">use_audio_in_video<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">inputs<\/span> <span class=\"o\">=<\/span> <span class=\"n\">processor<\/span><span class=\"p\">(<\/span><span class=\"n\">text<\/span><span class=\"o\">=<\/span><span class=\"n\">text<\/span><span class=\"p\">,<\/span> <span class=\"n\">audio<\/span><span class=\"o\">=<\/span><span class=\"n\">audios<\/span><span class=\"p\">,<\/span> <span class=\"n\">images<\/span><span class=\"o\">=<\/span><span class=\"n\">images<\/span><span class=\"p\">,<\/span> <span class=\"n\">videos<\/span><span class=\"o\">=<\/span><span class=\"n\">videos<\/span><span class=\"p\">,<\/span> <span class=\"n\">return_tensors<\/span><span class=\"o\">=<\/span><span class=\"s2\">&#34;pt&#34;<\/span><span class=\"p\">,<\/span> <span class=\"n\">padding<\/span><span class=\"o\">=<\/span><span class=\"kc\">True<\/span><span class=\"p\">,<\/span> <span class=\"n\">use_audio_in_video<\/span><span class=\"o\">=<\/span><span class=\"n\">use_audio_in_video<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">inputs<\/span> <span class=\"o\">=<\/span> <span class=\"n\">inputs<\/span><span class=\"o\">.<\/span><span class=\"n\">to<\/span><span class=\"p\">(<\/span><span class=\"n\">model<\/span><span class=\"o\">.<\/span><span class=\"n\">device<\/span><span class=\"p\">)<\/span><span class=\"o\">.<\/span><span class=\"n\">to<\/span><span class=\"p\">(<\/span><span class=\"n\">model<\/span><span class=\"o\">.<\/span><span class=\"n\">dtype<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">text_ids<\/span><span class=\"p\">,<\/span> <span class=\"n\">audio<\/span> <span class=\"o\">=<\/span> <span class=\"n\">model<\/span><span class=\"o\">.<\/span><span class=\"n\">generate<\/span><span class=\"p\">(<\/span><span class=\"o\">**<\/span><span class=\"n\">inputs<\/span><span class=\"p\">,<\/span> <span class=\"n\">xxx<\/span><span class=\"p\">)<\/span> <span class=\"c1\"># xxx \u4e3a\u5176\u4ed6\u53c2\u6570\uff0c\u5982 max_new_tokens\u3001do_sample\u3001speaker \u7b49<\/span>\n<\/span><\/span><\/code><\/pre><\/td><\/tr><\/table>\n<\/div>\n<\/div><h3 id=\"\u6570\u636e\u9884\u5904\u7406\">\u6570\u636e\u9884\u5904\u7406\n<\/h3><p><code>apply_chat_template<\/code> \u8d1f\u8d23\u628a\u7528\u6237\u4f20\u6765\u7684\u591a\u8f6e\u5bf9\u8bdd messages \u6309\u7167\u6a21\u578b\u9884\u5b9a\u4e49\u7684 prompt \u6a21\u677f\u62fc\u63a5\u6210\u4e00\u6bb5\u7eaf\u6587\u672c\uff0c\u4e3a\u540e\u7eed tokenizer \u63d0\u4f9b\u7edf\u4e00\u7684\u6587\u672c\u5165\u53e3\uff1b\u62fc\u63a5\u65f6\u4f1a\u901a\u8fc7\u7279\u6b8a\u5b57\u7b26\u4e32\u6807\u660e\u5bf9\u8bdd\u89d2\u8272\u548c\u6a21\u6001\u4fe1\u606f\u7684\u8fb9\u754c\u3002\u4f8b\u5982\u4e0b\u9762\u7684\u4f8b\u5b50\uff1a<\/p>\n<p><a id=\"prompt-template\"><\/a><\/p>\n<div class=\"highlight\"><div class=\"chroma\">\n<table class=\"lntable\"><tr><td class=\"lntd\">\n<pre tabindex=\"0\" class=\"chroma\"><code><span class=\"lnt\">1\n<\/span><span class=\"lnt\">2\n<\/span><span class=\"lnt\">3\n<\/span><span class=\"lnt\">4\n<\/span><\/code><\/pre><\/td>\n<td class=\"lntd\">\n<pre tabindex=\"0\" class=\"chroma\"><code class=\"language-python\" data-lang=\"python\"><span class=\"line\"><span class=\"cl\"><span class=\"n\">prompt<\/span> <span class=\"o\">=<\/span> <span class=\"s2\">&#34;&#34;&#34;&lt;|im_start|&gt;user\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s2\">&lt;|audio_start|&gt;&lt;|audio_pad|&gt;&lt;|audio_end|&gt;&lt;|vision_start|&gt;&lt;|image_pad|&gt;&lt;|vision_end|&gt;&lt;|vision_start|&gt;&lt;|video_pad|&gt;&lt;|vision_end|&gt;Describe the audio, image and video.&lt;|im_end|&gt;\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s2\">&lt;|im_start|&gt;assistant\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"s2\">&#34;&#34;&#34;<\/span>\n<\/span><\/span><\/code><\/pre><\/td><\/tr><\/table>\n<\/div>\n<\/div><p><code>process_mm_info()<\/code> \u5219\u5728\u62fc\u63a5\u524d\u626b\u63cf messages\uff0c\u628a\u5176\u4e2d <code>audio\/image\/video<\/code> \u5b57\u6bb5\u7684\u6587\u4ef6\u8def\u5f84\u6216\u5b57\u8282\u6d41\u63d0\u53d6\u51fa\u6765\uff0c\u8fd4\u56de\u53ef\u4f9b\u540e\u7eed\u7f16\u7801\u5668\u8bfb\u53d6\u7684\u539f\u59cb\u6a21\u6001\u6570\u636e\u5217\u8868\u3002<\/p>\n<p><code>processor<\/code> \u518d\u628a\u201c\u5df2\u6a21\u677f\u5316\u7684\u6587\u672c\u201d\u4e0e\u201c\u5df2\u63d0\u53d6\u7684\u97f3\u9891\u3001\u56fe\u50cf\u3001\u89c6\u9891\u201d\u4e00\u8d77\u9001\u5165\u5404\u81ea\u7684\u5b50\u7f16\u7801\u5668\uff08\u6587\u672c tokenizer\u3001\u97f3\u9891 AuT\u3001\u89c6\u89c9 Vision Encoder \u7b49\uff09\uff0c\u6700\u7ec8\u6253\u5305\u6210 PyTorch \u5f20\u91cf\uff0c\u4f9b\u6a21\u578b forward \u9636\u6bb5\u4e00\u6b21\u6027\u5e76\u884c\u8ba1\u7b97\u3002\u4e0b\u9762\u5217\u51fa\u90e8\u5206\u5173\u952e\u5f20\u91cf\u53ca\u5176\u5f62\u72b6\uff1a<\/p>\n<div class=\"highlight\"><div class=\"chroma\">\n<table class=\"lntable\"><tr><td class=\"lntd\">\n<pre tabindex=\"0\" class=\"chroma\"><code><span class=\"lnt\">1\n<\/span><span class=\"lnt\">2\n<\/span><span class=\"lnt\">3\n<\/span><span class=\"lnt\">4\n<\/span><span class=\"lnt\">5\n<\/span><\/code><\/pre><\/td>\n<td class=\"lntd\">\n<pre tabindex=\"0\" class=\"chroma\"><code class=\"language-python\" data-lang=\"python\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># \u6587\u672c\u5e8f\u5217\u7684token\u8868\u793a\uff0c\u6bcf\u4e2a\u6570\u5b57\u8868\u793atoken\u7684\u7d22\u5f15<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">input_ids<\/span><span class=\"p\">:<\/span> <span class=\"n\">torch<\/span><span class=\"o\">.<\/span><span class=\"n\">Size<\/span><span class=\"p\">([<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span> <span class=\"n\">text_token_length<\/span><span class=\"p\">])<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">pixel_values<\/span><span class=\"p\">:<\/span> <span class=\"n\">torch<\/span><span class=\"o\">.<\/span><span class=\"n\">Size<\/span><span class=\"p\">([<\/span><span class=\"n\">image_token_length<\/span><span class=\"p\">,<\/span> <span class=\"mi\">1536<\/span><span class=\"p\">])<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">pixel_values_videos<\/span><span class=\"p\">:<\/span> <span class=\"n\">torch<\/span><span class=\"o\">.<\/span><span class=\"n\">Size<\/span><span class=\"p\">([<\/span><span class=\"n\">video_token_length<\/span><span class=\"p\">,<\/span> <span class=\"mi\">1536<\/span><span class=\"p\">])<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">input_features<\/span><span class=\"p\">:<\/span> <span class=\"n\">torch<\/span><span class=\"o\">.<\/span><span class=\"n\">Size<\/span><span class=\"p\">([<\/span><span class=\"n\">B<\/span><span class=\"p\">,<\/span> <span class=\"n\">feature_size<\/span><span class=\"p\">,<\/span> <span class=\"n\">T<\/span><span class=\"p\">])<\/span>\n<\/span><\/span><\/code><\/pre><\/td><\/tr><\/table>\n<\/div>\n<\/div><h3 id=\"tokenize\">Tokenize\n<\/h3><p>\u57fa\u4e8e Transformer \u7684\u6a21\u578b\u8bbe\u8ba1\u4e2d\uff0c\u6838\u5fc3\u95ee\u9898\u4e4b\u4e00\u662f\u5982\u4f55\u628a\u4e0d\u540c\u5f62\u6001\u7684\u8f93\u5165\u8f6c\u5316\u4e3a token \u5e8f\u5217\uff08\u53ef\u7406\u89e3\u4e3a\u4e00\u4e2a N\u00d7D \u7684\u77e9\u9635\uff0cN \u4e3a\u5e8f\u5217\u957f\u5ea6\uff0cD \u4e3a token \u7ef4\u5ea6\uff09\u3002\u5728\u9884\u5904\u7406\u9636\u6bb5\uff0c\u5404\u6a21\u6001\u4f1a\u88ab\u8f6c\u5316\u4e3a\u957f\u5ea6\u4e0d\u540c\u7684 token \u5e8f\u5217\uff0c\u5e38\u89c1\u505a\u6cd5\u5305\u62ec\uff1a<\/p>\n<ul>\n<li>\u6587\u672c\uff1a\u5c06\u5b57\u7b26\u4e32\u5206\u8bcd\u4e3a token\uff0c\u5f97\u5230 token id \u5e8f\u5217\uff1b\u968f\u540e\u901a\u8fc7 Embedding \u5c42\u6620\u5c04\u4e3a\u5411\u91cf\u5e8f\u5217<\/li>\n<li>\u56fe\u50cf\uff1aVision Encoder \u5c06\u6bcf\u5f20\u56fe\u50cf\u5207\u5206\u4e3a patch\uff08\u5982 16\u00d716\uff09\uff0c\u518d\u7ecf\u7ebf\u6027\u6295\u5f71\u5f97\u5230\u89c6\u89c9 token\uff1b\u591a\u56fe\/\u591a\u5e27\u53ef\u6309\u987a\u5e8f\u62fc\u63a5\uff0c\u5bf9\u5e94\u5f20\u91cf <code>pixel_values<\/code><\/li>\n<li>\u97f3\u9891\uff1a\u4f7f\u7528 AuT\uff08Audio Transformer\uff09\u7b49\u58f0\u5b66\u7f16\u7801\u5668\uff0c\u5c06\u6ce2\u5f62\u8f6c\u4e3a\u7279\u5f81\u5e8f\u5217\u5e76\u8fdb\u4e00\u6b65\u7f16\u7801\u4e3a\u97f3\u9891 token\uff08\u53ef\u7c7b\u6bd4 Whisper<sup id=\"fnref:2\"><a href=\"#fn:2\" class=\"footnote-ref\" role=\"doc-noteref\">2<\/a><\/sup> \u7684\u524d\u7aef\u4e0e\u7f16\u7801\u6d41\u7a0b\uff09<\/li>\n<li>\u89c6\u9891\uff1a\u901a\u5e38\u5148\u62bd\u5e27\u540e\u6309\u201c\u56fe\u50cf\u201d\u65b9\u5f0f\u7f16\u7801\uff1b\u82e5\u5305\u542b\u97f3\u8f68\uff0c\u5219\u97f3\u9891\u8f68\u9053\u6309\u201c\u97f3\u9891\u201d\u65b9\u5f0f\u7f16\u7801\uff0c\u6700\u7ec8\u5171\u540c\u5f62\u6210 <code>pixel_values_videos<\/code><\/li>\n<\/ul>\n<p>\u6700\u7ec8 processor \u4f1a\u628a\u4e09\u79cd\u6a21\u6001\u7684 token \u6309 prompt \u6a21\u677f\u4e2d\u7684\u51fa\u73b0\u987a\u5e8f\u63d2\u5230\u6587\u672c token \u6d41\u91cc\uff0c\u7ec4\u6210\u4e00\u6761\u7edf\u4e00\u7684\u201c\u591a\u6a21\u6001\u957f\u5e8f\u5217\u201d\uff0c\u518d\u6574\u4f53\u9001\u8fdb Transformer\u3002<\/p>\n<h3 id=\"thinker-talker-\u5206\u5c42\u63a8\u7406\">Thinker-Talker \u5206\u5c42\u63a8\u7406\n<\/h3><p>\u524d\u6587\u63d0\u5230\uff0cQwen3-Omni \u91c7\u7528\u53cc\u5854\u7ed3\u6784\uff1aThinker \u8d1f\u8d23\u6587\u672c\u7406\u89e3\u4e0e\u751f\u6210\uff0cTalker \u5219\u6839\u636e Thinker \u8f93\u51fa\u7684\u8bed\u4e49\u8868\u5f81\u5b9e\u65f6\u5408\u6210\u81ea\u7136\u8bed\u97f3\uff0c\u4e8c\u8005\u5728\u63a8\u7406\u9636\u6bb5\u4f9d\u6b21\u6267\u884c\u3002\u5728 <code>model.generate<\/code> \u4e2d\uff0c\u6838\u5fc3\u6d41\u7a0b\u7684\u4f2a\u4ee3\u7801\u5982\u4e0b\uff1a<\/p>\n<div class=\"highlight\"><div class=\"chroma\">\n<table class=\"lntable\"><tr><td class=\"lntd\">\n<pre tabindex=\"0\" class=\"chroma\"><code><span class=\"lnt\">1\n<\/span><span class=\"lnt\">2\n<\/span><span class=\"lnt\">3\n<\/span><span class=\"lnt\">4\n<\/span><span class=\"lnt\">5\n<\/span><span class=\"lnt\">6\n<\/span><span class=\"lnt\">7\n<\/span><span class=\"lnt\">8\n<\/span><span class=\"lnt\">9\n<\/span><\/code><\/pre><\/td>\n<td class=\"lntd\">\n<pre tabindex=\"0\" class=\"chroma\"><code class=\"language-python\" data-lang=\"python\"><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># 1. \u6587\u672c\u751f\u6210 (Text Generation)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">thinker_result<\/span> <span class=\"o\">=<\/span> <span class=\"n\">thinker<\/span><span class=\"o\">.<\/span><span class=\"n\">generate<\/span><span class=\"p\">(<\/span><span class=\"n\">input_ids<\/span><span class=\"p\">,<\/span> <span class=\"n\">output_hidden_states<\/span><span class=\"o\">=<\/span><span class=\"kc\">True<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># 2. \u6a21\u6001\u5bf9\u9f50\u4e0e\u7279\u5f81\u6865\u63a5 (Modality Alignment &amp; Bridging)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">talker_inputs<\/span><span class=\"p\">,<\/span> <span class=\"n\">trailing_text<\/span> <span class=\"o\">=<\/span> <span class=\"n\">align_and_project_features<\/span><span class=\"p\">(<\/span><span class=\"n\">thinker_result<\/span><span class=\"o\">.<\/span><span class=\"n\">hidden_states<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># 3. \u58f0\u5b66\u7279\u5f81\u9884\u6d4b (Acoustic Feature Prediction)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">talker_result<\/span> <span class=\"o\">=<\/span> <span class=\"n\">talker<\/span><span class=\"o\">.<\/span><span class=\"n\">generate<\/span><span class=\"p\">(<\/span><span class=\"n\">inputs_embeds<\/span><span class=\"o\">=<\/span><span class=\"n\">talker_inputs<\/span><span class=\"p\">,<\/span> <span class=\"n\">trailing_text<\/span><span class=\"o\">=<\/span><span class=\"n\">trailing_text<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">audio_codes<\/span> <span class=\"o\">=<\/span> <span class=\"n\">extract_codes<\/span><span class=\"p\">(<\/span><span class=\"n\">talker_result<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"c1\"># 4. \u6ce2\u5f62\u91cd\u5efa (Waveform Decoding)<\/span>\n<\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"n\">wavs<\/span> <span class=\"o\">=<\/span> <span class=\"n\">code2wav<\/span><span class=\"o\">.<\/span><span class=\"n\">chunked_decode<\/span><span class=\"p\">(<\/span><span class=\"n\">audio_codes<\/span><span class=\"p\">,<\/span> <span class=\"n\">chunk_size<\/span><span class=\"o\">=<\/span><span class=\"mi\">300<\/span><span class=\"p\">)<\/span>\n<\/span><\/span><\/code><\/pre><\/td><\/tr><\/table>\n<\/div>\n<\/div><p>\u6574\u4e2a\u7aef\u5230\u7aef\u63a8\u7406\u8fc7\u7a0b\u53ef\u5206\u4e3a\u56db\u4e2a\u9636\u6bb5\uff1a<\/p>\n<ol>\n<li>\u6587\u672c\u751f\u6210 \uff1a\u6838\u5fc3\u6a21\u578b\uff08Thinker\uff09\u5904\u7406\u591a\u6a21\u6001\u8f93\u5165\u5e76\u81ea\u56de\u5f52\u751f\u6210\u6587\u672c\u56de\u590d\uff0c\u540c\u65f6\u8f93\u51fa\u6bcf\u6b65\u7684\u9690\u5c42\u72b6\u6001\uff1b<\/li>\n<li>\u7279\u5f81\u6865\u63a5 \uff1a\u63d0\u53d6 Thinker \u7684\u6d45\u5c42\u548c\u6df1\u5c42\u7279\u5f81\uff0c\u5c06\u6587\u672c\u4e0e\u591a\u6a21\u6001\u4fe1\u606f\u6295\u5f71\u5230\u58f0\u5b66\u8bed\u4e49\u7a7a\u95f4\uff0c\u4f5c\u4e3a\u8bed\u97f3\u5408\u6210\u7684\u6761\u4ef6\uff1b<\/li>\n<li>\u58f0\u5b66\u9884\u6d4b \uff1a\u8bed\u97f3\u751f\u6210\u6a21\u578b\uff08Talker\uff09\u63a5\u6536\u6865\u63a5\u7279\u5f81\uff0c\u81ea\u56de\u5f52\u5730\u9884\u6d4b\u79bb\u6563\u97f3\u9891\u7f16\u7801\uff08Audio Codes\uff09\uff1b<\/li>\n<li>\u6ce2\u5f62\u91cd\u5efa \uff1a\u6d41\u5f0f\u89e3\u7801\u5668\uff08Code2Wav\uff09\u901a\u8fc7\u5206\u5757\u89e3\u7801\u7b56\u7565\uff0c\u5c06\u79bb\u6563\u7f16\u7801\u5b9e\u65f6\u8f6c\u6362\u4e3a\u6700\u7ec8\u7684\u97f3\u9891\u6ce2\u5f62\u3002<\/li>\n<\/ol>\n<blockquote>\n<p><strong><span style=\"color:#2ECC71\">NTP \u63a8\u7406\u8fc7\u7a0b<\/span><\/strong>: <span style=\"color:#2ECC71\">\u4e0a\u8ff0\u201c\u6587\u672c\u751f\u6210\u201d\u5c5e\u4e8e\u6807\u51c6\u7684 NTP\uff08Next Token Prediction\uff09\u4efb\u52a1\uff1a\u6a21\u578b\u4f9d\u636e\u5f53\u524d\u8f93\u5165\u5e8f\u5217\uff0c\u9010\u8f6e\u81ea\u56de\u5f52\u5730\u9884\u6d4b\u4e0b\u4e00\u4e2a token\u3002\u66f4\u5177\u4f53\u5730\u8bf4\uff0c\u5728 <code>generate<\/code> \u5185\u90e8\uff0c\u6bcf\u8f6e\u90fd\u4f1a\u8c03\u7528 Thinker\/Talker \u8f93\u51fa\u6982\u7387\u5206\u5e03\uff0c\u518d\u7ecf Top-p\/Top-k \u7b49\u91c7\u6837\u786e\u5b9a\u4e0b\u4e00\u4e2a token\uff1b\u968f\u540e\u5c06\u5176\u8ffd\u52a0\u5230\u5e8f\u5217\u672b\u5c3e\uff0c\u5faa\u73af\u76f4\u81f3\u751f\u6210\u5b8c\u6574\u7684\u6587\u672c\u5e8f\u5217\u3002<\/span><\/p>\n<p><strong><span style=\"color:#2ECC71\">KV Cache<\/span><\/strong>: <span style=\"color:#2ECC71\">\u4e3a\u4e86\u907f\u514d\u5bf9\u5df2\u751f\u6210 token \u91cd\u590d\u8ba1\u7b97 Key\/Value \u5411\u91cf\uff0c\u7cfb\u7edf\u4f1a\u7ef4\u62a4 KV cache\uff1a\u6bcf\u6b65\u53ea\u8ba1\u7b97\u65b0\u589e token \u7684 K\/V\uff0c\u5e76\u4e0e\u7f13\u5b58\u62fc\u63a5\u3002\u8fd9\u6837\uff0c\u5e8f\u5217\u53d8\u957f\u65f6 Thinker\/Talker \u7684\u63a8\u7406\u5ef6\u8fdf\u901a\u5e38\u4fdd\u6301\u8fd1\u4f3c\u7ebf\u6027\u589e\u957f\uff0c\u800c\u4e0d\u81f3\u4e8e\u51fa\u73b0\u4e8c\u6b21\u7ea7\u522b\u7684\u8ba1\u7b97\u5f00\u9500\u3002<\/span><\/p>\n<\/blockquote>\n<h3 id=\"\u4e0d\u540c\u6a21\u6001\u95f4\u7684\u4ea4\u4e92\u4e0e\u878d\u5408\">\u4e0d\u540c\u6a21\u6001\u95f4\u7684\u4ea4\u4e92\u4e0e\u878d\u5408\n<\/h3><p>\u4e3a\u4e86\u5b9e\u73b0\u4e0d\u540c\u6a21\u6001\u4e4b\u95f4\u7684\u4ea4\u4e92\u4e0e\u878d\u5408\uff0cQwen3-Omni \u4f1a\u5c06\u6765\u81ea\u6587\u672c\u3001\u56fe\u50cf\u3001\u97f3\u9891\u3001\u89c6\u9891\u7b49\u6a21\u6001\u7684 token \u6309\u7167 prompt \u4e2d\u7684\u51fa\u73b0\u987a\u5e8f\u62fc\u63a5\u6210\u4e00\u6761\u7edf\u4e00\u7684\u957f\u5e8f\u5217\uff0c\u5e76\u5c06\u5176\u6574\u4f53\u8f93\u5165 Transformer\u3002\u5728\u81ea\u6ce8\u610f\u529b\u673a\u5236\u4f5c\u7528\u4e0b\uff0c\u4e0d\u540c\u6a21\u6001 token \u53ef\u4ee5\u76f8\u4e92\u5efa\u7acb\u5173\u8054\uff0c\u4ece\u800c\u5f97\u5230\u878d\u5408\u540e\u7684\u8868\u5f81\u4e0e\u8f93\u51fa\u5e8f\u5217\u3002<\/p>\n<p>\u800c\u8981\u5b9e\u73b0\u8fd9\u4e00\u70b9\uff0cQwen3-Omni \u4f1a\u8fdb\u884c\u4ee5\u4e0b\u6b65\u9aa4\uff1a<\/p>\n<ul>\n<li>\u7edf\u4e00\u4e0d\u540c\u6a21\u6001\u7684 token \u7ef4\u5ea6\uff1a\u5c06\u4e0d\u540c\u6a21\u6001\u7684 token \u5e8f\u5217\uff08\u5982\u6587\u672c token\u3001\u56fe\u50cf token\u3001\u97f3\u9891 token\u3001\u89c6\u9891 token\uff09\u6620\u5c04\u5230\u7edf\u4e00\u7684\u7279\u5f81\u7ef4\u5ea6\uff08\u5982 768\u30011024 \u7b49\uff09\uff0c\u4e00\u822c\u901a\u8fc7\u6620\u5c04\u5c42\uff08\u5982 Linear\uff09\u5b9e\u73b0\u3002<\/li>\n<li>\u5408\u5e76\u4e0d\u540c\u6a21\u6001\u7684 token \u5e8f\u5217\uff1a\u5c06\u4e0d\u540c\u6a21\u6001\u7684 token \u5e8f\u5217\u6309 prompt \u4e2d\u7684\u51fa\u73b0\u987a\u5e8f\u62fc\u63a5\u6210\u4e00\u6761\u7edf\u4e00\u7684\u957f\u5e8f\u5217\uff0c\u4f5c\u4e3a Transformer \u7684\u8f93\u5165\u3002\u5982\u4e0a\u6587\uff08\u89c1\uff1a<a class=\"link\" href=\"#prompt-template\" >prompt \u6a21\u677f\u793a\u4f8b<\/a>\uff09\uff0c\u5176\u4e2d\u7684 <code>&lt;|audio_start|&gt;&lt;|audio_pad|&gt;&lt;|audio_end|&gt;<\/code> \u7528\u4e8e\u6807\u8bb0\u97f3\u9891 token \u7684\u8d77\u59cb\u4e0e\u7ed3\u675f\u4f4d\u7f6e\uff1b\u56fe\u50cf\u4e0e\u89c6\u9891 token \u540c\u7406\u3002<\/li>\n<\/ul>\n<h2 id=\"\u5c0f\u7ed3\">\u5c0f\u7ed3\n<\/h2><p>\u672c\u7bc7\u7b14\u8bb0\u4e3b\u8981\u60f3\u89e3\u91ca Qwen3-Omni \u7684\u201c\u63a8\u7406\u671f\u6570\u636e\u6d41\u201d\u4e0e\u201c\u878d\u5408\u65b9\u5f0f\u201d\u3002\u4f46\u662f\u8fd8\u6709\u5176\u4ed6Qwen3-Omni\u7684\u5176\u4ed6\u8bbe\u8ba1\u672a\u63d0\u53ca\uff0c\u5305\u62ec\u4f46\u4e0d\u9650\u4e8e\uff1a<\/p>\n<ul>\n<li>Transformer \u6a21\u578b\u8bbe\u8ba1\u7ec6\u8282\uff08\u5982\u6ce8\u610f\u529b\u7ed3\u6784\u3001\u4f4d\u7f6e\u7f16\u7801\u3001\u957f\u4e0a\u4e0b\u6587\u7b56\u7565\u7b49\uff09<\/li>\n<li>Omni-modal \u7684\u8bad\u7ec3\u5de5\u7a0b\u4e0e\u6570\u636e\u79d1\u5b66\uff08\u6570\u636e\u6784\u9020\u3001\u5bf9\u9f50\u4fe1\u53f7\u3001\u635f\u5931\u4e0e\u6df7\u8bad\u7b56\u7565\u7b49\uff09<\/li>\n<li>\u8bed\u97f3\u540e\u5904\u7406\u6a21\u5757\uff08MTP \u4e0e Code2Wav\uff09\uff1a\u8bed\u97f3\u751f\u6210\u94fe\u8def\u4e0e\u6587\u672c\u751f\u6210\u94fe\u8def\u5728\u76ee\u6807\u4e0e\u89e3\u7801\u7ec6\u8282\u4e0a\u5e76\u4e0d\u5b8c\u5168\u4e00\u81f4\uff0c\u5efa\u8bae\u7ed3\u5408\u8bba\u6587\u4e0e\u4ee3\u7801\u5bf9\u7167\u7406\u89e3<\/li>\n<\/ul>\n<blockquote>\n<p><strong><span style=\"color:#FF6B35\">\u5982\u6709\u9519\u8bef\u6216\u9057\u6f0f\uff0c\u6b22\u8fce\u6307\u6b63\uff01<\/span><\/strong><\/p>\n<\/blockquote>\n<div class=\"footnotes\" role=\"doc-endnotes\">\n<hr>\n<ol>\n<li id=\"fn:1\">\n<p>Jin Xu et al., <em>Qwen3-Omni Technical Report<\/em>, arXiv:2509.17765. <a class=\"link\" href=\"https:\/\/arxiv.org\/abs\/2509.17765\" target=\"_blank\" rel=\"noopener\"\n>https:\/\/arxiv.org\/abs\/2509.17765<\/a>&#160;<a href=\"#fnref:1\" class=\"footnote-backref\" role=\"doc-backlink\">&#x21a9;&#xfe0e;<\/a><\/p>\n<\/li>\n<li id=\"fn:2\">\n<p>Radford, Alec, et al. &ldquo;Robust Speech Recognition via Large-Scale Weak Supervision.&rdquo; <a class=\"link\" href=\"https:\/\/github.com\/openai\/whisper\" target=\"_blank\" rel=\"noopener\"\n>https:\/\/github.com\/openai\/whisper<\/a>&#160;<a href=\"#fnref:2\" class=\"footnote-backref\" role=\"doc-backlink\">&#x21a9;&#xfe0e;<\/a><\/p>\n<\/li>\n<\/ol>\n<\/div>"},{"title":"Archives","link":"https:\/\/1zeryu.github.io\/blogs\/archives\/","pubDate":"Sun, 06 Mar 2022 00:00:00 +0000","guid":"https:\/\/1zeryu.github.io\/blogs\/archives\/","description":{}},{"title":"Links","link":"https:\/\/1zeryu.github.io\/blogs\/links\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/1zeryu.github.io\/blogs\/links\/","description":"<p>To use this feature, add <code>links<\/code> section to frontmatter.<\/p>\n<p>This page&rsquo;s frontmatter:<\/p>\n<div class=\"highlight\"><div class=\"chroma\">\n<table class=\"lntable\"><tr><td class=\"lntd\">\n<pre tabindex=\"0\" class=\"chroma\"><code><span class=\"lnt\">1\n<\/span><span class=\"lnt\">2\n<\/span><span class=\"lnt\">3\n<\/span><span class=\"lnt\">4\n<\/span><span class=\"lnt\">5\n<\/span><span class=\"lnt\">6\n<\/span><span class=\"lnt\">7\n<\/span><span class=\"lnt\">8\n<\/span><span class=\"lnt\">9\n<\/span><\/code><\/pre><\/td>\n<td class=\"lntd\">\n<pre tabindex=\"0\" class=\"chroma\"><code class=\"language-yaml\" data-lang=\"yaml\"><span class=\"line\"><span class=\"cl\"><span class=\"nt\">links<\/span><span class=\"p\">:<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span>- <span class=\"nt\">title<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">GitHub<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">description<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">GitHub is the world&#39;s largest software development platform.<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">website<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">https:\/\/github.com<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">image<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">https:\/\/github.githubassets.com\/images\/modules\/logos_page\/GitHub-Mark.png<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span>- <span class=\"nt\">title<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">TypeScript<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">description<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">website<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">https:\/\/www.typescriptlang.org<\/span><span class=\"w\">\n<\/span><\/span><\/span><span class=\"line\"><span class=\"cl\"><span class=\"w\"> <\/span><span class=\"nt\">image<\/span><span class=\"p\">:<\/span><span class=\"w\"> <\/span><span class=\"l\">ts-logo-128.jpg<\/span><span class=\"w\">\n<\/span><\/span><\/span><\/code><\/pre><\/td><\/tr><\/table>\n<\/div>\n<\/div><p><code>image<\/code> field accepts both local and external images.<\/p>"},{"title":"Search","link":"https:\/\/1zeryu.github.io\/blogs\/search\/","pubDate":"Mon, 01 Jan 0001 00:00:00 +0000","guid":"https:\/\/1zeryu.github.io\/blogs\/search\/","description":{}}]}}