Gỡ lỗi LLM rất quan trọng vì quy trình làm việc của chúng phức tạp và liên quan đến nhiều phần như chuỗi, lời nhắc, API, công cụ, trình truy xuất, v.v.
Gỡ lỗi truyền thống bằng cách sử dụng print() hoặc logging vẫn hoạt động, nhưng nó chậm và cồng kềnh với các LLM. Phoenix cung cấp chế độ xem dòng thời gian của mọi bước, kiểm tra lời nhắc và phản hồi, phát hiện lỗi với các lần thử lại, khả năng hiển thị độ trễ và chi phí, cũng như hiểu biết trực quan hoàn chỉnh về ứng dụng của bạn. Phoenix của Arize AI là một công cụ quan sát và truy vết mã nguồn mở mạnh mẽ được thiết kế đặc biệt cho các ứng dụng LLM. Nó giúp bạn giám sát, gỡ lỗi và truy vết mọi thứ đang diễn ra trong các pipeline LLM của bạn một cách trực quan. Trong bài viết này, chúng ta sẽ tìm hiểu về chức năng của Phoenix và lý do tại sao nó quan trọng, cách tích hợp Phoenix với LangChain từng bước, và cách hình dung các truy vết trong giao diện người dùng Phoenix.
Phoenix là một công cụ quan sát và gỡ lỗi mã nguồn mở được tạo ra cho các ứng dụng mô hình ngôn ngữ lớn. Nó thu thập dữ liệu đo xa chi tiết từ các quy trình làm việc LLM của bạn, bao gồm lời nhắc, phản hồi, độ trễ, lỗi và việc sử dụng công cụ, sau đó trình bày thông tin này trong một bảng điều khiển trực quan, tương tác. Phoenix cho phép các nhà phát triển hiểu sâu sắc cách các pipeline LLM của họ hoạt động bên trong hệ thống, xác định và gỡ lỗi các vấn đề với đầu ra lời nhắc, phân tích các nút thắt cổ chai về hiệu suất, giám sát việc sử dụng token và chi phí liên quan, cũng như truy vết mọi lỗi/lô-gic thử lại trong giai đoạn thực thi. Nó hỗ trợ tích hợp nhất quán với các framework phổ biến như LangChain và LlamaIndex, đồng thời cũng cung cấp hỗ trợ OpenTelemetry cho các thiết lập tùy chỉnh hơn.
Đảm bảo bạn có Python 3.8+ và cài đặt các phụ thuộc:
pip install arize-phoenix langchain langchain-together openinference-instrumentation-langchain langchain-community
Thêm dòng này để khởi chạy bảng điều khiển Phoenix:
import phoenix as px
px.launch_app()
Thao tác này sẽ khởi động một bảng điều khiển cục bộ tại http://localhost:6006.
Hãy cùng tìm hiểu Phoenix bằng một trường hợp sử dụng. Chúng ta đang xây dựng một chatbot đơn giản được hỗ trợ bởi LangChain. Bây giờ, chúng ta muốn:
import threading
import phoenix as px
# Khởi chạy ứng dụng Phoenix cục bộ (truy cập tại http://localhost:6006)
def run_phoenix():
px.launch_app()
threading.Thread(target=run_phoenix, daemon=True).start()
from phoenix.otel import register
from openinference.instrumentation.langchain import LangChainInstrumentor
# Đăng ký trình truy vết OpenTelemetry
tracer_provider = register()
# Trang bị công cụ LangChain với Phoenix
LangChainInstrumentor().instrument(tracer_provider=tracer_provider)
from langchain_together import Together
llm = Together(
model="meta-llama/Llama-3-8b-chat-hf",
temperature=0.7,
max_tokens=256,
together_api_key="your-api-key", # Replace with your actual API key
)
Vui lòng không quên thay thế “your-api-key” bằng khóa API together.ai thực tế của bạn. Bạn có thể lấy nó bằng cách sử dụng liên kết này.
from langchain.prompts import ChatPromptTemplate
prompt = ChatPromptTemplate.from_messages([
("system", "You are a helpful assistant."),
("human", "{question}"),
])
chain = prompt | llm
questions = [
"What is the capital of France?",
"Who discovered gravity?",
"Give me a motivational quote about perseverance.",
"Explain photosynthesis in one sentence.",
"What is the speed of light?",
]
print("Phoenix đang chạy tại http://localhost:6006\
")
for q in questions:
print(f" Câu hỏi: {q}")
response = chain.invoke({"question": q})
print(" Trả lời:", response, "\
")
try:
while True:
pass
except KeyboardInterrupt:
print(" Đang thoát.")
Trước khi xem đầu ra, trước tiên chúng ta nên hiểu các chỉ số của Phoenix. Bạn cần phải hiểu truy vết và span là gì:
Truy vết: Mỗi truy vết đại diện cho một lần chạy hoàn chỉnh của pipeline LLM của bạn. Ví dụ, mỗi câu hỏi như “Thủ đô của Pháp là gì?” sẽ tạo ra một truy vết mới.
Span: Mỗi truy vết bao gồm nhiều span, mỗi span đại diện cho một giai đoạn trong chuỗi của bạn:
Các chỉ số hiển thị trên mỗi truy vết
| Chỉ số | Ý nghĩa & Tầm quan trọng |
|---|---|
| Độ trễ (ms) | Đo tổng thời gian thực hiện chuỗi LLM hoàn chỉnh, bao gồm định dạng lời nhắc, phản hồi của LLM và xử lý hậu kỳ. Giúp xác định các nút thắt cổ chai về hiệu suất và gỡ lỗi các phản hồi chậm. |
| Token đầu vào | Số lượng token được gửi đến mô hình. Quan trọng để giám sát kích thước đầu vào và kiểm soát chi phí API, vì hầu hết việc sử dụng đều dựa trên token. |
| Token đầu ra | Số lượng token được tạo ra bởi mô hình. Hữu ích để hiểu tính chi tiết, chất lượng phản hồi và tác động chi phí. |
| Mẫu lời nhắc | Hiển thị lời nhắc đầy đủ với các biến được chèn vào. Giúp xác nhận liệu lời nhắc có được cấu trúc và điền đúng cách hay không. |
| Văn bản đầu vào / đầu ra | Hiển thị cả đầu vào của người dùng và phản hồi của mô hình. Hữu ích để kiểm tra chất lượng tương tác và phát hiện các ảo giác hoặc câu trả lời không chính xác. |
| Thời lượng Span | Chia nhỏ thời gian thực hiện từng bước (như tạo lời nhắc hoặc gọi mô hình). Giúp xác định các nút thắt cổ chai về hiệu suất trong chuỗi. |
| Tên chuỗi | Chỉ định phần nào của pipeline mà một span thuộc về (ví dụ: prompt.format, TogetherLLM.invoke). Giúp cô lập nơi các vấn đề đang xảy ra. |
| Thẻ / Siêu dữ liệu | Thông tin bổ sung như tên mô hình, nhiệt độ, v.v. Hữu ích để lọc các lần chạy, so sánh kết quả và phân tích tác động của tham số. |
Bây giờ, hãy truy cập http://localhost:6006 để xem bảng điều khiển Phoenix. Bạn sẽ thấy một cái gì đó như:
Mở truy vết đầu tiên để xem chi tiết.
Để tổng kết, Arize Phoenix giúp việc gỡ lỗi, truy vết và giám sát các ứng dụng LLM của bạn trở nên cực kỳ dễ dàng. Bạn không cần phải đoán xem điều gì đã xảy ra hoặc đào sâu vào các tệp log. Mọi thứ đều có sẵn: lời nhắc, phản hồi, thời gian và nhiều hơn nữa. Nó giúp bạn phát hiện vấn đề, hiểu hiệu suất và xây dựng trải nghiệm AI tốt hơn với ít căng thẳng hơn.
Công nghệ - 19/08/2025 21:13:07
Tìm hiểu cách xây dựng hệ thống phát hiện ngôn ngữ ký hiệu theo thời gian thực bằng AI, sử dụng DETR để tăng cường khả năng tiếp cận và đổi mới. Kết nối lời nói và cử chỉ.
Công nghệ - 18/08/2025 13:38:25
Tối ưu hóa các hệ thống RAG bằng cách tận dụng siêu dữ liệu để truy xuất thông tin chính xác và nhanh chóng hơn, giải quyết các thách thức về dữ liệu dư thừa hoặc lỗi thời với công cụ LangExtract nguồn mở. Khám phá cách LangExtract sử dụng các mô hình ngôn ngữ tiên tiến để trích xuất và cấu trúc siêu dữ liệu, tạo ra một quy trình truy xuất hợp lý và hiệu quả.
Công nghệ - 19/06/2025 03:05:09
Code xong chạy được là chưa đủ – phải biết khi nào nó "chết" nữa chứ 😅
Bạn đang triển khai ứng dụng trên Kubernetes, Docker hay môi trường production nào? Và bạn từng "toát mồ hôi" vì service chết mà không ai báo?
Công nghệ - 16/07/2025 13:41:17
Công nghệ - 27/06/2025 03:15:44
Công nghệ - 11/12/2025 15:05:29
[Góc chuyện nghề] bán account game để đi học nghệ - bạn dám không?
Làm nghề 20 năm, gặp nhiều sinh viên, nhưng chiều qua tôi khá bất ngờ với một cậu em tên Quang. Em Quang muốn theo nghề BA và mong muốn lương 20 triệu sau khi làm việc 1.5 năm tới 2 năm trong nghề.
Công nghệ - 22/09/2025 08:59:20
Dừng ngay việc dùng DateTime.Now trong APIs, đó là ổ lỗi tiềm ẩn trong hệ thống của bạn
⏱️ Tôi từng nghĩ DateTime.Now là một thứ vô hại, đơn giản và tiện lợi, cho đến khi gặp những vấn đề về múi giờ. Những lỗi "tưởng chừng nhỏ" này lại chính là nguồn cơn của sự thất vọng và tốn kém thời gian cho nhiều đội ngũ phát triển.
Công nghệ - 14/03/2025 04:30:32