
jev-align là gì?
jev-align là một công cụ dòng lệnh thử nghiệm của Sutro để xây dựng các AI Function với Jev của TypeSafe. Công cụ đánh giá một tập dữ liệu, xác định các ví dụ chưa chắc chắn, yêu cầu bạn gắn nhãn cho chúng và sử dụng GEPA để đề xuất định nghĩa hàm được cải thiện.
Công cụ này được thiết kế cho quy trình làm việc lặp lại. Bạn có thể tạo một AI Function từ dữ liệu cục bộ, xem xét các thay đổi được đề xuất, lưu tiến trình, sử dụng hàm trong một ứng dụng, rồi cải thiện hàm sau đó bằng các ví dụ được ghi nhận trong môi trường production.
Mọi nhãn đều do bạn cung cấp. Điểm huấn luyện cao hơn không khiến jev-align tự động chấp nhận đề xuất.
Tính năng chính
- Gắn nhãn dựa trên độ không chắc chắn: CLI ưu tiên các hàng không rõ ràng, đồng thời đưa vào một mẫu kiểm tra ngẫu nhiên.
- Tối ưu hóa do con người kiểm soát: Bạn quyết định chấp nhận hay từ chối từng định nghĩa được đề xuất.
- Nhiều loại tác vụ: Xây dựng các hàm phân loại nhị phân, đa lớp, đa nhãn hoặc chấm điểm theo thứ tự.
- Tự tìm tập dữ liệu cục bộ: Quy trình thiết lập có hướng dẫn sẽ tìm các tệp CSV, Parquet và JSONL.
- Linh hoạt về nhà cung cấp mô hình: Chạy Jev thông qua TypeSafe AI, Vercel AI Gateway hoặc Cloudflare Workers AI.
- Mô hình phản tư riêng biệt: Cấu hình OpenAI, Anthropic, Gemini hoặc một nhà cung cấp tương thích với LiteLLM khác cho GEPA.
- Phiên chạy được lưu: Tiếp tục các phiên tối ưu hóa trước đó và kiểm tra các AI Function đã lưu.
- Ghi nhận dữ liệu production: Thu thập các ví dụ hữu ích từ ứng dụng và gắn nhãn cho chúng trong một vòng tối ưu hóa sau.
Tìm hiểu các loại tác vụ được hỗ trợ
Trước khi bắt đầu, hãy chọn định dạng đầu ra phù hợp với vấn đề của bạn:
- Nhị phân: Trả về
TruehoặcFalse. - Đa lớp: Trả về chính xác một nhãn từ một tập cố định.
- Đa nhãn: Trả về không hoặc nhiều nhãn từ một tập cố định.
- Điểm số: Trả về một cấp độ trong một thang đánh giá có thứ tự.
Cài đặt jev-align
Điều kiện tiên quyết
Bạn cần Python 3.11 trở lên. Bạn cũng cần thông tin xác thực cho một nhà cung cấp Jev và một nhà cung cấp mô hình phản tư được hỗ trợ.
Cài đặt bằng uv
Cách cài đặt nhanh được khuyến nghị sử dụng uv:
uv tool install jev-alignCài đặt bằng pip
Nếu không sử dụng uv, hãy cài đặt gói bằng pip:
pip install jev-alignCấu hình thông tin xác thực
Đối với tuyến TypeSafe AI tiêu chuẩn, hãy export khóa API TypeSafe. GEPA cũng cần một nhà cung cấp mô hình phản tư, chẳng hạn như OpenAI, Anthropic hoặc Gemini.
export TYPESAFE_API_KEY="..."
export OPENAI_API_KEY="..."Bạn có thể dùng ANTHROPIC_API_KEY hoặc GEMINI_API_KEY thay cho khóa OpenAI. Vercel AI Gateway và Cloudflare Workers AI có thể thay thế TypeSafe AI làm nhà cung cấp Jev; các tuyến này không yêu cầu TYPESAFE_API_KEY.
Bắt đầu thiết lập có hướng dẫn
Khởi chạy CLI bằng một trong hai lệnh:
jevahoặc:
jev-alignQuy trình thiết lập có hướng dẫn sẽ tìm các tập dữ liệu CSV, Parquet và JSONL cục bộ, đồng thời bao gồm ba ví dụ có thể chạy ngay. Làm theo lời nhắc để chọn tập dữ liệu, xác định tác vụ, chọn các trường liên quan và cấu hình các nhà cung cấp.
Điều khiển điều hướng CLI
- Dùng các phím mũi tên và Enter để điều hướng menu.
- Nhấn
bđể quay lại nhãn trước đó. - Nhập
/backđể rời khỏi lời nhắc giải thích lý do. - Nhấn Space để bật hoặc tắt các lựa chọn trong tác vụ đa nhãn.
Chạy tác vụ tối ưu hóa bằng các cờ
Bạn có thể bỏ qua một số phần của quy trình có hướng dẫn bằng cách cung cấp các tùy chọn dòng lệnh. Ví dụ sau xây dựng một hàm nhị phân xác định liệu một bài đăng có liên quan đến hàng không hay không:
jeva optimize posts.csv \
--question "Is the post related to aviation?" \
--column title \
--column text \
--pool-size 1000Các tùy chọn --column lặp lại cho jev-align biết cần đánh giá các trường title và text. Tùy chọn --pool-size 1000 giới hạn phạm vi xử lý ở 1.000 hàng.
Theo mặc định, jev-align sử dụng 1.000 hàng đầu tiên hoặc toàn bộ tập dữ liệu nếu tập dữ liệu có ít hơn 1.000 hàng. Bạn có thể nối tất cả các trường hoặc chọn các cột cụ thể.
Cấu hình các lớp và cấp độ điểm số
Đối với các tác vụ đa lớp và đa nhãn, hãy cung cấp các tùy chọn --class "NAME=DESCRIPTION" lặp lại. Đối với các tác vụ chấm điểm, hãy cung cấp các tùy chọn --score-level lặp lại. Vì các cờ chính xác có thể thay đổi, hãy xem tài liệu tham khảo tích hợp:
jeva optimize --helpCách mỗi vòng tối ưu hóa hoạt động
- Đánh giá tập dữ liệu: jev-align chạy hàm hiện tại trên dữ liệu đã cấu hình và đo độ không chắc chắn.
- Chọn ví dụ: Công cụ chọn các hàng không rõ ràng và thêm một mẫu kiểm tra ngẫu nhiên.
- Thu thập nhãn: Bạn gắn nhãn cho các ví dụ đã chọn và có thể cung cấp thêm lời giải thích lý do.
- Chạy GEPA: GEPA sử dụng phản hồi tích lũy để đề xuất một định nghĩa được cải thiện.
- Xem xét đề xuất: CLI hiển thị điểm số, mức thay đổi độ chắc chắn và phần khác biệt của định nghĩa được đề xuất.
- Chọn hành động tiếp theo: Bạn có thể chấp nhận, từ chối, quay lại hoặc dừng rồi tiếp tục sau.
Bước xem xét này rất quan trọng: các cải tiến về điểm số vẫn chỉ là đề xuất cho đến khi bạn chủ động chấp nhận chúng.
Điều chỉnh cài đặt tối ưu hóa nâng cao
Menu Nâng cao có hướng dẫn cung cấp một số tùy chọn:
- Chọn 5, 10, 15 hoặc 20 chú thích huấn luyện cho mỗi vòng.
- Bật tùy chọn tập đánh giá giữ lại 20%.
- Đặt ngân sách lệnh gọi metric của GEPA, mặc định là 300.
Các vòng chú thích nhỏ hơn có thể giúp mỗi chu kỳ xem xét diễn ra nhanh hơn. Tập giữ lại có thể cung cấp tín hiệu đánh giá độc lập với các ví dụ được dùng cho quá trình tối ưu hóa. Ngân sách lệnh gọi metric kiểm soát khối lượng công việc GEPA có thể thực hiện trong một lần chạy.
Chọn nhà cung cấp Jev
Thiết lập có hướng dẫn sẽ phát hiện các nhà cung cấp đã được cấu hình và cho phép bạn chọn giữa TypeSafe AI, Vercel AI Gateway và Cloudflare Workers AI. Nhà cung cấp được chọn sẽ được lưu cùng AI Function, vì vậy các lệnh gọi thời gian chạy sau đó sẽ sử dụng cùng một tuyến.
Sử dụng Vercel AI Gateway
export AI_GATEWAY_API_KEY="..."
jeva optimize data.csv --question "Is this relevant?" --column text \
--backend vercelSử dụng Cloudflare Workers AI
export CLOUDFLARE_ACCOUNT_ID="..."
export CLOUDFLARE_API_TOKEN="..."
jeva optimize data.csv --question "Is this relevant?" --column text \
--backend cloudflareCả hai tuyến này đều không yêu cầu TYPESAFE_API_KEY.
Cấu hình mô hình phản ánh GEPA
Mô hình phản ánh của GEPA tách biệt với mô hình Jev dùng để đánh giá các hàng trong tập dữ liệu. Các mô hình OpenAI, Anthropic và Gemini được tự động phát hiện. Bạn cũng có thể sử dụng bất kỳ nhà cung cấp LiteLLM nào, bao gồm Fireworks, vLLM cục bộ và các endpoint tương thích với OpenAI khác.
Ví dụ, hãy cấu hình một endpoint vLLM được lưu trữ và chọn rõ mô hình của endpoint đó:
export HOSTED_VLLM_API_BASE="http://localhost:8000/v1"
jeva optimize data.csv --question "Is this relevant?" --column text \
--reflection-model "hosted_vllm/Qwen/Qwen3-8B"Việc tách biệt này cho phép bạn chọn một nhà cung cấp để đánh giá tập dữ liệu trong thời gian chạy và một nhà cung cấp khác cho công việc tối ưu hóa của GEPA.
Quản lý và tiếp tục các AI Function đã lưu
Liệt kê các function đã lưu bằng lệnh:
jeva functionsĐể trực tiếp tiếp tục một lần chạy cụ thể, hãy cung cấp thư mục đã lưu của lần chạy đó:
jeva optimize --resume .jev-align/runs/<run-id>Việc tiếp tục hữu ích khi bạn muốn tiếp tục gắn nhãn, xem lại một function đã lưu hoặc xử lý các ví dụ được thu thập sau khi triển khai.
Sử dụng AI Function trong Python
Nạp một function đã lưu bằng AIFunction.load. Bật tính năng thu thập để function ghi lại các ví dụ hữu ích trong môi trường production cho những lần xem xét sau:
from jev_align import AIFunction
is_aviation = AIFunction.load(
".jev-align/runs/<run-id>",
capture=True,
)
prediction = is_aviation(
title="Airport expansion",
text="A new runway opens next year.",
)Các đối số từ khóa phải tương ứng với những trường mà function đã lưu yêu cầu. Trong ví dụ này, function đánh giá tiêu đề và nội dung văn bản.
Tiếp tục học từ dữ liệu production
Với capture=True, ứng dụng của bạn có thể lưu giữ các ví dụ hữu ích cho quá trình tối ưu hóa sau này. Khi sẵn sàng xem xét, hãy quay lại CLI:
jeva functionsChọn hoặc tiếp tục AI Function liên quan, gắn nhãn cho các ví dụ đã thu thập và để GEPA đề xuất định nghĩa tiếp theo. Quy trình xem xét thủ công vẫn được áp dụng: kiểm tra các metric và diff trước khi chấp nhận thay đổi.
Mẹo về quy trình nâng cao
- Chọn các cột tập trung: Chỉ đưa vào những trường cung cấp bằng chứng cho tác vụ thay vì tự động sử dụng mọi trường.
- Viết câu hỏi chính xác: Ranh giới quyết định rõ ràng giúp việc gắn nhãn phân loại nhị phân nhất quán hơn.
- Mô tả cẩn thận các nhãn cố định: Đối với các tác vụ đa lớp và đa nhãn, hãy sử dụng phần mô tả lớp để phân biệt những nhãn có thể chồng lấn.
- Thêm phần giải thích khi hữu ích: Phần giải thích tùy chọn có thể cung cấp cho GEPA thêm ngữ cảnh về lý do một ví dụ nên nhận một nhãn cụ thể.
- Sử dụng mẫu kiểm tra: Các ví dụ mơ hồ rất hữu ích, nhưng các ví dụ ngẫu nhiên giúp kiểm tra hành vi bên ngoài tập con tập trung vào độ không chắc chắn.
- Xem xét nhiều hơn điểm số: Kiểm tra các thay đổi về độ chắc chắn và diff định nghĩa được đề xuất trước khi chấp nhận một lần lặp.
- Tiếp tục thay vì khởi động lại: Các lần chạy đã lưu bảo toàn những nhãn tích lũy và cho phép tiếp tục cải thiện.
- Tách biệt các quyết định về nhà cung cấp: Chọn backend Jev cho nhu cầu đánh giá và thời gian chạy, sau đó cấu hình riêng mô hình phản ánh cho GEPA.
Kết luận
jev-align cung cấp quy trình có con người tham gia để tạo và tinh chỉnh các AI Function của Jev. Bắt đầu với một tập dữ liệu cục bộ, gắn nhãn các ví dụ không chắc chắn, xem xét những thay đổi định nghĩa do GEPA đề xuất và lưu kết quả. Bằng cách bật tính năng thu thập dữ liệu production và tiếp tục cùng một lần chạy sau đó, bạn có thể tiếp tục cải thiện function bằng các ví dụ thực tế từ ứng dụng, đồng thời duy trì quyền kiểm soát đối với mọi phiên bản được chấp nhận.
