跳到主要内容

RAG vs 微调:何时为泰语 AI 选择每种方法

· 19 分钟阅读
Kobkrit Viriyayudhakorn
CEO @ iApp Technology

作者:Kobkrit Viriyayudhakorn 博士,艾艾普科技 CEO 及创始人

我们从泰语 AI 工程师和技术团队那里听到的最常见问题之一是:“我的泰语应用程序应该使用 RAG 还是微调?” 这是一个直接影响开发成本、性能、维护复杂性和长期可扩展性的关键问题。

答案,就像大多数工程决策一样,是:这取决于。但了解何时使用每种方法——以及越来越多地了解如何结合使用它们——可能是成功部署 AI 和昂贵失败之间的区别。

本文详细比较了检索增强生成 (RAG) 和微调在泰语应用程序中的应用,借鉴了我们在艾艾普科技公司在数百家泰语企业中部署这两种方法的经验。

核心问题:为特定任务调整 LLM

像 GPT-4、Claude 和 Gemini 这样的语言模型 (LLM) 是功能强大的通用人工智能系统。然而,对于生产企业应用程序,您几乎总是需要对其进行调整以适应:

  • 特定领域知识:行业术语、公司政策、产品目录
  • 最新信息:模型训练截止日期之后发生的事件、实时数据
  • 风格和格式:公司写作风格、文档模板、响应格式
  • 泰语细微差别:本地语境、商务礼仪、行业特定泰语术语

您有两种主要技术可以实现这种适应:

  1. 检索增强生成 (RAG):在查询时为模型提供相关上下文
  2. 微调:使用您的特定数据重新训练模型以改变其行为

每种方法都有独特的特征、成本和用例。让我们深入探讨这两种方法。

RAG vs Fine-Tuning Comparison

理解 RAG(检索增强生成)

什么是 RAG?

RAG 是一种架构模式,通过从外部知识库检索相关信息并将其包含在提示上下文中来增强 LLM 的响应。

RAG 流程(简化):

  1. 索引阶段(一次性设置):

    • 收集您的知识库(文档、PDF、数据库)
    • 分成块(通常为 200-1000 个 token)
    • 将每个块转换为嵌入向量
    • 存储在向量数据库中(Pinecone、Weaviate、pgvector 等)
  2. 查询阶段(运行时):

    • 用户提出问题
    • 将问题转换为嵌入向量
    • 在向量数据库中搜索最相似的块
    • 检索排名前 K 的最相关块(通常为 3-10 个)
    • 构建提示:系统指令 + 检索到的上下文 + 用户问题
    • 发送给 LLM 以生成答案

简单的 RAG 实现示例(泰语文档):

from openai import OpenAI
from pinecone import Pinecone
import numpy as np

# 初始化客户端
client = OpenAI(api_key="your-api-key")
pc = Pinecone(api_key="your-pinecone-key")
index = pc.Index("thai-knowledge-base")

def embed_text(text: str) -> list:
"""将文本转换为嵌入向量"""
response = client.embeddings.create(
model="text-embedding-3-small",
input=text
)
return response.data[0].embedding

def retrieve_context(query: str, top_k: int = 5) -> list:
"""为查询检索相关文档块"""
# 将查询转换为嵌入
query_embedding = embed_text(query)

# 搜索向量数据库
results = index.query(
vector=query_embedding,
top_k=top_k,
include_metadata=True
)

# 从结果中提取文本
contexts = [match['metadata']['text'] for match in results['matches']]
return contexts

def rag_query(user_question: str) -> str:
"""使用 RAG 回答问题"""
# 检索相关上下文
contexts = retrieve_context(user_question)

# 使用泰语优化构建提示
context_str = "\n\n".join(contexts)
prompt = f"""คุณเป็นผู้ช่วย AI ที่ตอบคำถามโดยอ้างอิงจากเอกสารที่ให้มา

เอกสารอ้างอิง:
{context_str}

คำถาม: {user_question}

กรุณาตอบคำถามโดยอ้างอิงจากเอกสารที่ให้มา หากไม่พบข้อมูลในเอกสาร ให้บอกว่าไม่มีข้อมูล"""

# 生成响应
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "คุณเป็นผู้ช่วยตอบคำถามที่ซื่อสัตย์และแม่นยำ"},
{"role": "user", "content": prompt}
],
temperature=0.7
)

