Thiết lập và sử dụng AI cho nhà phát triển

Nội dung

    Mô hình Phi-4 của Microsoft là mô hình ngôn ngữ nhỏ (SLM) 14 tỷ tham số tiên tiến, được thiết kế để vượt trội trong các nhiệm vụ lý luận, bao gồm toán học, hiểu ngôn ngữ và giải quyết vấn đề.
    Không giống như nhiều mô hình ngôn ngữ lớn, Phi-4 tập trung vào hiệu quả và khả năng truy cập, khiến nó trở thành một công cụ đa năng cho các nhà phát triển.

    Phi-4

    https://medium.com/@pankaj_pandey/58ca1e986208

    https://pub.towardsai.net/phi-4-multimodal-phi-4-mini-747852fd2688

    Phi-4 của Microsoft được xây dựng dựa trên khả năng lý giải tiên tiến của dòng sản phẩm tiền nhiệm (mẫu 14B) và đưa ra hai mẫu sản phẩm:

    1. Phi-4-Multimodal: Một mô hình đa phương thức hoàn chỉnh tích hợp văn bản, hình ảnh và âm thanh. Nó sử dụng “Hỗn hợp LoRA” để bạn có thể thêm bộ điều hợp cụ thể cho từng phương thức mà không cần đào tạo lại mô hình cơ sở.
    2. Phi-4-Mini: Với 3,8 tỷ tham số, Phi-4-Mini cung cấp khả năng hỗ trợ đa ngôn ngữ nâng cao, khả năng suy luận mạnh mẽ và thậm chí cả chức năng gọi hàm — tất cả trong một kiến ​​trúc nhỏ gọn.

    Nó có hiệu suất cao hơn các mô hình lớn hơn trong các nhiệm vụ như giải quyết vấn đề toán học và suy luận logic.
    Kết hợp dữ liệu tổng hợp để nâng cao chất lượng đào tạo. Nhỏ gọn nhưng mạnh mẽ với 14 tỷ thông số, yêu cầu ít hơn…
    Xử lý dữ liệu đầu vào lên đến 16.000 mã thông báo, cho phép tương tác dài hơn và phức tạp hơn.
    Có sẵn theo Giấy phép MIT cho mục đích sử dụng học thuật và thương mại.
    Chạy cục bộ với các khung như Ollama, Hugging Face Transformers, LM Studio và Open WebUI.

    Các trường hợp sử dụng chính

    Mô hình này được thiết kế để sử dụng cho mục đích thương mại và nghiên cứu đa ngôn ngữ và đa phương thức. Mô hình này cung cấp các ứng dụng cho các hệ thống và ứng dụng AI mục đích chung yêu cầu:

    • Môi trường hạn chế bộ nhớ/tính toán
    • Các tình huống bị ràng buộc độ trễ
    • Lý luận mạnh mẽ (đặc biệt là toán học và logic)
    • Gọi hàm và công cụ
    • Hiểu biết chung về hình ảnh
    • Nhận dạng ký tự quang học
    • Hiểu biểu đồ và bảng
    • So sánh nhiều hình ảnh
    • Tóm tắt nhiều hình ảnh hoặc video clip
    • Nhận dạng giọng nói
    • Bản dịch giọng nói
    • Kiểm tra chất lượng giọng nói
    • Tóm tắt bài phát biểu
    • Hiểu âm thanh

    Mô hình này được thiết kế để đẩy nhanh quá trình nghiên cứu về ngôn ngữ và các mô hình đa phương thức, nhằm mục đích sử dụng làm nền tảng cho các tính năng hỗ trợ AI tạo ra.

    Sử dụng Ollama

    Ollama là một khuôn khổ nhẹ được thiết kế để triển khai cục bộ các mô hình ngôn ngữ. Hệ thống sử dụng Python 3.8 trở lên. Đủ tài nguyên GPU và RAM.

    Cài đặt Ollama:

    # Tải xuống Ollama từ trang web chính thức

    curl -fsSL https://ollama.com/install.sh | sh

    Mac: brew install ollama

    Windows thì phài cài WSL (Windows Subsystem for Linux)

    Ollama cung cấp một sở thú mô hình sẵn sàng sử dụng mà bạn có thể chạy bằng một dòng mã duy nhất: ollama run <anymodel>. Điều này sẽ cho phép bạn chạy bất kỳ mô hình nào được liệt kê trong kho lưu trữ mô hình Ollama trong thiết bị đầu cuối của bạn một cách dễ dàng. Ví dụ: ollama run qwen2.5:14b –verbose.Tôi đã thêm –verbose để bạn có thể thấy hiệu suất của token mỗi giây (tok/giây).

    Cũng có thể chạy bất kỳ mô hình Hugging Face GGUF nào trực tiếp. Tất cả những gì bạn cần là liên kết kho lưu trữ Hugging Face và Ollama sẽ lo phần còn lại. Sử dụng định dạng lệnh sau:

    ollama run hf.co/{username}/{repository}

    Ví dụ: ollama run hf.co/bartowski/Llama-3.2-1B-Instruct-GGUF

    Khi bạn chạy một mô hình bằng Ollama, bạn có tùy chọn chọn một phương pháp lượng tử hóa từ những phương pháp có sẵn trong kho lưu trữ của mô hình. Nếu bạn không chỉ định một phương pháp, Ollama sẽ sử dụng lược đồ Q4_K_M mặc định nếu có. Nếu không, nó sẽ chọn một phương pháp lượng tử hóa phù hợp khác từ kho lưu trữ. Tại sao nên sử dụng lượng tử hóa tùy chỉnh, vì: 1. Tối ưu hóa hiệu suất : Các lược đồ lượng tử hóa tùy chỉnh có thể giúp bạn điều chỉnh hiệu suất mô hình dựa trên khả năng của phần cứng. 2. Hiệu quả bộ nhớ : Các phương pháp lượng tử hóa khác nhau giúp giảm mức sử dụng bộ nhớ, cho phép bạn chạy các mô hình lớn hơn trên các máy nhỏ hơn. 3. Tính linh hoạt : Bạn có thể kiểm soát phương pháp lượng tử hóa nào sẽ sử dụng, cho phép bạn đạt được sự cân bằng giữa tốc độ và độ chính xác.

    Mỗi loại lượng tử hóa cung cấp các sự đánh đổi khác nhau giữa việc sử dụng bộ nhớ và hiệu suất mô hình. Sau đây là một số lược đồ lượng tử hóa phổ biến mà bạn có thể gặp phải:

    Q4_K_M : Đây là mặc định và cân bằng tốt giữa tốc độ và độ chính xác.
    IQ3_M : Lượng tử hóa mạnh mẽ hơn, hữu ích khi tài nguyên bị hạn chế.
    Q5_1 : Cung cấp độ chính xác tốt hơn khi tăng nhẹ mức sử dụng bộ nhớ.

    Bạn có thể dễ dàng ghi đè lượng tử hóa mặc định bằng cách chỉ định lược đồ mong muốn trong lệnh của bạn. Sau đây là định dạng để chạy mô hình Hugging Face với tùy chọn lượng tử hóa tùy chỉnh trong Ollama: ollama run hf .co /{tên người dùng}/{kho lưu trữ}:{lượng tử hóa}

    Ví dụ, nếu bạn muốn chạy mô hình Llama 3.2 3B-Instruct GGUF bằng cách sử dụng lược đồ lượng tử hóa IQ3_M , bạn sẽ sử dụng:

    ollama chạy hf.co/bartowski/Llama-3.2-3B-Instruct-GGUF:IQ3_M

    Nhận lấy link bằng cách như sau:Thiết lập và sử dụng AI cho nhà phát triển

    Thiết lập và sử dụng AI cho nhà phát triển

    Thiết lập và sử dụng AI cho nhà phát triển

    Tải xuống Mô hình Phi-4: ollama pull phi4
    Chạy mô hình: ollama run phi4
    Tương tác thông qua Python: Cài đặt thư viện Ollama Python:

    pip install ollama
    Ví dụ về tập lệnh Python:

    from ollama import chat
    model_name = “phi4”
    prompt = “Explain the theory of relativity.” //Giải thích về thuyết tương đối.
    response = chat(
    model=model_name,
    messages=[
    {“role”: “user”, “content”: prompt}
    ] )
    print(response[“message”][“content”])

    Chúng ta đang chạy Ollama với các tham số mặc định. Vậy nếu chúng ta muốn sửa đổi chúng thì sao? https://henrynavarro.org/ollama-vs-vllm-which-framework-is-better-for-inference-part-i-d8211d7248d2

    Để tạo mô hình của riêng bạn với các tham số cụ thể, bạn sẽ cần tạo Modelfile, một tệp văn bản thuần túy duy nhất chứa các tham số bạn muốn đặt. Sau đây là một ví dụ:

    FROM qwen2.5:14b

    # đặt nhiệt độ thành 1 [cao hơn là sáng tạo hơn, thấp hơn là mạch lạc hơn]

    PARAMETER temperature 0.5

    # đặt kích thước cửa sổ ngữ cảnh thành 8192, điều này kiểm soát số lượng mã thông báo mà LLM có thể sử dụng làm ngữ cảnh để tạo mã thông báo tiếp

    PARAMETER num_ctx 8192

    # mã thông báo cần tạo được đặt thành 4096 (tối đa)

    PARAMETER num_predict 4096

    # Cấu hình lời nhắc hệ thống Bạn là trợ lý AI hữu ích.

    SYSTEM “”“You are a helpful AI assistant.”“”

    Để xây dựng và chạy mô hình tùy chỉnh của bạn:

    # Xây dựng mô hình
    ollama create mymodel -f Modelfile

    # Chạy mô hình
    ollama run mymodel –verbose

    Danh sách điều chỉnh thông số này

    Ollama cung cấp hai cách để tương tác với các mô hình:

    1. Native REST API

    Ollama chạy máy chủ cục bộ trên cổng 11434 theo mặc định. Bạn có thể tương tác với nó bằng các yêu cầu HTTP chuẩn:

    import requests

    # Yêu cầu hoàn tất trò chuyện cơ bản
    response = requests.post(‘http://<your_ollama_server_ip>:11434/api/chat’,
    json={
    ‘model’: ‘qwen2.5:14b’,
    ‘messages’: [
    {
     ‘role’: ‘system’,
     ‘content’: ‘You are a helpful AI assistant.’
    },
    {
    ‘role’: ‘user’,
    ‘content’: ‘What is artificial intelligence?’
    }
    ],
    ‘stream’: False
    }
    )
    print(response.json()[‘message’][‘content’])

    2. Lớp tương thích OpenAI

    Để tích hợp liền mạch với các ứng dụng hiện có, Ollama cung cấp khả năng tương thích API OpenAI. Trước tiên, hãy khởi động máy chủ tương thích OpenAI:

    Để sử dụng với OpenAI Python SDK:

    from openai import OpenAI

    client = OpenAI(
    base_url=“http://<your_ollama_server_ip>:11434/v1”,
    api_key=“dummy” # vLLM chấp nhận yêu cầu khóa API, một trong những lợi thế của nó so với ollama. Trong trường hợp của chúng tôi, chúng tôi đặt None, vì vậy bạn có thể đặt bất kỳ chuỗi nào.
    )

    # Chat Phản hồi hoàn thành
    response = client.chat.completions.create(
    model=“qwen2.5:14b”,
    messages=[
    {“role”: “system”, “content”: “You are a helpful assistant.”},
    {“role”: “user”, “content”: “What is artificial intelligence?”}
    ] )
    print(response.choices[0].message.content)

    API của Ollama đi kèm với các tính năng thiết yếu giúp nó trở thành lựa chọn mạnh mẽ cho các nhà phát triển. Chúng tôi sẽ trình bày chi tiết tất cả các ưu điểm và nhược điểm của khuôn khổ này trong Phần III của hướng dẫn này, trong khi đó, hãy liệt kê các tính năng chính:

    Hỗ trợ phát trực tuyến: Tạo mã thông báo theo thời gian thực đảm bảo khả năng tương thích hoàn toàn với API OpenAI, hoàn hảo để tạo các ứng dụng phản hồi.

    Quản lý nhiều mô hình: Khả năng chạy nhiều mô hình cùng lúc, tuy nhiên có một lưu ý: Ollama sẽ dừng một mô hình để chạy mô hình khác khi VRAM bị giới hạn, điều này đòi hỏi phải lập kế hoạch tài nguyên cẩn thận.

    Kiểm soát tham số: Cài đặt có thể tùy chỉnh cao thông qua lệnh gọi API — một con dao hai lưỡi mang lại tính linh hoạt cao nhưng có thể gây choáng ngợp cho người mới bắt đầu và máy chủ sản xuất.

    Khả năng tương thích CPU: Quản lý tài nguyên thông minh tự động chuyển các lớp mô hình sang CPU khi VRAM không đủ, giúp có thể chạy các mô hình lớn ngay cả trên các hệ thống có bộ nhớ GPU hạn chế

    Không phụ thuộc ngôn ngữ: Tự do sử dụng ngôn ngữ lập trình ưa thích của bạn, cho dù đó là Python, JavaScript, Go hay bất kỳ ngôn ngữ nào có khả năng HTTP

    Ollama một khuôn khổ mạnh mẽ và thân thiện với người dùng để chạy LLM cục bộ. Từ quy trình cài đặt đơn giản đến khả năng API linh hoạt, Ollama nổi bật với sự đơn giản và dễ sử dụng, khiến nó trở thành một lựa chọn hấp dẫn cho các nhà phát triển muốn thử nghiệm với LLM nguồn mở.

    Hugging Face

    Sự có mặt của Phi-4 trên Hugging Face giúp đơn giản hóa quá trình tích hợp cho các nhà phát triển Python.

    Cài đặt phụ thuộc: pip install torch torchvision transformers accelerate
    Tải xuống và cấu hình mô hình:

    từ máy biến áp nhập AutoModelForCausalLM, AutoTokenizer

    from transformers import AutoModelForCausalLM, AutoTokenizer
    model_name = “microsoft/phi4”
    tokenizer = AutoTokenizer.from_pretrained(model_name)
    model = AutoModelForCausalLM.from_pretrained(model_name, device_map=“auto”, torch_dtype=“auto”)
    Chạy suy luận:
    input_text = “Describe quantum entanglement.” //”Mô tả sự vướng víu lượng tử.”
    inputs = tokenizer(input_text, return_tensors=“pt”).to(model.device)
    outputs = model.generate(**inputs, max_new_tokens=150)
    response = tokenizer.decode(outputs[0], skip_special_tokens=True)
    print(response)

    Sử dụng LM Studio

    LM Studio cung cấp môi trường dựa trên GUI để chạy Phi-4.

    Các bước thực hiện:

    Tải xuống LM Studio: Cài đặt LM Studio từ trang web chính thức .
    Tải Phi-4: Tìm kiếm Phi-4 trong thư viện mô hình và tải xuống.
    Tương tác thông qua GUI: Nhập lời nhắc vào giao diện để nhận phản hồi theo thời gian thực.

    Dùng vLLM

    # Cài đặt vLLM từ pip:
    pip install vllm

    # Tải và chạy mô hình:
    vllm serve “microsoft/Phi-4-mini-instruct”

    # Gọi máy chủ bằng curl:
    curl -X POST “http://localhost:8000/v1/chat/completions” \
    -H “Content-Type: application/json” \
    –data ‘{
    “model”: “microsoft/Phi-4-mini-instruct”,
    “messages”: [
    {
    “role”: “user”,
    “content”: “Thủ đô của Pháp là gì?”
    }
    ] }’

    Open WebUI

    Đối với các nhà phát triển thích giao diện dựa trên web.

    Các bước thực hiện:

    Cài đặt Open WebUI: Thực hiện theo hướng dẫn thiết lập được cung cấp trên trang GitHub của Open WebUI .
    Tải mô hình: Đảm bảo Phi-4 được thêm vào thư mục mô hình.
    Tương tác thông qua Giao diện Web: Khởi động máy chủ và sử dụng giao diện dựa trên trình duyệt để truy vấn.

    Chạy Open WebUI cục bộ trên máy Mac

    Các bước như sau:

    1.Cài đặtuvx

    brew install uv

    2. Khởi tạo môi trường ảo Python

    mkdir openwebui && cd openwebui
    uv init –python=3.11 .
    uv venv
    source .venv/bin/activate

    3. Cài đặt WebUI mở

    uv pip install open-webui

    4. Chạy ứng dụng

    open-webui serve

    Gio thi truy cập Open WebUI thông qua: http://0.0.0.0:8080

    Đối với những người thích tự động hóa, bạn có thể thêm một tập lệnh vào shell của mình.

    đoạn mã được cung cấp:

    #!/bin/bash
    # Function to start OpenWebUI
    startwebui() {
    if pgrep -f “open-webui serve” > /dev/null; then
    echo “OpenWebUI is already running”
    return 1
    fi
    (source “$HOME/openwebui/.venv/bin/activate” &&
    open-webui serve > “$HOME/logs/webui.log” 2>&1 &)
    echo “OpenWebUI started. Logs at ~/logs/webui.log”
    }
    # Function to stop OpenWebUI
    stopwebui() {
    pkill -f “open-webui serve”
    echo “OpenWebUI stopped”
    }

    Thực hiện Script

    chmod +x ~/scripts/webui-control.sh

    source ~/scripts/webui-control.sh

    bạn có thể sử dụng Automator để tạo một ứng dụng Mac mà bạn có thể nhấp đúp, thêm vào thanh dock,

    Mở Automatorứng dụng
    Chọn loại “Ứng dụng”
    Nhập “chạy” vào hộp tìm kiếm Hành động
    Nhấp đúp vào “Chạy Shell Script”
    Nhấp vào Runnút ở góc trên bên phải để kiểm tra.
    File > Save để tạo Ứng dụng.

    Thiết lập và sử dụng AI cho nhà phát triển

    Mặc dù Phi-4 được tối ưu hóa về hiệu quả nhưng vẫn cần phải đáp ứng các yêu cầu sau để hoạt động trơn tru:

    GPU: Tối thiểu RTX A6000 hoặc tương đương với 48 GB VRAM.
    RAM: Tối thiểu 48 GB.
    Lưu trữ: 40 GB cho các tệp mô hình và các phần phụ thuộc.

    1. Lý luận toán học
    Lời nhắc Prompt:

    Giải phương trình: x^2 – 5x + 6 = 0
    Phản ứng:

    Các nghiệm của phương trình là x = 2 và x = 3.
    2. Tạo mã
    Lời nhắc:

    Viết hàm Python để tính giai thừa (factorial) của một số.
    Phản ứng:

    def factorial(n) :
    if n = = 0 :
    return 1
    else :
    return n * factorial(n -1 )
    print(factorial(5)) # Đầu ra: 120

    Ưu điểm:

    Hiệu suất hiệu quả với thông số 14B.
    Mã nguồn mở và có thể truy cập rộng rãi.
    Linh hoạt trên nhiều khuôn khổ.
    Mạnh về các nhiệm vụ lý luận.

    Nhược điểm:

    Hiệu suất không nhất quán với các truy vấn mơ hồ hoặc cụ thể theo miền.
    Yêu cầu tài nguyên phần cứng lớn để có hiệu suất tối ưu.
    Hiệu suất hạn chế khi thực hiện các tác vụ liên quan đến dữ liệu có cấu trúc như thông tin dạng bảng.

    Microsoft Phi-4 là một bước tiến đáng kể trong quá trình phát triển các mô hình ngôn ngữ hiệu quả, tập trung vào lý luận. Cho dù bạn đang khám phá các tác vụ lý luận nâng cao hay tích hợp AI vào các dự án của mình, Phi-4 đều mang đến sự cân bằng giữa hiệu suất và khả năng truy cập.

    Thiết lập Open WebUI với Docker

    https://medium.com/@mauryaanoop3/harnessing-the-power-of-deepseek-r1-on-cpu-no-code-c91276aae88e

    Tạo một docker-compose.yaml tệp có cấu hình cần thiết:

    services:
    ollama:
    image: ollama/ollama:latest
    container_name: ollama
    volumes:
    ollama:/root/.ollama
    ports:
    “11434:11434”
    restart: unless-stopped

    open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    ports:
    “3000:8080”
    volumes:
    open-webui:/app/backend/data
    extra_hosts:
    “host.docker.internal:host-gateway”
    restart: always

    volumes:
    ollama:
    name: ollama
    open-webui:
    name: open-webui

    Một dịch vụ cho Ollama sử dụng olama/olama hình ảnh.
    Một dịch vụ khác dành cho Open WebUI, kéo hình ảnh từ sổ đăng ký vùng chứa GitHub.
    Ánh xạ các cổng cần thiết để cho phép truy cập UI.
    Bắt đầu dịch vụ bằng cách chạy:

    docker-compose up

    (Lần thiết lập đầu tiên có thể mất khoảng 15–20 phút.)

    Sau khi các container đang chạy, hãy mở trình duyệt và điều hướng đến:

    localhost:3000
    Tạo một tài khoản nếu được nhắc

    Để lại một bình luận

    Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *