1 điểm bởi GN⁺ 2023-08-15 | 1 bình luận | Chia sẻ qua WhatsApp
  • Outlines là một thư viện dành cho việc sinh văn bản bằng mạng nơ-ron, được thiết kế linh hoạt hơn để thay thế phương thức generate của thư viện transformers.
  • Nó giúp các nhà phát triển xây dựng giao diện vững chắc, đồng thời đảm bảo đầu ra tuân theo biểu thức chính quy hoặc lược đồ JSON.
  • Thư viện này cung cấp các thành phần nền tảng cho prompting vững chắc, tách biệt logic prompting và logic thực thi để có thể triển khai đơn giản few-shot generation, ReAct, meta-prompting, agent, v.v.
  • Outlines được thiết kế để tương thích với hệ sinh thái rộng hơn, sử dụng ít lớp trừu tượng nhất có thể, và có thể đan xen việc sinh nội dung với luồng điều khiển, câu lệnh điều kiện, hàm Python tùy chỉnh và lời gọi tới các thư viện khác.
  • Tương thích với mọi mô hình và cung cấp giao diện với mô hình thông qua logits của token tiếp theo. Ngoài ra cũng có thể dùng với các mô hình dựa trên API.
  • Thư viện này nổi bật với các thành phần prompting đơn giản nhưng mạnh mẽ dựa trên bộ máy mẫu Jinja, guided generation, guided generation bằng biểu thức chính quy tốc độ cao, sinh JSON nhanh theo lược đồ JSON hoặc mô hình Pydantic, và tích hợp với các mô hình transformers của HuggingFace.
  • Outlines có sẵn trên PyPi và có thể cài đặt bằng lệnh pip install outlines.
  • Thư viện này cho phép dừng quá trình sinh sớm sau khi phát hiện một chuỗi cho trước, thu hẹp phần hoàn thành bằng cách chọn giữa nhiều khả năng, hoặc yêu cầu mô hình chỉ trả về số nguyên hoặc số thực.
  • Ngoài ra còn bao gồm guided generation bằng biểu thức chính quy tốc độ cao và sinh JSON hiệu quả theo mô hình Pydantic.
  • Outlines tách biệt logic prompt và logic chương trình thông thường bằng cách đóng gói template bên trong "hàm template", giúp việc viết và quản lý prompt trở nên dễ dàng hơn.
  • Thư viện này cũng cho phép mô hình ngôn ngữ gọi các hàm bên ngoài để lấy thêm thông tin hoặc thực hiện tác vụ, bằng cách mã hóa mô tả của hàm vào trong prompt.
  • Outlines là mã nguồn mở và được cấp phép theo Apache License 2.0.

1 bình luận

 
GN⁺ 2023-08-15
Ý kiến Hacker News
  • Bài viết nói về cách các thư viện mô hình ngôn ngữ (Language Model Libraries, LLMs) có thể tạo ra JSON hợp lệ trong 100% trường hợp
  • LLM tạo ra phân phối xác suất cho mọi token, và trình phân tích cú pháp JSON cung cấp danh sách các token hợp lệ tiếp theo
  • Thảo luận về ý tưởng che một phần không gian từ vựng và các thư viện thực hiện các bước thời gian hiệu quả
  • Đặt câu hỏi về mức độ hiệu quả của các mô hình nền tảng như Llama2 và liệu có cần tinh chỉnh chỉ thị cho các trường hợp sử dụng cụ thể hay không
  • Có câu hỏi về sự tồn tại của các tham số nhiệt độ hoặc lấy mẫu cho generate.regex
  • Bài viết đề cập rằng GPT4 có thể trả về JSON hợp lệ trong hầu hết trường hợp bằng cách cung cấp ví dụ trong system message
  • Cơ chế của thư viện được ghi nhận, cùng sự tò mò về khả năng sử dụng tiềm năng cho các tác vụ cần đầu vào có cấu trúc ngoài JSON
  • Quan tâm đến tiềm năng của các thư viện như vậy trong lập kế hoạch đường đi hình thức
  • Bài viết đề cập rằng việc yêu cầu định dạng đầu ra phức tạp có thể làm giảm hiệu năng của tác vụ cơ bản, điều này đã được xác nhận trong benchmark chỉnh sửa mã của GPT-3.5 và GPT-4
  • Bài viết đề cập rằng LLama.cpp đã triển khai lấy mẫu dựa trên ngữ pháp vào tháng trước
  • Quy trình cập nhật "mặt nạ" logit bias sau mỗi token do LLM tạo ra để token tiếp theo có thể là token JSON hợp lệ