return response.choices[0].message.content

# 泰语查询示例
question = "นโยบายการลาพักร้อนของบริษัทคืออะไร?"
answer = rag_query(question)
print(answer)

RAG 的优势

1. 动态知识更新

  • 无需重新训练即可添加/更新/删除文档
  • 适用于信息频繁更改(价格、政策、新闻)
  • 近乎实时地集成知识

2. 来源归属

  • 可以引用答案中使用的特定文档/部分
  • 通过透明度建立用户信任
  • 对合规性和事实核查至关重要

3. 成本较低

  • 无需昂贵的微调过程
  • 推理成本仅略高(额外的 token 上下文)
  • 可以使用更小/更便宜的基础模型

4. 更易于调试

  • 可以检查检索到的块以理解响应
  • 无需更改模型即可修改检索逻辑
  • 快速测试不同的上下文组合

5. 多领域灵活性

  • 同一个模型可以处理多个知识领域
  • 根据用户查询在上下文之间切换
  • 对于拥有多样化用例的组织来说效率很高

RAG 的局限性

1. 上下文窗口限制

  • 受模型上下文长度限制(取决于模型,4K-128K token)
  • 每次查询只能包含有限的信息
  • 如果检索不完美,可能会错过相关上下文

2. 依赖检索质量

  • 整个系统的质量取决于检索的准确性
  • 语义搜索可能会错过措辞不同但相关的​​内容
  • 泰语嵌入模型不如英语成熟

3. 延迟

  • 两步流程(检索 + 生成)会增加延迟
  • 向量数据库查询会增加 50-200 毫秒
  • 可以通过缓存来缓解

4. 不学习风格/格式

  • 模型不会“学习”您的写作风格
  • 每个响应都需要明确的格式说明
  • 如果提示工程不当,可能不一致

5. 大规模 token 成本

  • 在每次查询中包含上下文会增加 token 使用量
  • 对于高流量应用程序,token 成本可能会超过微调成本

理解微调

什么是微调?

微调是继续训练预训练语言模型,以适应其行为、知识和风格的过程。

微调过程:

  1. 数据准备

    • 收集训练样本(通常为数百到数万个)
    • 格式化为输入-输出对
    • 对于聊天模型:包含角色(系统/用户/助手)的对话格式
  2. 训练

    • 从预训练的基础模型开始
    • 在您的数据上继续训练
    • 通过反向传播调整模型权重
    • 在保留的测试集上进行验证
  3. 部署

    • 将微调模型部署为自定义端点
    • 使用方式与基础模型相同,但行为已调整

泰语客服微调示例:

# 训练数据格式 (JSONL 文件)
# training_data.jsonl

{"messages": [
{"role": "system", "content": "คุณเป็นพนักงานฝ่ายบริการลูกค้าของธนาคารไทย ตอบคำถามด้วยภาษาที่สุภาพและเป็นมืออาชีพ"},
{"role": "user", "content": "ดอกเบี้ยเงินฝากประจำ 1 ปีเท่าไหร่ค่ะ"},
{"role": "assistant", "content": "สวัสดีค่ะ ขอบคุณที่สอบถามค่ะ\n\nอัตราดอกเบี้ยเงินฝากประจำ 1 ปีของธนาคารในปัจจุบันอยู่ที่ 1.50% ต่อปี สำหรับเงินฝากตั้งแต่ 10,000 บาทขึ้นไป\n\nหากคุณสนใจเปิดบัญชีเงินฝากประจำหรือมีคำถามเพิ่มเติม กรุณาติดต่อที่สาขาของธนาคารหรือโทร 02-XXX-XXXX ค่ะ\n\nมีอะไรให้ช่วยเหลือเพิ่มเติมไหมคะ?"}
]}

{"messages": [
{"role": "system", "content": "คุณเป็นพนักงานฝ่ายบริการลูกค้าของธนาคารไทย ตอบคำถามด้วยภาษาที่สุภาพและเป็นมืออาชีพ"},
{"role": "user", "content": "โอนเงินข้ามธนาคารใช้เวลานานไหม"},
{"role": "assistant", "content": "สวัสดีค่ะ\n\nสำหรับการโอนเงินข้ามธนาคารผ่านระบบ PromptPay จะเข้าบัญชีปลายทางภายในไม่กี่วินาที (Real-time)\n\nหากโอนผ่านระบบ ORFT (ธนาคารแห่งประเทศไทย) เวลาทำการจะใช้เวลาประมาณ 30 นาที - 2 ชั่วโมง และนอกเวลาทำการจะประมวลผลในวันทำการถัดไป\n\nแนะนำให้ใช้ PromptPay สำหรับความรวดเร็วค่ะ\n\nมีคำถามอื่นๆ อีกไหมคะ?"}
]}

