Threads Discussion Summary TAIDE LoRA

這是一個用於 Threads 討論串摘要的繁體中文 LoRA adapter。

模型接收一則 Threads 原始貼文及其下方留言,根據貼文內容、留言文字及 父子回覆結構,產生約 3~6 句繁體中文摘要。

摘要主要整理:

  1. 原始貼文的主題、觀點或訴求
  2. 留言區的主要討論內容
  3. 支持、反對、爭議或共識
  4. 討論串的整體氣氛

本 Repository 只提供 PEFT LoRA adapter,不包含完整的 7B 基礎模型。 使用時必須另外載入相容的基礎模型。

Model Lineage

本模型的來源關係如下:

Meta Llama 2 7B
        ↓
taide/TAIDE-LX-7B-Chat
        ↓
chengxi0618/taidelx7bchattv1
        ↓
Threads Discussion Summary TAIDE LoRA

Direct base model

本 LoRA adapter 的 adapter_config.json 指定:

chengxi0618/taidelx7bchattv1

因此,這是執行本 LoRA 時應載入的直接基礎模型:

https://huggingface.co/chengxi0618/taidelx7bchattv1

Upstream original model

chengxi0618/taidelx7bchattv1 的 config.json 中, _name_or_path 顯示為:

taide/TAIDE-LX-7B-Chat

因此可將 TAIDE 官方模型記錄為上游原始模型:

https://huggingface.co/taide/TAIDE-LX-7B-Chat

chengxi0618/taidelx7bchattv1 是第三方帳號發布的模型, 並非 TAIDE 官方帳號的 Repository。 config.json 的 _name_or_path 可以作為模型來源資訊,但不能單獨證明 第三方版本與官方版本的所有模型權重、Tokenizer 及其他檔案完全一致。

Model Details

  • Model type: PEFT LoRA adapter
  • Task: Threads discussion summarization
  • Language: Traditional Chinese
  • Output: Generative text summary
  • Library: PEFT and Transformers
  • Direct base model: chengxi0618/taidelx7bchattv1
  • Upstream model: taide/TAIDE-LX-7B-Chat
  • Upstream architecture: Llama causal language model
  • Adapter format: SafeTensors
  • License: TAIDE L Models Community License Agreement

Intended Uses

本模型適合用於:

  • Threads 討論串摘要
  • 社群留言內容整理
  • 輿情分析
  • 快速掌握留言區主要意見
  • 整理支持、反對及爭議觀點
  • 產生繁體中文短摘要
  • 研究、教育及競賽展示
  • 作為留言分析或 RAG 系統的摘要模組

Out-of-Scope Uses

本模型不應直接用於:

  • 將摘要視為完整討論串的替代品
  • 自動判斷貼文或留言是否真實
  • 判定任何人違法或涉及霸凌
  • 未經人工確認的新聞報導
  • 自動懲處、封鎖或標記使用者
  • 推論使用者的心理狀態或敏感屬性
  • 摘要私人、未授權或含敏感個資的對話
  • 產生醫療、法律、投資或其他專業結論

Input Format

模型預期接收已整理成樹狀結構的 Threads 純文字:

[root_post] @original_author: 原始貼文內容
  [reply] @user_a: 第一層留言
    [reply] @user_b: 回覆第一層留言
  [reply] @user_c: 另一則第一層留言
    [thread_continuation] @original_author: 原作者補充內容

節點標記:

標記 說明
[root_post] 原始貼文
[reply] 一般留言或回覆
[thread_continuation] 原作者的串文延續內容

縮排表示留言的回覆層級及父子關係。

Installation

請依實際建立的 Repository 名稱修改 adapter_id。

import torch

from peft import PeftModel
from transformers import (
    AutoModelForCausalLM,
    AutoTokenizer,
    BitsAndBytesConfig,
)

# LoRA 實際綁定的直接基礎模型
base_model_id = "chengxi0618/taidelx7bchattv1"

# 本專案上傳的 LoRA Repository


