ЧАСТЬ 1: Понимание и использование API-интерфейса Hugging Face Inference

ПРЕДПОСЫЛКИ: Основы Python

В обширной вселенной кодирования восходит новая звезда под названием StarCoder. В этой статье мы рассмотрим эту новую технологию и продемонстрируем, как с ее помощью легко преобразовывать языковые подсказки в функциональный код.

StarCoder и StarCoderBase — это большие языковые модели для кода (Code LLM), разработанные на основе разрешительно лицензированных данных, полученных из GitHub, включающих более 80 языков программирования, коммиты Git, задачи GitHub и блокноты Jupyter. Для этого была обучена колоссальная модель с 15 миллиардами параметров для 1 триллиона токенов. Модель StarCoderBase была настроена с использованием 35 миллиардов токенов Python, создав модель StarCoder, которую мы используем сегодня.

Развертывание Hugging Face «API для вывода»

Если вы хотите протестировать возможности модели, вы можете посетить: https://huggingface.co/bigcode/starcoder

Если вы хотите использовать эту модель в своем собственном коде, самый простой способ интеграции — использовать API-интерфейс Free Inference Hosting от Hugging Face.

Войдите/зарегистрируйтесь на сайте и нажмите Развернуть в левом верхнем углу на той же странице. Затем нажмите Inference API (должен быть доступен на большинстве страниц моделей)

Это покажет вам, как вы можете использовать Inference API обнимающего лица для использования модели. Он работает, отправляя запрос HTTP Post на https://api-inference.huggingface.co/models/bigcode/starcoder с вашим вводом и параметрами. Вы можете использовать любой язык программирования, поскольку это всего лишь HTTP-запрос, но в нашем случае мы будем использовать python. Убедитесь, что вы создали токен API для своей учетной записи, если вы еще этого не сделали.

Давайте быстро пройдемся по коду построчно (пропустите, если вы уже знакомы с python):

  1. Эта строка импортирует модуль requests, который является популярной библиотекой Python для выполнения HTTP-запросов.
import requests

2. Эта строка присваивает URL-адрес переменной API_URL. Он указывает конечную точку API, куда мы будем отправлять наши запросы.

API_URL = "https://api-inference.huggingface.co/models/bigcode/starcoder"

3. Эта строка создает словарь с именем headers, который содержит информацию об авторизации, необходимую для доступа к API. Значение xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx представляет собой токен доступа или API-ключ, который необходимо сгенерировать на сайте обнимающего лица (здесь)

headers = {"Authorization": "Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}

4. Эта строка определяет функцию query, которая принимает единственный параметр payload.

def query(payload):

5. Эта строка отправляет запрос POST на API_URL с указанными заголовками и полезной нагрузкой. Параметр json используется для отправки полезной нагрузки в виде данных JSON.

response = requests.post(API_URL, headers=headers, json=payload)

6. Эта строка возвращает ответ от API в виде объекта JSON. Метод json() вызывается для объекта response для преобразования данных ответа в словарь Python.

return response.json()

7. Эта строка вызывает функцию query, которую мы определили выше, с полезной нагрузкой, содержащей одну пару ключ-значение. Ключ — «входы», а значение — строка «Не могли бы вы сообщить нам более подробную информацию о вашем ». Ответ от API присваивается переменной output.

output = query({
	"inputs": "Can you please let us know more details about your ",
})

Используя приведенный выше код, вы уже можете экспериментировать с моделью, экспериментируя с различными входными данными. Во второй части я покажу вам, как я создал конвертер приглашений в запросы, используя эту замечательную модель. Я получил этот вывод, когда запустил приведенный выше код (не забудьте использовать правильный ключ доступа в заголовках)

[{‘generated_text’: ‘Не могли бы вы сообщить нам более подробную информацию о вашем втором сценарии?\n‹issue_comment›username_0: @username_1 Я обновил описание с помощью»}]

Я знаю, вывод не имеет особого смысла, но и наш ввод тоже. Во второй части мы увидим, как использовать его для преобразования «подсказок на естественном языке» в «запросы Javascript Firestore».