# ... (更多示例)
from openai import OpenAI

client = OpenAI(api_key="your-api-key")

# 上传训练文件
training_file = client.files.create(
file=open("training_data.jsonl", "rb"),
purpose="fine-tune"
)

# 创建微调任务
fine_tune_job = client.fine_tuning.jobs.create(
training_file=training_file.id,
model="gpt-4o-mini-2024-07-18", # 基础模型
hyperparameters={
"n_epochs": 3, # 训练轮数
"learning_rate_multiplier": 1.8
}
)

# 监控训练
print(f"Fine-tuning job ID: {fine_tune_job.id}")

# 训练完成后,使用微调后的模型
# response = client.chat.completions.create(
# model="ft:gpt-4o-mini-2024-07-18:your-org:custom-model-name:identifier",
# messages=[...]
# )

微调的优势

1. 风格和语气一致性

  • 模型学习您组织的语气和沟通风格
  • 无需明确说明即可获得一致的格式
  • 自然地整合公司术语

2. 提高任务性能

  • 可以显著提高特定任务的准确性
  • 学习领域特定的推理模式
  • 更好地在您的语境中使用细微的泰语

3. 减少提示工程

  • 在每个提示中需要更少的详细说明
  • 更短的提示 = 更低的 token 成本(大规模)
  • 更简单的应用程序逻辑

4. 专业知识集成

  • 将领域知识深度嵌入模型权重
  • 更好地处理复杂、相互关联的概念
  • 适用于高度技术性的泰语术语

5. 推理成本更低(大规模)

  • 更短的提示减少了 token 的使用
  • 对于高流量应用程序,可能比 RAG 更经济

微调的局限性

1. 静态知识

  • 知识在微调时冻结
  • 更新需要昂贵的重新训练
  • 不适用于快速变化的信息

2. 高昂的初始成本

  • 训练成本(计算、数据准备、实验)
  • 认真进行微调通常需要 50,000 - 500,000 泰铢
  • 需要专业知识才能做好

3. 数据需求

  • 需要数百到数千个高质量的样本
  • 特定领域的泰语数据可能有限
  • 策划和标注工作量大

4. 过拟合风险

  • 如果过度训练,可能会失去通用能力
  • 在训练分布之外的边缘情况下表现可能更差
  • 需要仔细验证

5. 开发周期较长

  • 数据收集、训练、评估需要数周到数月
  • 迭代缓慢(每次实验需要数天)
  • 部署复杂(模型版本控制、回滚等)

泰语特定考量

泰语为这两种方法都增加了独特的复杂性:

泰语 RAG 的挑战

1. 嵌入模型质量

  • 大多数嵌入模型主要针对英语进行训练
  • 泰语语义搜索不如英语准确
  • 多语言模型(text-embedding-3、Cohere multilingual)正在改进但并不完美

2. 分块复杂性

  • 泰语脚本中没有词语边界
  • 传统的基于 token 的分块可能会笨拙地分割单词/短语
  • 需要泰语感知的分词(PyThaiNLP、deepcut)

3. 查询-文档不匹配

  • 泰语有多种表达相同概念的方式
  • 正式和非正式语言造成检索差距
  • 英语外来词与泰语对应词

泰语分块示例:

from pythainlp.tokenize import word_tokenize
from pythainlp.util import normalize

def chunk_thai_document(text: str, chunk_size: int = 500) -> list:
"""
按单词边界分块泰语文档
"""
# 规范化泰语文本
normalized_text = normalize(text)

# 分词
words = word_tokenize(normalized_text, engine='newmm')

chunks = []
current_chunk = []
current_length = 0

for word in words:
word_length = len(word)

if current_length + word_length > chunk_size and current_chunk:
# 保存当前块
chunks.append(''.join(current_chunk))
current_chunk = [word]
current_length = word_length
else:
current_chunk.append(word)
current_length += word_length

