How to Use the WhereIsAIUAE-Code-Large-V1 Model

May 4, 2024 | Educational

Welcome to your guide on utilizing the WhereIsAIUAE-Code-Large-V1 model, a powerful tool that helps you measure code and issue similarity effectively. This model is built upon the previous WhereIsAIUAE-Large-V1 and fine-tuned on the GIS: Github Issue Similarity dataset.

What You Will Need

  • Python installed on your machine.
  • The pip package manager.
  • Access to the internet to install dependencies.

Installation Instructions

Follow these simple steps to get the model running:

python -m pip install -U angle-emb

How to Use the Model

The model can be accessed through two straightforward approaches: angle-emb and sentence-transformers.

1. Using angle-emb

Use the following code snippet to make it work:

from scipy import spatial
from angle_emb import AnglE

model = AnglE.from_pretrained('WhereIsAIUAE-Code-Large-V1').cuda()

# Example sorting algorithms 
quick_sort = # Approach 1
def quicksort(arr):
    if len(arr) <= 1:
        return arr
    else:
        pivot = arr[0]
        left = [x for x in arr[1:] if x < pivot]
        right = [x for x in arr[1:] if x >= pivot]
        return quicksort(left) + [pivot] + quicksort(right)

arr = [1, 7, 4, 1, 10, 9, -2]
sorted_arr = quicksort(arr)
print("Sorted Array in Ascending Order:")
print(sorted_arr)

Just like sorting a list of fruits where you might separate apples, oranges, and bananas to create a neat arrangement, the quicksort algorithm divides the array around a pivot and sorts each side independently.

2. Using sentence-transformers

This method also uses a similar structure but relies on the sentence-transformers library:

from scipy import spatial
from sentence_transformers import SentenceTransformer

model = SentenceTransformer('WhereIsAIUAE-Code-Large-V1').cuda()

# The sorting algorithms remain the same
# Example continued...
bubblesort = def bubblesort(elements):
    for n in range(len(elements)-1, 0, -1):
        swapped = False
        for i in range(n):
            if elements[i] > elements[i + 1]:
                swapped = True
                elements[i], elements[i + 1] = elements[i + 1], elements[i]
        if not swapped:
            return

elements = [39, 12, 18, 85, 72, 10, 2, 18]
print("Unsorted list is:")
print(elements)
bubblesort(elements)
print("Sorted Array is:")
print(elements)

Consider sorting a deck of playing cards. The bubble sort algorithm compares each pair of cards, swapping them if they’re in the wrong order, just as you would do when trying to arrange your cards from lowest to highest.

Calculating Code Similarities

To calculate the cosine similarities between your pieces of code or functions:

vecs = model.encode([
    'def echo(): print("hello world")',
    'quicksort',
    'bubblesort'
])
print("cos sim (0, 1):", 1 - spatial.distance.cosine(vecs[0], vecs[1]))
print("cos sim (0, 2):", 1 - spatial.distance.cosine(vecs[0], vecs[2]))
print("cos sim (1, 2):", 1 - spatial.distance.cosine(vecs[1], vecs[2]))

This will give you insights into how similar the different functions are based on their embeddings!

Troubleshooting

If you encounter any issues during installation or execution:

  • Ensure that you are using a compatible version of Python.
  • Check that all libraries are installed correctly without any errors.
  • If running out of memory, consider utilizing a machine with higher specifications or using less complex models.

For more insights, updates, or to collaborate on AI development projects, stay connected with fxis.ai.

Conclusion

Using the WhereIsAIUAE-Code-Large-V1 model opens numerous avenues to explore the intricacies of code and improve your coding practices significantly.

At fxis.ai, we believe that such advancements are crucial for the future of AI, as they enable more comprehensive and effective solutions. Our team is continually exploring new methodologies to push the envelope in artificial intelligence, ensuring that our clients benefit from the latest technological innovations.

Stay Informed with the Newest F(x) Insights and Blogs

Tech News and Blog Highlights, Straight to Your Inbox