adapter_id = "jgigjvjy/threads-summary-taide-lora"
# 載入 Tokenizer
tokenizer = AutoTokenizer.from_pretrained(
    base_model_id,
    use_fast=False,
)

if tokenizer.pad_token_id is None:
    tokenizer.pad_token = tokenizer.eos_token

載入直接基礎模型

compute_dtype = (
    torch.bfloat16
    if torch.cuda.is_available()
    and torch.cuda.is_bf16_supported()
    else torch.float16
)

quantization_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=compute_dtype,
    bnb_4bit_use_double_quant=True,
)

base_model = AutoModelForCausalLM.from_pretrained(
    base_model_id,
    quantization_config=quantization_config,
    device_map="auto",
)

套用 LoRA Adapter

model = PeftModel.from_pretrained(
    base_model,
    adapter_id,
)

model.eval()

產生 Threads 摘要

thread_text = """
[root_post] @original_author: 最近想了解大家對這項政策的看法。
  [reply] @user_a: 方向正確,但配套還不完整。
    [reply] @user_b: 同意,執行方式需要再說明。
  [reply] @user_c: 目前資訊不足,還不能確定成效。
""".strip()

system_prompt = """
你是一個協助整理 Threads 討論串的助手。
你會收到一則 Threads 貼文與其下方回覆的純文字紀錄,
並依照回覆層級縮排。

請用繁體中文寫一段摘要,長度約 3~6 句,需涵蓋:
1. 原始貼文的主題、觀點或訴求
2. 留言區的主要討論內容、正反意見或共識
3. 討論串的整體氣氛

只輸出摘要本文,不要加標題,不要使用 Markdown 條列。
""".strip()

messages = [
    {
        "role": "system",
        "content": system_prompt,
    },
    {
        "role": "user",
        "content": thread_text,
    },
]

input_ids = tokenizer.apply_chat_template(
    messages,
    tokenize=True,
    add_generation_prompt=True,
    return_tensors="pt",
)

model_device = next(
    model.parameters()
).device

input_ids = input_ids.to(
    model_device
)

with torch.inference_mode():
    output_ids = model.generate(
        input_ids,
        max_new_tokens=300,
        do_sample=True,
        temperature=0.15,
        top_p=0.9,
        repetition_penalty=1.15,
        pad_token_id=tokenizer.pad_token_id,
        eos_token_id=tokenizer.eos_token_id,
    )

generated_ids = output_ids[
    0,
    input_ids.shape[-1]:,
]

summary = tokenizer.decode(
    generated_ids,
    skip_special_tokens=True,
).strip()

print(summary)

Compatibility Notice

本 LoRA 是針對以下直接基礎模型建立:

chengxi0618/taidelx7bchattv1

雖然該模型的 config.json 指向:

taide/TAIDE-LX-7B-Chat

但不建議在未測試的情況下,直接將 base_model_id 改成:

taide/TAIDE-LX-7B-Chat

如果要改用 TAIDE 官方模型,應先確認:

  • 模型架構完全一致
  • Tokenizer 字典及特殊 Token 一致
  • Chat template 一致
  • 各層權重名稱與形狀一致
  • LoRA adapter 可以正確載入
  • 相同輸入下的生成結果合理
  • 已同意官方模型的存取及授權條款

Limitations

本模型具有以下限制:

  1. 可能產生原始討論串未提及的內容。
  2. 可能遺漏少數意見或後段留言。
  3. 過長討論串可能需要截斷。
  4. 父子關係錯誤會影響摘要理解。
  5. 可能誤解反諷、玩笑、雙關語及迷因。
  6. 無法直接理解圖片、影片、語音或貼圖。
  7. 已刪除、非公開或抓取失敗的留言無法納入摘要。
  8. 摘要不代表事實查核結果。
  9. 第三方基礎模型未經逐檔驗證與官方模型完全一致。
  10. 輸入可能包含使用者名稱,使用前應評估匿名化需求。
Downloads last month
23
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for jgigivjry/threads-summary-taide

Adapter
(1)
this model