# 添加最后一块
if current_chunk:
chunks.append(''.join(current_chunk))

return chunks

# 示例
thai_doc = """บริษัทของเรามีนโยบายการลาพักร้อนที่ยืดหยุ่น
พนักงานที่ทำงานครบ 1 ปีจะได้รับสิทธิ์ลาพักร้อน 10 วันต่อปี
และจะเพิ่มขึ้นเป็น 15 วันสำหรับพนักงานที่ทำงานครบ 5 ปี"""

chunks = chunk_thai_document(thai_doc, chunk_size=100)
for i, chunk in enumerate(chunks):
print(f"Chunk {i+1}: {chunk}\n")

泰语微调的挑战

1. 训练数据有限

  • 与英语相比,可用的泰语公司数据较少
  • 隐私问题限制了数据共享
  • 注释专家稀缺且昂贵

2. 模型可用性

  • 并非所有模型都支持泰语微调
  • 一些提供商对泰语的支持比其他提供商更好
  • 本地泰语模型(如艾艾普的 Chinda)具有优势

3. 评估难度

  • 泰语基准测试不成熟
  • 需要主观质量评估
  • 需要母语为泰语的人进行验证

决策框架:何时使用什么

这是一个为泰语应用程序选择 RAG 或微调的实用决策树:

何时使用 RAG:

知识经常变化

  • 产品目录、定价、新闻、政策
  • 需要实时数据集成
  • 信息每天/每周更新

需要来源归属

  • 法律/合规应用程序
  • 医疗建议(引用来源)
  • 研究辅助

预算受限

  • 资源有限的初创公司/中小企业
  • 概念验证阶段
  • 对长期使用不确定

优先考虑快速上市

  • 可以在几天/几周内部署
  • 根据反馈快速迭代
  • 在大量投资前验证概念

多个知识领域

  • 跨多种产品的客户支持
  • 多部门企业助手
  • 通用问答系统

泰语 RAG 用例:

  • 泰语政府文件搜索
  • 泰语法律文件问答
  • 泰语新闻聚合和摘要
  • 泰语电子商务产品推荐

何时使用微调:

风格/语气一致性至关重要

  • 品牌语气强制执行
  • 专业写作辅助
  • 面向客户的沟通

需要特定任务性能

  • 复杂的分类任务
  • 专业提取/格式化
  • 特定领域的推理

高流量、稳定的用例

  • 每天数千次查询
  • 定义明确、不变的任务
  • 投资回报证明了前期投资的合理性

独特领域语言

  • 专业泰语术语
  • 公司特定术语
  • 行业特定表达

最低延迟要求

  • 实时应用程序
  • 无检索步骤开销
  • 更简单的架构

泰语微调用例:

  • 泰语银行客户服务聊天机器人
  • 泰语政府表格处理
  • 泰语医疗报告生成
  • 泰语法律合同起草

何时使用混合(RAG + 微调):

🎯 需要兼顾两者

  • 微调以实现风格、语气和任务格式
  • 使用 RAG 进行动态知识注入
  • 在生产企业系统中很常见

混合架构示例:

def hybrid_thai_assistant(user_query: str) -> str:
"""
混合 RAG + 微调模型方法
"""
# 步骤 1:检索相关上下文(RAG)
retrieved_docs = retrieve_context(user_query, top_k=3)
context = "\n\n".join(retrieved_docs)

# 步骤 2:使用检索到的上下文使用微调模型
# 微调模型已经了解公司风格和泰语细微差别
response = client.chat.completions.create(
model="ft:gpt-4o-mini:iapp:thai-banking:abc123", # 微调模型
messages=[
{"role": "system", "content": "ใช้ข้อมูลที่ให้มาเพื่อตอบคำถาม ตอบด้วยน้ำเสียงที่สุภาพและเป็นมืออาชีพตามมาตรฐานของธนาคาร"},
{"role": "user", "content": f"ข้อมูลอ้างอิง:\n{context}\n\nคำถาม: {user_query}"}
]
)

return response.choices[0].message.content

混合方案的适用情况:

  • 企业客户服务(通过微调实现风格,通过 RAG 实现知识)
  • 文档处理(通过微调提取格式,通过 RAG 获取内容)
  • 内容生成(通过微调实现语气,通过 RAG 获取事实)

成本比较:实际数字

让我们比较一下典型的泰语企业用例的成本:客户服务聊天机器人(每天 10,000 次查询,平均响应 500 个词)

RAG 方法成本(年度)

设置成本(一次性):

  • 向量数据库设置:50,000 泰铢
  • 文档处理/分块:100,000 泰铢
  • 集成开发:200,000 泰铢
  • 总设置:350,000 泰铢

持续成本(年度):

  • 向量数据库托管:120,000 泰铢/年
  • 嵌入 API 调用(10K/天 × 365 × 0.50 泰铢):1,825,000 泰铢
  • LLM API 调用(含上下文)(10K/天 × 365 × 2 泰铢):7,300,000 泰铢
  • 维护:200,000 泰铢/年
  • 第一年总计:9,795,000 泰铢
  • 第二年及以后总计:9,445,000 泰铢/年

微调方法成本(年度)

设置成本(一次性):

  • 数据收集和标注:500,000 泰铢
  • 微调实验:200,000 泰铢
  • 模型训练:100,000 泰铢
  • 集成和测试:200,000 泰铢
  • 总设置:1,000,000 泰铢

持续成本(年度):

  • 微调模型 API 调用(10K/天 × 365 × 1.2 泰铢):4,380,000 泰铢
  • 模型重新训练(季度):400,000 泰铢/年
  • 维护:200,000 泰铢/年
  • 第一年总计:5,980,000 泰铢
  • 第二年及以后总计:4,980,000 泰铢/年

混合方法成本(年度)

设置成本(一次性):

  • 结合 RAG + 微调设置:1,200,000 泰铢

持续成本(年度):

  • 向量数据库:120,000 泰铢/年
  • 嵌入调用(减少):1,825,000 泰铢
  • 微调模型调用:4,380,000 泰铢
  • 维护:300,000 泰铢/年
  • 第一年总计:7,825,000 泰铢
  • 第二年及以后总计:6,625,000 泰铢/年

成本分析见解

  1. RAG:持续成本较高,但初始投资较低
  2. 微调:前期成本较高,后期成本较低(规模化更优)
  3. 混合:成本适中,性能最佳
  4. 收支平衡点:对于高流量应用程序,微调在大约 6-8 个月后比 RAG 更便宜

真实泰语案例研究

案例研究 1:泰语保险公司 - 保单问答

挑战:客户服务代理需要即时访问 200 多种保险产品的保单信息。

解决方案:RAG 结合泰语文档处理

  • 使用泰语感知的分块方法索引所有保单 PDF
  • 3 周内完成部署
  • 89% 的回答准确率(通用 LLM 为 72%)

结果

  • 平均响应时间:3.2 秒
  • 代理生产力提高 45%
  • 客户满意度提高 32%
  • 成本:210 万泰铢/年

为什么选择 RAG:保单每季度更改一次,需要来源引用,预算有限。

案例研究 2:泰语银行 - 客户服务聊天机器人

挑战:需要在多个渠道上提供一致的、符合品牌调性的客户服务,并处理复杂的泰语银行术语。

解决方案:使用 5,000 次历史对话对 GPT-4o Mini 进行微调

  • 3 个月开发时间
  • 深度集成泰语风格指南
  • 部署到网页聊天、LINE 和 Facebook Messenger

结果

  • 94% 的风格一致性得分
  • 78% 的完全自动化率(无需人工转接)
  • 客户满意度 4.6/5
  • 成本:第一年:620 万泰铢,第二年:480 万泰铢

为什么选择微调:高流量(每天 15,000 次查询),稳定领域,品牌调性至关重要。

案例研究 3:泰语电商 - 产品推荐

挑战:提供个性化产品推荐,包含最新的库存和定价信息。

解决方案:混合 RAG + 微调

  • 微调以实现泰语产品描述生成的风格
  • RAG 用于实时库存、定价、评论

结果

  • 点击率提高 35%
  • 转化率提高 22%
  • 自然泰语产品描述
  • 成本:580 万泰铢/年

为什么选择混合:最佳性能,结合了静态风格和动态数据。

实施最佳实践

泰语 RAG 最佳实践

  1. 使用泰语优化嵌入

    # 使用多语言嵌入模型
    from sentence_transformers import SentenceTransformer

    # 良好:支持泰语的多语言模型
    model = SentenceTransformer('sentence-transformers/paraphrase-multilingual-mpnet-base-v2')

    # 更好:如果有泰语优化模型
    # model = SentenceTransformer('iapp/thai-embedding-model')
  2. 实现混合搜索

    def hybrid_search(query: str, top_k: int = 5):
    """结合语义搜索和关键词搜索"""
    # 语义搜索(向量相似度)
    semantic_results = vector_search(query, top_k=top_k*2)

    # 关键词搜索(泰语 BM25)
    keyword_results = bm25_search(query, top_k=top_k*2)

    # 组合并重新排序
    combined = rerank(semantic_results, keyword_results, top_k=top_k)
    return combined
  3. 处理泰英混合语

    • 许多泰语商业文档混合使用泰语和英语
    • 使用多语言嵌入
    • 规范化文本(英语术语与泰语对应词)
  4. 为泰语优化分块大小

    • 泰语文本比英语更紧凑(每个概念的字符更少)
    • 最佳分块大小:300-600 token(英语为 500-1000)
    • 确保块不会在句子中间分割

泰语微调最佳实践

  1. 数据质量优于数量

    • 1,000 个高质量的泰语样本 > 10,000 个平庸的样本
    • 确保边缘情况的广泛覆盖
    • 包括常见的泰语变体(正式/非正式、地区性)
  2. 使用泰语母语审阅者

    • 数据标注需要母语者
    • 了解文化背景
    • 商务礼仪验证
  3. 监控灾难性遗忘

    • 微调可能导致模型在执行通用任务时变差
    • 在训练集中包含通用的泰语示例
    • 在保留的通用泰语基准上进行验证
  4. 迭代训练

    # 使用小的学习率和少量 epoch 开始
    initial_training = {
    "n_epochs": 2,
    "learning_rate_multiplier": 0.5
    }

    # 监控验证损失
    # 如果欠拟合则增加 epoch,如果过拟合则减少 epoch

泰语 AI 的未来:趋势

新兴方法

  1. 指令微调:比完全微调更容易访问,更新也更方便
  2. LoRA (低秩适应):成本更低的微调,性能相似
  3. 提示调优:自动优化提示
  4. 面向检索的训练:专门针对 RAG 用例训练模型

泰语特定发展

  1. 更好的泰语嵌入:专用的泰语嵌入模型提高了检索质量
  2. 泰语 LLM:本地模型(如艾艾普的 Chinda)提供原生的泰语理解能力
  3. 泰语基准测试:用于泰语 NLP 任务的标准化评估
  4. 多模态泰语:OCR + LLM 集成,用于泰语文档理解

结论:做出正确选择

快速决策指南:

如果以下情况,选择 RAG

  • 知识经常变化
  • 需要来源引用
  • 预算/时间有限
  • 概念验证阶段

如果以下情况,选择 微调

  • 风格/语气一致性至关重要
  • 高流量、稳定的用例
  • 专业泰语术语
  • 值得进行长期投资

如果以下情况,选择 混合

  • 生产企业应用程序
  • 风格和动态知识都很重要
  • 预算允许实现最佳性能

请记住:正确的答案取决于您的具体需求、限制和优先级。许多成功的泰语 AI 应用都以 RAG 开始以快速部署,然后随着规模的扩大,选择性地为关键组件添加微调。

在艾艾普科技,我们已经在数百家泰语组织中实施了这两种方法(以及混合组合)。我们的 Chinda LLM 提供原生的泰语能力,显著提高了 RAG 的检索质量和微调结果。

准备好为您的泰语应用程序实施 RAG 或微调了吗? 联系我们的团队进行免费技术咨询,我们将帮助您为您的具体用例选择正确的方法。


作者简介

Kobkrit Viriyudhakorn 博士 是艾艾普科技的 CEO 和创始人,艾艾普科技是泰国领先的主权 AI 解决方案提供商。Kobkrit 博士在人工智能、自然语言处理和机器学习方面拥有超过 15 年的经验,并在多个行业开创了泰语 AI 应用。他拥有计算机科学博士学位,专注于构建能够理解泰语细微差别和文化背景的生产 AI 系统。他开发的 Chinda LLM 代表了泰国在主权、泰语优化语言模型方面的进步。

附加资源